summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Include what you use in HexagonMCInstrInfo.cppDmitri Gribenko2019-06-031-1/+0
| | | | | | | | | HexagonMCInstrInfo.cpp was not using any APIs from Hexagon.h. Doing so is problematic from include-what-you-use perspective, but it is also a layering issue (it creates a dependency cycle between the primary Hexagon target library and the MCTargetDesc library). llvm-svn: 362387
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* [Hexagon] Move clamping of extended operands directly to MC code emitterKrzysztof Parzyszek2018-05-071-25/+8
| | | | llvm-svn: 331653
* [Hexagon] Add support for Hexagon V65Krzysztof Parzyszek2017-12-111-36/+78
| | | | llvm-svn: 320404
* [Hexagon] Make getMemAccessSize return size in bytesKrzysztof Parzyszek2017-09-141-6/+5
| | | | | | | | It used to return the actual field value from the instruction descriptor. There is no reason for that, that value is not interesting in any way and the specifics of its encoding in the descriptor should not be exposed. llvm-svn: 313257
* [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-08-011-8/+18
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 309746
* [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
OpenPOWER on IntegriCloud