History log of /llvm-project/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (Results 151 – 175 of 396)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 33089095 19-Sep-2013 Amara Emerson <amara.emerson@arm.com>

[ARMv8] Add support for the v8 cryptography extensions.

llvm-svn: 190996


# c34bf73e 06-Aug-2013 Mihai Popa <mihail.popa@gmail.com>

This corrects creation of operands for t2PLDW. It also removes the definition of t2PLDWpci,
as pldw does not have a literal variant (i.e. pc relative version)

llvm-svn: 187804


# df68600f 17-Jul-2013 Joey Gouly <joey.gouly@arm.com>

[ARMv8] Add support for the NEON instructions vmaxnm/vminnm.

This adds a new class for non-predicable NEON instructions and a
new DecoderNamespace for v8 NEON instructions.

llvm-svn: 186504


Revision tags: llvmorg-3.3.1-rc1
# 18ce7e47 04-Jul-2013 Joey Gouly <joey.gouly@arm.com>

Remove an unneeded call to 'UpdateThumbVFPPredicate', spotted by Amaury.

llvm-svn: 185651


# cc4ff9e9 04-Jul-2013 Joey Gouly <joey.gouly@arm.com>

Add support for MC assembling and disassembling of vsel{ge, gt, eq, vs} instructions.

This adds a new decoder table/namespace 'VFPV8', as these instructions have their
top 4 bits as 0b1111, while ot

Add support for MC assembling and disassembling of vsel{ge, gt, eq, vs} instructions.

This adds a new decoder table/namespace 'VFPV8', as these instructions have their
top 4 bits as 0b1111, while other Thumb instructions have 0b1110.

llvm-svn: 185642

show more ...


# 8449c0d5 24-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: check predicate bits for thumb instructions

When encoded to thumb, VFP instruction and VMOV/VDUP between scalar and
core registers, must have their predicate bit to 0b1110.

llvm-svn: 184707


# 8175bda3 24-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: rGPR is meant to be unpredictable, not undefined

llvm-svn: 184706


# 2f0ac8d9 24-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix IT decoding

mask == 0 -> UNPRED

llvm-svn: 184702


# 4b6c076d 24-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: enable decoding of pc-relative PLD/PLI

llvm-svn: 184701


# 4d3e3f27 18-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix thumb literal loads decoding

This fixes two previous issues:
- Negative offsets were not correctly disassembled
- The decoded opcodes were not the right one

llvm-svn: 184180


# e2bb1d15 18-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: thumb stores cannot use PC as dest register

llvm-svn: 184179


# bd2b610e 13-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix B decoding

llvm-svn: 183914


# 064546cb 11-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: Enforce decoding rules for VLDn instructions

llvm-svn: 183731


# 53ff029d 11-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: Fix STREX/LDREX reecoding

The decoded MCInst wasn't reencoded as the same instruction

llvm-svn: 183729


# 43cb13a5 10-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: ISB cannot be passed the same options as DMB

ISB should only accepts full system sync, other options are reserved

llvm-svn: 183656


# f4ec0c85 08-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix VMOVvnf32 decoding when ambiguous with VCVT

Enforce Table A7-15 (op=1, cmode=0b111) -> UNDEF

llvm-svn: 183612


# 68bcd021 08-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: enforce SRS decoding constraints

llvm-svn: 183611


# 631df63e 08-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix CPS decoding when ambiguous with QADD

Handle the case when the disassembler table can't tell
the difference between some encodings of QADD and CPS.

Add some necessary safe guards in CPS de

ARM: fix CPS decoding when ambiguous with QADD

Handle the case when the disassembler table can't tell
the difference between some encodings of QADD and CPS.

Add some necessary safe guards in CPS decoding as well.

llvm-svn: 183610

show more ...


# ea7bb570 08-Jun-2013 Amaury de la Vieuville <amaury.dlv@gmail.com>

ARM: fix VCVT decoding

UNPRED was reported instead of UNDEF

llvm-svn: 183608


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3
# 4173e29a 31-May-2013 Tim Northover <tnorthover@apple.com>

ARM: add fstmx and fldmx instructions for assembly

These instructions are deprecated oddities, but we still need to be able to
disassemble (and reassemble) them if and when they're encountered.

Pat

ARM: add fstmx and fldmx instructions for assembly

