From: Dale Johannesen Date: Mon, 20 Jul 2009 23:39:13 +0000 (+0000) Subject: Make sure a global matching asm 'i' constraint gets its X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=71bbebdac9e05b3dd7e8d041ad6907d474968a6a;p=oota-llvm.git 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) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76503 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index c20a6266585..7ce51b323ca 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -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; }