| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
these instructions to be encoded with getMachineOpValue.
This unbreaks ExecutionEngine/2003-01-04-ArgumentBug.ll
when running on a G5
llvm-svn: 119307
|
|
|
|
|
|
| |
to be broken for other reasons
llvm-svn: 119283
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
directly on the mac. This is very early, doesn't support relocations and
has a terrible hack to avoid .machine from being printed, but despite
that it generates an bitwise-identical-to-cctools .o file for stuff like
this:
define i32 @test() nounwind { ret i32 42 }
I don't plan to continue pushing this forward, but if anyone else was
interested in doing it, it should be really straight-forward.
llvm-svn: 119136
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into the immediate field. This allows us to encode stuff like this:
lbz r3, lo16(__ZL4init)(r4) ; globalopt.cpp:5
; encoding: [0x88,0x64,A,A]
; fixup A - offset: 0, value: lo16(__ZL4init), kind: fixup_ppc_lo16
stw r3, lo16(__ZL1s)(r5) ; globalopt.cpp:6
; encoding: [0x90,0x65,A,A]
; fixup A - offset: 0, value: lo16(__ZL1s), kind: fixup_ppc_lo16
With this, we should have a completely function MCCodeEmitter for PPC, wewt.
llvm-svn: 119134
|
|
|
|
|
|
|
|
|
| |
modes. For example, we now get:
ld r3, lo16(_G)(r3) ; encoding: [0xe8,0x63,A,0bAAAAAA00]
; fixup A - offset: 0, value: lo16(_G), kind: fixup_ppc_lo14
llvm-svn: 119133
|
|
|
|
|
|
|
| |
print DBG_VALUE instructions. This should unbreak the llvm-gcc-powerpc-darwin9
buildbot.
llvm-svn: 119132
|
|
|
|
|
|
|
| |
lis r4, ha16(__ZL4init) ; encoding: [0x3c,0x80,A,A]
; fixup A - offset: 0, value: ha16(__ZL4init), kind: fixup_ppc_ha16
llvm-svn: 119127
|
|
|
|
|
|
|
| |
beq cr0, LBB0_4 ; encoding: [0x41,0x82,A,0bAAAAAA00]
; fixup A - offset: 0, value: LBB0_4, kind: fixup_ppc_brcond14
llvm-svn: 119126
|
|
|
|
|
|
|
|
| |
as direct calls. Change conditional branches to encode with
their own method, simplifying the JIT encoder and making room
for adding an mc fixup.
llvm-svn: 119125
|
|
|
|
| |
llvm-svn: 119124
|
|
|
|
|
|
|
|
|
|
| |
code in the JIT. Use this to form the first fixup for the PPC backend,
giving us stuff like this:
bl L_foo$stub ; encoding: [0b010010AA,A,A,0bAAAAAA01]
; fixup A - offset: 0, value: L_foo$stub, kind: fixup_ppc_br24
llvm-svn: 119123
|
|
|
|
| |
llvm-svn: 119121
|
|
|
|
|
|
|
|
|
|
| |
to encode all of these instructions correctly (for example):
mflr r0 ; encoding: [0x7c,0x08,0x02,0xa6]
stw r0, 8(r1) ; encoding: [0x90,0x01,0x00,0x08]
stwu r1, -64(r1) ; encoding: [0x94,0x21,0xff,0xc0]
llvm-svn: 119118
|
|
|
|
| |
llvm-svn: 119117
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixups yet, and doesn't handle actually encoding operand values,
but this is enough for llc -show-mc-encoding to show the base
instruction encoding information, e.g.:
mflr r0 ; encoding: [0x7c,0x08,0x02,0xa6]
stw r0, 8(r1) ; encoding: [0x90,0x00,0x00,0x00]
stwu r1, -64(r1) ; encoding: [0x94,0x00,0x00,0x00]
Ltmp0:
lhz r4, 4(r3) ; encoding: [0xa0,0x00,0x00,0x00]
cmplwi cr0, r4, 8 ; encoding: [0x28,0x00,0x00,0x00]
beq cr0, LBB0_2 ; encoding: [0x40,0x00,0x00,0x00]
llvm-svn: 119116
|
|
|
|
| |
llvm-svn: 119115
|
|
|
|
| |
llvm-svn: 119114
|
|
|
|
|
|
|
| |
instructions, allowing is to eliminate some dead operand
printing methods from the instprinter.
llvm-svn: 119113
|
|
|
|
| |
llvm-svn: 119112
|
|
|
|
|
|
| |
new instprinting logic is there.
llvm-svn: 119111
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only change in the output is:
1) we get a better comment on mfcr, we get:
mfcr r2 ; cr2
instead of:
mfcr r2 ; 32
2) we no longer emit $stub's on powerpc/leopard. The Leopard
linker autosynthesizes them.
llvm-svn: 119108
|
|
|
|
|
|
|
|
|
| |
different ways. Add $non_lazy_ptr support, and proper lowering for
global values.
Now all the ppc regression tests pass with the new instruction printer.
llvm-svn: 119106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nodes to indicate when ha16/lo16 modifiers should be used. This lets
us pass PowerPC/indirectbr.ll.
The one annoying thing about this patch is that the MCSymbolExpr isn't
expressive enough to represent ha16(label1-label2) which we need on
PowerPC. I have a terrible hack in the meantime, but this will have
to be revisited at some point.
Last major conversion item left is global variable references.
llvm-svn: 119105
|
|
|
|
| |
llvm-svn: 119104
|
|
|
|
| |
llvm-svn: 119098
|
|
|
|
|
|
| |
out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
llvm-svn: 119097
|
|
|
|
| |
llvm-svn: 119096
|
|
|
|
|
|
|
|
| |
and have isel apply to to call operands as required. This allows
us to get $stub suffixes on label references on ppc/tiger with the
new instprinter, fixing two tests. Only 2 to go.
llvm-svn: 119093
|
|
|
|
|
|
| |
lowering support for MovePCtoLR[8]. Down to 4 failures again.
llvm-svn: 119090
|
|
|
|
|
|
|
| |
since it is trivial and will be shared between ppc and x86.
This substantially simplifies the X86 backend also.
llvm-svn: 119089
|
|
|
|
|
|
|
|
| |
on the operand, required for .o file writing and fixing
the PowerPC/mult-alt-generic-powerpc64.ll failure with the new
instprinter.
llvm-svn: 119087
|
|
|
|
|
|
| |
the aborting printSpecial() method. This gets us to 8 failures.
llvm-svn: 119084
|
|
|
|
|
|
| |
printing nothing. This gets us back up to 24 failures.
llvm-svn: 119083
|
|
|
|
|
|
| |
about handling $stub, lo/hi etc.
llvm-svn: 119082
|
|
|
|
| |
llvm-svn: 119081
|
|
|
|
|
|
|
| |
ops the asmprinter supported, fixing PowerPC/rlwimi2.ll
among others. Down to 20 failures.
llvm-svn: 119080
|
|
|
|
|
|
| |
us further along. Only 28 failures now.
llvm-svn: 119079
|
|
|
|
|
|
| |
and printing support for call operands. Down to 77 failures.
llvm-svn: 119078
|
|
|
|
| |
llvm-svn: 119074
|
|
|
|
| |
llvm-svn: 119072
|
|
|
|
|
|
| |
this fixes 3 more ppc tests.
llvm-svn: 119065
|
|
|
|
|
|
| |
failures in CodeGen/PowerPC from 120 -> 117
llvm-svn: 119063
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
add support for darwin vs aix syntax. We now can print instructions
like this:
add r3, r3, r4
blr
and (in aix mode):
add 3, 3, 4
blr
llvm-svn: 119062
|
|
|
|
|
|
| |
instprinter when -enable-ppc-inst-printer is passed to llc.
llvm-svn: 119061
|
|
|
|
| |
llvm-svn: 119059
|
|
|
|
| |
llvm-svn: 119054
|
|
|
|
|
|
|
| |
and as such can be represented by an MVT - the more complicated
EVT is not needed. Use MVT for ValVT everywhere.
llvm-svn: 118245
|
|
|
|
|
|
|
|
|
|
| |
value type, so there is no point in passing it around using
an EVT. Use the simpler MVT everywhere. Rather than trying
to propagate this information maximally in all the code that
using the calling convention stuff, I chose to do a mainly
low impact change instead.
llvm-svn: 118167
|
|
|
|
|
|
| |
basic logic, added initial platform support.
llvm-svn: 117667
|
|
|
|
|
|
| |
(gcc-4.6 warns about these).
llvm-svn: 117021
|