mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Make sure a global matching asm 'i' constraint gets its
flags set properly. (hasMemory is clearly irrelevant when matching 'i', I don't understand what this was supposed to be doing.) gcc.apple/asm-block-25.c (test passed before by accident, but generated code was wrong) llvm-svn: 76503
This commit is contained in:
parent
04c5ef4742
commit
ee3f2d6dc3
@ -4557,7 +4557,7 @@ X86TargetLowering::LowerGlobalAddress(const GlobalValue *GV, DebugLoc dl,
|
||||
SDValue Result;
|
||||
if (OpFlags == X86II::MO_NO_FLAG && isInt32(Offset)) {
|
||||
// A direct static reference to a global.
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset, OpFlags);
|
||||
Offset = 0;
|
||||
} else {
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), 0, OpFlags);
|
||||
@ -8911,10 +8911,7 @@ void X86TargetLowering::LowerAsmOperandForConstraint(SDValue Op,
|
||||
getTargetMachine())))
|
||||
return;
|
||||
|
||||
if (hasMemory)
|
||||
Op = LowerGlobalAddress(GV, Op.getDebugLoc(), Offset, DAG);
|
||||
else
|
||||
Op = DAG.getTargetGlobalAddress(GV, GA->getValueType(0), Offset);
|
||||
Op = LowerGlobalAddress(GV, Op.getDebugLoc(), Offset, DAG);
|
||||
Result = Op;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user