1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 22:42:46 +02:00
Commit Graph

8706 Commits

Author SHA1 Message Date
Anton Korobeynikov
44f1a1f536 Convert PPC/Linux to new section printing stuff
llvm-svn: 54538
2008-08-08 18:23:49 +00:00
Anton Korobeynikov
cad3e8517c Switch PPC/Darwin to new section handling stuff
llvm-svn: 54537
2008-08-08 18:23:25 +00:00
Anton Korobeynikov
83610e2072 Cleanup
llvm-svn: 54536
2008-08-08 18:22:59 +00:00
Evan Cheng
804e157031 Undo most of r54519.
llvm-svn: 54534
2008-08-08 17:56:50 +00:00
Evan Cheng
4708df4776 It's not legal to output a GV in a coalesced section if it's used in an ARM PIC relative constantpool.
llvm-svn: 54519
2008-08-08 06:56:16 +00:00
Evan Cheng
290a9fa171 Fix indentation.
llvm-svn: 54518
2008-08-08 06:43:59 +00:00
Bruno Cardoso Lopes
f8906a40ab Support added for ctlz intrinsic, test case added.
llvm-svn: 54516
2008-08-08 06:16:31 +00:00
Bruno Cardoso Lopes
883eb4e6fa Match raw "psp" triple target, as done by the homebrew toolchain.
llvm-svn: 54514
2008-08-08 04:49:42 +00:00
Bruno Cardoso Lopes
2eb245ee91 Added Mips support for DYNAMIC_STACKALLOC
Fixed bug in adjustMipsStackFrame, which was breaking
while trying to access a dead stack object index. Also added
one more alignment before fixing the callee saved registers
stack offset adjustment.

llvm-svn: 54485
2008-08-07 19:08:11 +00:00
Anton Korobeynikov
212df90ce5 Remove dead forward decl
llvm-svn: 54461
2008-08-07 09:55:25 +00:00
Anton Korobeynikov
52d0ff92cc Print section flags ok on platforms, which use '@' as comment string. Fix test.
llvm-svn: 54460
2008-08-07 09:55:06 +00:00
Anton Korobeynikov
5fa19dc20a Add assertion for easy debugging of missing stuff
llvm-svn: 54459
2008-08-07 09:54:40 +00:00
Anton Korobeynikov
0c8d06f030 Switch ARM to new section handling stuff
llvm-svn: 54458
2008-08-07 09:54:23 +00:00
Anton Korobeynikov
b75c98436a Switch Alpha to new section handling stuff
llvm-svn: 54457
2008-08-07 09:53:57 +00:00
Anton Korobeynikov
61a8f92b2c Use EmitAlignment consistently
llvm-svn: 54456
2008-08-07 09:53:38 +00:00
Anton Korobeynikov
a7b288b4d8 Cleanup
llvm-svn: 54455
2008-08-07 09:53:13 +00:00
Anton Korobeynikov
bb99d4b900 Cleanup
llvm-svn: 54454
2008-08-07 09:52:54 +00:00
Anton Korobeynikov
2755fabf07 Switch IA64 to new section-handling stuff
llvm-svn: 54453
2008-08-07 09:52:35 +00:00
Anton Korobeynikov
9d8232ec1d Cleanup
llvm-svn: 54452
2008-08-07 09:52:13 +00:00
Anton Korobeynikov
d3009663dd Provide convenient helpers
llvm-svn: 54451
2008-08-07 09:51:54 +00:00
Anton Korobeynikov
912a2a8114 Switch Sparc to new section handling stuff. Refactor printing of module-level GVs significantly.
llvm-svn: 54450
2008-08-07 09:51:25 +00:00
Anton Korobeynikov
ebd773939c Add hook for constant pool section selection for darwin.
llvm-svn: 54449
2008-08-07 09:51:02 +00:00
Anton Korobeynikov
d37daa2aeb Select section for constant pool entries
llvm-svn: 54448
2008-08-07 09:50:34 +00:00
Dan Gohman
74fa421281 Re-enable elimination of unnecessary SUBREG_TO_REG instructions in
LowerSubregs, and fix an x86-64 isel bug that this exposed.

SUBREG_TO_REG for x86-64 implicit zero extension is only safe for
isel to generate when the source is known to always have zeros in
the high 32 bits. The EXTRACT_SUBREG instruction does not clear
the high 32 bits.

llvm-svn: 54444
2008-08-07 02:54:50 +00:00
Dan Gohman
cc784f1662 Re-introduce the 8-bit subreg zext-inreg patterns for x86-32,
this time using MOV32to32_ and MOV16to16_. Thanks to Evan for
suggesting this.

llvm-svn: 54418
2008-08-06 18:27:21 +00:00
Dan Gohman
99d70043f9 xchg does not modify FLAGS.
llvm-svn: 54411
2008-08-06 15:52:50 +00:00
Bruno Cardoso Lopes
fa0a8e3e2b Added support for fp callee saved registers.
Added fp register clobbering during calls.
Added AsmPrinter support for "fmask", a bitmask that indicates where on the 
stack the fp callee saved registers are.

