summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff33
1 files changed, 33 insertions, 0 deletions
diff --git a/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff b/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff
new file mode 100644
index 0000000..2b0d41e
--- /dev/null
+++ b/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff
@@ -0,0 +1,33 @@
+Pull in r200965 from upstream llvm trunk (by Venkatraman Govindaraju):
+
+ [Sparc] Add support for parsing synthetic instruction 'mov'.
+
+Introduced here: http://svn.freebsd.org/changeset/base/262261
+
+Index: lib/Target/Sparc/SparcInstrAliases.td
+===================================================================
+--- lib/Target/Sparc/SparcInstrAliases.td
++++ lib/Target/Sparc/SparcInstrAliases.td
+@@ -134,3 +134,9 @@ def : InstAlias<"retl", (RETL 8)>;
+
+ // ret -> RET 8
+ def : InstAlias<"ret", (RET 8)>;
++
++// mov reg, rd -> or %g0, reg, rd
++def : InstAlias<"mov $rs2, $rd", (ORrr IntRegs:$rd, G0, IntRegs:$rs2)>;
++
++// mov simm13, rd -> or %g0, simm13, rd
++def : InstAlias<"mov $simm13, $rd", (ORri IntRegs:$rd, G0, i32imm:$simm13)>;
+Index: test/MC/Sparc/sparc-alu-instructions.s
+===================================================================
+--- test/MC/Sparc/sparc-alu-instructions.s
++++ test/MC/Sparc/sparc-alu-instructions.s
+@@ -70,3 +70,8 @@
+ ! CHECK: subxcc %g1, %g2, %g3 ! encoding: [0x86,0xe0,0x40,0x02]
+ subxcc %g1, %g2, %g3
+
++ ! CHECK: or %g0, %g1, %g3 ! encoding: [0x86,0x10,0x00,0x01]
++ mov %g1, %g3
++
++ ! CHECK: or %g0, 255, %g3 ! encoding: [0x86,0x10,0x20,0xff]
++ mov 0xff, %g3
OpenPOWER on IntegriCloud