diff options
author | Mike Pall <mike> | 2016-11-20 22:16:08 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2016-11-20 22:18:14 +0100 |
commit | 04b60707d7d117da22b40736a353e2a10179108a (patch) | |
tree | d11f50b00a8589108f5ebeeb005a12071fe6fcdf /src/lj_gdbjit.c | |
parent | 13642b75ac37957d9e2a37b35ebec69d6d4b3bc1 (diff) | |
download | luajit-04b60707d7d117da22b40736a353e2a10179108a.tar.gz luajit-04b60707d7d117da22b40736a353e2a10179108a.tar.bz2 luajit-04b60707d7d117da22b40736a353e2a10179108a.zip |
ARM64: Add JIT compiler backend.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
Diffstat (limited to 'src/lj_gdbjit.c')
-rw-r--r-- | src/lj_gdbjit.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lj_gdbjit.c b/src/lj_gdbjit.c index 8b72be7d..8bc2474c 100644 --- a/src/lj_gdbjit.c +++ b/src/lj_gdbjit.c | |||
@@ -296,6 +296,9 @@ enum { | |||
296 | #elif LJ_TARGET_ARM | 296 | #elif LJ_TARGET_ARM |
297 | DW_REG_SP = 13, | 297 | DW_REG_SP = 13, |
298 | DW_REG_RA = 14, | 298 | DW_REG_RA = 14, |
299 | #elif LJ_TARGET_ARM64 | ||
300 | DW_REG_SP = 31, | ||
301 | DW_REG_RA = 30, | ||
299 | #elif LJ_TARGET_PPC | 302 | #elif LJ_TARGET_PPC |
300 | DW_REG_SP = 1, | 303 | DW_REG_SP = 1, |
301 | DW_REG_RA = 65, | 304 | DW_REG_RA = 65, |
@@ -374,6 +377,8 @@ static const ELFheader elfhdr_template = { | |||
374 | .machine = 62, | 377 | .machine = 62, |
375 | #elif LJ_TARGET_ARM | 378 | #elif LJ_TARGET_ARM |
376 | .machine = 40, | 379 | .machine = 40, |
380 | #elif LJ_TARGET_ARM64 | ||
381 | .machine = 183, | ||
377 | #elif LJ_TARGET_PPC | 382 | #elif LJ_TARGET_PPC |
378 | .machine = 20, | 383 | .machine = 20, |
379 | #elif LJ_TARGET_MIPS | 384 | #elif LJ_TARGET_MIPS |
@@ -563,6 +568,13 @@ static void LJ_FASTCALL gdbjit_ehframe(GDBJITctx *ctx) | |||
563 | int i; | 568 | int i; |
564 | for (i = 11; i >= 4; i--) { DB(DW_CFA_offset|i); DUV(2+(11-i)); } | 569 | for (i = 11; i >= 4; i--) { DB(DW_CFA_offset|i); DUV(2+(11-i)); } |
565 | } | 570 | } |
571 | #elif LJ_TARGET_ARM64 | ||
572 | { | ||
573 | int i; | ||
574 | DB(DW_CFA_offset|31); DUV(2); | ||
575 | for (i = 28; i >= 19; i--) { DB(DW_CFA_offset|i); DUV(3+(28-i)); } | ||
576 | for (i = 15; i >= 8; i--) { DB(DW_CFA_offset|32|i); DUV(28-i); } | ||
577 | } | ||
566 | #elif LJ_TARGET_PPC | 578 | #elif LJ_TARGET_PPC |
567 | { | 579 | { |
568 | int i; | 580 | int i; |