aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMCodeEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids ↵Evan Cheng2008-12-101-1/+1
| | | | | | some overflow issues. Patch by Thomas Jablin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60828 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a thinko. MO is getOperand(i-1) so we don't have to adjust e.Evan Cheng2008-11-201-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59696 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate a compile time warning.Evan Cheng2008-11-191-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59678 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix MOVrx, MOVsrl_flag, and MOVsra_flag encodings.Evan Cheng2008-11-141-1/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59314 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle the rest of pseudo instructions.Evan Cheng2008-11-131-1/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59275 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't forget to emit stubs for function GV's emitted in CONSTPOOL_ENTRY's.Evan Cheng2008-11-131-3/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59258 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed a break statement.Evan Cheng2008-11-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59231 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pre- and post-indexed load / store encoding bugs.Evan Cheng2008-11-131-7/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59230 91177308-0d34-0410-b5e6-96231b3b80d8
* Address mode immediate offset has already been divided by 4.Evan Cheng2008-11-121-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59117 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a VFP binary arithmetic instruction encoding bug.Evan Cheng2008-11-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59116 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix address mode 3 immediate offset mode encoding.Evan Cheng2008-11-121-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59109 91177308-0d34-0410-b5e6-96231b3b80d8
* Consolidate formats; fix FCMPED etc. encodings.Evan Cheng2008-11-121-81/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59107 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix VFP conversion instruction encodings.Evan Cheng2008-11-121-51/+75
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59104 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix encoding of single-precision VFP registers.Evan Cheng2008-11-121-39/+95
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59102 91177308-0d34-0410-b5e6-96231b3b80d8
* VFP fld / fst immediate field is multiplied by 4.Evan Cheng2008-11-121-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59100 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix FMDRR encoding.Evan Cheng2008-11-111-7/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59088 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle floating point constpool_entry's.Evan Cheng2008-11-111-4/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59087 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode VFP load / store instructions.Evan Cheng2008-11-111-13/+119
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59084 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode VFP conversion instructions.Evan Cheng2008-11-111-2/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59074 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode VFP arithmetic instructions.Evan Cheng2008-11-111-0/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59016 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.Evan Cheng2008-11-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58949 91177308-0d34-0410-b5e6-96231b3b80d8
* Tell ARMJITInfo if codegen relocation is PIC. It changes how function stubs ↵Evan Cheng2008-11-081-1/+1
| | | | | | are generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58896 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix relocation for calls to external symbols.Evan Cheng2008-11-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58893 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip over two-address use operands.Evan Cheng2008-11-081-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58883 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle ARM machine constantpool entry with non-lazy ptr.Evan Cheng2008-11-081-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58882 91177308-0d34-0410-b5e6-96231b3b80d8
* More code clean up.Evan Cheng2008-11-071-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58872 91177308-0d34-0410-b5e6-96231b3b80d8
* Get PIC jump table working.Evan Cheng2008-11-071-42/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58869 91177308-0d34-0410-b5e6-96231b3b80d8
* Jump table JIT support. Work in progress.Evan Cheng2008-11-071-23/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58836 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode misc arithmetic instructions.Evan Cheng2008-11-071-0/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58828 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode extend instructions; more clean up.Evan Cheng2008-11-061-24/+64
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58818 91177308-0d34-0410-b5e6-96231b3b80d8
* - Improve naming consistency: Branch -> BrFrm, BranchMisc -> BrMiscFrm.Evan Cheng2008-11-061-11/+13
| | | | | | | | - Consolidate instruction formats. - Other clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58808 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove opcode from instruction TS flags; add MOVCC support; fix addrmode3 ↵Evan Cheng2008-11-061-10/+8
| | | | | | encoding bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58800 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix so_imm encoding bug; add support for MOVi2pieces.Evan Cheng2008-11-061-12/+52
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58790 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix encoding of multiple instructions with 3 src operands; also handle ↵Evan Cheng2008-11-061-4/+9
| | | | | | smmul, smmla, and smmls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58789 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode pic load / store instructions; fix some encoding bugs.Evan Cheng2008-11-051-50/+103
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58780 91177308-0d34-0410-b5e6-96231b3b80d8
* Restructure ARM code emitter to use instruction formats instead of ↵Evan Cheng2008-11-051-124/+136
| | | | | | addressing modes to determine how to encode instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58764 91177308-0d34-0410-b5e6-96231b3b80d8
* Debug output tweak.Evan Cheng2008-11-041-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58708 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle ARM machine constantpool entries.Evan Cheng2008-11-041-4/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58671 91177308-0d34-0410-b5e6-96231b3b80d8
* Add binary encoding support for multiply instructions. Some blanks left to ↵Jim Grosbach2008-11-031-5/+37
| | | | | | fill in, but the basics are there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58626 91177308-0d34-0410-b5e6-96231b3b80d8
* Use better data structure for ConstPoolId2AddrMap.Evan Cheng2008-10-311-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58532 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually make debug output understandable.Evan Cheng2008-10-311-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58529 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode PICADD; some code clean up.Evan Cheng2008-10-311-76/+101
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58526 91177308-0d34-0410-b5e6-96231b3b80d8
* I think we got non-machine specific constpool entries covered.Evan Cheng2008-10-301-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58474 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct way to handle CONSTPOOL_ENTRY instructions.Evan Cheng2008-10-291-24/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58409 91177308-0d34-0410-b5e6-96231b3b80d8
* Support for constant islands in the ARM JIT.Jim Grosbach2008-10-281-1/+25
| | | | | | | | | | | | | | | | | Since the ARM constant pool handling supercedes the standard LLVM constant pool entirely, the JIT emitter does not allocate space for the constants, nor initialize the memory. The constant pool is considered part of the instruction stream. Likewise, when resolving relocations into the constant pool, a hook into the target back end is used to resolve from the constant ID# to the address where the constant is stored. For now, the support in the ARM emitter is limited to 32-bit integer. Future patches will expand this to the full range of constants necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58338 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode the conditional execution predicate when JITing.Jim Grosbach2008-10-071-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57258 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify naming and correct conditional so that CMP and CMN instructions get ↵Jim Grosbach2008-10-071-8/+5
| | | | | | the Rn operand encoded properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57252 91177308-0d34-0410-b5e6-96231b3b80d8
* Indexing off by one resulted in errant encoding of source register forJim Grosbach2008-10-031-1/+1
| | | | | | | reg->reg moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57011 91177308-0d34-0410-b5e6-96231b3b80d8
* NeedStub/DoesntNeedStub logic was reversed, leading to not using a stubJim Grosbach2008-10-031-4/+4
| | | | | | | for global relocations that do need them (libc calls, for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57010 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-10/+10
| | | | | | | isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8