diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-05-19 21:47:13 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-05-19 21:47:13 +0000 |
commit | 86c5469d2675da06ee340f2f55d014ad1c652e16 (patch) | |
tree | 02e3ef07b6b4fd4b9e37f96fc67e9a53f3ceb9b8 /llvm/lib | |
parent | 92ebf1153ec157e8ad2d82d3600650bc9ee4194a (diff) | |
download | bcm5719-llvm-86c5469d2675da06ee340f2f55d014ad1c652e16.tar.gz bcm5719-llvm-86c5469d2675da06ee340f2f55d014ad1c652e16.zip |
Don't use %g0 to materialize 0 directly.
The wired physreg doesn't work on tied operands like on MOVXCC.
Add a README note to fix this later.
llvm-svn: 182225
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/Sparc/README.txt | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Sparc/SparcInstr64Bit.td | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/Sparc/README.txt b/llvm/lib/Target/Sparc/README.txt index b4991fe5790..c831367e436 100644 --- a/llvm/lib/Target/Sparc/README.txt +++ b/llvm/lib/Target/Sparc/README.txt @@ -57,3 +57,5 @@ int %t1(int %a, int %b) { * Fill delay slots * Implement JIT support + +* Use %g0 directly to materialize 0. No instruction is required. diff --git a/llvm/lib/Target/Sparc/SparcInstr64Bit.td b/llvm/lib/Target/Sparc/SparcInstr64Bit.td index 3af494ee0c7..daafb432372 100644 --- a/llvm/lib/Target/Sparc/SparcInstr64Bit.td +++ b/llvm/lib/Target/Sparc/SparcInstr64Bit.td @@ -59,10 +59,6 @@ defm SRAX : F3_S<"srax", 0b100111, 1, sra, i64, I64Regs>; // preferable to use a constant pool load instead, depending on the // microarchitecture. -// The %g0 register is constant 0. -// This is useful for stx %g0, [...], for example. -def : Pat<(i64 0), (i64 G0)>, Requires<[Is64Bit]>; - // Single-instruction patterns. // The ALU instructions want their simm13 operands as i32 immediates. |