| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
rdar://problem/9186136
llvm-svn: 128283
|
| |
|
|
|
|
|
| |
Yet another case of unchecked NULL node (for physreg copy).
May fix PR9509.
llvm-svn: 128266
|
| |
|
|
|
|
| |
compliance.
llvm-svn: 128257
|
| |
|
|
|
|
| |
printing a single character.
llvm-svn: 128256
|
| |
|
|
|
|
|
|
|
| |
Add an assertion to linear scan to prevent it from allocating registers outside
the register class.
<rdar://problem/9183021>
llvm-svn: 128254
|
| |
|
|
|
|
|
|
| |
register classes were changed),
modify the comment to be up-to-date, and add a test case for A8.6.66 LDRD (immediate) Encoding T1.
llvm-svn: 128252
|
| |
|
|
| |
llvm-svn: 128244
|
| |
|
|
| |
llvm-svn: 128243
|
| |
|
|
| |
llvm-svn: 128241
|
| |
|
|
|
|
|
| |
These instructions were changed to not embed the addressing mode within the MC instructions
We also need to update the corresponding assert stmt. Also add a test case.
llvm-svn: 128240
|
| |
|
|
| |
llvm-svn: 128238
|
| |
|
|
| |
llvm-svn: 128236
|
| |
|
|
|
|
|
|
|
| |
was fooled.
Set the encoding bits to {0,?,?,0}, not 0. Plus delegate the disassembly of ADR to
the more generic ADDri/SUBri instructions, and add a test case for that.
llvm-svn: 128234
|
| |
|
|
|
|
|
|
| |
r119613.
A better approach would be to move source id handling inside MC.
llvm-svn: 128233
|
| |
|
|
|
|
|
|
| |
The MC asm lexer wasn't honoring a non-default (anything but ';') statement
separator. Fix that, and generalize a bit to support multi-character
statement separators.
llvm-svn: 128227
|
| |
|
|
|
|
|
|
| |
ARMDisassemblerCore.cpp to disassemble the
VORRiv*i* instructions properly within the DisassembleN1RegModImmFrm() function. Add a test case.
llvm-svn: 128226
|
| |
|
|
|
|
|
|
| |
encoding,
a test case of invalid CPS3p encoding and one for invalid VLDMSDB due to regs out of range.
llvm-svn: 128220
|
| |
|
|
| |
llvm-svn: 128218
|
| |
|
|
|
|
| |
affect the generated code.
llvm-svn: 128217
|
| |
|
|
|
|
| |
void; it doesn't need to have a void type.
llvm-svn: 128212
|
| |
|
|
| |
llvm-svn: 128211
|
| |
|
|
|
| |
FIXME: Some cleanups would be needed.
llvm-svn: 128206
|
| |
|
|
|
|
|
|
|
|
|
|
| |
entries being compared may not be ARMConstantPoolValue. Without checking
whether they are ARMConstantPoolValue first, and if the stars and moons
are aligned properly, the equality test may return true (when the first few
words of two Constants' values happen to be identical) and very bad things can
happen.
rdar://9125354
llvm-svn: 128203
|
| |
|
|
| |
llvm-svn: 128199
|
| |
|
|
|
|
| |
void return type. This fixes PR9487.
llvm-svn: 128197
|
| |
|
|
| |
llvm-svn: 128196
|
| |
|
|
|
|
| |
use it later. I couldn't make a test that hits this with the current code.
llvm-svn: 128195
|
| |
|
|
| |
llvm-svn: 128194
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DisassembleMiscFrm() function.
Fixed rdar://problem/9179416 ARM disassembler crash: "Unknown imod operand" (fuzz testing)
Opcode=98 Name=CPS3p Format=ARM_FORMAT_MISCFRM(26)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 1: 1: 1| 0: 0: 0: 1| 0: 0: 0: 0| 0: 0: 1: 0| 0: 0: 0: 1| 1: 1: 0: 0| 1: 0: 0: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
Before:
cpsUnknown imod operand
UNREACHABLE executed at /Volumes/data/lldb/llvm/lib/Target/ARM/InstPrinter/../ARMBaseInfo.h:123!
After:
/Volumes/data/Radar/9179416/mc-input-arm.txt:1:1: warning: invalid instruction encoding
0x93 0x1c 0x2 0xf1
^
llvm-svn: 128192
|
| |
|
|
|
|
|
| |
These instructions were changed to not embed the addressing mode within the MC instructions
We also need to update the corresponding assert stmt. Also add two test cases.
llvm-svn: 128191
|
| |
|
|
|
|
|
|
| |
refactorings (r119821).
We now tag them as IndexModePost.
llvm-svn: 128189
|
| |
|
|
|
|
|
|
|
|
| |
instructions
were incomplete. The assert stmt needs to be updated and the operand index incrment is wrong.
Fix the bad logic and add some sanity checking to detect bad instruction encoding;
and add a test case.
llvm-svn: 128186
|
| |
|
|
| |
llvm-svn: 128184
|
| |
|
|
| |
llvm-svn: 128183
|
| |
|
|
|
|
| |
I'm backing this out for the second time. It was supposed to be fixed by r128164, but the mingw self-host must be defeating the fix.
llvm-svn: 128181
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
int tries = INT_MAX;
while (tries > 0) {
tries--;
}
The check should be:
subs r4, #1
cmp r4, #0
bgt LBB0_1
The subs can set the overflow V bit when r4 is INT_MAX+1 (which loop
canonicalization apparently does in this case). cmp #0 would have cleared
it while not changing the N and Z bits. Since BGT is dependent on the V
bit, i.e. (N == V) && !Z, it is not safe to eliminate the cmp #0.
rdar://9172742
llvm-svn: 128179
|
| |
|
|
|
|
| |
Also cleaning up some duplicated code while I'm here.
llvm-svn: 128176
|
| |
|
|
|
|
| |
(target-specific branchless method for double-width relational comparisons on x86)
llvm-svn: 128175
|
| |
|
|
| |
llvm-svn: 128173
|
| |
|
|
|
|
| |
This fixes 464.h264ref with the integrated assembler.
llvm-svn: 128172
|
| |
|
|
|
|
|
|
| |
The ExecutionEngine constructor already added the module, so there's no
need to call addModule() directly. Doing so causes a double-free of the
Module at program termination.
llvm-svn: 128171
|
| |
|
|
|
|
| |
BLX, rather than a 2-byte instruction like B.
llvm-svn: 128169
|
| |
|
|
|
|
|
|
|
| |
so the scheduler can't create new interferences on the copies
themselves. Prior to this fix the scheduler could get stuck in a loop
creating copies.
Fixes PR9509.
llvm-svn: 128164
|
| |
|
|
| |
llvm-svn: 128163
|
| |
|
|
| |
llvm-svn: 128161
|
| |
|
|
| |
llvm-svn: 128160
|
| |
|
|
|
|
|
|
| |
Each of these instructions may have a RegsClobberInsn entry that can't be
ignored. Consecutive ranges are coalesced later when DwarfDebug::emitDebugLoc
merges entries.
llvm-svn: 128155
|
| |
|
|
|
|
|
|
|
| |
- Fix bug in ADDRrr/ADDRri/ADDRii selection for 64-bit addresses
- Add comparison selection for i64
- Add zext selection for i32 -> i64
- Add shl/shr/sha support for i64
llvm-svn: 128153
|
| |
|
|
| |
llvm-svn: 128149
|
| |
|
|
|
|
| |
that were hit in practice.
llvm-svn: 128146
|