History log of /llvm-project/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (Results 376 – 396 of 396)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 9363d41f 09-Mar-2011 Johnny Chen <johnny.chen@apple.com>

LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.
The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16. Add extra logic to recover from that

LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.
The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16. Add extra logic to recover from that.

Fixed an assert reported by Sean Callanan

llvm-svn: 127354

show more ...


Revision tags: llvmorg-2.9.0-rc1
# 4ebf471c 08-Feb-2011 Owen Anderson <resistor@mac.com>

Revert both r121082 (which broke a bunch of constant pool stuff) and r125074 (which worked around it). This should get us back to the old, correct behavior, though it will make the integrated assemb

Revert both r121082 (which broke a bunch of constant pool stuff) and r125074 (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

show more ...


# 99ea8a35 07-Dec-2010 Owen Anderson <resistor@mac.com>

Second attempt at converting Thumb2's LDRpci, including updating the gazillion places that need to know about it.

llvm-svn: 121082


# 943fb60b 01-Dec-2010 Owen Anderson <resistor@mac.com>

Add correct encodings for STRD and LDRD, including fixup support. Additionally, update these to unified syntax.

llvm-svn: 120589


# 8335e8fa 30-Nov-2010 Owen Anderson <resistor@mac.com>

Simplify the encoding of reg+/-imm12 values that allow PC-relative encoding. This allows the
Thumb2 encoding to share code with the ARM encoding, which gets use fixup support for free.
It also allow

Simplify the encoding of reg+/-imm12 values that allow PC-relative encoding. This allows the
Thumb2 encoding to share code with the ARM encoding, which gets use fixup support for free.
It also allows us to fold away at least one codegen-only pattern.

llvm-svn: 120481

show more ...


# 6f360425 03-Nov-2010 Evan Cheng <evan.cheng@apple.com>

Add support to match @llvm.prefetch to pld / pldw / pli. rdar://8601536.

llvm-svn: 118152


# d100ed85 13-Oct-2010 Jim Grosbach <grosbach@apple.com>

Detabify and clean up 80 column violations.

llvm-svn: 116454


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3
# 3da4255d 28-Sep-2010 Oscar Fuentes <ofv@wanadoo.es>

Add ARM Disassembler to the CMake build.

llvm-svn: 114949


Revision tags: llvmorg-2.8.0-rc2
# 7a23aa08 08-Sep-2010 NAKAMURA Takumi <geek4civic@gmail.com>

ARM/Disassembler: Fix definitions incompatible(unsigned and uint32_t) to Cygwin-1.5, following up to r113255.

llvm-svn: 113345


Revision tags: llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0
# 74491bb5 12-Aug-2010 Johnny Chen <johnny.chen@apple.com>

The autogened decoder was confusing the ARM STRBT for ARM USAT, because the .td
entry for ARM STRBT is actually a super-instruction for A8.6.199 STRBT A1 & A2.
Recover by looking for ARM:USAT encodin

The autogened decoder was confusing the ARM STRBT for ARM USAT, because the .td
entry for ARM STRBT is actually a super-instruction for A8.6.199 STRBT A1 & A2.
Recover by looking for ARM:USAT encoding pattern before delegating to the auto-
gened decoder.

Added a "usat" test case to arm-tests.txt.

llvm-svn: 110894

show more ...


# add51311 11-Aug-2010 Bob Wilson <bob.wilson@apple.com>

Move the ARM SSAT and USAT optional shift amount operand out of the
instruction opcode. This also fixes part of PR7792.

llvm-svn: 110875


Revision tags: llvmorg-2.7.0
# 7be315c4 20-Apr-2010 Johnny Chen <johnny.chen@apple.com>

For t2LDRT, t2LDRBT, t2LDRHT, t2LDRSBT, and t2LDRSHT, if Rn(Inst{19-16})=='1111',
transform the Opcode to the corresponding t2LDR*pci counterpart.

Ref: A8.6.86 LDRT, A8.6.65 LDRBT, A8.6.77 LDRHT, A8

For t2LDRT, t2LDRBT, t2LDRHT, t2LDRSBT, and t2LDRSHT, if Rn(Inst{19-16})=='1111',
transform the Opcode to the corresponding t2LDR*pci counterpart.

Ref: A8.6.86 LDRT, A8.6.65 LDRBT, A8.6.77 LDRHT, A8.6.81 LDRSBT, A8.6.85 LDRSHT
llvm-svn: 101915

show more ...


# f3dd8b94 20-Apr-2010 Johnny Chen <johnny.chen@apple.com>

More IT instruction error-handling improvements from fuzzing.

llvm-svn: 101839


# e62b6809 19-Apr-2010 Johnny Chen <johnny.chen@apple.com>

Better error handling of invalid IT mask '0000', instead of just asserting.

llvm-svn: 101827


# ed9bee15 16-Apr-2010 Johnny Chen <johnny.chen@apple.com>

Fixed logic error. Should check Builder for validity before calling SetSession
on it.

llvm-svn: 101563


# 76378270 14-Apr-2010 Johnny Chen <johnny.chen@apple.com>

Fixed another assert exposed by fuzzing. The utility function getRegisterEnum()
was asserting because the (RegClass, RegNum) combination doesn't make sense from
an encoding point of view.

Since get

Fixed another assert exposed by fuzzing. The utility function getRegisterEnum()
was asserting because the (RegClass, RegNum) combination doesn't make sense from
an encoding point of view.

Since getRegisterEnum() is used all over the place, to change the code to check
for encoding error after each call would not only bloat the code, but also make
it less readable. An Err flag is added to the ARMBasicMCBuilder where a client
can set a non-zero value to indicate some kind of error condition while building
up the MCInst. ARMBasicMCBuilder::BuildIt() checks this flag and returns false
if a non-zero value is detected.

llvm-svn: 101290

show more ...


# 814e69b1 13-Apr-2010 Sean Callanan <scallanan@apple.com>

Fixed a nasty layering violation in the edis source
code. It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it us

Fixed a nasty layering violation in the edis source
code. It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.

Also removed hacky #define-controlled initialization
of targets in edis. If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.

llvm-svn: 101179

show more ...


# dacfd2c6 05-Apr-2010 Johnny Chen <johnny.chen@apple.com>

Get rid of traling whitespaces. No functionality change.

llvm-svn: 100404


# dba13e79 05-Apr-2010 Johnny Chen <johnny.chen@apple.com>

The disassembler impl. of MCDisassembler::getInstruction() was using the pattern
uint32_t insn;
MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL)

