aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/Sparc/SparcInstrAliases.td3
-rw-r--r--llvm/test/MC/Sparc/sparcv9-instructions.s17
2 files changed, 20 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcInstrAliases.td b/llvm/lib/Target/Sparc/SparcInstrAliases.td
index 41a6fca..ee20231 100644
--- a/llvm/lib/Target/Sparc/SparcInstrAliases.td
+++ b/llvm/lib/Target/Sparc/SparcInstrAliases.td
@@ -429,6 +429,9 @@ def : InstAlias<"wr $simm13, %tbr", (WRTBRri G0, i32imm:$simm13), 0>;
def : InstAlias<"flush", (FLUSH), 0>;
+def : MnemonicAlias<"lduw", "ld">, Requires<[HasV9]>;
+def : MnemonicAlias<"lduwa", "lda">, Requires<[HasV9]>;
+
def : MnemonicAlias<"return", "rett">, Requires<[HasV9]>;
def : MnemonicAlias<"addc", "addx">, Requires<[HasV9]>;
diff --git a/llvm/test/MC/Sparc/sparcv9-instructions.s b/llvm/test/MC/Sparc/sparcv9-instructions.s
index 6125469..f9877dd 100644
--- a/llvm/test/MC/Sparc/sparcv9-instructions.s
+++ b/llvm/test/MC/Sparc/sparcv9-instructions.s
@@ -35,3 +35,20 @@
! V8-NEXT: signx %g1
! V9: sra %g1, %g0, %g1 ! encoding: [0x83,0x38,0x40,0x00]
signx %g1
+
+ ! V8: error: invalid instruction mnemonic
+ ! V8-NEXT: lduw [%i0 + %l6], %o2
+ ! V9: ld [%i0+%l6], %o2 ! encoding: [0xd4,0x06,0x00,0x16]
+ lduw [%i0 + %l6], %o2
+ ! V8: error: invalid instruction mnemonic
+ ! V8-NEXT: lduw [%i0 + 32], %o2
+ ! V9: ld [%i0+32], %o2 ! encoding: [0xd4,0x06,0x20,0x20]
+ lduw [%i0 + 32], %o2
+ ! V8: error: invalid instruction mnemonic
+ ! V8-NEXT: lduw [%g1], %o2
+ ! V9: ld [%g1], %o2 ! encoding: [0xd4,0x00,0x40,0x00]
+ lduw [%g1], %o2
+ ! V8: error: invalid instruction mnemonic
+ ! V8-NEXT: lduwa [%i0 + %l6] 131, %o2
+ ! V9: lda [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x86,0x10,0x76]
+ lduwa [%i0 + %l6] 131, %o2