- Jan 24, 2014
-
-
Jakob Stoklund Olesen authored
These all use the compare-and-swap CASA/CASXA instructions. llvm-svn: 199975
-
- Jan 12, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 199033
-
- Jan 09, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 198893
-
- Jan 08, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 198740
-
Venkatraman Govindaraju authored
llvm-svn: 198738
-
- Jan 06, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 198591
-
- Jan 04, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 198484
-
- Jan 01, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 198286
-
- Dec 29, 2013
-
-
Venkatraman Govindaraju authored
[SparcV9] Use separate instruction patterns for 64 bit arithmetic instructions instead of reusing 32 bit instruction patterns. This is done to avoid spilling the result of the 64-bit instructions to a 4-byte slot. llvm-svn: 198157
-
- Nov 24, 2013
-
-
Venkatraman Govindaraju authored
llvm-svn: 195575
-
- Nov 03, 2013
-
-
Venkatraman Govindaraju authored
llvm-svn: 193957
-
Venkatraman Govindaraju authored
llvm-svn: 193941
-
- Oct 06, 2013
-
-
Venkatraman Govindaraju authored
This is required because i64 is a legal type but addxcc/subxcc reads icc carry bit, which are 32 bit conditional codes. llvm-svn: 192054
-
- Sep 22, 2013
-
-
Venkatraman Govindaraju authored
[Sparc] Clean up branch instructions, so that TableGen can encode branch conditions as well. No functionality change intended. llvm-svn: 191166
-
Venkatraman Govindaraju authored
llvm-svn: 191164
-
- Jun 08, 2013
-
-
Jakob Stoklund Olesen authored
llvm-svn: 183589
-
Jakob Stoklund Olesen authored
llvm-svn: 183587
-
- Jun 07, 2013
-
-
Roman Divacky authored
I am able to compile/assemble/link/run /bin/echo from FreeBSD. llvm-svn: 183537
-
Venkatraman Govindaraju authored
llvm-svn: 183463
-
- Jun 03, 2013
-
-
Venkatraman Govindaraju authored
using two instructions (sethi and store). llvm-svn: 183090
-
- May 19, 2013
-
-
Jakob Stoklund Olesen authored
The wired physreg doesn't work on tied operands like on MOVXCC. Add a README note to fix this later. llvm-svn: 182225
-
Jakob Stoklund Olesen authored
llvm-svn: 182224
-
Jakob Stoklund Olesen authored
llvm-svn: 182222
-
Jakob Stoklund Olesen authored
Also clean up the arguments to all the MOVCC instructions so the operands always are (true-val, false-val, cond-code). llvm-svn: 182221
-
- Apr 16, 2013
-
-
Jakob Stoklund Olesen authored
llvm-svn: 179582
-
- Apr 14, 2013
-
-
Jakob Stoklund Olesen authored
Test case by llvm-stress. llvm-svn: 179477
-
- Apr 07, 2013
-
-
Jakob Stoklund Olesen authored
Integer return values are sign or zero extended by the callee, and structs up to 32 bytes in size can be returned in registers. The CC_Sparc64 CallingConv definition is shared between LowerFormalArguments_64 and LowerReturn_64. Function arguments and return values are passed in the same registers. The inreg flag is also used for return values. This is required to handle C functions returning structs containing floats and ints: struct ifp { int i; float f; }; struct ifp f(void); LLVM IR: define inreg { i32, float } @f() { ... ret { i32, float } %retval } The ABI requires that %retval.i is returned in the high bits of %i0 while %retval.f goes in %f1. Without the inreg return value attribute, %retval.i would go in %i0 and %retval.f would go in %f3 which is a more efficient way of returning %multiple values, but it is not ABI compliant for returning C structs. llvm-svn: 178966
-
- Apr 04, 2013
-
-
Jakob Stoklund Olesen authored
This requires v9 cmov instructions using the %xcc flags instead of the %icc flags. Still missing: - Select floats on %xcc flags. - Select i64 on %fcc flags. llvm-svn: 178737
-
- Apr 03, 2013
-
-
Jakob Stoklund Olesen authored
The same compare instruction is used for 32-bit and 64-bit compares. It sets two different sets of flags: icc and xcc. This patch adds a conditional branch instruction using the xcc flags for 64-bit compares. llvm-svn: 178621
-
- Apr 02, 2013
-
-
Jakob Stoklund Olesen authored
There is only a few new instructions, the rest is handled with patterns. llvm-svn: 178528
-
Jakob Stoklund Olesen authored
SPARC v9 extends all ALU instructions to 64 bits, so we simply need to add patterns to use them for both i32 and i64 values. llvm-svn: 178527
-
Jakob Stoklund Olesen authored
The last resort pattern produces 6 instructions, and there are still opportunities for materializing some immediates in fewer instructions. llvm-svn: 178526
-
Jakob Stoklund Olesen authored
SPARC v9 defines new 64-bit shift instructions. The 32-bit shift right instructions are still usable as zero and sign extensions. This adds new F3_Sr and F3_Si instruction formats that probably should be used for the 32-bit shifts as well. They don't really encode an simm13 field. llvm-svn: 178525
-