Evan Cheng
|
51c3e53eb7
|
Only safe to use a call-clobbered or spilled callee-saved register as scratch register.
llvm-svn: 35010
|
2007-03-07 20:30:36 +00:00 |
|
Bill Wendling
|
8f49ba1000
|
Remove useless pattern fragments.
llvm-svn: 35009
|
2007-03-07 18:23:09 +00:00 |
|
Anton Korobeynikov
|
85d6c1ebad
|
Refactoring of formal parameter flags. Enable properly use of
zext/sext/aext stuff.
llvm-svn: 35008
|
2007-03-07 16:25:09 +00:00 |
|
Bill Wendling
|
3c201ddd02
|
Properly support v8i8 and v4i16 types. It now converts them to v2i32 for
load and stores.
llvm-svn: 35002
|
2007-03-07 05:43:18 +00:00 |
|
Anton Korobeynikov
|
090c2d50ea
|
Fix DWARF debugging information on x86/Linux and (hopefully)
Mingw32/Cygwin targets. This fixes PR978
llvm-svn: 35000
|
2007-03-07 02:47:57 +00:00 |
|
Evan Cheng
|
493960579f
|
ARM always use register scavenger. No longer reserves R12.
llvm-svn: 34999
|
2007-03-07 02:46:23 +00:00 |
|
Evan Cheng
|
4e01b11512
|
Fix some brittle code. Watch out for cases where register scavenger is pointing to deleted instructions.
llvm-svn: 34998
|
2007-03-07 02:38:05 +00:00 |
|
Evan Cheng
|
9839628fd1
|
Fix one more Thumb eliminateFrameIndex bug.
llvm-svn: 34990
|
2007-03-07 00:12:18 +00:00 |
|
Evan Cheng
|
63ffd3e17f
|
Register scavenging is now on by default for ARM.
llvm-svn: 34987
|
2007-03-06 22:02:53 +00:00 |
|
Evan Cheng
|
6453ad00d2
|
Make load / store optimizer use register scavenger.
llvm-svn: 34986
|
2007-03-06 21:59:20 +00:00 |
|
Bill Wendling
|
a02d43fbbd
|
Add LOAD/STORE support for MMX.
llvm-svn: 34978
|
2007-03-06 18:53:42 +00:00 |
|
Evan Cheng
|
228403bfcb
|
Code clean up. Prepare to use register scavenger.
llvm-svn: 34976
|
2007-03-06 18:02:41 +00:00 |
|
Evan Cheng
|
b0c0d22f30
|
Minor interface change.
llvm-svn: 34967
|
2007-03-06 10:05:14 +00:00 |
|
Evan Cheng
|
7c90fb2d67
|
Scavenge a register using the register scavenger when needed.
llvm-svn: 34966
|
2007-03-06 10:03:56 +00:00 |
|
Anton Korobeynikov
|
6da6c8c48b
|
Use new SDIselParamAttr enumeration. This removes "magick" constants
from formal attributes' flags processing.
llvm-svn: 34963
|
2007-03-06 08:12:33 +00:00 |
|
Chris Lattner
|
26a5492049
|
Switch PPC return lower to use an autogenerated CC description.
llvm-svn: 34940
|
2007-03-06 00:59:59 +00:00 |
|
Bill Wendling
|
c52174dee3
|
Add the emms intrinsic for MMX support.
llvm-svn: 34938
|
2007-03-05 23:09:45 +00:00 |
|
Lauro Ramos Venancio
|
3f855f6a54
|
Use init_array/fini_array sections for static contructors/destructors when the ABI is AAPCS.
Fix SingleSource/Regression/C/ConstructorDestructorAttributes test on arm-linux-gnueabi.
llvm-svn: 34931
|
2007-03-05 17:59:58 +00:00 |
|
Jeff Cohen
|
98c99a3a02
|
Unbreak VC++ build.
llvm-svn: 34917
|
2007-03-05 00:00:42 +00:00 |
|
Chris Lattner
|
6d7701714e
|
add missing braces
llvm-svn: 34905
|
2007-03-04 06:13:52 +00:00 |
|
Reid Spencer
|
e0d00951c2
|
Make sure that when we store a value it is masked to its correct bit
width. This helps CBE work with non-standard integer bit widths.
llvm-svn: 34885
|
2007-03-03 16:33:33 +00:00 |
|
Nick Lewycky
|
cfed5f36a1
|
Emit low/high immediate loads properly for Linux/PPC.
llvm-svn: 34871
|
2007-03-03 05:29:51 +00:00 |
|
Evan Cheng
|
2fb461c1b5
|
X86-64 VACOPY needs custom expansion. va_list is a struct { i32, i32, i8*, i8* }.
llvm-svn: 34857
|
2007-03-02 23:16:35 +00:00 |
|
Anton Korobeynikov
|
7cec92bcd2
|
Simplify things
llvm-svn: 34849
|
2007-03-02 21:50:27 +00:00 |
|
Chris Lattner
|
55dcf58453
|
argument lowering should copy from the vreg shadows of live-in arguments
passed in registers, not directly from the pregs themselves.
llvm-svn: 34838
|
2007-03-02 05:12:29 +00:00 |
|
Chris Lattner
|
e29ef5d9cb
|
add a note
llvm-svn: 34837
|
2007-03-02 05:04:52 +00:00 |
|
Dale Johannesen
|
a6003a9eb6
|
eliminate unnecessary reset of SP in epilog on darwin
llvm-svn: 34824
|
2007-03-02 01:17:17 +00:00 |
|
Reid Spencer
|
381752cb34
|
Wrap a long line.
llvm-svn: 34799
|
2007-03-01 19:48:16 +00:00 |
|
Anton Korobeynikov
|
eaf27d276a
|
Ensure that fastcall'ed function is correctly mangled & stack is
properly aligned
llvm-svn: 34788
|
2007-03-01 16:29:22 +00:00 |
|
Nicolas Geoffray
|
4b5b81198a
|
Implemented the frameaddress intrinsic for PPC.
llvm-svn: 34787
|
2007-03-01 13:11:38 +00:00 |
|
Evan Cheng
|
07dcde8ba2
|
Use a spilled free callee-saved register as scratch register.
llvm-svn: 34785
|
2007-03-01 08:57:52 +00:00 |
|
Evan Cheng
|
8d3d4155e5
|
- Track which callee-saved registers are spilled.
- Some code clean up.
llvm-svn: 34783
|
2007-03-01 08:26:31 +00:00 |
|
Evan Cheng
|
f771a323c2
|
Switch from std::vector<bool> to BitVector.
llvm-svn: 34781
|
2007-03-01 07:52:44 +00:00 |
|
Bill Wendling
|
2aabf75e82
|
Get rid of verboten <iostream> include.
llvm-svn: 34777
|
2007-03-01 06:05:39 +00:00 |
|
Dale Johannesen
|
f38e3d7085
|
Changes requested in review of last pass. Also pulled isThumb into a
member, instead of resetting in every function that uses it.
llvm-svn: 34764
|
2007-02-28 23:20:38 +00:00 |
|
Evan Cheng
|
5dc0ece7cb
|
Doh. ARM::PC is obvious a reserved register.
llvm-svn: 34763
|
2007-02-28 23:12:34 +00:00 |
|
Dale Johannesen
|
5ec68034ee
|
Add intelligence about where to break large blocks.
llvm-svn: 34755
|
2007-02-28 18:41:23 +00:00 |
|
Chris Lattner
|
bcc44762bc
|
remove dead option
llvm-svn: 34754
|
2007-02-28 18:39:53 +00:00 |
|
Chris Lattner
|
d8c7e8999e
|
bugfix: fastcall does not require the first two params to be marked 'inreg',
they always get registers.
llvm-svn: 34748
|
2007-02-28 18:35:11 +00:00 |
|
Nate Begeman
|
2288ec3331
|
More Mach-O writer improvements.
llvm-svn: 34740
|
2007-02-28 07:40:50 +00:00 |
|
Chris Lattner
|
a66d550298
|
use high-level functions in CCState
llvm-svn: 34739
|
2007-02-28 07:09:55 +00:00 |
|
Chris Lattner
|
3663b6e73a
|
make use of helper functions in CCState for analyzing formals and calls.
llvm-svn: 34737
|
2007-02-28 07:00:42 +00:00 |
|
Chris Lattner
|
3762b44a0c
|
switch LowerFastCCCallTo over to using the new fastcall description.
llvm-svn: 34734
|
2007-02-28 06:26:33 +00:00 |
|
Chris Lattner
|
a8dd712470
|
switch LowerFastCCArguments over to using the autogenerated Fastcall description.
llvm-svn: 34733
|
2007-02-28 06:21:19 +00:00 |
|
Chris Lattner
|
9a1f1c41b0
|
add new CC_X86_32_FastCall calling conv, which describes fastcall on win32.
Factor out a CC_X86_32_Common convention, which is the part shared between
ccc, stdcall and fastcall
llvm-svn: 34732
|
2007-02-28 06:20:01 +00:00 |
|
Chris Lattner
|
3b16744840
|
rearrange code
llvm-svn: 34731
|
2007-02-28 06:10:12 +00:00 |
|
Chris Lattner
|
023751c20b
|
remove fastcc (not fastcall) support
llvm-svn: 34730
|
2007-02-28 06:05:16 +00:00 |
|
Chris Lattner
|
012066f78b
|
switch LowerCCCArguments over to using autogenerated CC.
llvm-svn: 34729
|
2007-02-28 05:46:49 +00:00 |
|
Chris Lattner
|
6424f8e245
|
simplify sret handling
llvm-svn: 34728
|
2007-02-28 05:39:26 +00:00 |
|
Chris Lattner
|
76147834d6
|
switch LowerCCCCallTo over to using an autogenerated callingconv
llvm-svn: 34727
|
2007-02-28 05:31:48 +00:00 |
|