mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
Added 16-bit Thumb Load/Store immediate instructions with encoding bits so that
the disassembler can properly decode Load/Store register/immediate instructions. llvm-svn: 93471
This commit is contained in:
parent
eceb54e9c2
commit
a5f2e84b0c
@ -341,16 +341,28 @@ def tLDR : T1pI4<(outs tGPR:$dst), (ins t_addrmode_s4:$addr), IIC_iLoadr,
|
|||||||
"ldr", "\t$dst, $addr",
|
"ldr", "\t$dst, $addr",
|
||||||
[(set tGPR:$dst, (load t_addrmode_s4:$addr))]>,
|
[(set tGPR:$dst, (load t_addrmode_s4:$addr))]>,
|
||||||
T1LdSt<0b100>;
|
T1LdSt<0b100>;
|
||||||
|
def tLDRi: T1pI4<(outs tGPR:$dst), (ins t_addrmode_s4:$addr), IIC_iLoadr,
|
||||||
|
"ldr", "\t$dst, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt4Imm<{1,?,?}>;
|
||||||
|
|
||||||
def tLDRB : T1pI1<(outs tGPR:$dst), (ins t_addrmode_s1:$addr), IIC_iLoadr,
|
def tLDRB : T1pI1<(outs tGPR:$dst), (ins t_addrmode_s1:$addr), IIC_iLoadr,
|
||||||
"ldrb", "\t$dst, $addr",
|
"ldrb", "\t$dst, $addr",
|
||||||
[(set tGPR:$dst, (zextloadi8 t_addrmode_s1:$addr))]>,
|
[(set tGPR:$dst, (zextloadi8 t_addrmode_s1:$addr))]>,
|
||||||
T1LdSt<0b110>;
|
T1LdSt<0b110>;
|
||||||
|
def tLDRBi: T1pI1<(outs tGPR:$dst), (ins t_addrmode_s1:$addr), IIC_iLoadr,
|
||||||
|
"ldrb", "\t$dst, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt1Imm<{1,?,?}>;
|
||||||
|
|
||||||
def tLDRH : T1pI2<(outs tGPR:$dst), (ins t_addrmode_s2:$addr), IIC_iLoadr,
|
def tLDRH : T1pI2<(outs tGPR:$dst), (ins t_addrmode_s2:$addr), IIC_iLoadr,
|
||||||
"ldrh", "\t$dst, $addr",
|
"ldrh", "\t$dst, $addr",
|
||||||
[(set tGPR:$dst, (zextloadi16 t_addrmode_s2:$addr))]>,
|
[(set tGPR:$dst, (zextloadi16 t_addrmode_s2:$addr))]>,
|
||||||
T1LdSt<0b101>;
|
T1LdSt<0b101>;
|
||||||
|
def tLDRHi: T1pI2<(outs tGPR:$dst), (ins t_addrmode_s2:$addr), IIC_iLoadr,
|
||||||
|
"ldrh", "\t$dst, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt2Imm<{1,?,?}>;
|
||||||
|
|
||||||
let AddedComplexity = 10 in
|
let AddedComplexity = 10 in
|
||||||
def tLDRSB : T1pI1<(outs tGPR:$dst), (ins t_addrmode_rr:$addr), IIC_iLoadr,
|
def tLDRSB : T1pI1<(outs tGPR:$dst), (ins t_addrmode_rr:$addr), IIC_iLoadr,
|
||||||
@ -396,16 +408,28 @@ def tSTR : T1pI4<(outs), (ins tGPR:$src, t_addrmode_s4:$addr), IIC_iStorer,
|
|||||||
"str", "\t$src, $addr",
|
"str", "\t$src, $addr",
|
||||||
[(store tGPR:$src, t_addrmode_s4:$addr)]>,
|
[(store tGPR:$src, t_addrmode_s4:$addr)]>,
|
||||||
T1LdSt<0b000>;
|
T1LdSt<0b000>;
|
||||||
|
def tSTRi: T1pI4<(outs), (ins tGPR:$src, t_addrmode_s4:$addr), IIC_iStorer,
|
||||||
|
"str", "\t$src, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt4Imm<{0,?,?}>;
|
||||||
|
|
||||||
def tSTRB : T1pI1<(outs), (ins tGPR:$src, t_addrmode_s1:$addr), IIC_iStorer,
|
def tSTRB : T1pI1<(outs), (ins tGPR:$src, t_addrmode_s1:$addr), IIC_iStorer,
|
||||||
"strb", "\t$src, $addr",
|
"strb", "\t$src, $addr",
|
||||||
[(truncstorei8 tGPR:$src, t_addrmode_s1:$addr)]>,
|
[(truncstorei8 tGPR:$src, t_addrmode_s1:$addr)]>,
|
||||||
T1LdSt<0b010>;
|
T1LdSt<0b010>;
|
||||||
|
def tSTRBi: T1pI1<(outs), (ins tGPR:$src, t_addrmode_s1:$addr), IIC_iStorer,
|
||||||
|
"strb", "\t$src, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt1Imm<{0,?,?}>;
|
||||||
|
|
||||||
def tSTRH : T1pI2<(outs), (ins tGPR:$src, t_addrmode_s2:$addr), IIC_iStorer,
|
def tSTRH : T1pI2<(outs), (ins tGPR:$src, t_addrmode_s2:$addr), IIC_iStorer,
|
||||||
"strh", "\t$src, $addr",
|
"strh", "\t$src, $addr",
|
||||||
[(truncstorei16 tGPR:$src, t_addrmode_s2:$addr)]>,
|
[(truncstorei16 tGPR:$src, t_addrmode_s2:$addr)]>,
|
||||||
T1LdSt<0b001>;
|
T1LdSt<0b001>;
|
||||||
|
def tSTRHi: T1pI2<(outs), (ins tGPR:$src, t_addrmode_s2:$addr), IIC_iStorer,
|
||||||
|
"strh", "\t$src, $addr",
|
||||||
|
[]>,
|
||||||
|
T1LdSt2Imm<{0,?,?}>;
|
||||||
|
|
||||||
def tSTRspi : T1pIs<(outs), (ins tGPR:$src, t_addrmode_sp:$addr), IIC_iStorei,
|
def tSTRspi : T1pIs<(outs), (ins tGPR:$src, t_addrmode_sp:$addr), IIC_iStorei,
|
||||||
"str", "\t$src, $addr",
|
"str", "\t$src, $addr",
|
||||||
|
Loading…
Reference in New Issue
Block a user