Fixed the stack frame layout for Mips, now the callee saved regs 
are in the right stack location (a little documentation about how this
stack frame must look like is present in MipsRegisterInfo.cpp).
This was done using the method MipsRegisterInfo::adjustMipsStackFrame
To be more clear, these are examples of what is solves :  

1) FP and RA are also callee saved, and despite they aren't in CSI they 
   must be saved before the fp callee saved registers. 
2) The ABI requires that local varibles are allocated before the callee 
   saved register area, the opposite behavior from the default allocation.
3) CPU and FPU saved register area must be aligned independent of each
   other.

llvm-svn: 54403
2008-08-06 06:14:43 +00:00
Evan Cheng
f4d1119fbd Fix PR2620: Fix X86cmppd selection code so it expects operands to be v2f64.
llvm-svn: 54376
2008-08-05 22:19:15 +00:00
Dan Gohman
1238bf634b Trim #includes.
llvm-svn: 54350
2008-08-05 15:32:23 +00:00
Owen Anderson
32ae9380f1 This option doesn't need to be a target option. It can be in SDISel instead.
llvm-svn: 54336
2008-08-05 00:27:28 +00:00
Owen Anderson
84fbc312d4 - Fix SelectionDAG to generate correct CFGs.
- Add a basic machine-level dead block eliminator.

These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created.

llvm-svn: 54333
2008-08-04 23:54:43 +00:00
Dan Gohman
5d0df78ae0 Add an assert to catch invalid VECTOR_SHUFFLE mask indices.
llvm-svn: 54329
2008-08-04 23:09:15 +00:00
Bruno Cardoso Lopes
34f2582096 Mips ISelLowering cleanup : Removed old LowerCALL and FORMAL_ARGS helpers, they
aren't used anyway, they also used to broke compiling when fastcc was specified for a
function, but not anymore.

llvm-svn: 54316
2008-08-04 07:12:52 +00:00
Bruno Cardoso Lopes
463f306553 Handle i32->f32 bitconvert results.
llvm-svn: 54315
2008-08-04 06:44:31 +00:00
Andrew Lenharth
377c046675 Add atomic sub for other sizes
llvm-svn: 54314
2008-08-03 20:17:34 +00:00
Chris Lattner
9aaf1f7650 Emit saveri with the correct operand order, patch by Richard Pennington!
llvm-svn: 54313
2008-08-03 18:16:14 +00:00
Bruno Cardoso Lopes
e9f5a77b11 Fix PR2615
llvm-svn: 54312
2008-08-03 15:37:43 +00:00
Bruno Cardoso Lopes
b13d663126 Improved asm inline for hi,lo results
Added hi,lo registers to be used,def implicitly. This provides better handle of
instructions which use hi/lo.
Fixes a small BranchAnalysis bug

llvm-svn: 54274
2008-08-02 19:42:36 +00:00
Bruno Cardoso Lopes
402c28e400 Apply the same pattern used in 'and' lowering for 'or'
llvm-svn: 54273
2008-08-02 19:37:33 +00:00
Bruno Cardoso Lopes
9cb1f636b4 Expand fcopysign
llvm-svn: 54250
2008-07-31 18:50:54 +00:00
Bruno Cardoso Lopes
01c39058e8 Handle more SELECT corner cases considering legalize types, probabily wont work with
the default legalizer.

llvm-svn: 54249
2008-07-31 18:31:28 +00:00
Dale Johannesen
f669e7c14f Add a flag to disable jump table generation (all
switches use the binary search algorithm) for
environments that don't support it.  PPC64 JIT
is such an environment; turn the flag on for that.

llvm-svn: 54248
2008-07-31 18:13:12 +00:00
Bruno Cardoso Lopes
9181910033 Added pattern for floating point zero immediate (avoiding a constant pool
access).
Added pattern to match bitconvert node.
Fixed MTC1 asm string bug.

llvm-svn: 54229
2008-07-30 19:00:31 +00:00
Dan Gohman
efb5d2ce6e Reapply r54147 with a constraint to only use the 8-bit
subreg form on x86-64, to avoid the problem with x86-32
having GPRs that don't have 8-bit subregs.

Also, change several 16-bit instructions to use 
equivalent 32-bit instructions. These have a smaller
encoding and avoid partial-register updates.

llvm-svn: 54223
2008-07-30 18:09:17 +00:00
Bruno Cardoso Lopes
df5916fff6 Fixed bug in global address lowering for functions and in Brcond lowering
llvm-svn: 54215
2008-07-30 17:06:13 +00:00
Bruno Cardoso Lopes
e130052d1d Removed small section flag for mips, the assembler doesnt support this flag
llvm-svn: 54214
2008-07-30 17:04:04 +00:00
Bruno Cardoso Lopes
f2a6400d3e Added new features to represent specific instructions groups
llvm-svn: 54213
2008-07-30 17:01:06 +00:00
Bruno Cardoso Lopes
53fdaf7763 Instruction definition cleanup
llvm-svn: 54212
2008-07-30 16:58:59 +00:00
Bruno Cardoso Lopes
2188281cd4 Changed some methods order.
llvm-svn: 54169
2008-07-29 19:29:50 +00:00
Nate Begeman
f76a814673 Fix broken CellSPU lowering, re-instate braces in Legalize
llvm-svn: 54168
2008-07-29 19:07:27 +00:00