| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
for the assembler and disassembler. Which were not being set/read correctly
for offsets greater than 22 bits in some cases.
Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!
llvm-svn: 156118
|
| |
|
|
|
|
|
|
|
|
|
| |
Replace some assert() calls w/ actual diagnostics. In a perfect world,
there'd be range checks on these values long before things ever reached
this code. For now, though, issuing a better-late-than-never diagnostic
is still a big improvement over assert().
rdar://11347287
llvm-svn: 155851
|
| |
|
|
|
|
|
|
|
|
| |
The base address for the PC-relative load is Align(PC,4), so it's the
address of the word containing the 16-bit instruction, not the address
of the instruction itself. Ugh.
rdar://11314619
llvm-svn: 155659
|
| |
|
|
|
|
|
|
| |
They reference the PC directly, so things work properly that way.
rdar://11231229
llvm-svn: 154576
|
| |
|
|
|
|
|
|
|
| |
The 8-bit payload is not contiguous in the opcode. Move the upper nibble
over 4 bits into the correct place.
rdar://11158641
llvm-svn: 153780
|
| |
|
|
|
|
|
|
| |
fixup_arm_condbranch.
Patch by Tim Northover!
llvm-svn: 153737
|
| |
|
|
| |
llvm-svn: 153502
|
| |
|
|
| |
llvm-svn: 153429
|
| |
|
|
|
|
| |
rdar://11059157
llvm-svn: 153055
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We on the linker to resolve calls to the appropriate BL/BLX instruction
to make interworking function correctly. It uses the symbol in the
relocation to do that, so we need to be careful about being too clever.
To enable this for ARM mode, split the BL/BLX fixup kind off from the
unconditional-branch fixups.
rdar://10927209
llvm-svn: 151571
|
| |
|
|
| |
llvm-svn: 148495
|
| |
|
|
| |
llvm-svn: 148456
|
| |
|
|
| |
llvm-svn: 148455
|
| |
|
|
|
|
|
|
|
| |
If the fixup is out of range for the Thumb1 instruction, relax it
to the Thumb2 encoding instead.
rdar://10711829
llvm-svn: 148424
|
| |
|
|
| |
llvm-svn: 148400
|
| |
|
|
|
|
|
|
|
|
| |
Load/store instructions w/ a fixup to be relative a function marked as thumb
don't use the low bit to specify thumb vs. non-thumb like interworking
branches do, so don't set it when dealing with those fixups.
rdar://10348687.
llvm-svn: 148366
|
| |
|
|
| |
llvm-svn: 148364
|
| |
|
|
| |
llvm-svn: 147115
|
| |
|
|
|
|
|
| |
avoid including ADT/Triple.h in many places when the target specific bits are
moved.
llvm-svn: 147059
|
| |
|
|
|
|
| |
rdar://9932658
llvm-svn: 146921
|
| |
|
|
| |
llvm-svn: 145895
|
| |
|
|
|
|
| |
rdar://10069056
llvm-svn: 145885
|
| |
|
|
|
|
|
|
| |
Whether a fixup needs relaxation for the associated instruction is a
target-specific function, as the FIXME indicated. Create a hook for that
and use it.
llvm-svn: 145881
|
| |
|
|
|
|
|
| |
Not right yet, as the rules for when to relax in the MCAssembler aren't
(yet) correct for ARM. This is a step in the proper direction, though.
llvm-svn: 145871
|
| |
|
|
|
|
|
| |
We don't (yet) have the granularity in the fixups to be specific about which
bitranges are affected. That's a future cleanup, but we're not there yet.
llvm-svn: 144852
|
| |
|
|
| |
llvm-svn: 144842
|
| |
|
|
| |
llvm-svn: 143413
|
| |
|
|
| |
llvm-svn: 140892
|
| |
|
|
|
|
|
|
|
| |
Remove an assert that was expecting only the relevant 16bit portion for
the fixup being handled. Also kill some dead code in the T2 portion.
rdar://9653509
llvm-svn: 140861
|
| |
|
|
| |
llvm-svn: 138501
|
| |
|
|
| |
llvm-svn: 138052
|
| |
|
|
|
|
|
|
|
| |
These fixups are handled poorly in general, and should have a single
contiguous range of bits per fixup type, but that's not how they're
currently organized, so for now in complex ones like for blx, we just tell the
emitter it's OK for the fixup to munge any bit it wants.
llvm-svn: 137947
|
| |
|
|
|
|
| |
Patch by Kristof Beyls and James Malloy.
llvm-svn: 137723
|
| |
|
|
|
|
| |
createMCAsmBackend.
llvm-svn: 136010
|
| |
|
|
|
|
| |
they belong.
llvm-svn: 135833
|
|
|
llvm-svn: 135825
|