mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-23 22:23:00 +00:00
VFP fld / fst immediate field is multiplied by 4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59100 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -222,9 +222,13 @@ unsigned ARMCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
emitGlobalAddress(MO.getGlobal(), ARM::reloc_arm_branch, true);
|
||||
else if (MO.isSymbol())
|
||||
emitExternalSymbolAddress(MO.getSymbolName(), ARM::reloc_arm_branch);
|
||||
else if (MO.isCPI())
|
||||
emitConstPoolAddress(MO.getIndex(), ARM::reloc_arm_cp_entry);
|
||||
else if (MO.isJTI())
|
||||
else if (MO.isCPI()) {
|
||||
const TargetInstrDesc &TID = MI.getDesc();
|
||||
// For VFP load, the immediate offset is multiplied by 4.
|
||||
unsigned Reloc = ((TID.TSFlags & ARMII::FormMask) == ARMII::VFPLdStFrm)
|
||||
? ARM::reloc_arm_vfp_cp_entry : ARM::reloc_arm_cp_entry;
|
||||
emitConstPoolAddress(MO.getIndex(), Reloc);
|
||||
} else if (MO.isJTI())
|
||||
emitJumpTableAddress(MO.getIndex(), ARM::reloc_arm_relative);
|
||||
else if (MO.isMBB())
|
||||
emitMachineBasicBlock(MO.getMBB(), ARM::reloc_arm_branch);
|
||||
|
||||
Reference in New Issue
Block a user