diff options
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r-- | src/buildvm_x86.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h index 8a421ec8..35e3893e 100644 --- a/src/buildvm_x86.h +++ b/src/buildvm_x86.h | |||
@@ -2518,7 +2518,11 @@ static void emit_asm_debug(BuildCtx *ctx) | |||
2518 | "\t.byte " REG_RA "\n" | 2518 | "\t.byte " REG_RA "\n" |
2519 | "\t.byte 6\n" /* augmentation length */ | 2519 | "\t.byte 6\n" /* augmentation length */ |
2520 | "\t.byte 0x9b\n" /* indirect|pcrel|sdata4 */ | 2520 | "\t.byte 0x9b\n" /* indirect|pcrel|sdata4 */ |
2521 | #if LJ_64 | ||
2522 | "\t.long _lj_err_unwind_dwarf+4@GOTPCREL\n" | ||
2523 | #else | ||
2521 | "\t.long L_lj_err_unwind_dwarf$non_lazy_ptr-.\n" | 2524 | "\t.long L_lj_err_unwind_dwarf$non_lazy_ptr-.\n" |
2525 | #endif | ||
2522 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | 2526 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ |
2523 | #if LJ_64 | 2527 | #if LJ_64 |
2524 | "\t.byte 0xc\n\t.byte " REG_SP "\n\t.byte " SZPTR "\n" | 2528 | "\t.byte 0xc\n\t.byte " REG_SP "\n\t.byte " SZPTR "\n" |
@@ -2552,11 +2556,15 @@ static void emit_asm_debug(BuildCtx *ctx) | |||
2552 | #endif | 2556 | #endif |
2553 | "\t.align " BSZPTR "\n" | 2557 | "\t.align " BSZPTR "\n" |
2554 | "LEFDE1:\n\n", (int)ctx->codesz, CFRAME_SIZE); | 2558 | "LEFDE1:\n\n", (int)ctx->codesz, CFRAME_SIZE); |
2559 | #if LJ_64 | ||
2560 | fprintf(ctx->fp, "\t.subsections_via_symbols\n"); | ||
2561 | #else | ||
2555 | fprintf(ctx->fp, | 2562 | fprintf(ctx->fp, |
2556 | "\t.non_lazy_symbol_pointer\n" | 2563 | "\t.non_lazy_symbol_pointer\n" |
2557 | "L_lj_err_unwind_dwarf$non_lazy_ptr:\n" | 2564 | "L_lj_err_unwind_dwarf$non_lazy_ptr:\n" |
2558 | ".indirect_symbol _lj_err_unwind_dwarf\n" | 2565 | ".indirect_symbol _lj_err_unwind_dwarf\n" |
2559 | ".long 0\n"); | 2566 | ".long 0\n"); |
2567 | #endif | ||
2560 | break; | 2568 | break; |
2561 | default: /* Difficult for other modes. */ | 2569 | default: /* Difficult for other modes. */ |
2562 | break; | 2570 | break; |