Fix PR11985
authorMichael Liao <michael.liao@intel.com>
Wed, 12 Sep 2012 21:43:09 +0000 (21:43 +0000)
committerMichael Liao <michael.liao@intel.com>
Wed, 12 Sep 2012 21:43:09 +0000 (21:43 +0000)
commit6c7ccaa3fd1d6e96d0bf922554b09d2b17c3b0e3
treec7b701b54f8f7c6bf9c23b4b1d9005e085b1733d
parent0d1bc5f916d6b0f4eb5bf69cf87e244b52be009e
Fix PR11985

- BlockAddress has no support of BA + offset form and there is no way to
  propagate that offset into machine operand;
- Add BA + offset support and a new interface 'getTargetBlockAddress' to
  simplify target block address forming;
- All targets are modified to use new interface and X86 backend is enhanced to
  support BA + offset addressing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163743 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/CodeGen/MachineOperand.h
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/MachineInstr.cpp
lib/CodeGen/SelectionDAG/InstrEmitter.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
lib/Target/MSP430/MSP430ISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/XCore/XCoreISelLowering.cpp
test/CodeGen/X86/pr11985.ll [new file with mode: 0644]