summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Dovetail with Dan Dunbar's rework of ELFObjectWriter.Jason W Kim2010-11-151-223/+311
| | | | | | | Added 2 new subclasses - X86ELFObjectWriter and ARMELFObectWriter. ARM and X86 require different code for RecordRelocation(), possibly others. llvm-svn: 119149
* Fix PR8565.Rafael Espindola2010-11-154-13/+54
| | | | | | | | | | | This moves most of the isUsed logic to the MCSymbol itself. With this we get a bit more relaxed about allowing definitions after uses: uses that don't evaluate their argument immediately (jmp foo) are accepted. ddunbar, this was the smallest compromise I could think of that lets us accept gcc (and clang!) assembly. llvm-svn: 119144
* Improve code layout, mostly indentation. Kalle Raiskila2010-11-151-166/+150
| | | | | | No functionality change. llvm-svn: 119142
* Wire up primitive support in the assembler backend for writing .o filesChris Lattner2010-11-155-1/+137
| | | | | | | | | | | | | | 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
* split out an encoder for memri operands, allowing a relocation to be ploppedChris Lattner2010-11-155-58/+68
| | | | | | | | | | | | | | | | 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
* add support for encoding the lo14 forms used for a few PPC64 addressingChris Lattner2010-11-155-25/+45
| | | | | | | | | 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
* fix a regression with the new instprinter: we lost the ability toChris Lattner2010-11-151-0/+22
| | | | | | | print DBG_VALUE instructions. This should unbreak the llvm-gcc-powerpc-darwin9 buildbot. llvm-svn: 119132
* pull the code to get the operand value out of the loop.Chris Lattner2010-11-151-48/+58
| | | | llvm-svn: 119130
* split the giant encoder loop into two new helper functions.Chris Lattner2010-11-152-112/+129
| | | | llvm-svn: 119129
* reduce nesting and minor cleanups, no functionality change.Chris Lattner2010-11-151-87/+88
| | | | llvm-svn: 119128
* implement the start of support for lo16 and ha16, allowing us to get stuff like:Chris Lattner2010-11-155-30/+108
| | | | | | | lis r4, ha16(__ZL4init) ; encoding: [0x3c,0x80,A,A] ; fixup A - offset: 0, value: ha16(__ZL4init), kind: fixup_ppc_ha16 llvm-svn: 119127
* add a fixup for conditional branches, giving us output like this:Chris Lattner2010-11-152-8/+11
| | | | | | | beq cr0, LBB0_4 ; encoding: [0x41,0x82,A,0bAAAAAA00] ; fixup A - offset: 0, value: LBB0_4, kind: fixup_ppc_brcond14 llvm-svn: 119126
* change direct branches to encode with the same encoding methodChris Lattner2010-11-153-23/+38
| | | | | | | | 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
* eliminate a now-unneeded operand printer.Chris Lattner2010-11-152-4/+0
| | | | llvm-svn: 119124
* split call operands out to their own encoding class, simplifyingChris Lattner2010-11-154-77/+130
| | | | | | | | | | 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
* correct the fixup comment printer to work on big endian platforms.Chris Lattner2010-11-151-1/+8
| | | | llvm-svn: 119122
* add proper encoding for MTCRF instead of using a hack.Chris Lattner2010-11-153-15/+37
| | | | llvm-svn: 119121
* add fields to the .td files unconditionally, simplifying tblgen a bit.Chris Lattner2010-11-1510-36/+38
| | | | | | Switch the ARM backend to use 'let' instead of 'set' with this change. llvm-svn: 119120
* remove a pointless testcase.Chris Lattner2010-11-151-585/+0
| | | | llvm-svn: 119119
* add basic encoding support for immediates and registers, allowing us Chris Lattner2010-11-152-4/+8
| | | | | | | | | | 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
* add a dummy entry to fix a build errorChris Lattner2010-11-151-2/+2
| | | | llvm-svn: 119117
* Implement a basic MCCodeEmitter for PPC. This doesn't handleChris Lattner2010-11-155-2/+113
| | | | | | | | | | | | | | | | 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
* dissolve some more hacks.Chris Lattner2010-11-152-6/+6
| | | | llvm-svn: 119115
* fix some fixme's, removing dead code.Chris Lattner2010-11-151-8/+2
| | | | llvm-svn: 119114
* remove asmstrings (which can never be printed) from pseudo Chris Lattner2010-11-154-103/+48
| | | | | | | instructions, allowing is to eliminate some dead operand printing methods from the instprinter. llvm-svn: 119113
* strength reduce TOC temp label generation, no functionality change.Chris Lattner2010-11-151-7/+4
| | | | llvm-svn: 119112
* rip out a ton of old instruction printing junk now that theChris Lattner2010-11-151-419/+86
| | | | | | new instprinting logic is there. llvm-svn: 119111
* Object: Add missing makefile.Michael J. Spencer2010-11-151-0/+14
| | | | llvm-svn: 119110
* Make sure ARM multi load / store pass copies memoperands when forming ldrd / ↵Evan Cheng2010-11-151-0/+17
| | | | | | strd. pr8113. llvm-svn: 119109
* Turn on the new instprinter by default.Chris Lattner2010-11-151-1/+1
| | | | | | | | | | | | | | 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
* Add LLVMObject Library.Michael J. Spencer2010-11-155-1/+321
| | | | llvm-svn: 119107
* convert the operand bits into bitfields since they are all combinable inChris Lattner2010-11-153-116/+92
| | | | | | | | | 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
* add targetoperand flags for jump tables, constant pool and block addressChris Lattner2010-11-159-118/+141
| | | | | | | | | | | | | | 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
* remove some extraneous quotes to make the new instprinter match.Chris Lattner2010-11-152-4/+4
| | | | llvm-svn: 119104
* silence a ton of warnings from clang.Chris Lattner2010-11-151-1/+1
| | | | llvm-svn: 119102
* Attempt to unbreak cmake-based buildsAnton Korobeynikov2010-11-1512-0/+13
| | | | llvm-svn: 119098
* First step of huge frame-related refactoring: move emit{Prologue,Epilogue} ↵Anton Korobeynikov2010-11-1582-3356/+4279
| | | | | | out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place llvm-svn: 119097
* Whitespace cleanupAnton Korobeynikov2010-11-151-4/+4
| | | | llvm-svn: 119096
* Move the logic to decide with which symbol we produce a relocation (if any) toRafael Espindola2010-11-142-34/+61
| | | | | | a central location. This also makes us a bit more compatible with gas. llvm-svn: 119094
* implement support for the MO_DARWIN_STUB TargetOperand flag,Chris Lattner2010-11-144-35/+172
| | | | | | | | 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
* tidy up, no functionality change.Chris Lattner2010-11-142-3/+1
| | | | llvm-svn: 119092
* with the picbase nonsense starting to be figured out, implementChris Lattner2010-11-141-0/+22
| | | | | | lowering support for MovePCtoLR[8]. Down to 4 failures again. llvm-svn: 119090
* move the pic base symbol stuff up to MachineFunctionChris Lattner2010-11-1410-46/+24
| | | | | | | since it is trivial and will be shared between ppc and x86. This substantially simplifies the X86 backend also. llvm-svn: 119089
* simplify getPICBaseSymbol a bit.Chris Lattner2010-11-144-8/+8
| | | | llvm-svn: 119088
* reimplement ppc asmprinter "toc" handling to use a VariantKindChris Lattner2010-11-144-5/+32
| | | | | | | | 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
* add some nounwind's.Chris Lattner2010-11-145-6/+6
| | | | llvm-svn: 119086
* lower PPC::MFCRpseud when transforming to MC, avoiding callingChris Lattner2010-11-142-2/+18
| | | | | | the aborting printSpecial() method. This gets us to 8 failures. llvm-svn: 119084
* make the stubbed-out printer methods abort instead of Chris Lattner2010-11-142-3/+18
| | | | | | printing nothing. This gets us back up to 24 failures. llvm-svn: 119083
* wire up a few more things, down to 4 test failures, allChris Lattner2010-11-142-19/+39
| | | | | | about handling $stub, lo/hi etc. llvm-svn: 119082
* properly wire up the instprinter to the ppc64 backend, down to 5 failures.Chris Lattner2010-11-141-1/+1
| | | | llvm-svn: 119081
OpenPOWER on IntegriCloud