Chris Lattner
98ae09ca5d
Add support for 64-bit 'r' constraint. Patch by by Rafael ~Avila de EspÃndol!
...
This fixes PR1029 and Regression/CodeGen/X86/x86-64-asm.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32206 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 22:38:21 +00:00
Jim Laskey
efc7e52183
Restoration of the stack pointer after a deallocation of a alloca was not
...
updating the SP link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32202 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 22:04:42 +00:00
Evan Cheng
2c312adac9
Non-darwin gcc should default to static relocation to match gcc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32184 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 18:07:10 +00:00
Evan Cheng
ba59a1e453
Match TargetInstrInfo changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32098 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 21:52:58 +00:00
Evan Cheng
258ff6726d
convertToThreeAddress() is now responsible for updating live info as well as inserting the new MI's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32097 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 21:52:41 +00:00
Evan Cheng
8752ce61e1
Add weak reference directive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32091 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 20:47:11 +00:00
Evan Cheng
9382e29c1e
Copy and paste error. An initialized global cannot be a weak reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32075 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 17:39:22 +00:00
Jim Laskey
fbb74e6941
1. In ppc64 mode we need only use one GPR.
...
2. Float values need to be promoted to double when they are vararg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32074 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 16:30:47 +00:00
Jim Laskey
45e507ca9b
ExternalWeak case in wrong location.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32073 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 14:37:39 +00:00
Evan Cheng
32644ac67c
Fix 2005-05-08-FPStackifierPHI.ll failure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32071 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 10:11:51 +00:00
Evan Cheng
81cf60fceb
A initialized global variable cannot be extern weak. However, if a global value's initializer is itself a external weak symbol, emit the weak reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32069 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 09:13:26 +00:00
Evan Cheng
1c45a66873
Darwin PPC external weak linkage support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32068 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 07:56:37 +00:00
Evan Cheng
6d7d310519
Minor code clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32067 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 07:38:23 +00:00
Evan Cheng
de97f9cd22
Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32066 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 07:17:00 +00:00
Evan Cheng
f532c4fc15
Darwin X86 external weak linkage support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32065 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 07:15:24 +00:00
Chris Lattner
70fa493613
Fix the CodeGen/PowerPC/vec_constants.ll regression.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32057 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 01:45:39 +00:00
Anton Korobeynikov
78ee7b78c3
Introducing external weak linkage. Darwin codegen should be added later.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32052 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 00:25:12 +00:00
Anton Korobeynikov
7784ebc239
Factor out GVRequiresExtraLoad() from .h to .cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32048 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 22:42:55 +00:00
Evan Cheng
0085a28d13
- Use a different wrapper node for RIP-relative GV, etc.
...
- Proper support for both small static and PIC modes under X86-64
- Some (non-optimal) support for medium modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32046 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 21:55:46 +00:00
Evan Cheng
12a447898a
MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32034 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:12:03 +00:00
Evan Cheng
6430bf0449
Remove the ugly SPARCV9 TargetInstrDescriptors hack.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32033 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:10:43 +00:00
Evan Cheng
c8306bde15
In PIC mode, GV not requiring an extra load can be used as address immediate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32028 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:48:14 +00:00
Evan Cheng
4946399b64
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32027 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:46:27 +00:00
Evan Cheng
d0ff02cf6f
Fix for PR1018 - Better support for X86-64 Linux in small code model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32026 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:19:46 +00:00
Chris Lattner
15eb329dae
Fix bug codegen'ing FP constant vectors with integer splats. Make sure the
...
created intrinsics have the right integer types. This fixes
PowerPC/2006-11-29-AltivecFPSplat.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32024 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 19:58:49 +00:00
Jim Laskey
619965d32e
Offset for load of 32-bit arg in 64-bit world was incorrect.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32019 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 13:37:09 +00:00
Evan Cheng
3fa9dff2c9
Custom lower READCYCLECOUNTER for x86-64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32017 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 08:28:13 +00:00
Chris Lattner
641c523599
done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32013 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:21:46 +00:00
Evan Cheng
b4809b2b8f
16-byte stack alignment for X86-64 ELF. Patch by Dan Gohman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32004 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 02:00:40 +00:00
Chris Lattner
5d52135a14
Upgrade the ugly darwin 64-bit bswap idiom (bswap %eax / bswap %edx /
...
xchgl %eax, %edx) to llvm.bswap.i64. This compiles:
long long test2(long long A) {
return _OSSwapInt64(A);
}
to:
_test2:
movl 8(%esp), %eax
movl 4(%esp), %edx
bswapl %eax
bswapl %edx
ret
instead of:
_test2:
movl 8(%esp), %edx
movl 4(%esp), %eax
bswap %eax
bswap %edx
xchgl %eax, %edx
ret
GCC manages (with -fomit-frame-pointer) the uglier:
_test2:
subl $4, %esp
movl 8(%esp), %eax
movl 12(%esp), %edx
bswap %eax
bswap %edx
xchgl %eax, %edx
addl $4, %esp
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32001 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:48:01 +00:00
Chris Lattner
625bd052a3
Trivially lower 'bswap $0' into llvm.bswap. This fixes hexxagon with the
...
JIT on darwin/x86, which has htonl implemented as inline asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31999 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:14:06 +00:00
Andrew Lenharth
f45148e113
gcc doesn't like an empty colbber list
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31987 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 23:07:32 +00:00
Andrew Lenharth
30579799ed
Identities are default now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31980 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:28:08 +00:00
Andrew Lenharth
85f2228454
Make identity default, and fix PR1020
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31979 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:25:32 +00:00
Evan Cheng
ead1b801e2
New entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31976 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:59:25 +00:00
Andrew Lenharth
238581f2bb
update comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31975 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:56:02 +00:00
Andrew Lenharth
e0cf07584d
Get the asminfo for the target most closely matching the module and use that for inline asm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31974 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:53:36 +00:00
Andrew Lenharth
6c0695fc5c
X86 asm -> gcc asm translation table (incomplete)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31973 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:52:49 +00:00
Andrew Lenharth
3655de6873
Add per-target support for asm translation in the cbe
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31972 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:52:20 +00:00
Jim Laskey
7fc4a94bdd
Remove debug code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31970 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 18:27:02 +00:00
Jim Laskey
2ada08536e
Prime text sections to improve branch locality in large object files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31969 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 18:21:52 +00:00
Jim Laskey
e9bd7b2e03
32-bit int space was not accounted for properly in lowerCall.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31966 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 14:53:52 +00:00
Evan Cheng
7bb64e8369
Fix JIT encoding bugs for shift / rotate by one ops.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31952 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 01:28:00 +00:00
Andrew Lenharth
29c277fc2c
Preliminary support for inline asm in the cbe. The target specific ugliness
...
is still in Writer, but issolated to a single function. This might be split
into something in each target directory. This is sufficient to get through
archie and an strcpy impl on linux-x86.
Module level asm is not handled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31948 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 23:50:49 +00:00
Evan Cheng
c0f64ffab9
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 23:37:22 +00:00
Reid Spencer
639cf7d380
When truncating to bool, it is necessary to & with 1 for all casts that
...
can result in a bool. Previously PtrToInt, FPToUI and FPToSI were missing
this operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31938 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 18:51:06 +00:00
Reid Spencer
3da59db637
For PR950:
...
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 01:05:10 +00:00
Duraid Madina
f525eb9056
fix storing bools to mem and unordered FP ops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31920 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-26 04:34:26 +00:00
Reid Spencer
24652d16f8
Add newline at end of file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31902 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-25 05:41:02 +00:00
Anton Korobeynikov
12c49af81e
Refactored *GVRequiresExtraLoad() to Subtarget method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31887 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-21 00:01:06 +00:00