Jakob Stoklund Olesen
b66f18486a
Constrain both operands on MOVZX32_NOREXrr8.
...
This instruction is explicitly encoded without an REX prefix, so both
operands but be *_NOREX.
Also add an assertion to copyPhysReg() that fires when the MOV8rr_NOREX
constraints are not satisfied.
This fixes a miscompilation in 20040709-2 in the gcc test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141410 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 20:15:54 +00:00
Michael J. Spencer
20990397a4
Fix a few changes I missed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141392 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 19:52:41 +00:00
Michael J. Spencer
01a4db3ed4
Fix GCC again.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141389 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 19:46:12 +00:00
Michael J. Spencer
3773fb46ba
Fix spelling in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 19:25:47 +00:00
Michael J. Spencer
4344b1ef9b
Change relocation API to be per section. This time without breaking GCC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141385 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 19:25:32 +00:00
Jim Grosbach
186ffac4d3
Improve ARM assembly parser diagnostic for unexpected tokens.
...
Consider:
mov r8, r11 fred
Previously, we issued the not very informative:
x.s:6:1: error: unexpected token in argument list
^
Now we generate:
x.s:5:14: error: unexpected token in argument list
mov r8, r11 fred
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141380 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 18:27:04 +00:00
Bill Wendling
a48ad13339
Revert 141376 and 141377 due to breaking the build.
...
--- Reverse-merging r141377 into '.':
U tools/llvm-objdump/MachODump.cpp
--- Reverse-merging r141376 into '.':
U include/llvm/Object/COFF.h
U include/llvm/Object/ObjectFile.h
U include/llvm-c/Object.h
U tools/llvm-objdump/llvm-objdump.cpp
U lib/Object/MachOObjectFile.cpp
U lib/Object/COFFObjectFile.cpp
U lib/Object/Object.cpp
U lib/Object/ELFObjectFile.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141379 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 18:25:37 +00:00
David Greene
a1b1b79be1
Remove Multidefs
...
Multidefs are a bit unwieldy and incomplete. Remove them in favor of
another mechanism, probably for loops.
Revert "Make Test More Thorough"
Revert "Fix a typo."
Revert "Vim Support for Multidefs"
Revert "Emacs Support for Multidefs"
Revert "Document Multidefs"
Revert "Add a Multidef Test"
Revert "Update Test for Multidefs"
Revert "Process Multidefs"
Revert "Parser Multidef Support"
Revert "Lexer Support for Multidefs"
Revert "Add Multidef Data Structures"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141378 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 18:25:05 +00:00
Michael J. Spencer
67370ef903
Fix spelling in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141377 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 18:15:40 +00:00
Michael J. Spencer
f1164a2487
Change relocation API to be per section.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141376 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 18:15:25 +00:00
Evan Cheng
b76761351f
Jakob is the code owner of register allocation and TableGen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141372 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 17:26:38 +00:00
Evan Cheng
7c1780c5fe
High bits of movmskp{s|d} and pmovmskb are known zero. rdar://10247336
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141371 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 17:21:44 +00:00
Bob Wilson
6d2f9cec71
Reenable tail calls for iOS 5.0 and later.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141370 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 17:17:49 +00:00
Bob Wilson
2fef4573df
Reenable use of divmod compiler_rt functions for iOS 5.0 and later.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141368 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 16:59:21 +00:00
Matt Beaumont-Gay
7761948761
Move default to top of switch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141366 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 16:27:01 +00:00
Anton Korobeynikov
244455e6d6
Peephole optimization for ABS on ARM.
...
Patch by Ana Pazos!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141365 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 16:15:08 +00:00
Duncan Sands
3f329cb781
Teach GVN to also propagate switch cases. For example, in this code
...
switch (n) {
case 27:
do_something(x);
...
}
the call do_something(x) will be replaced with do_something(27). In
gcc-as-one-big-file this results in the removal of about 500 lines of
bitcode (about 0.02%), so has about 1/10 of the effect of propagating
branch conditions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141360 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 08:29:06 +00:00
Craig Topper
75fe5f3bab
Add X86 disassembler support for RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141358 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 07:02:24 +00:00
Andrew Trick
e8deca83c1
PostRA scheduler fix. Clear stale loop dependencies.
...
Fixes <rdar://problem/10235725>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 06:33:09 +00:00
Andrew Trick
4563bbaba7
whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141356 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 06:27:02 +00:00
Craig Topper
1b526a98e3
Add X86 disassembler support for XSAVE, XRSTOR, and XSAVEOPT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141354 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 05:53:50 +00:00
Craig Topper
25f6dfd108
Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141353 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 05:35:38 +00:00
Bill Wendling
217f0e9ca4
Use the correct vreg here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141342 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 23:41:14 +00:00
Bill Wendling
083a8eb063
Generate the dispatch code for a 'thumb' function. This is very similar to the
...
others. They take the call site value. Determine if it's a proper value. And
then jumps to the correct call site via a jump table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 23:37:36 +00:00
Owen Anderson
7011eee9b5
Fix the check for nested IT instructions in the disassembler. We need to perform the check before adding the Thumb predicate, which pops on entry off the ITBlock queue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141339 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 23:33:11 +00:00
Eli Friedman
8540101252
Remove the old atomic instrinsics. autoupgrade functionality is included with this patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 23:20:49 +00:00
Bill Wendling
95ce2e9c52
Generate the dispatch table for ARM mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141327 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 22:53:00 +00:00
Bill Wendling
e29fa1df55
Refactor some of the code that sets up the entry block for SjLj EH. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141323 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 22:18:16 +00:00
Jim Grosbach
bee5d2fac8
Tidy up tests. Un-XFAIL file and mark individual tests as FIXME instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141321 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 22:04:05 +00:00
Bill Wendling
5e2cbc1133
Use a thumb ORR instead of thumb2 ORR when in thumb-only mode. (Picky! Picky!)
...
Place the immediate to OR into a register so that it works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141319 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:51:21 +00:00
Jim Grosbach
7abb795635
Fix and clean up tests. Un-XFAIL.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141318 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:32:50 +00:00
Bill Wendling
04f15b4f2f
* Set the low bit of the return address when we are in thumb mode.
...
* Some code cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141317 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:29:56 +00:00
Jim Grosbach
d6f85098e1
Fix and clean up tests. Un-XFAIL.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141316 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:28:30 +00:00
David Greene
d2b9f20b18
Fix List-of-List Processing
...
Fix VarListElementInit::resolveListElementReference to return a
partially resolved VarListElementInint in the case where full
resolution is not possible. This allows TableGen to make forward
progress resolving certain complex list expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141315 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:20:46 +00:00
David Greene
2f0722c105
Make Test More Thorough
...
Check that all ADD patters are processed.
Add a SUB test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141314 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 21:20:44 +00:00
Matt Beaumont-Gay
3ef12348d7
Fix -asserts build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141313 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 20:59:09 +00:00
Justin Holewinski
9a6eba6203
PTX: Implement signed division
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141306 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 20:00:33 +00:00
Benjamin Kramer
ee573189c6
Use StringSwitch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141305 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 18:53:43 +00:00
Benjamin Kramer
37d42af584
Simplify code. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141299 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 18:23:56 +00:00
David Greene
c2d18f8929
Fix Typo
...
Compare the entire keyword string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141295 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 14:37:47 +00:00
Peter Collingbourne
5d5c0624d0
s/tblgen/llvm-tblgen/g in a few missed places, including the tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141294 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 13:39:59 +00:00
Peter Collingbourne
6d1409dcc5
Remove the Clang tblgen backends from LLVM.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141293 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 13:21:42 +00:00
Torok Edwin
4df1557f40
Don't require C bindings opcode numbers to be kept in sync.
...
They are not in sync now, for example Bitcast would show up as LLVMCall.
So instead introduce 2 functions that map to and from the opcodes in the C
bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141290 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:39:34 +00:00
Torok Edwin
6831b7c645
Add uwtable, returnstwice and nonlazybind to the C bindings also.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141289 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:32 +00:00
Torok Edwin
ff12c99d13
ocaml/C bindings: type->isSized()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141288 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:28 +00:00
Torok Edwin
4917ec9ec7
add binding to read icmp predicate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141287 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:20 +00:00
Torok Edwin
4f661ab0fb
ocaml/C bindings: getmdstring, add num_op, get_op should work on metadata too
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141286 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:11 +00:00
Torok Edwin
c44943ed4f
C/OCaml API to retrieve struct name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141285 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:12:50 +00:00
Torok Edwin
624c5edcd4
ocaml bindings: add llvm_ipo based on IPO.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141284 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:12:27 +00:00
Torok Edwin
0e68e90175
add more tests for the OCaml bindings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141283 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:12:12 +00:00