]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / patches / patch-r262261-llvm-r200965-sparc.diff
1 Pull in r200965 from upstream llvm trunk (by Venkatraman Govindaraju):
2
3   [Sparc] Add support for parsing synthetic instruction 'mov'.
4
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262261
6
7 Index: lib/Target/Sparc/SparcInstrAliases.td
8 ===================================================================
9 --- lib/Target/Sparc/SparcInstrAliases.td
10 +++ lib/Target/Sparc/SparcInstrAliases.td
11 @@ -134,3 +134,9 @@ def : InstAlias<"retl", (RETL 8)>;
12  
13  // ret -> RET 8
14  def : InstAlias<"ret", (RET 8)>;
15 +
16 +// mov reg, rd -> or %g0, reg, rd
17 +def : InstAlias<"mov $rs2, $rd", (ORrr IntRegs:$rd, G0, IntRegs:$rs2)>;
18 +
19 +// mov simm13, rd -> or %g0, simm13, rd
20 +def : InstAlias<"mov $simm13, $rd", (ORri IntRegs:$rd, G0, i32imm:$simm13)>;
21 Index: test/MC/Sparc/sparc-alu-instructions.s
22 ===================================================================
23 --- test/MC/Sparc/sparc-alu-instructions.s
24 +++ test/MC/Sparc/sparc-alu-instructions.s
25 @@ -70,3 +70,8 @@
26          ! CHECK: subxcc %g1, %g2, %g3 ! encoding: [0x86,0xe0,0x40,0x02]
27          subxcc %g1, %g2, %g3
28  
29 +        ! CHECK: or %g0, %g1, %g3     ! encoding: [0x86,0x10,0x00,0x01]
30 +        mov %g1, %g3
31 +
32 +        ! CHECK: or %g0, 255, %g3     ! encoding: [0x86,0x10,0x20,0xff]
33 +        mov 0xff, %g3