mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-23 02:32:11 +00:00
Added LDRSBT, LDRHT, LDRSHT for disassembly only. And fixed encoding errors
of AI3ldsbpo, AI3ldhpo, and AI3ldshpo in ARMInstrFormats.td in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96565 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bd8227f529
commit
adb561d4e0
@ -734,7 +734,7 @@ class AI3ldhpo<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
let Inst{6} = 0; // S bit
|
||||
let Inst{7} = 1;
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 1; // W bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{24} = 0; // P bit
|
||||
let Inst{27-25} = 0b000;
|
||||
}
|
||||
@ -747,7 +747,7 @@ class AI3ldshpo<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
let Inst{6} = 1; // S bit
|
||||
let Inst{7} = 1;
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 1; // W bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{24} = 0; // P bit
|
||||
let Inst{27-25} = 0b000;
|
||||
}
|
||||
@ -760,7 +760,7 @@ class AI3ldsbpo<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
let Inst{6} = 1; // S bit
|
||||
let Inst{7} = 1;
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 1; // W bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{24} = 0; // P bit
|
||||
let Inst{27-25} = 0b000;
|
||||
}
|
||||
|
@ -1069,7 +1069,7 @@ def LDRSB_POST: AI3ldsbpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
"ldrsb", "\t$dst, [$base], $offset", "$base = $base_wb", []>;
|
||||
}
|
||||
|
||||
// LDRT and LDRBT are for disassembly only.
|
||||
// LDRT, LDRBT, LDRSBT, LDRHT, LDRSHT are for disassembly only.
|
||||
|
||||
def LDRT : AI2ldwpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
(ins GPR:$base, am2offset:$offset), LdFrm, IIC_iLoadru,
|
||||
@ -1078,8 +1078,26 @@ def LDRT : AI2ldwpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
}
|
||||
|
||||
def LDRBT : AI2ldbpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
(ins GPR:$base,am2offset:$offset), LdFrm, IIC_iLoadru,
|
||||
"ldrb", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
|
||||
(ins GPR:$base,am2offset:$offset), LdFrm, IIC_iLoadru,
|
||||
"ldrbt", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
|
||||
let Inst{21} = 1; // overwrite
|
||||
}
|
||||
|
||||
def LDRSBT : AI3ldsbpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
(ins GPR:$base,am2offset:$offset), LdMiscFrm, IIC_iLoadru,
|
||||
"ldrsbt", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
|
||||
let Inst{21} = 1; // overwrite
|
||||
}
|
||||
|
||||
def LDRHT : AI3ldhpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
(ins GPR:$base, am3offset:$offset), LdMiscFrm, IIC_iLoadru,
|
||||
"ldrht", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
|
||||
let Inst{21} = 1; // overwrite
|
||||
}
|
||||
|
||||
def LDRSHT : AI3ldshpo<(outs GPR:$dst, GPR:$base_wb),
|
||||
(ins GPR:$base,am3offset:$offset), LdMiscFrm, IIC_iLoadru,
|
||||
"ldrsht", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
|
||||
let Inst{21} = 1; // overwrite
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user