Evan Cheng
95597cedfe
Make sure to make stub region writable before emission, executable after emission.
...
llvm-svn: 81311
2009-09-09 01:56:29 +00:00
Evan Cheng
a0bf864b0e
Fix arm jit encoding bug introduced by 75048. Some instructions', e.g. MOVi, bit 25 should be set.
...
llvm-svn: 81310
2009-09-09 01:47:07 +00:00
Evan Cheng
6c89bc0472
Remove comments which don't add much to .s readibility.
...
llvm-svn: 81306
2009-09-09 01:38:23 +00:00
Chris Lattner
c74e9c2c37
turn the mcinst asmprinter on by default for x86, tweaking two tests to
...
expect the slight syntax differences in the generated code.
llvm-svn: 81305
2009-09-09 00:41:36 +00:00
Chris Lattner
56a465385b
tidy up
...
llvm-svn: 81304
2009-09-09 00:40:31 +00:00
Chris Lattner
91c9c8a18e
make sure to send external symbols through the mangler,
...
this fixes mingw-alloca.ll with the new asmprinter.
llvm-svn: 81301
2009-09-09 00:23:32 +00:00
Chris Lattner
f387735da5
add support for @PLT and friends on external symbols, fixes
...
x86-64-pic-11.ll with the new asmprinter.
llvm-svn: 81294
2009-09-09 00:10:14 +00:00
Chris Lattner
0b34068b2b
change selectiondag to add the sign extended versions of immediate operands
...
to instructions instead of zero extended ones. This makes the asmprinter
print signed values more consistently. This apparently only really affects
the X86 backend.
llvm-svn: 81265
2009-09-08 23:05:44 +00:00
Anton Korobeynikov
2b6ef7724e
Unbreak getOnesVector() / getZeroVector() to use valid ARM extended imm's.
...
llvm-svn: 81262
2009-09-08 22:51:43 +00:00
Anton Korobeynikov
0b3a620d60
Add NEON 'laned' operations. This fixes another bunch of gcc testsuite fails and
...
makes the code faster.
llvm-svn: 81220
2009-09-08 15:22:32 +00:00
Richard Pennington
5b60d19ab9
Add source debug information to the Sparc code generator.
...
llvm-svn: 81215
2009-09-08 12:47:30 +00:00
Nicolas Geoffray
1f17612505
Also emit a label for TargetInstrInfo::GC_LABEL.
...
llvm-svn: 81206
2009-09-08 07:36:18 +00:00
Chris Lattner
ca44919aac
add support for some missing modifiers on jumptable/constant pool entries.
...
llvm-svn: 81199
2009-09-08 06:25:12 +00:00
Chris Lattner
893fbc4fec
add a bunch more evil lowering code to work around various :subreg32 modifiers
...
in the .td files. This gets us down to 18 failures in codegen/x86 with the
new asmprinter.
llvm-svn: 81198
2009-09-08 06:19:15 +00:00
Chris Lattner
ef96a8b64d
ADd support for "lowering" the X86::MOVZX16rr8/X86::MOVZX16rm8
...
subreg32 modifiers.
llvm-svn: 81196
2009-09-08 06:03:07 +00:00
Chris Lattner
8accd1ddcf
add a hack to lower MOV16r0 to MOV32r0 in MCInstLower, eliminating
...
the problem with subreg32 modifiers. This gets all of Olden working
with the new asmprinter.
llvm-svn: 81195
2009-09-08 05:49:25 +00:00
Chris Lattner
2e9f3b2865
fix PR4767, a crash because fp stackifier visited blocks in
...
depth first order, so it wouldn't process unreachable blocks.
When compiling at -O0, late dead block elimination isn't done
and the bad instructions got to isel.
llvm-svn: 81187
2009-09-08 04:55:44 +00:00
Anton Korobeynikov
6c6f65f3c1
Do not create calls via PLT in compilation callback - this is higly platform
...
dependent. Hopefully, this will fix PR3801.
llvm-svn: 81132
2009-09-06 20:21:48 +00:00
Duncan Sands
6efbe6150b
Remove a left over bit of code with no effect.
...
llvm-svn: 81128
2009-09-06 19:29:07 +00:00
Duncan Sands
265ebcdcfc
Remove unreachable code.
...
llvm-svn: 81126
2009-09-06 19:27:53 +00:00
Duncan Sands
39ca207077
Avoid an unused variable warning when assertions are
...
disabled.
llvm-svn: 81122
2009-09-06 16:27:34 +00:00
Duncan Sands
0d5fa5f018
Mark more constants unsigned, as warned about by icc ( #68 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81116
2009-09-06 12:56:52 +00:00
Duncan Sands
598fe699d0
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Duncan Sands
ab1e3dc9e2
Remove strange 'const' qualifiers, as warned about by icc
...
(#411 ). Patch by Erick Tryzelaar.
llvm-svn: 81113
2009-09-06 12:16:26 +00:00
Duncan Sands
10c1356bad
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Jim Grosbach
5a21028ece
Whitespace cleanup
...
llvm-svn: 80978
2009-09-04 01:38:51 +00:00
Bill Wendling
1d2e18b27c
If we've pushed registers onto the stack, but aren't adjusting the stack pointer
...
(i.e., there are no local variables and stuff), we still need to output FDE
information for the pushed registers.
llvm-svn: 80960
2009-09-03 22:19:22 +00:00
David Goodwin
0dd9e9edb4
Calls clobber FPSCR.
...
llvm-svn: 80956
2009-09-03 22:12:28 +00:00
Dan Gohman
69e9573064
Recognize more opportunities to use SSE min and max instructions,
...
swapping the operands if necessary.
llvm-svn: 80940
2009-09-03 20:34:31 +00:00
Mon P Wang
985c62a61e
Fixed a few problems with vector shifts
...
- when transforming a vector shift of a non-immediate scalar shift amount, zero
extend the i32 shift amount to i64 since the vector shift reads 64 bits
- when transforming i16 vectors to use a vector shift, zero extend i16 shift amount
- improve the code quality in some cases when transforming vectors to use a vector shift
llvm-svn: 80935
2009-09-03 19:56:25 +00:00
Dan Gohman
c50ad41cc5
Add a -disable-16bit flag and associated support for experimenting with
...
disabling the use of 16-bit operations on x86. This doesn't yet work for
inline asms with 16-bit constraints, vectors with 16-bit elements,
trampoline code, and perhaps other obscurities, but it's enough to try
some experiments.
llvm-svn: 80930
2009-09-03 17:18:51 +00:00
Kevin Enderby
5f29771ea2
Removed the non-target independent AsmToken::Register enum constant
...
from MCAsmLexer.h in preparation of supporting other targets. Changed the
X86AsmParser code to reflect this by removing AsmLexer::LexPercent and looking
for AsmToken::Percent when parsing in places that used AsmToken::Register.
Then changed X86ATTAsmParser::ParseRegister to parse out registers as an
AsmToken::Percent followed by an AsmToken::Identifier.
llvm-svn: 80929
2009-09-03 17:15:07 +00:00
Benjamin Kramer
f675bc0497
CppBackend: avoid printing unnecessary whitespace.
...
llvm-svn: 80917
2009-09-03 14:58:24 +00:00
Chris Lattner
6ea9973a0b
don't call getOffset() on jump tables, this fixes three failing olden benchmarks
...
with the new asmprinter.
llvm-svn: 80906
2009-09-03 07:36:42 +00:00
Chris Lattner
d7cc632fcf
Implement support for X86II::MO_GOT_ABSOLUTE_ADDRESS. We get very
...
different formatting from the old asmprinter, but it should be
semantically the same. We used to get:
popl %eax
addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$6.$piclabel], %eax
...
Now we get:
popl %eax
.Lpicbaseref6:
addl $(_GLOBAL_OFFSET_TABLE_ + (.Lpicbaseref6 - .Lllvm$6.$piclabel)), %eax
...
llvm-svn: 80905
2009-09-03 07:30:56 +00:00
Evan Cheng
41e87f2f13
Reference to hidden symbols do not have to go through non-lazy pointer in non-pic mode. rdar://7187172.
...
llvm-svn: 80904
2009-09-03 07:04:02 +00:00
Chris Lattner
bbff3ebc25
remove extraneous hack.
...
llvm-svn: 80893
2009-09-03 05:54:00 +00:00
Daniel Dunbar
80f8fc8a2a
Make these functions static and local.
...
llvm-svn: 80892
2009-09-03 05:47:34 +00:00
Chris Lattner
d4f19950e3
Thread an MCAsmInfo pointer through the various MC printing APIs,
...
and fix a few things using << on MCSymbols to use ->print(). No
functionality change other than unbreaking my previous patch.
llvm-svn: 80890
2009-09-03 05:46:51 +00:00
Chris Lattner
edb398b7db
just use dump()
...
llvm-svn: 80889
2009-09-03 05:39:09 +00:00
Chris Lattner
763a1843ff
merge globaladdress symbol processing stuff into other stuff. Now
...
all global variable operand flag processing stuff is shared between
different operand types.
llvm-svn: 80886
2009-09-03 05:06:07 +00:00
Evan Cheng
fa9e67ebbe
Unbreak x86_64 build.
...
llvm-svn: 80885
2009-09-03 05:01:00 +00:00
Chris Lattner
72cfe4f49c
Split the "operand -> symbol" logic from the "get offset and other munging
...
from operand" logic. GlobalAddress still todo.
llvm-svn: 80884
2009-09-03 04:56:20 +00:00
Chris Lattner
3609f4e4b7
implement lowering support for constant pool index operands, this gets a bunch more
...
olden programs working.
llvm-svn: 80881
2009-09-03 04:44:53 +00:00
Evan Cheng
6d2d69faf9
X86JITInfo::getLazyResolverFunction() should not read cpu id to determine whether sse is available. Just use consult subtarget.
...
No functionality changes.
llvm-svn: 80880
2009-09-03 04:37:05 +00:00
Chris Lattner
dfb8d9adcd
simplify this by using SmallString::str(), much nicer!
...
llvm-svn: 80874
2009-09-03 03:54:02 +00:00
Sean Callanan
1c6706b750
Added opaque 32-, 48-, and 80-bit memory operand types to the X86
...
instruction tables to support segmented addressing (and other objects
of obscure type).
Modified the X86 assembly printers to handle these new operand types.
Added JMP and CALL instructions that use segmented addresses.
llvm-svn: 80857
2009-09-03 00:04:47 +00:00
Anton Korobeynikov
7125d63acf
More missed vdup patterns
...
llvm-svn: 80838
2009-09-02 21:21:28 +00:00
Chris Lattner
825c74b1d9
switch from std::string to SmallString + raw_svector_ostream.
...
llvm-svn: 80807
2009-09-02 17:37:38 +00:00
Chris Lattner
1342ef5d8b
split mcinst lowering stuff out to its own file.
...
llvm-svn: 80806
2009-09-02 17:35:12 +00:00