| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 135825
|
|
|
|
|
|
|
|
|
| |
The immediate is in the range 1-32, but is encoded as 0-31 in a 5-bit bitfield.
Update the representation such that we store the operand as 0-31, allowing us
to remove the encoder method and the special case handling in the disassembler.
Update the assembly parser and the instruction printer accordingly.
llvm-svn: 135823
|
|
|
|
|
|
| |
necessitates a lot of changes to related bits.
llvm-svn: 135722
|
|
|
|
|
|
| |
ARM MC code from target.
llvm-svn: 135636
|
|
|
|
|
|
| |
registeration and creation code into XXXMCDesc libraries.
llvm-svn: 135184
|
|
|
|
|
|
| |
an opcode. Switch ARM over to using that rather than its own special MCInstrDesc bits.
llvm-svn: 135106
|
|
|
|
| |
llvm-svn: 134922
|
|
|
|
|
|
|
|
|
|
|
|
| |
and MCSubtargetInfo.
- Added methods to update subtarget features (used when targets automatically
detect subtarget features or switch modes).
- Teach X86Subtarget to update MCSubtargetInfo features bits since the
MCSubtargetInfo layer can be shared with other modules.
- These fixes .code 16 / .code 32 support since mode switch is updated in
MCSubtargetInfo so MC code emitter can do the right thing.
llvm-svn: 134884
|
|
|
|
|
|
|
|
| |
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021
|
|
|
|
|
|
|
| |
must be encoded decremented by one. Only add encoding tests for ssat16
because ssat can't be parsed yet.
llvm-svn: 132324
|
|
|
|
|
|
| |
lane) for size 32
llvm-svn: 131085
|
|
|
|
|
|
|
|
| |
expand the testing of the narrowing shift right instructions.
No functionality change.
llvm-svn: 127193
|
|
|
|
|
|
|
|
|
|
| |
shift.
16-bit: imm6<5:3> = '001', 8 - <imm> is encded in imm6<2:0>
32-bit: imm6<5:4> = '01',16 - <imm> is encded in imm6<3:0>
64-bit: imm6<5> = '1', 32 - <imm> is encded in imm6<4:0>
llvm-svn: 126723
|
|
|
|
|
|
| |
(which worked around it). This should get us back to the old, correct behavior, though it will make the integrated assembler unhappy for the time being.
llvm-svn: 125127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(yes, this is different from R_ARM_CALL)
- Adds a new method getARMBranchTargetOpValue() which handles the
necessary distinction between the conditional and unconditional br/bl
needed for ARM/ELF
At least for ARM mode, the needed fixup for conditional versus unconditional
br/bl is identical, but the ARM docs and existing ARM tools expect this
reloc type...
Added a few FIXME's for future naming fixups in ARMInstrInfo.td
llvm-svn: 124895
|
|
|
|
|
|
| |
instruction
llvm-svn: 123770
|
|
|
|
|
|
|
|
| |
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.
llvm-svn: 123424
|
|
|
|
|
|
|
|
| |
in the right direction. It eliminated some hacks and will unblock codegen
work. But it's far from being done. It doesn't reject illegal expressions,
e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all.
llvm-svn: 123369
|
|
|
|
|
|
| |
of the switch block to appease GCC.
llvm-svn: 123317
|
|
|
|
| |
llvm-svn: 123297
|
|
|
|
|
|
|
|
| |
R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC.
2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum.
3. Add support for 3 new elf section types (no-ops)
llvm-svn: 123294
|
|
|
|
|
|
|
| |
the MCCodeEmitter, which seems like a better organization.
- Also, cleaned up some magic constants while in the area.
llvm-svn: 121953
|
|
|
|
|
|
| |
(see PR4579).
llvm-svn: 121939
|
|
|
|
|
|
| |
it. I.e., it was always an immediate value.
llvm-svn: 121932
|
|
|
|
|
|
| |
need to use tLDRi and tSTRi instead of tLDRspi and tSTRspi respectively.
llvm-svn: 121915
|
|
|
|
| |
llvm-svn: 121875
|
|
|
|
| |
llvm-svn: 121858
|
|
|
|
| |
llvm-svn: 121812
|
|
|
|
| |
llvm-svn: 121798
|
|
|
|
| |
llvm-svn: 121772
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instruction based on the t_addrmode_s# mode and what it returned. There is some
obvious badness to this. In particular, it's hard to do MC-encoding when the
instruction may change out from underneath you after the t_addrmode_s# variable
is finally resolved.
The solution is to revert a long-ago change that merged the reg/reg and reg/imm
versions. There is the addition of several new addressing modes. They no longer
have extraneous operands associated with them. I.e., if it's reg/reg we don't
have to have a dummy zero immediate tacked on to the SDNode.
There are some obvious cleanups here, which will happen shortly.
llvm-svn: 121747
|
|
|
|
|
|
|
|
| |
much later, which makes the entire
process cleaner.
llvm-svn: 121735
|
|
|
|
| |
llvm-svn: 121726
|
|
|
|
|
|
|
|
| |
Provide correct fixups for Thumb2 ADR,
which is _of course_ different from ARM ADR fixups, or any other Thumb2 fixup.
llvm-svn: 121721
|
|
|
|
|
|
|
|
|
|
| |
branch with a null predicate, or
as a "long" direct branch. While the mnemonics are the same, they encode the branch offset differently, and
the Darwin assembler appears to prefer the "long" form for direct branches. Thus, in the name of bitwise
equivalence, provide encoding and fixup support for it.
llvm-svn: 121710
|
|
|
|
| |
llvm-svn: 121598
|
|
|
|
| |
llvm-svn: 121593
|
|
|
|
| |
llvm-svn: 121588
|
|
|
|
| |
llvm-svn: 121587
|
|
|
|
|
|
| |
declared. Add a note specifying this and spruce up the list a bit.
llvm-svn: 121586
|
|
|
|
| |
llvm-svn: 121581
|
|
|
|
| |
llvm-svn: 121580
|
|
|
|
| |
llvm-svn: 121524
|
|
|
|
| |
llvm-svn: 121496
|
|
|
|
| |
llvm-svn: 121493
|
|
|
|
|
|
|
| |
t_addrmode_s# address modes is used for ASM printing, not for encoding.
<rdar://problem/8745375>
llvm-svn: 121417
|
|
|
|
|
|
|
|
| |
branches. This is still not perfect,
but it gets many more of them correct than it did previously.
llvm-svn: 121414
|
|
|
|
|
|
|
|
|
|
| |
be 4-byte aligned when calculating
the offset. Add a new fixup flag to represent this, and use it for the one fixups that I have a testcase for needing
this. It's quite likely that the other Thumb fixups will need this too, and to have their fixup encoding logic
adjusted accordingly.
llvm-svn: 121408
|
|
|
|
| |
llvm-svn: 121404
|
|
|
|
| |
llvm-svn: 121399
|