to read 4 bytes of memory contents into

The disassembler impl. of MCDisassembler::getInstruction() was using the pattern
uint32_t insn;
MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL)

to read 4 bytes of memory contents into a 32-bit uint variable. This leaves the
interpretation of byte order up to the host machine and causes PPC test cases of
arm-tests, neon-tests, and thumb-tests to fail. Fixed to use a byte array for
reading the memory contents and shift the bytes into place for the 32-bit uint
variable in the ARM case and 16-bit halfword in the Thumb case.

llvm-svn: 100403

show more ...


# 7b999ea7 02-Apr-2010 Johnny Chen <johnny.chen@apple.com>

Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen
backend (ARMDecoderEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invok

Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen
backend (ARMDecoderEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.

Reviewed by Chris Latter and Bob Wilson.

llvm-svn: 100233

show more ...


# 3d9327bd 16-Mar-2010 Johnny Chen <johnny.chen@apple.com>

Initial ARM/Thumb disassembler check-in. It consists of a tablgen backend
(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the d

Initial ARM/Thumb disassembler check-in. It consists of a tablgen backend
(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.

Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
instructions to help disassembly.

We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60.

And modified test cases to not expect '+' in +reg or #+num. For example,

; CHECK: ldr.w r9, [r7, #28]

llvm-svn: 98637

show more ...


1...<<111213141516