| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(511*16) bytes register displacement (D-form).
NOTE: This is a potential headache, given the SPU's local core limitations,
allowing the software developer to commit stack overrun suicide unknowingly.
Also, large SPU stack frames will cause code size explosion. But, one presumes
that the software developer knows what they're doing...
Contributed by Kalle.Raiskila@nokia.com, edited slightly before commit.
llvm-svn: 97091
|
| |
|
|
|
|
|
|
|
|
|
| |
- Function uses all scratch registers AND
- Function does not use any callee saved registers AND
- Stack size is too big to address with immediate offsets.
In this case a register must be scavenged to calculate the address of a stack
object, and the scavenger needs a spare register or emergency spill slot.
llvm-svn: 97071
|
| |
|
|
|
|
|
|
| |
greater-than-or-equal SELECT_CCs to NEON vmin/vmax instructions. This is
only allowed when UnsafeFPMath is set or when at least one of the operands
is known to be nonzero.
llvm-svn: 97065
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the number of value bits, not the number of bits of allocation for in-memory
storage.
Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and
vectors.
Fix several places in CodeGen which compute offsets into in-memory vectors
to use TargetData information.
This fixes PR1784.
llvm-svn: 97064
|
| |
|
|
|
|
|
|
|
|
|
| |
Adding the function "lookupGCCName" to the MBlazeIntrinsicInfo
class to support the Clang MicroBlaze target.
Additionally, minor fixes which remove some unused PIC code
(PIC is not supported yet in the MicroBlaze backend) and
removed some unused variables.
llvm-svn: 97054
|
| |
|
|
|
|
| |
A8.6.405
llvm-svn: 97052
|
| |
|
|
|
|
|
| |
<undef> operands, and can cause scavenger failures when it translates
<kill,undef> to <kill>.
llvm-svn: 97046
|
| |
|
|
| |
llvm-svn: 97044
|
| |
|
|
|
|
| |
the hopes of fixing PPC bootstrap.
llvm-svn: 97040
|
| |
|
|
|
|
|
|
|
|
|
| |
necessary to swap the operands to handle NaN and negative zero properly.
Also, reintroduce logic for checking for NaN conditions when forming
SSE min and max instructions, fixed to take into consideration NaNs and
negative zeros. This allows forming min and max instructions in more
cases.
llvm-svn: 97025
|
| |
|
|
| |
llvm-svn: 97022
|
| |
|
|
|
|
|
|
|
| |
memory from three or four registers and VST2 (multiple two-element structures)
which stores to memory from two double-spaced registers.
A8.6.391 & A8.6.393
llvm-svn: 97018
|
| |
|
|
| |
llvm-svn: 97013
|
| |
|
|
|
|
|
| |
Machine instruction selection is much happier when operands are in virtual
registers.
llvm-svn: 97012
|
| |
|
|
| |
llvm-svn: 97011
|
| |
|
|
|
|
| |
instead of %AL/%AH.
llvm-svn: 97006
|
| |
|
|
|
|
| |
signed value.
llvm-svn: 96990
|
| |
|
|
| |
llvm-svn: 96983
|
| |
|
|
|
|
|
|
|
| |
three or four registers and VLD2 (multiple two-element structures) which loads
memory into two double-spaced registers.
A8.6.307 & A8.6.310
llvm-svn: 96980
|
| |
|
|
| |
llvm-svn: 96977
|
| |
|
|
|
|
| |
disables load folding at -O0.
llvm-svn: 96973
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htm
http://en.wikipedia.org/wiki/MicroBlaze
The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.
llvm-svn: 96969
|
| |
|
|
| |
llvm-svn: 96964
|
| |
|
|
| |
llvm-svn: 96960
|
| |
|
|
| |
llvm-svn: 96954
|
| |
|
|
| |
llvm-svn: 96943
|
| |
|
|
| |
llvm-svn: 96942
|
| |
|
|
| |
llvm-svn: 96903
|
| |
|
|
|
|
| |
then use it as an MMX register (!?).
llvm-svn: 96901
|
| |
|
|
|
|
| |
though some look dubious afaict, these are all ok.
llvm-svn: 96899
|
| |
|
|
|
|
|
|
| |
place where an i32 imm was required, the old isel just got lucky.
This fixes CodeGen/X86/x86-64-and-mask.ll
llvm-svn: 96894
|
| |
|
|
| |
llvm-svn: 96885
|
| |
|
|
| |
llvm-svn: 96871
|
| |
|
|
|
|
|
| |
don't alis it in the MMX .td file with a different width,
split into two X86ISD opcodes. This fixes an x86 testcase.
llvm-svn: 96859
|
| |
|
|
|
|
|
|
| |
(immediate #0) for disassembly only.
A8.6.283, A8.6.285, A8.6.287, A8.6.290
llvm-svn: 96856
|
| |
|
|
| |
llvm-svn: 96854
|
| |
|
|
| |
llvm-svn: 96852
|
| |
|
|
|
|
|
| |
about ownership and update policies. It isn't clear why it is doing all
this lowering at isel time instead of in legalize. This fixes fcmp64.ll
llvm-svn: 96849
|
| |
|
|
|
|
| |
A8.6.281
llvm-svn: 96838
|
| |
|
|
|
|
|
|
| |
126.gcc nightly tests. These failures uncovered latent bugs that machine DCE
could remove one half of a stack adjust down/up pair, causing PEI to assert.
This update fixes that, and the tests now pass.
llvm-svn: 96822
|
| |
|
|
| |
llvm-svn: 96818
|
| |
|
|
|
|
|
|
|
| |
value.
Thumb2 uses the tADJCALLSTACK* instructions, and doesn't need t2 versions, so
remove the FIXME entry.
llvm-svn: 96817
|
| |
|
|
| |
llvm-svn: 96811
|
| |
|
|
| |
llvm-svn: 96810
|
| |
|
|
|
|
| |
for disassembly only.
llvm-svn: 96806
|
| |
|
|
|
|
|
|
|
|
| |
o signed/unsigned add/subtract
o signed/unsigned halving add/subtract
o unsigned sum of absolute difference [and accumulate]
o signed/unsigned saturate
o signed multiply accumulate/subtract [long] dual
llvm-svn: 96795
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
during a tail call. A parameter might overwrite this stack slot during the tail
call.
The sequence during a tail call is:
1.) load return address to temp reg
2.) move parameters (might involve storing to return address stack slot)
3.) store return address to new location from temp reg
If the stack location is marked immutable CodeGen can colocate load (1) with the
store (3).
This fixes bug 6225.
llvm-svn: 96783
|
| |
|
|
| |
llvm-svn: 96778
|
| |
|
|
|
|
|
|
|
|
| |
SSE min and max instructions. The real thing this code needs to be
concerned about is negative zero.
Update the sse-minmax.ll test accordingly, and add tests for
-enable-unsafe-fp-math mode as well.
llvm-svn: 96775
|
| |
|
|
|
|
|
|
| |
create an X86ISD::Cmp node with result type i64 on the
CodeGen/X86/shift-i256.ll testcase and the new isel was assert on it
downstream.
llvm-svn: 96768
|