summaryrefslogtreecommitdiff
path: root/libbsd
diff options
context:
space:
mode:
authorPeng Fan <van.freenix@gmail.com>2013-07-24 15:49:29 +0800
committerPeng Fan <van.freenix@gmail.com>2013-09-05 13:47:39 +0800
commit400bce45a8532b2377c5692da80666196ce09c64 (patch)
tree950266e0af9ba23ed722bc8ba2996ff71d9a2b08 /libbsd
parent42d16f6d37130a3550b537d35698977f06908234 (diff)
LM32 Support
Signed-off-by: Peng Fan <van.freenix@gmail.com>
Diffstat (limited to 'libbsd')
-rw-r--r--libbsd/include/arch/lm32/machine/ansi.h0
-rw-r--r--libbsd/include/arch/lm32/machine/asm.h2
-rw-r--r--libbsd/include/arch/lm32/machine/cdefs.h0
-rw-r--r--libbsd/include/arch/lm32/machine/elf_machdep.h34
-rw-r--r--libbsd/include/arch/lm32/machine/int_types.h0
-rw-r--r--libbsd/include/sys/exec_elf.h2
6 files changed, 38 insertions, 0 deletions
diff --git a/libbsd/include/arch/lm32/machine/ansi.h b/libbsd/include/arch/lm32/machine/ansi.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libbsd/include/arch/lm32/machine/ansi.h
diff --git a/libbsd/include/arch/lm32/machine/asm.h b/libbsd/include/arch/lm32/machine/asm.h
new file mode 100644
index 0000000..b3a7a95
--- /dev/null
+++ b/libbsd/include/arch/lm32/machine/asm.h
@@ -0,0 +1,2 @@
+
+#define __CONCAT(x,y) x ## y
diff --git a/libbsd/include/arch/lm32/machine/cdefs.h b/libbsd/include/arch/lm32/machine/cdefs.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libbsd/include/arch/lm32/machine/cdefs.h
diff --git a/libbsd/include/arch/lm32/machine/elf_machdep.h b/libbsd/include/arch/lm32/machine/elf_machdep.h
new file mode 100644
index 0000000..29c75b8
--- /dev/null
+++ b/libbsd/include/arch/lm32/machine/elf_machdep.h
@@ -0,0 +1,34 @@
+#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
+
+#define ELF32_MACHDEP_ID_CASES \
+ case EM_LATTICEMICO32: \
+ break;
+
+#define ELF32_MACHDEP_ID EM_LATTICEMICO32
+
+#define EF_MACH32_MACH 0x00000001
+
+//#define EF_BLACKFIN
+
+#define ARCH_ELFSIZE 32
+
+#define R_LM32_NONE 0
+#define R_LM32_8 1
+#define R_LM32_16 2
+#define R_LM32_32 3
+#define R_LM32_HI16 4
+#define R_LM32_LO16 5
+#define R_LM32_GPREL16 6
+#define R_LM32_CALL 7
+#define R_LM32_BRANCH 8
+#define R_LM32_GNU_VTINHERIT 9
+#define R_LM32_GNU_VTENTRY 10
+#define R_LM32_16_GOT 11
+#define R_LM32_GOTOFF_HI16 12
+#define R_LM32_GOTOFF_LO16 13
+#define R_LM32_COPY 14
+#define R_LM32_GLOT_DAT 15
+#define R_LM32_JMP_SLOT 16
+#define R_LM32_RELATIVE 17
+
+#define R_TYPE(name) __CONCAT(R_LM32_,name)
diff --git a/libbsd/include/arch/lm32/machine/int_types.h b/libbsd/include/arch/lm32/machine/int_types.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libbsd/include/arch/lm32/machine/int_types.h
diff --git a/libbsd/include/sys/exec_elf.h b/libbsd/include/sys/exec_elf.h
index 392cd33..19ca7f5 100644
--- a/libbsd/include/sys/exec_elf.h
+++ b/libbsd/include/sys/exec_elf.h
@@ -326,6 +326,8 @@ typedef struct {
#define EM_CE 119 /* Freescale Communication Engine RISC core */
#define EM_M32C 120 /* Renesas M32C series microprocessors */
+#define EM_LATTICEMICO32 138 /* RICS processor for Lattice FPGA architecture */
+
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
/* Unofficial machine types follow */