diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2018-09-10 12:53:46 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2018-09-10 12:53:46 +0000 |
| commit | 27c769d28ab35034739de4cf62a9970ab87864d9 (patch) | |
| tree | 684502d02ee6ae2cf92bf4a9aaa605b915ed6182 /llvm/lib/Target/Hexagon | |
| parent | 28559a2605c40def49aee8c2c2f8515a25541bdf (diff) | |
| download | bcm5719-llvm-27c769d28ab35034739de4cf62a9970ab87864d9.tar.gz bcm5719-llvm-27c769d28ab35034739de4cf62a9970ab87864d9.zip | |
[Target] Untangle disassemblers
Disassemblers cannot depend on main target headers. The same is true for
MCTargetDesc, but there's a lot more cleanup needed for that.
llvm-svn: 341822
Diffstat (limited to 'llvm/lib/Target/Hexagon')
4 files changed, 28 insertions, 29 deletions
diff --git a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp index 1a619ebda84..a409fff0d34 100644 --- a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp +++ b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp @@ -9,7 +9,6 @@ #define DEBUG_TYPE "hexagon-disassembler" -#include "Hexagon.h" #include "MCTargetDesc/HexagonBaseInfo.h" #include "MCTargetDesc/HexagonMCChecker.h" #include "MCTargetDesc/HexagonMCInstrInfo.h" diff --git a/llvm/lib/Target/Hexagon/Hexagon.h b/llvm/lib/Target/Hexagon/Hexagon.h index 6ec52d18cdc..c18492da803 100644 --- a/llvm/lib/Target/Hexagon/Hexagon.h +++ b/llvm/lib/Target/Hexagon/Hexagon.h @@ -15,33 +15,6 @@ #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGON_H #define LLVM_LIB_TARGET_HEXAGON_HEXAGON_H -#define Hexagon_POINTER_SIZE 4 - -#define Hexagon_PointerSize (Hexagon_POINTER_SIZE) -#define Hexagon_PointerSize_Bits (Hexagon_POINTER_SIZE * 8) -#define Hexagon_WordSize Hexagon_PointerSize -#define Hexagon_WordSize_Bits Hexagon_PointerSize_Bits - -// allocframe saves LR and FP on stack before allocating -// a new stack frame. This takes 8 bytes. -#define HEXAGON_LRFP_SIZE 8 - -// Normal instruction size (in bytes). -#define HEXAGON_INSTR_SIZE 4 - -// Maximum number of words and instructions in a packet. -#define HEXAGON_PACKET_SIZE 4 -#define HEXAGON_MAX_PACKET_SIZE (HEXAGON_PACKET_SIZE * HEXAGON_INSTR_SIZE) -// Minimum number of instructions in an end-loop packet. -#define HEXAGON_PACKET_INNER_SIZE 2 -#define HEXAGON_PACKET_OUTER_SIZE 3 -// Maximum number of instructions in a packet before shuffling, -// including a compound one or a duplex or an extender. -#define HEXAGON_PRESHUFFLE_PACKET_SIZE (HEXAGON_PACKET_SIZE + 3) - -// Name of the global offset table as defined by the Hexagon ABI -#define HEXAGON_GOT_SYM_NAME "_GLOBAL_OFFSET_TABLE_" - #include "MCTargetDesc/HexagonMCTargetDesc.h" #include "llvm/CodeGen/TargetLowering.h" #include "llvm/Target/TargetMachine.h" diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp index 9fbe299d7d5..f0689252b39 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp @@ -9,11 +9,11 @@ //===----------------------------------------------------------------------===// #include "HexagonMCExpr.h" +#include "llvm/BinaryFormat/ELF.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCStreamer.h" #include "llvm/MC/MCSymbolELF.h" #include "llvm/MC/MCValue.h" -#include "llvm/Object/ELF.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h index 6cd1b3a4691..d6ea664222d 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h @@ -18,6 +18,33 @@ #include <cstdint> #include <string> +#define Hexagon_POINTER_SIZE 4 + +#define Hexagon_PointerSize (Hexagon_POINTER_SIZE) +#define Hexagon_PointerSize_Bits (Hexagon_POINTER_SIZE * 8) +#define Hexagon_WordSize Hexagon_PointerSize +#define Hexagon_WordSize_Bits Hexagon_PointerSize_Bits + +// allocframe saves LR and FP on stack before allocating +// a new stack frame. This takes 8 bytes. +#define HEXAGON_LRFP_SIZE 8 + +// Normal instruction size (in bytes). +#define HEXAGON_INSTR_SIZE 4 + +// Maximum number of words and instructions in a packet. +#define HEXAGON_PACKET_SIZE 4 +#define HEXAGON_MAX_PACKET_SIZE (HEXAGON_PACKET_SIZE * HEXAGON_INSTR_SIZE) +// Minimum number of instructions in an end-loop packet. +#define HEXAGON_PACKET_INNER_SIZE 2 +#define HEXAGON_PACKET_OUTER_SIZE 3 +// Maximum number of instructions in a packet before shuffling, +// including a compound one or a duplex or an extender. +#define HEXAGON_PRESHUFFLE_PACKET_SIZE (HEXAGON_PACKET_SIZE + 3) + +// Name of the global offset table as defined by the Hexagon ABI +#define HEXAGON_GOT_SYM_NAME "_GLOBAL_OFFSET_TABLE_" + namespace llvm { struct InstrItinerary; |

