| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 162520
|
| |
|
|
|
|
|
|
|
|
|
| |
the register info for getEncodingValue. This builds on the
small patch of yesterday to set HWEncoding in the register
file.
One (deprecated) use was turned into a hard number to avoid
needing register info in the old JIT.
llvm-svn: 161628
|
| |
|
|
| |
llvm-svn: 161159
|
| |
|
|
|
|
|
|
| |
Add the MCRegisterInfo to the factories and constructors.
Patch by Tom Stellard <Tom.Stellard@amd.com>.
llvm-svn: 156828
|
| |
|
|
|
|
|
|
|
|
| |
Expressions for movw/movt don't always have an :upper16: or :lower16:
on them and that's ok. When they don't, it's just a plain [0-65536]
immediate result, effectively the same as a :lower16: variant kind.
rdar://10550147
llvm-svn: 155941
|
| |
|
|
|
|
| |
right-shifted by #32. These are stored as shifts by #0 in the MCInst and correctly marshalled when transforming from or to assembly representation.
llvm-svn: 155565
|
| |
|
|
|
|
|
|
| |
fixup_arm_condbranch.
Patch by Tim Northover!
llvm-svn: 153737
|
| |
|
|
| |
llvm-svn: 153500
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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: 149961
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adjust an example MachObjectWriter diagnostic to use the information
to issue a better message.
Before:
LLVM ERROR: unknown ARM fixup kind!
After:
x.s:6:5: error: unsupported relocation on symbol
beq bar
^
rdar://9800182
llvm-svn: 149093
|
| |
|
|
|
|
| |
accomodate every target I can think of offhand.
llvm-svn: 148833
|
| |
|
|
| |
llvm-svn: 148578
|
| |
|
|
|
|
|
|
| |
Explicit pc-relative syntax. For example, "ldrb r2, [pc, #-22]".
rdar://10250964
llvm-svn: 148432
|
| |
|
|
| |
llvm-svn: 147855
|
| |
|
|
|
|
| |
rdar://9932658
llvm-svn: 146921
|
| |
|
|
|
|
|
| |
There's more variation that we need to handle. Error checking will need
to be on operand predicates.
llvm-svn: 146884
|
| |
|
|
| |
llvm-svn: 145711
|
| |
|
|
| |
llvm-svn: 139606
|
| |
|
|
| |
llvm-svn: 139575
|
| |
|
|
| |
llvm-svn: 139537
|
| |
|
|
| |
llvm-svn: 139422
|
| |
|
|
| |
llvm-svn: 139381
|
| |
|
|
|
|
| |
Refactor operand handling for STRD as well. Tests for that forthcoming.
llvm-svn: 139322
|
| |
|
|
| |
llvm-svn: 138889
|
| |
|
|
|
|
| |
instead of labels.
llvm-svn: 138874
|
| |
|
|
|
|
| |
than labels.
llvm-svn: 138837
|
| |
|
|
|
|
| |
instead of labels.
llvm-svn: 138835
|
| |
|
|
|
|
| |
necessary for round-tripping.
llvm-svn: 138834
|
| |
|
|
| |
llvm-svn: 138833
|
| |
|
|
| |
llvm-svn: 138754
|
| |
|
|
|
|
| |
decoding bug this uncovered.
llvm-svn: 138675
|
| |
|
|
| |
llvm-svn: 138673
|
| |
|
|
|
|
| |
instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
llvm-svn: 138635
|
| |
|
|
|
|
|
|
|
| |
Represent the operand value as it will be encoded in the instruction. This
allows removing the specialized encoder and decoder methods entirely. Add
an assembler match class while we're at it to lay groundwork for parsing the
thumb shift instructions.
llvm-svn: 137879
|
| |
|
|
|
|
| |
additional encoding fixes added by me.
llvm-svn: 137322
|
| |
|
|
|
|
| |
range 1-32, with 32 encoded as 0.
llvm-svn: 137062
|
| |
|
|
|
|
|
| |
The immediate portion of the operand is just a boolean (the 'U' bit indicating
add vs. subtract). Treat it as such.
llvm-svn: 136969
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memory operand parsing is a bit haphazzard at the moment, in no small part
due to the even more haphazzard representations of memory operands in the .td
files. Start cleaning that all up, at least a bit.
The addressing modes in the .td files will be being simplified to not be
so monolithic, especially with regards to immediate vs. register offsets
and post-indexed addressing. addrmode3 is on its way with this patch, for
example.
This patch is foundational to enable going back to smaller incremental patches
for the individual memory referencing instructions themselves. It does just
enough to get the basics in place and handle the "make check" regression tests
we already have.
Follow-up work will be fleshing out the details and adding more robust test
cases for the individual instructions, starting with ARM mode and moving from
there into Thumb and Thumb2.
llvm-svn: 136845
|
| |
|
|
| |
llvm-svn: 136367
|
| |
|
|
|
|
|
|
|
| |
This can happen in cases where TableGen generated asm matcher cannot check
whether a register operand is in the right register class. e.g. mem operands.
rdar://8204588
llvm-svn: 136292
|
| |
|
|
|
|
|
|
|
| |
Encode the width operand as it encodes in the instruction, which simplifies
the disassembler and the encoder, by using the imm1_32 operand def. Add a
diagnostic for the context-sensitive constraint that the width must be in
the range [1,32-lsb].
llvm-svn: 136264
|
| |
|
|
|
|
|
|
| |
Start of cleaning this up a bit. First step is to remove the encoder hook by
storing the operand as the bits it'll actually encode to so it can just be
directly used. Map it to the assembly source values 8/16/24 when we print it.
llvm-svn: 136152
|
|
|
llvm-svn: 135825
|