Remove hard coded registers in ARM ldrexd and strexd instructions
authorWeiming Zhao <weimingz@codeaurora.org>
Fri, 16 Nov 2012 21:55:34 +0000 (21:55 +0000)
committerWeiming Zhao <weimingz@codeaurora.org>
Fri, 16 Nov 2012 21:55:34 +0000 (21:55 +0000)
commite56764bad10621ac9dcf9d3541533ff2cb0f88b4
tree72df90de99cb41cdf8322b12fe5da389f167006a
parentcdf493dd0b74fa8a784bd1ea690351e0f4b608ad
Remove hard coded registers in ARM ldrexd and strexd instructions

This patch replaces the hard coded GPR pair [R0, R1] of
Intrinsic:arm_ldrexd and [R2, R3] of Intrinsic:arm_strexd with
even/odd GPRPair reg class.
Similar to the lowering of atomic_64 operation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168207 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
lib/Target/ARM/InstPrinter/ARMInstPrinter.h
test/CodeGen/ARM/atomic-64bit.ll
utils/TableGen/EDEmitter.cpp