Skip to content

Commit

Permalink
implement axis-dependent codes
Browse files Browse the repository at this point in the history
  • Loading branch information
chishiro committed Mar 24, 2018
1 parent 7d613d1 commit 11506b9
Show file tree
Hide file tree
Showing 289 changed files with 85,129 additions and 210 deletions.
3 changes: 2 additions & 1 deletion CMakeLists.txt
Expand Up @@ -310,6 +310,7 @@ set(LLVM_ALL_TARGETS
BPF
Hexagon
Lanai
Maxis
Mips
MSP430
NVPTX
Expand All @@ -321,7 +322,7 @@ set(LLVM_ALL_TARGETS
)

# List of targets with JIT support:
set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Mips SystemZ)
set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Maxis Mips SystemZ)

set(LLVM_TARGETS_TO_BUILD "all"
CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/llvm/disassembler.py
Expand Up @@ -36,7 +36,7 @@


_initialized = False
_targets = ['AArch64', 'ARM', 'Hexagon', 'MSP430', 'Mips', 'NVPTX', 'PowerPC', 'R600', 'Sparc', 'SystemZ', 'X86', 'XCore']
_targets = ['AArch64', 'ARM', 'Hexagon', 'MSP430', 'Maxis', 'Mips', 'NVPTX', 'PowerPC', 'R600', 'Sparc', 'SystemZ', 'X86', 'XCore']
def _ensure_initialized():
global _initialized
if not _initialized:
Expand Down
29 changes: 29 additions & 0 deletions build.sh
@@ -0,0 +1,29 @@
#!/bin/sh
rm -rf build
mkdir build
cd build

cmake \
-DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ \
-DCMAKE_BUILD_TYPE="DEBUG" \
-DCMAKE_C_FLAGS="-g -ggdb" \
-DCMAKE_CXX_FLAGS="-g -ggdb" \
-DLLVM_TARGETS_TO_BUILD="Maxis" \
..


# -DCMAKE_BUILD_TYPE="RelWithDebInfo" \
# -DLLVM_OPTIMIZED_TABLEGEN=ON \

# -DLLVM_TARGETS_TO_BUILD="Maxis" \
# -DLLVM_TARGETS_TO_BUILD="Axis" \
# -DLLVM_TARGETS_TO_BUILD="Axis;Mips;X86" \
# -DCMAKE_C_COMPILER=/usr/bin/clang \
# -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \

# -DLLVM_BUILD_TOOLS=OFF \
# -DLLVM_APPEND_VC_REV=OFF \
# -DLLVM_INCLUDE_TOOLS=OFF \

make -j`grep -c processor /proc/cpuinfo`

1 change: 1 addition & 0 deletions include/llvm-c/DebugInfo.h
Expand Up @@ -105,6 +105,7 @@ typedef enum {
LLVMDWARFSourceLanguageRenderScript,
LLVMDWARFSourceLanguageBLISS,
// Vendor extensions:
LLVMDWARFSourceLanguageMaxis_Assembler,
LLVMDWARFSourceLanguageMips_Assembler,
LLVMDWARFSourceLanguageGOOGLE_RenderScript,
LLVMDWARFSourceLanguageBORLAND_Delphi
Expand Down
6 changes: 6 additions & 0 deletions include/llvm/ADT/Triple.h
Expand Up @@ -15,6 +15,7 @@
// Some system headers or GCC predefined macros conflict with identifiers in
// this file. Undefine them here.
#undef NetBSD
#undef maxis
#undef mips
#undef sparc

Expand Down Expand Up @@ -55,6 +56,10 @@ class Triple {
bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
hexagon, // Hexagon: hexagon
maxis, // MAXIS: maxis, maxisallegrex
maxisel, // MAXISEL: maxisel, maxisallegrexel
maxis64, // MAXIS64: maxis64
maxis64el, // MAXIS64EL: maxis64el
mips, // MIPS: mips, mipsallegrex
mipsel, // MIPSEL: mipsel, mipsallegrexel
mips64, // MIPS64: mips64
Expand Down Expand Up @@ -137,6 +142,7 @@ class Triple {
Freescale,
IBM,
ImaginationTechnologies,
MaxisTechnologies,
MipsTechnologies,
NVIDIA,
CSR,
Expand Down
8 changes: 7 additions & 1 deletion include/llvm/BinaryFormat/COFF.h
Expand Up @@ -107,6 +107,9 @@ enum MachineTypes : unsigned {
IMAGE_FILE_MACHINE_MIPS16 = 0x266,
IMAGE_FILE_MACHINE_MIPSFPU = 0x366,
IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466,
IMAGE_FILE_MACHINE_MAXIS16 = 0x267,
IMAGE_FILE_MACHINE_MAXISFPU = 0x367,
IMAGE_FILE_MACHINE_MAXISFPU16 = 0x467,
IMAGE_FILE_MACHINE_POWERPC = 0x1F0,
IMAGE_FILE_MACHINE_POWERPCFP = 0x1F1,
IMAGE_FILE_MACHINE_R4000 = 0x166,
Expand All @@ -115,7 +118,8 @@ enum MachineTypes : unsigned {
IMAGE_FILE_MACHINE_SH4 = 0x1A6,
IMAGE_FILE_MACHINE_SH5 = 0x1A8,
IMAGE_FILE_MACHINE_THUMB = 0x1C2,
IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169,
IMAGE_FILE_MACHINE_WCEMAXISV2 = 0x16a
};

enum Characteristics : unsigned {
Expand Down Expand Up @@ -664,9 +668,11 @@ enum BaseRelocationType : unsigned {
IMAGE_REL_BASED_HIGHLOW = 3,
IMAGE_REL_BASED_HIGHADJ = 4,
IMAGE_REL_BASED_MIPS_JMPADDR = 5,
IMAGE_REL_BASED_MAXIS_JMPADDR = 6,
IMAGE_REL_BASED_ARM_MOV32A = 5,
IMAGE_REL_BASED_ARM_MOV32T = 7,
IMAGE_REL_BASED_MIPS_JMPADDR16 = 9,
IMAGE_REL_BASED_MAXIS_JMPADDR16 = 11,
IMAGE_REL_BASED_DIR64 = 10
};

Expand Down
22 changes: 22 additions & 0 deletions include/llvm/BinaryFormat/Dwarf.def
Expand Up @@ -169,6 +169,7 @@ HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF)
HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF)
HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF)
// Vendor extensions:
HANDLE_DW_TAG(0x4080, MAXIS_loop, 0, MAXIS)
HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS)
HANDLE_DW_TAG(0x4101, format_label, 0, GNU)
HANDLE_DW_TAG(0x4102, function_template, 0, GNU)
Expand Down Expand Up @@ -330,6 +331,25 @@ HANDLE_DW_AT(0x2010, MIPS_assumed_shape_dopetype, 0, MIPS)
// This one appears to have only been implemented by Open64 for
// fortran and may conflict with other extensions.
HANDLE_DW_AT(0x2011, MIPS_assumed_size, 0, MIPS)
// Vendor extensions:
HANDLE_DW_AT(0x2012, MAXIS_loop_begin, 0, MAXIS)
HANDLE_DW_AT(0x2013, MAXIS_tail_loop_begin, 0, MAXIS)
HANDLE_DW_AT(0x2014, MAXIS_epilog_begin, 0, MAXIS)
HANDLE_DW_AT(0x2015, MAXIS_loop_unroll_factor, 0, MAXIS)
HANDLE_DW_AT(0x2016, MAXIS_software_pipeline_depth, 0, MAXIS)
HANDLE_DW_AT(0x2017, MAXIS_linkage_name, 0, MAXIS)
HANDLE_DW_AT(0x2018, MAXIS_stride, 0, MAXIS)
HANDLE_DW_AT(0x2019, MAXIS_abstract_name, 0, MAXIS)
HANDLE_DW_AT(0x201a, MAXIS_clone_origin, 0, MAXIS)
HANDLE_DW_AT(0x201b, MAXIS_has_inlines, 0, MAXIS)
HANDLE_DW_AT(0x201c, MAXIS_stride_byte, 0, MAXIS)
HANDLE_DW_AT(0x201d, MAXIS_stride_elem, 0, MAXIS)
HANDLE_DW_AT(0x201e, MAXIS_ptr_dopetype, 0, MAXIS)
HANDLE_DW_AT(0x201f, MAXIS_allocatable_dopetype, 0, MAXIS)
HANDLE_DW_AT(0x2020, MAXIS_assumed_shape_dopetype, 0, MAXIS)
// This one appears to have only been implemented by Open64 for
// fortran and may conflict with other extensions.
HANDLE_DW_AT(0x2021, MAXIS_assumed_size, 0, MAXIS)
// GNU extensions
HANDLE_DW_AT(0x2101, sf_names, 0, GNU)
HANDLE_DW_AT(0x2102, src_info, 0, GNU)
Expand Down Expand Up @@ -660,6 +680,7 @@ HANDLE_DW_LANG(0x0024, RenderScript, 5, DWARF)
HANDLE_DW_LANG(0x0025, BLISS, 5, DWARF)
// Vendor extensions:
HANDLE_DW_LANG(0x8001, Mips_Assembler, 0, MIPS)
HANDLE_DW_LANG(0x8002, Maxis_Assembler, 0, MAXIS)
HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, GOOGLE)
HANDLE_DW_LANG(0xb000, BORLAND_Delphi, 0, BORLAND)

Expand Down Expand Up @@ -798,6 +819,7 @@ HANDLE_DW_CFA(0x15, val_offset_sf)
HANDLE_DW_CFA(0x16, val_expression)
// Vendor extensions:
HANDLE_DW_CFA(0x1d, MIPS_advance_loc8)
HANDLE_DW_CFA(0x1e, MAXIS_advance_loc8)
HANDLE_DW_CFA(0x2d, GNU_window_save)
HANDLE_DW_CFA(0x2e, GNU_args_size)

Expand Down
3 changes: 2 additions & 1 deletion include/llvm/BinaryFormat/Dwarf.h
Expand Up @@ -54,7 +54,8 @@ enum LLVMConstants : uint32_t {
DWARF_VENDOR_GNU = 3,
DWARF_VENDOR_GOOGLE = 4,
DWARF_VENDOR_LLVM = 5,
DWARF_VENDOR_MIPS = 6
DWARF_VENDOR_MIPS = 6,
DWARF_VENDOR_MAXIS = 7
};

/// Special ID values that distinguish a CIE from a FDE in DWARF CFI.
Expand Down

0 comments on commit 11506b9

Please sign in to comment.