1
0
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:
Dale Johannesen 2009-07-20 23:39:13 +00:00
parent 04c5ef4742
commit ee3f2d6dc3

View File

@ -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;
}