mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
Fix double load / store multiple encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81403 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -949,7 +949,7 @@ static unsigned getAddrModeUPBits(unsigned Mode) {
|
|||||||
// DB - Decrement before - bit U = 0 and bit P = 1
|
// DB - Decrement before - bit U = 0 and bit P = 1
|
||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unknown addressing sub-mode!");
|
default: llvm_unreachable("Unknown addressing sub-mode!");
|
||||||
case ARM_AM::da: break;
|
case ARM_AM::da: break;
|
||||||
case ARM_AM::db: Binary |= 0x1 << ARMII::P_BitShift; break;
|
case ARM_AM::db: Binary |= 0x1 << ARMII::P_BitShift; break;
|
||||||
case ARM_AM::ia: Binary |= 0x1 << ARMII::U_BitShift; break;
|
case ARM_AM::ia: Binary |= 0x1 << ARMII::U_BitShift; break;
|
||||||
case ARM_AM::ib: Binary |= 0x3 << ARMII::U_BitShift; break;
|
case ARM_AM::ib: Binary |= 0x3 << ARMII::U_BitShift; break;
|
||||||
|
@ -1070,7 +1070,7 @@ class ASI5<bits<4> opcod1, bits<2> opcod2, dag oops, dag iops,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Load / store multiple
|
// Load / store multiple
|
||||||
class AXSI5<dag oops, dag iops, InstrItinClass itin,
|
class AXDI5<dag oops, dag iops, InstrItinClass itin,
|
||||||
string asm, list<dag> pattern>
|
string asm, list<dag> pattern>
|
||||||
: VFPXI<oops, iops, AddrMode5, Size4Bytes, IndexModeNone,
|
: VFPXI<oops, iops, AddrMode5, Size4Bytes, IndexModeNone,
|
||||||
VFPLdStMulFrm, itin, asm, "", pattern> {
|
VFPLdStMulFrm, itin, asm, "", pattern> {
|
||||||
@ -1079,7 +1079,7 @@ class AXSI5<dag oops, dag iops, InstrItinClass itin,
|
|||||||
let Inst{11-8} = 0b1011;
|
let Inst{11-8} = 0b1011;
|
||||||
}
|
}
|
||||||
|
|
||||||
class AXDI5<dag oops, dag iops, InstrItinClass itin,
|
class AXSI5<dag oops, dag iops, InstrItinClass itin,
|
||||||
string asm, list<dag> pattern>
|
string asm, list<dag> pattern>
|
||||||
: VFPXI<oops, iops, AddrMode5, Size4Bytes, IndexModeNone,
|
: VFPXI<oops, iops, AddrMode5, Size4Bytes, IndexModeNone,
|
||||||
VFPLdStMulFrm, itin, asm, "", pattern> {
|
VFPLdStMulFrm, itin, asm, "", pattern> {
|
||||||
@ -1088,7 +1088,6 @@ class AXDI5<dag oops, dag iops, InstrItinClass itin,
|
|||||||
let Inst{11-8} = 0b1010;
|
let Inst{11-8} = 0b1010;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Double precision, unary
|
// Double precision, unary
|
||||||
class ADuI<bits<8> opcod1, bits<4> opcod2, bits<4> opcod3, dag oops, dag iops,
|
class ADuI<bits<8> opcod1, bits<4> opcod2, bits<4> opcod3, dag oops, dag iops,
|
||||||
InstrItinClass itin, string opc, string asm, list<dag> pattern>
|
InstrItinClass itin, string opc, string asm, list<dag> pattern>
|
||||||
|
Reference in New Issue
Block a user