forked from OSchip/llvm-project
SPARCv9: recognize SIR trap instruction
This commit is contained in:
parent
c3e4f3b231
commit
9179764710
|
@ -521,3 +521,6 @@ def : InstAlias<"signx $rd", (SRArr IntRegs:$rd, IntRegs:$rd, G0), 0>, Requires<
|
|||
|
||||
// signx reg, rd -> sra reg, %g0, rd
|
||||
def : InstAlias<"signx $rs1, $rd", (SRArr IntRegs:$rd, IntRegs:$rs1, G0), 0>, Requires<[HasV9]>;
|
||||
|
||||
// sir -> sir 0
|
||||
def : InstAlias<"sir", (SIR 0), 0>;
|
||||
|
|
|
@ -1534,6 +1534,11 @@ let Predicates = [HasV9], hasSideEffects = 1, rd = 0, rs1 = 0b01111 in
|
|||
def MEMBARi : F3_2<2, 0b101000, (outs), (ins MembarTag:$simm13),
|
||||
"membar $simm13", []>;
|
||||
|
||||
let Predicates = [HasV9], rd = 15, rs1 = 0b00000 in
|
||||
def SIR: F3_2<2, 0b110000, (outs),
|
||||
(ins simm13Op:$simm13),
|
||||
"sir $simm13", []>;
|
||||
|
||||
// The CAS instruction, unlike other instructions, only comes in a
|
||||
// form which requires an ASI be provided. The ASI value hardcoded
|
||||
// here is ASI_PRIMARY, the default unprivileged ASI for SparcV9.
|
||||
|
|
|
@ -300,4 +300,8 @@
|
|||
tvs %xcc, 82
|
||||
tvs %xcc, %g1 + %i2
|
||||
tvs %xcc, %i5 + 41
|
||||
|
||||
|
||||
! CHECK: sir 0 ! encoding: [0x9f,0x80,0x20,0x00]
|
||||
! CHECK: sir 123 ! encoding: [0x9f,0x80,0x20,0x7b]
|
||||
sir
|
||||
sir 123
|
||||
|
|
Loading…
Reference in New Issue