Colin LeMahieu
cdf9553102
[Hexagon] Adding functionality for duplexing. Duplexing is a way to compress commonly used pairs of instructions in order to reduce code size. The test case duplex.ll normally would be 8 bytes, assign register to 0 and jump to link register. After duplexing this is only 4 bytes. This also tests the HexagonMCShuffler code path which is used to make sure duplexed instructions still follow slot requirements.
...
llvm-svn: 239095
2015-06-04 21:16:16 +00:00
Colin LeMahieu
084c4d499d
[Hexagon] Disassembling, printing, and emitting instructions a whole-bundle at a time which is the semantic unit for Hexagon. Fixing tests to use the new format. Disabling tests in the direct object emission path for a followup patch.
...
llvm-svn: 238556
2015-05-29 14:44:13 +00:00
Jim Grosbach
b635db1046
MC: Modernize MCOperand API naming. NFC.
...
MCOperand::Create*() methods renamed to MCOperand::create*().
llvm-svn: 237275
2015-05-13 18:37:00 +00:00
Colin LeMahieu
2397babc56
[Hexagon] Moving remaining methods off of HexagonMCInst in to HexagonMCInstrInfo and eliminating HexagonMCInst class.
...
llvm-svn: 229914
2015-02-19 21:10:50 +00:00
Colin LeMahieu
350f7188f4
[Hexagon] Adding vector load with post-increment instructions. Adding decoder function for 64bit control register class.
...
llvm-svn: 228708
2015-02-10 16:59:36 +00:00
Chandler Carruth
0b619fcc8e
[cleanup] Re-sort all the #include lines in LLVM using
...
utils/sort_includes.py.
I clearly haven't done this in a while, so more changed than usual. This
even uncovered a missing include from the InstrProf library that I've
added. No functionality changed here, just mechanical cleanup of the
include order.
llvm-svn: 225974
2015-01-14 11:23:27 +00:00
Colin LeMahieu
286196b24f
[Hexagon] Adding deallocframe and circular addressing loads.
...
llvm-svn: 224869
2014-12-26 20:30:58 +00:00
Colin LeMahieu
16013f08b8
[Hexagon] Adding transfers to and from control registers.
...
llvm-svn: 224599
2014-12-19 19:06:32 +00:00
Colin LeMahieu
5f7eada35a
[Hexagon] Adding DoubleRegs decoder. Moving C2_mux and A2_nop. Adding combine imm-imm form.
...
llvm-svn: 223494
2014-12-05 18:24:06 +00:00
Colin LeMahieu
a0eacebee5
[Hexagon] Marking some instructions as CodeGenOnly=0 and adding disassembly tests.
...
llvm-svn: 223334
2014-12-04 03:41:21 +00:00
Colin LeMahieu
f7ca7f6c70
[Hexagon] Converting from ADD_rr to A2_add which has encoding bits.
...
Adding test to show correct instruction selection and encoding.
llvm-svn: 222249
2014-11-18 20:28:11 +00:00
Rafael Espindola
10f65de3be
Pass an ArrayRef to MCDisassembler::getInstruction.
...
With this patch MCDisassembler::getInstruction takes an ArrayRef<uint8_t>
instead of a MemoryObject.
Even on X86 there is a maximum size an instruction can have. Given
that, it seems way simpler and more efficient to just pass an ArrayRef
to the disassembler instead of a MemoryObject and have it do a virtual
call every time it wants some extra bytes.
llvm-svn: 221751
2014-11-12 02:04:27 +00:00
Rafael Espindola
8cb53479d4
Misc style fixes. NFC.
...
This fixes a few cases of:
* Wrong variable name style.
* Lines longer than 80 columns.
* Repeated names in comments.
* clang-format of the above.
This make the next patch a lot easier to read.
llvm-svn: 221615
2014-11-10 18:11:10 +00:00
Colin LeMahieu
f34b00f529
[Hexagon] Reverting 220584 to address ASAN errors.
...
llvm-svn: 221210
2014-11-04 00:14:36 +00:00
NAKAMURA Takumi
a1ef3346aa
Prune CRLF.
...
llvm-svn: 220678
2014-10-27 12:37:26 +00:00
Colin LeMahieu
a5b4b06680
[Hexagon] Resubmission of 220427
...
Modified library structure to deal with circular dependency between HexagonInstPrinter and HexagonMCInst.
Adding encoding bits for add opcode.
Adding llvm-mc tests.
Removing unit tests.
http://reviews.llvm.org/D5624
llvm-svn: 220584
2014-10-24 19:00:32 +00:00
NAKAMURA Takumi
d8b493b106
Revert r220427, "[Hexagon] Adding encoding bits for add opcode."
...
It brought cyclic dependecy between HexagonAsmPrinter and HexagonDesc.
llvm-svn: 220478
2014-10-23 11:31:22 +00:00
Colin LeMahieu
88461f5b7a
[Hexagon] Adding encoding bits for add opcode.
...
Adding llvm-mc tests.
Removing unit tests.
http://reviews.llvm.org/D5624
llvm-svn: 220427
2014-10-22 20:58:35 +00:00
Hans Wennborg
dbfab2bba5
Fix VS2012 build; C++11 type aliases are not supported.
...
llvm-svn: 220399
2014-10-22 17:47:49 +00:00
Colin LeMahieu
f359444940
Ammending 220393 - Removing unused decoding tables.
...
llvm-svn: 220397
2014-10-22 17:23:01 +00:00
Colin LeMahieu
05568816b4
Ammending 220393 - Removing unused functions.
...
llvm-svn: 220396
2014-10-22 17:03:19 +00:00
Colin LeMahieu
f6f8bdf091
[Hexagon] Adding basic disassembler.
...
Marking all instructions as CodeGenOnly since encoding bits are not set yet.
http://reviews.llvm.org/D5829?vs=on&id=15023&whitespace=ignore-all#toc
llvm-svn: 220393
2014-10-22 16:49:14 +00:00