| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
superclass variable is instantiated properly.
llvm-svn: 129713
|
|
|
|
|
|
|
|
|
|
| |
also fix the encoding of the later.
- Add a new encoding bit to describe the index mode used in AM3.
- Teach printAddrMode3Operand to check by the addressing mode which
index mode to print.
- Testcases.
llvm-svn: 128832
|
|
|
|
| |
llvm-svn: 128692
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all LDR/STR changes and left them to a future patch. Passing all
checks now.
- Implement asm parsing support for LDRT, LDRBT, STRT, STRBT and
fix the encoding wherever is possible.
- Add a new encoding bit to describe the index mode used and teach
printAddrMode2Operand to check by the addressing mode which index
mode to print.
- Testcases
llvm-svn: 128689
|
|
|
|
| |
llvm-svn: 128635
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement asm parsing support for LDRT, LDRBT, STRT, STRBT and
{STR,LDC}{2}_{PRE,POST} fixing the encoding wherever is possible.
- Move all instructions which use am2offset without a pattern to use
addrmode2.
- Add a new encoding bit to describe the index mode used and teach
printAddrMode2Operand to check by the addressing mode which index
mode to print.
- Testcases
llvm-svn: 128632
|
|
|
|
|
|
| |
This revision introduced a dependency cycle, as nlewycky mentioned by email.
llvm-svn: 128597
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
{STR,LDC}{2}_PRE.
- Fixed the encoding in some places.
- Some of those instructions were using am2offset and now use addrmode2.
Codegen isn't affected, instructions which use SelectAddrMode2Offset were not
touched.
- Teach printAddrMode2Operand to check by the addressing mode which index
mode to print.
- This is a work in progress, more work to come. The idea is to change places
which use am2offset to use addrmode2 instead, as to unify assembly parser.
- Add testcases for assembly parser
llvm-svn: 128585
|
|
|
|
| |
llvm-svn: 128244
|
|
|
|
| |
llvm-svn: 128236
|
|
|
|
|
|
| |
basic instructions like ADD. More work left to be done to support other instances of shifter ops in the ISA.
llvm-svn: 127917
|
|
|
|
| |
llvm-svn: 126004
|
|
|
|
| |
llvm-svn: 125949
|
|
|
|
|
|
| |
testcases for the disassembler to make sure it still works for "msr".
llvm-svn: 125948
|
|
|
|
|
|
| |
assert.
llvm-svn: 125521
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add custom operand matching for imod and iflags.
- Rename SplitMnemonicAndCC to SplitMnemonic since it splits more than CC
from mnemonic.
- While adding ".w" as an operand, don't change "Head" to avoid passing the
wrong mnemonic to ParseOperand.
- Add asm parser tests.
- Add disassembler tests just to make sure it can catch all cps versions.
llvm-svn: 125489
|
|
|
|
|
|
|
|
|
|
|
| |
Teach the AsmMatcher handling to distinguish between an error custom-parsing
an operand and a failure to match. The former should propogate the error
upwards, while the latter should continue attempting to parse with
alternative matchers.
Update the ARM asm parser accordingly.
llvm-svn: 125426
|
|
|
|
| |
llvm-svn: 125055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parsing of operands introduced in r125030. As a small note, besides using a more
generic approach we can also have more descriptive output when debugging
llvm-mc, example:
mcr p7, #1, r5, c1, c1, #4
note: parsed instruction:
['mcr', <ARMCC::al>,
<coprocessor number: 7>,
1,
<register 73>,
<coprocessor register: 1>,
<coprocessor register: 1>,
4]
llvm-svn: 125052
|
|
|
|
|
|
| |
custom conversion functions).
llvm-svn: 124872
|
|
|
|
| |
llvm-svn: 124819
|
|
|
|
|
|
| |
only .syntax unified is supported.
llvm-svn: 124454
|
|
|
|
|
|
| |
Create override of this method in X86/ARM/MBlaze.
llvm-svn: 124378
|
|
|
|
| |
llvm-svn: 123936
|
|
|
|
| |
llvm-svn: 123929
|
|
|
|
|
|
|
|
|
|
| |
same operands can be present
in cdp/cdp2 instructions. Also increase the hack with cdp/cdp2 instructions.
- Fix the encoding of cdp/cdp2 instructions for ARM (no thumb and thumb2 yet) and add testcases for t
hem.
llvm-svn: 123927
|
|
|
|
| |
llvm-svn: 123917
|
|
|
|
| |
llvm-svn: 123776
|
|
|
|
|
|
| |
thumb mode.
llvm-svn: 123772
|
|
|
|
| |
llvm-svn: 123746
|
|
|
|
| |
llvm-svn: 123745
|
|
|
|
| |
llvm-svn: 123744
|
|
|
|
| |
llvm-svn: 123740
|
|
|
|
| |
llvm-svn: 123739
|
|
|
|
|
|
|
|
| |
if used but not present), and simplify logic.
Also, clean up various non-sensicalisms in isMemModeRegThumb() and isMemModeImmThumb().
llvm-svn: 123738
|
|
|
|
| |
llvm-svn: 123737
|
|
|
|
| |
llvm-svn: 123736
|
|
|
|
|
|
| |
Fixes <rdar://problem/8857982>.
llvm-svn: 123409
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
requires supporting
the symbolic immediate names used for these instructions, fixing their pretty-printers, and
adding proper encoding information for them.
With this, we can properly pretty-print and encode assembly like:
mrc p15, #0, r3, c13, c0, #3
Fixes <rdar://problem/8857858>.
llvm-svn: 123404
|
|
|
|
|
|
| |
directional local labels like 1f and 2b.
llvm-svn: 123393
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
.code 32 if the TargetMachine's isThumb() boolean does not match. The correct
fix is to switch ARM subtargets at that point and is tracked by rdar://8856789
which is bigger task.
llvm-svn: 123353
|
|
|
|
| |
llvm-svn: 123350
|
|
|
|
|
|
| |
enum values we give to them. <rdar://problem/8823730>
llvm-svn: 123321
|
|
|
|
|
|
| |
.s Test added.
llvm-svn: 123292
|
|
|
|
| |
llvm-svn: 123276
|
|
|
|
| |
llvm-svn: 123253
|
|
|
|
|
|
| |
predication code operands based on the "canonical mnemonic".
llvm-svn: 123239
|
|
|
|
|
|
|
|
|
|
| |
carry setting flag from the mnemonic.
Note that this currently involves me disabling a number of working cases in
arm_instructions.s, this is a hopefully short term evil which will be rapidly
fixed (and greatly surpassed), assuming my current approach flies.
llvm-svn: 123238
|
|
|
|
| |
llvm-svn: 123189
|