mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-02 19:24:25 +00:00
Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135319 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1619,10 +1619,6 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
|
||||
if (Name == "tSTMIA")
|
||||
return false;
|
||||
|
||||
// On Darwin R9 is call-clobbered. Ignore the non-Darwin counterparts.
|
||||
if (Name == "tBL" || Name == "tBLXi" || Name == "tBLXr")
|
||||
return false;
|
||||
|
||||
// A8.6.25 BX. Use the generic tBX_Rm, ignore tBX_RET and tBX_RET_vararg.
|
||||
if (Name == "tBX_RET" || Name == "tBX_RET_vararg")
|
||||
return false;
|
||||
@ -1654,14 +1650,12 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
|
||||
|
||||
// Resolve conflicts:
|
||||
//
|
||||
// tBfar conflicts with tBLr9
|
||||
// t2LDMIA_RET conflict with t2LDM (ditto)
|
||||
// tMOVCCi conflicts with tMOVi8
|
||||
// tMOVCCr conflicts with tMOVgpr2gpr
|
||||
// tLDRcp conflicts with tLDRspi
|
||||
// t2MOVCCi16 conflicts with tMOVi16
|
||||
if (Name == "tBfar" ||
|
||||
Name == "t2LDMIA_RET" ||
|
||||
if (Name == "t2LDMIA_RET" ||
|
||||
Name == "tMOVCCi" || Name == "tMOVCCr" ||
|
||||
Name == "tLDRcp" ||
|
||||
Name == "t2MOVCCi16")
|
||||
|
Reference in New Issue
Block a user