Skip to content

Commit

Permalink
[mips] Implement tlbp, tlbr, tlbwi, and tlbwr
Browse files Browse the repository at this point in the history
Reviewers: vmedic, dsanders

Reviewed By: dsanders

Differential Revision: http://reviews.llvm.org/D3571

llvm-svn: 208301
  • Loading branch information
dsandersllvm committed May 8, 2014
1 parent b33bded commit 8dcb116
Show file tree
Hide file tree
Showing 20 changed files with 52 additions and 36 deletions.
9 changes: 9 additions & 0 deletions llvm/lib/Target/Mips/MipsInstrFormats.td
Original file line number Diff line number Diff line change
Expand Up @@ -843,3 +843,12 @@ class BARRIER_FM<bits<5> op> : StdArch {
let Inst{10-6} = op; // Operation
let Inst{5-0} = 0; // SLL
}

class COP0_TLB_FM<bits<6> op> : StdArch {
bits<32> Inst;

let Inst{31-26} = 0x10; // COP0
let Inst{25} = 1; // CO
let Inst{24-6} = 0;
let Inst{5-0} = op; // Operation
}
7 changes: 7 additions & 0 deletions llvm/lib/Target/Mips/MipsInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -1207,6 +1207,13 @@ def SSNOP : Barrier<"ssnop">, BARRIER_FM<1>;
def EHB : Barrier<"ehb">, BARRIER_FM<3>;
def PAUSE : Barrier<"pause">, BARRIER_FM<5>, ISA_MIPS32R2;

class TLB<string asmstr> : InstSE<(outs), (ins), asmstr, [], NoItinerary,
FrmOther>;
def TLBP : TLB<"tlbp">, COP0_TLB_FM<0x08>;
def TLBR : TLB<"tlbr">, COP0_TLB_FM<0x01>;
def TLBWI : TLB<"tlbwi">, COP0_TLB_FM<0x02>;
def TLBWR : TLB<"tlbwr">, COP0_TLB_FM<0x06>;

//===----------------------------------------------------------------------===//
// Instruction aliases
//===----------------------------------------------------------------------===//
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips1/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
# XFAIL: *

.set noat
tlbp
tlbr
tlbwi
tlbwr
lwc0 c0_entrylo,-7321($s2)
lwc3 $10,-32265($k0)
swc0 c0_prid,18904($s3)
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips1/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,8 @@
swc2 $25,24880($s0)
swl $t7,13694($s3)
swr $s1,-26590($t6)
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
xor $s2,$a0,$s8
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips2/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,3 @@
ldc3 $29,-28645($s1)
lwc3 $10,-32265($k0)
sdc3 $12,5835($t2)
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips2/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips3/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,3 @@

.set noat
lwc3 $10,-32265($k0)
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips3/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips32/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,3 @@
ldc3 $29,-28645($s1)
rorv $t5,$a3,$s5
sdc3 $12,5835($t2)
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips32/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips32r2/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -304,10 +304,6 @@
tlbgwr
tlbinv
tlbinvf
tlbp
tlbr
tlbwi
tlbwr
trunc.l.d $f23,$f23
trunc.l.s $f28,$f31
wrpgpr $zero,$t5
Expand Down
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips32r2/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips4/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,3 @@
recip.s $f3,$f30
rsqrt.d $f3,$f28
rsqrt.s $f4,$f8
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips4/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips5/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,3 @@
rsqrt.d $f3,$f28
rsqrt.s $f4,$f8
sub.ps $f5,$f14,$f26
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips5/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips64/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,3 @@
rsqrt.d $f3,$f28
rsqrt.s $f4,$f8
sub.ps $f5,$f14,$f26
tlbp
tlbr
tlbwi
tlbwr
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips64/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down
4 changes: 0 additions & 4 deletions llvm/test/MC/Mips/mips64r2/valid-xfail.s
Original file line number Diff line number Diff line change
Expand Up @@ -306,10 +306,6 @@
tlbgwr
tlbinv
tlbinvf
tlbp
tlbr
tlbwi
tlbwr
wrpgpr $zero,$t5
xor.v $w20,$w21,$w30
yield $v1,$s0
4 changes: 4 additions & 0 deletions llvm/test/MC/Mips/mips64r2/valid.s
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,10 @@
teqi $s5,-17504
tgei $s1,5025
tgeiu $sp,-28621
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06]
tlti $t6,-21059
tltiu $ra,-5076
tnei $t4,-29647
Expand Down

0 comments on commit 8dcb116

Please sign in to comment.