aboutsummaryrefslogtreecommitdiff
path: root/src/lj_gdbjit.c
diff options
context:
space:
mode:
authorMike Pall <mike>2016-11-20 22:16:08 +0100
committerMike Pall <mike>2016-11-20 22:18:14 +0100
commit04b60707d7d117da22b40736a353e2a10179108a (patch)
treed11f50b00a8589108f5ebeeb005a12071fe6fcdf /src/lj_gdbjit.c
parent13642b75ac37957d9e2a37b35ebec69d6d4b3bc1 (diff)
downloadluajit-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.c12
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;