Evan Cheng
34e8479411
In Thumb2 mode, lower frame indix references to:
...
add <rd>, sp, #<imm8>
ldr <rd>, [sp, #<imm8>]
When the offset from sp is multiple of 4 and in range of 0-1020.
This saves code size by utilizing 16-bit instructions.
rdar://9321541
llvm-svn: 129971
2011-04-22 01:42:52 +00:00
Jim Grosbach
3de97c6e32
Clean up ARM tail calls a bit. They're pseudo-instructions for normal branches.
...
Also more cleanly separate the ARM vs. Thumb functionality. Previously, the
encoding would be incorrect for some Thumb instructions (the indirect calls).
llvm-svn: 127637
2011-03-15 00:30:40 +00:00
Anton Korobeynikov
917ca94111
Preliminary support for ARM frame save directives emission via MI flags.
...
This is just very first approximation how the stuff should be done
(e.g. ARM-only for now). More to follow.
llvm-svn: 127101
2011-03-05 18:43:32 +00:00
Evan Cheng
56354c17d9
Fix typo.
...
llvm-svn: 126467
2011-02-25 01:29:29 +00:00
Evan Cheng
fbdcea4b2e
Each prologue may have multiple vpush instructions to store callee-saved
...
D registers since the vpush list may not have gaps. Make sure the stack
adjustment instruction isn't moved between them. Ditto for vpop in
epilogues.
Sorry, can't reduce a small test case.
rdar://9043312
llvm-svn: 126457
2011-02-25 00:24:46 +00:00
Bob Wilson
43bf86b10d
Remove unused bitvectors that record ARM callee-saved registers.
...
llvm-svn: 125534
2011-02-14 23:40:38 +00:00
Evan Cheng
8e47a6e196
Don't merge restore with tail call instruction.
...
llvm-svn: 124167
2011-01-25 01:28:33 +00:00
Jeffrey Yasskin
5f5e1f5ef1
Remove unused variables found by gcc-4.6's -Wunused-but-set-variable.
...
llvm-svn: 123707
2011-01-18 00:51:23 +00:00
Evan Cheng
144b435a15
Spill R4 if it's going to be used to restore SP from FP.
...
llvm-svn: 123567
2011-01-16 05:14:33 +00:00
Jakob Stoklund Olesen
0f2b9d9dc4
Teach frame lowering to ignore debug values after the terminators.
...
llvm-svn: 123399
2011-01-13 21:28:52 +00:00
Bob Wilson
569cd41943
Tidy comments, indentation, and 80-column violations.
...
llvm-svn: 123397
2011-01-13 21:10:12 +00:00
Evan Cheng
05ef00f4dc
Clean up ARM subtarget code by using Triple ADT.
...
llvm-svn: 123276
2011-01-11 21:46:47 +00:00
Eric Christopher
934fa0fca0
Expand on the safeness of restoring the sp from the fp a bit more.
...
llvm-svn: 123193
2011-01-10 23:10:59 +00:00
Anton Korobeynikov
cf5967630b
Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.
...
llvm-svn: 123170
2011-01-10 12:39:04 +00:00