These instructions are deprecated oddities, but we still need to be able to
disassemble (and reassemble) them if and when they're encountered.

Patch by Amaury de la Vieuville.

llvm-svn: 183011

show more ...


# df1ecbd7 24-May-2013 Michael J. Spencer <bigcheesegs@gmail.com>

Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros.

llvm-svn: 182680


# 534d3a46 24-May-2013 Benjamin Kramer <benny.kra@googlemail.com>

Remove the Copied parameter from MemoryObject::readBytes.

There was exactly one caller using this API right, the others were relying on
specific behavior of the default implementation. Since it's to

Remove the Copied parameter from MemoryObject::readBytes.

There was exactly one caller using this API right, the others were relying on
specific behavior of the default implementation. Since it's too hard to use it
right just remove it and standardize on the default behavior.

Defines away PR16132.

llvm-svn: 182636

show more ...


# ad1084de 24-May-2013 Ahmed Bougacha <ahmed.bougacha@gmail.com>

Add MCSymbolizer for symbolic/annotated disassembly.

This is a basic first step towards symbolization of disassembled
instructions. This used to be done using externally provided (C API)
callbacks.

Add MCSymbolizer for symbolic/annotated disassembly.

This is a basic first step towards symbolization of disassembled
instructions. This used to be done using externally provided (C API)
callbacks. This patch introduces:
- the MCSymbolizer class, that mimics the same functions that were used
in the X86 and ARM disassemblers to symbolize immediate operands and
to annotate loads based off PC (for things like c string literals).
- the MCExternalSymbolizer class, which implements the old C API.
- the MCRelocationInfo class, which provides a way for targets to
translate relocations (either object::RelocationRef, or disassembler
C API VariantKinds) to MCExprs.
- the MCObjectSymbolizer class, which does symbolization using what it
finds in an object::ObjectFile. This makes simple symbolization (with
no fancy relocation stuff) work for all object formats!
- x86-64 Mach-O and ELF MCRelocationInfos.
- A basic ARM Mach-O MCRelocationInfo, that provides just enough to
support the C API VariantKinds.

Most of what works in otool (the only user of the old symbolization API
that I know of) for x86-64 symbolic disassembly (-tvV) works, namely:
- symbol references: call _foo; jmp 15 <_foo+50>
- relocations: call _foo-_bar; call _foo-4
- __cf?string: leaq 193(%rip), %rax ## literal pool for "hello"
Stub support is the main missing part (because libObject doesn't know,
among other things, about mach-o indirect symbols).

As for the MCSymbolizer API, instead of relying on the disassemblers
to call the tryAdding* methods, maybe this could be done automagically
using InstrInfo? For instance, even though PC-relative LEAs are used
to get the address of string literals in a typical Mach-O file, a MOV
would be used in an ELF file. And right now, the explicit symbolization
only recognizes PC-relative LEAs. InstrInfo should have already have
most of what is needed to know what to symbolize, so this can
definitely be improved.

I'd also like to remove object::RelocationRef::getValueString (it seems
only used by relocation printing in objdump), as simply printing the
created MCExpr is definitely enough (and cleaner than string concats).

llvm-svn: 182625

show more ...


Revision tags: llvmorg-3.3.0-rc2
# f41e3f56 20-May-2013 Mihai Popa <mihail.popa@gmail.com>

VSTn instructions have a number of encoding constraints which are not implemented. I have added these using wrapper methods around the original custom decoder (incidentally - this is a huge poorly wr

VSTn instructions have a number of encoding constraints which are not implemented. I have added these using wrapper methods around the original custom decoder (incidentally - this is a huge poorly written method that should be cleaned up. I have left it as is since the changes would be much to hard to review).

llvm-svn: 182281

show more ...


# dcf09227 20-May-2013 Mihai Popa <mihail.popa@gmail.com>

Q registers are encoded in fields of the same length as D registers. As Q registers are half as many, the ARM reference manual mandates the least significant bit to be zeroed out. Failure to do so sh

Q registers are encoded in fields of the same length as D registers. As Q registers are half as many, the ARM reference manual mandates the least significant bit to be zeroed out. Failure to do so should result in an undefined instruction. With this change test/MC/Disassembler/ARM/invalid-VQADD-arm.txt is passing (removed XFAIL).

llvm-svn: 182279

show more ...


12345678910>>...16