summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [Hexagon] Change iconst to emit 27bit relocationKrzysztof Parzyszek2017-05-021-4/+4
| | | | | | Patch by Colin LeMahieu. llvm-svn: 301956
* [Hexagon] Formatting changes, NFCKrzysztof Parzyszek2017-05-021-0/+6
| | | | llvm-svn: 301953
* [Hexagon] Remove unused validSubtarget TSFlagsKrzysztof Parzyszek2017-05-021-19/+0
| | | | | | Patch by Colin LeMahieu. llvm-svn: 301952
* [Hexagon] Add new packet iterator which will iterate through duplexesKrzysztof Parzyszek2017-05-021-8/+51
| | | | | | Patch by Colin LeMahieu. llvm-svn: 301945
* [Hexagon] Replace CVI_VM_CUR_LD type with CVI_VM_LDKrzysztof Parzyszek2017-05-011-0/+5
| | | | | | | | A .cur instruction can be identified by checking isCVINew() && mayLoad(). Patch by Colin LeMahieu. llvm-svn: 301829
* [Hexagon] Improve shuffle error reportingKrzysztof Parzyszek2017-05-011-3/+3
| | | | | | Patch by Colin LeMahieu. llvm-svn: 301823
* [Hexagon] Replace instruction definitions with auto-generated onesKrzysztof Parzyszek2017-02-101-17/+2
| | | | llvm-svn: 294753
* [Hexagon] Address ASAN and UBSAN failures after r294226Krzysztof Parzyszek2017-02-071-9/+7
| | | | | | Reinstate r294256 with a fix. llvm-svn: 294269
* Revert "[Hexagon] Address ASAN and UBSAN failures after r294226"Krzysztof Parzyszek2017-02-061-7/+9
| | | | | | | This reverts commit r294256. It seems to be causing more problems instead of solving them. llvm-svn: 294259
* [Hexagon] Address ASAN and UBSAN failures after r294226Krzysztof Parzyszek2017-02-061-9/+7
| | | | llvm-svn: 294256
* [Hexagon] Update MCTargetDescKrzysztof Parzyszek2017-02-061-129/+157
| | | | | | | | | | Changes include: - Updates to the instruction descriptor flags. - Improvements to the packet shuffler and checker. - Updates to the handling of certain relocations. - Better handling of duplex instructions. llvm-svn: 294226
* [Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructionsKrzysztof Parzyszek2017-02-021-9/+11
| | | | | | Patch by Colin LeMahieu. llvm-svn: 293933
* [Hexagon] Remove A4_ext_* pseudo instructionsKrzysztof Parzyszek2017-02-021-12/+6
| | | | | | Patch by Colin LeMahieu. llvm-svn: 293929
* [Hexagon] Rename TypeCOMPOUND to TypeCJKrzysztof Parzyszek2017-02-021-2/+2
| | | | llvm-svn: 293894
* [Hexagon] Adding change of flow max 1 (cofMax1) TS flag for marking this ↵Colin LeMahieu2016-10-081-0/+5
| | | | | | restriction rather than implying it from TypeJR. llvm-svn: 283665
* [Hexagon] NFC Removing 'V4_' prefix from duplex instruction names.Colin LeMahieu2016-10-071-52/+52
| | | | llvm-svn: 283514
* Use StringRef instead of raw pointers in MCAsmInfo/MCInstrInfo APIs (NFC)Mehdi Amini2016-10-011-1/+1
| | | | llvm-svn: 283018
* [Hexagon] Handle double-vector registers as new-value producersKrzysztof Parzyszek2016-04-281-0/+13
| | | | | | Patch by Colin LeMahieu. llvm-svn: 267897
* [Hexagon] Properly encode registers in duplex instructionsKrzysztof Parzyszek2016-03-211-0/+109
| | | | llvm-svn: 263980
* [Hexagon] Modifying r262258 to only be in effect in the hand assembler path, ↵Colin LeMahieu2016-03-011-14/+2
| | | | | | not the integrated assembler. llvm-svn: 262400
* [Hexagon] As a size optimization, not lazy extending TPREL or DTPREL ↵Colin LeMahieu2016-02-291-8/+14
| | | | | | variants since they're usually in range. llvm-svn: 262258
* [Hexagon] Using MustExtend flag on expression instead of passing around bools.Colin LeMahieu2016-02-291-9/+11
| | | | llvm-svn: 262238
* [Hexagon] Replacing reference/dereference with reference cast.Colin LeMahieu2016-02-171-4/+4
| | | | llvm-svn: 261133
* [Hexagon] cast<> a reference instead of referencing + dereferencing.Benjamin Kramer2016-02-171-1/+1
| | | | llvm-svn: 261077
* [Hexagon] Adding relocation for code size, cold path optimization allowing a ↵Colin LeMahieu2016-02-161-0/+12
| | | | | | | | | | | | 23-bit 4-byte aligned relocation to be a valid instruction encoding. The usual way to get a 32-bit relocation is to use a constant extender which doubles the size of the instruction, 4 bytes to 8 bytes. Another way is to put a .word32 and mix code and data within a function. The disadvantage is it's not a valid instruction encoding and jumping over it causes prefetch stalls inside the hardware. This relocation packs a 23-bit value in to an "r0 = add(rX, #a)" instruction by overwriting the source register bits. Since r0 is the return value register, if this instruction is placed after a function call which return void, r0 will be filled with an undefined value, the prefetch won't be confused, and the callee can access the constant value by way of the link register. llvm-svn: 261006
* [Hexagon] Hoist nonnull assert up.Benjamin Kramer2016-02-161-0/+1
| | | | | | | | Once a pointer is turned into a reference it cannot be nullptr, clang rightfully warns about this assert being a tautology. Put the assert before the reference is created. llvm-svn: 260949
* [NFC] Fixing naming convention, lowercase start of function name.Colin LeMahieu2016-02-151-1/+1
| | | | llvm-svn: 260903
* [Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to ↵Colin LeMahieu2016-02-151-1/+26
| | | | | | simplify handling and allow flags on the expression. llvm-svn: 260902
* Use make_range to reduce mentions of iterator type. NFCCraig Topper2015-12-061-2/+1
| | | | llvm-svn: 254872
* [Hexagon] Factoring bundle creation in to a utility function.Colin LeMahieu2015-11-131-0/+7
| | | | llvm-svn: 253056
* [Hexagon] Fixing leak in padEndloop by allocating in MCContext.Colin LeMahieu2015-11-131-3/+3
| | | | llvm-svn: 253019
* [Hexagon] Allocate MCInst in the MCContext to avoid leaking it.Benjamin Kramer2015-11-121-4/+6
| | | | | | Found by leaksanitizer. llvm-svn: 252931
* [Hexagon] Fixing load instruction parsing and reenabling tests.Colin LeMahieu2015-11-101-4/+5
| | | | llvm-svn: 252555
* [Hexagon] Enabling ASM parsing on Hexagon backend and adding instruction ↵Colin LeMahieu2015-11-091-14/+189
| | | | | | parsing tests. General updating of the code emission. llvm-svn: 252443
* Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)Alexander Kornienko2015-06-231-1/+1
| | | | | | Apparently, the style needs to be agreed upon first. llvm-svn: 240390
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-191-1/+1
| | | | | | | | | | | | | The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137
* [Hexagon] Adding MC ELF streamer and updating addend relocation test which ↵Colin LeMahieu2015-06-171-0/+15
| | | | | | shows correct ELF symbol. llvm-svn: 239876
* [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing.Colin LeMahieu2015-06-051-0/+68
| | | | llvm-svn: 239161
* Revert r239095 incorrect test tree.Colin LeMahieu2015-06-041-68/+0
| | | | llvm-svn: 239102
* [Hexagon] Adding functionality for duplexing. Duplexing is a way to ↵Colin LeMahieu2015-06-041-0/+68
| | | | | | 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
* [Hexagon] Adding MC packet shuffler.Colin LeMahieu2015-05-311-5/+77
| | | | llvm-svn: 238692
* [Hexagon] Adding basic relaxation functionality.Colin LeMahieu2015-05-301-0/+24
| | | | llvm-svn: 238660
* [Hexagon] Disassembling, printing, and emitting instructions a whole-bundle ↵Colin LeMahieu2015-05-291-34/+71
| | | | | | 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
* MC: Modernize MCOperand API naming. NFC.Jim Grosbach2015-05-131-2/+2
| | | | | | MCOperand::Create*() methods renamed to MCOperand::create*(). llvm-svn: 237275
* [Hexagon] Adding expression MC emission and removing XFAIL from test that ↵Colin LeMahieu2015-05-011-0/+25
| | | | | | hits this code path. llvm-svn: 236348
* [Hexagon] Moving remaining methods off of HexagonMCInst in to ↵Colin LeMahieu2015-02-191-6/+48
| | | | | | HexagonMCInstrInfo and eliminating HexagonMCInst class. llvm-svn: 229914
* [Hexagon] Moving more functions off of HexagonMCInst and in to ↵Colin LeMahieu2015-02-191-1/+145
| | | | | | HexagonMCInstrInfo. llvm-svn: 229903
* [Hexagon] Creating HexagonMCInstrInfo namespace as landing zone for static ↵Colin LeMahieu2015-02-191-0/+37
functions detached from HexagonMCInst. llvm-svn: 229885
OpenPOWER on IntegriCloud