diff options
| author | Mike Pall <mike> | 2015-01-03 15:28:33 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2015-01-03 15:28:33 +0100 |
| commit | f307d0adafc7e35d2dc1c461d50f6572c5e6bca8 (patch) | |
| tree | 0ce471fc05dad49f3e5d60338034ff8a4a9904f8 /src/host | |
| parent | cb481ddc8f9d92913ba07d998f4274bbf9711077 (diff) | |
| download | luajit-f307d0adafc7e35d2dc1c461d50f6572c5e6bca8.tar.gz luajit-f307d0adafc7e35d2dc1c461d50f6572c5e6bca8.tar.bz2 luajit-f307d0adafc7e35d2dc1c461d50f6572c5e6bca8.zip | |
ARM64: Add build infrastructure and initial port of interpreter.
Diffstat (limited to 'src/host')
| -rw-r--r-- | src/host/buildvm.c | 2 | ||||
| -rw-r--r-- | src/host/buildvm_asm.c | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/host/buildvm.c b/src/host/buildvm.c index d56c65ca..d162086e 100644 --- a/src/host/buildvm.c +++ b/src/host/buildvm.c | |||
| @@ -59,6 +59,8 @@ static int collect_reloc(BuildCtx *ctx, uint8_t *addr, int idx, int type); | |||
| 59 | #include "../dynasm/dasm_x86.h" | 59 | #include "../dynasm/dasm_x86.h" |
| 60 | #elif LJ_TARGET_ARM | 60 | #elif LJ_TARGET_ARM |
| 61 | #include "../dynasm/dasm_arm.h" | 61 | #include "../dynasm/dasm_arm.h" |
| 62 | #elif LJ_TARGET_ARM64 | ||
| 63 | #include "../dynasm/dasm_arm64.h" | ||
| 62 | #elif LJ_TARGET_PPC | 64 | #elif LJ_TARGET_PPC |
| 63 | #include "../dynasm/dasm_ppc.h" | 65 | #include "../dynasm/dasm_ppc.h" |
| 64 | #elif LJ_TARGET_PPCSPE | 66 | #elif LJ_TARGET_PPCSPE |
diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c index c91f5bcd..7bea4d17 100644 --- a/src/host/buildvm_asm.c +++ b/src/host/buildvm_asm.c | |||
| @@ -121,6 +121,15 @@ static void emit_asm_wordreloc(BuildCtx *ctx, uint8_t *p, int n, | |||
| 121 | ins, sym); | 121 | ins, sym); |
| 122 | exit(1); | 122 | exit(1); |
| 123 | } | 123 | } |
| 124 | #elif LJ_TARGET_ARM64 | ||
| 125 | if ((ins >> 26) == 0x25u) { | ||
| 126 | fprintf(ctx->fp, "\tbl %s\n", sym); | ||
| 127 | } else { | ||
| 128 | fprintf(stderr, | ||
| 129 | "Error: unsupported opcode %08x for %s symbol relocation.\n", | ||
| 130 | ins, sym); | ||
| 131 | exit(1); | ||
| 132 | } | ||
| 124 | #elif LJ_TARGET_PPC || LJ_TARGET_PPCSPE | 133 | #elif LJ_TARGET_PPC || LJ_TARGET_PPCSPE |
| 125 | #if LJ_TARGET_PS3 | 134 | #if LJ_TARGET_PS3 |
| 126 | #define TOCPREFIX "." | 135 | #define TOCPREFIX "." |
