diff options
| author | Mike Pall <mike> | 2012-06-10 01:38:44 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2012-06-10 02:01:25 +0200 |
| commit | b8f5727ab4ab5656b19cdb2c71a92611836b5458 (patch) | |
| tree | afff6234da61ae8d3a513359a68c88cdb7b6159c | |
| parent | 37be8a54785b893f531679adb0b479a426938504 (diff) | |
| download | luajit-b8f5727ab4ab5656b19cdb2c71a92611836b5458.tar.gz luajit-b8f5727ab4ab5656b19cdb2c71a92611836b5458.tar.bz2 luajit-b8f5727ab4ab5656b19cdb2c71a92611836b5458.zip | |
CONSOLE: Fix PS3 build.
| -rw-r--r-- | src/Makefile | 20 | ||||
| -rw-r--r-- | src/host/buildvm_asm.c | 27 | ||||
| -rw-r--r-- | src/lib_io.c | 2 | ||||
| -rw-r--r-- | src/lib_jit.c | 9 | ||||
| -rw-r--r-- | src/lib_os.c | 5 | ||||
| -rw-r--r-- | src/lib_package.c | 1 | ||||
| -rw-r--r-- | src/lj_arch.h | 6 | ||||
| -rw-r--r-- | src/lj_def.h | 11 | ||||
| -rw-r--r-- | src/lj_err.c | 2 | ||||
| -rw-r--r-- | src/lj_jit.h | 11 | ||||
| -rw-r--r-- | src/lj_mcode.c | 2 | ||||
| -rw-r--r-- | src/vm_ppc.dasc | 6 |
12 files changed, 73 insertions, 29 deletions
diff --git a/src/Makefile b/src/Makefile index 86b8b4fa..3f733c59 100644 --- a/src/Makefile +++ b/src/Makefile | |||
| @@ -214,7 +214,7 @@ TARGET_XCFLAGS= $(TARGET_LFSFLAGS) -U_FORTIFY_SOURCE | |||
| 214 | TARGET_XLDFLAGS= | 214 | TARGET_XLDFLAGS= |
| 215 | TARGET_XLIBS= -lm | 215 | TARGET_XLIBS= -lm |
| 216 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 216 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
| 217 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_ARCH) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 217 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
| 218 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) | 218 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) |
| 219 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) | 219 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) |
| 220 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) | 220 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) |
| @@ -249,6 +249,15 @@ endif | |||
| 249 | endif | 249 | endif |
| 250 | endif | 250 | endif |
| 251 | 251 | ||
| 252 | ifneq (,$(findstring __CELLOS_LV2__ ,$(TARGET_TESTARCH))) | ||
| 253 | TARGET_SYS= PS3 | ||
| 254 | TARGET_ARCH+= -D__CELLOS_LV2__ | ||
| 255 | TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC | ||
| 256 | endif | ||
| 257 | ifneq (,$(findstring LJ_NO_UNWIND ,$(TARGET_TESTARCH))) | ||
| 258 | TARGET_ARCH+= -DLUAJIT_NO_UNWIND | ||
| 259 | endif | ||
| 260 | |||
| 252 | TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) | 261 | TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) |
| 253 | TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH)) | 262 | TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH)) |
| 254 | 263 | ||
| @@ -277,7 +286,7 @@ ifeq (Windows,$(HOST_SYS)) | |||
| 277 | HOST_RM= del | 286 | HOST_RM= del |
| 278 | endif | 287 | endif |
| 279 | 288 | ||
| 280 | TARGET_SYS= $(HOST_SYS) | 289 | TARGET_SYS?= $(HOST_SYS) |
| 281 | ifeq (Windows,$(TARGET_SYS)) | 290 | ifeq (Windows,$(TARGET_SYS)) |
| 282 | TARGET_STRIP+= --strip-unneeded | 291 | TARGET_STRIP+= --strip-unneeded |
| 283 | TARGET_XSHLDFLAGS= -shared | 292 | TARGET_XSHLDFLAGS= -shared |
| @@ -310,7 +319,9 @@ else | |||
| 310 | TARGET_XCFLAGS+= -fno-stack-protector | 319 | TARGET_XCFLAGS+= -fno-stack-protector |
| 311 | endif | 320 | endif |
| 312 | ifneq (SunOS,$(TARGET_SYS)) | 321 | ifneq (SunOS,$(TARGET_SYS)) |
| 313 | TARGET_XLDFLAGS+= -Wl,-E | 322 | ifneq (PS3,$(TARGET_SYS)) |
| 323 | TARGET_XLDFLAGS+= -Wl,-E | ||
| 324 | endif | ||
| 314 | endif | 325 | endif |
| 315 | ifeq (Linux,$(TARGET_SYS)) | 326 | ifeq (Linux,$(TARGET_SYS)) |
| 316 | TARGET_XLIBS+= -ldl | 327 | TARGET_XLIBS+= -ldl |
| @@ -463,6 +474,9 @@ endif | |||
| 463 | ifeq (SunOS,$(TARGET_SYS)) | 474 | ifeq (SunOS,$(TARGET_SYS)) |
| 464 | BUILDMODE= static | 475 | BUILDMODE= static |
| 465 | endif | 476 | endif |
| 477 | ifeq (PS3,$(TARGET_SYS)) | ||
| 478 | BUILDMODE= static | ||
| 479 | endif | ||
| 466 | 480 | ||
| 467 | ifeq (static,$(BUILDMODE)) | 481 | ifeq (static,$(BUILDMODE)) |
| 468 | TARGET_DYNCC= @: | 482 | TARGET_DYNCC= @: |
diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c index f975eadc..5fc31287 100644 --- a/src/host/buildvm_asm.c +++ b/src/host/buildvm_asm.c | |||
| @@ -141,6 +141,24 @@ static void emit_asm_label(BuildCtx *ctx, const char *name, int size, int isfunc | |||
| 141 | { | 141 | { |
| 142 | switch (ctx->mode) { | 142 | switch (ctx->mode) { |
| 143 | case BUILD_elfasm: | 143 | case BUILD_elfasm: |
| 144 | #if LJ_TARGET_PS3 | ||
| 145 | if (!strncmp(name, "lj_vm_", 6)) { | ||
| 146 | fprintf(ctx->fp, | ||
| 147 | "\n\t.globl %s\n" | ||
| 148 | "\n\t.section \".opd\",\"aw\"\n" | ||
| 149 | "%s:\n" | ||
| 150 | "\t.long .%s,.TOC.@tocbase32\n" | ||
| 151 | "\t.size %s,8\n" | ||
| 152 | "\t.previous\n" | ||
| 153 | "\t.globl .%s\n" | ||
| 154 | "\t.hidden .%s\n" | ||
| 155 | "\t.type .%s, " ELFASM_PX "function\n" | ||
| 156 | "\t.size .%s, %d\n" | ||
| 157 | ".%s:\n", | ||
| 158 | name, name, name, name, name, name, name, name, size, name); | ||
| 159 | break; | ||
| 160 | } | ||
| 161 | #endif | ||
| 144 | fprintf(ctx->fp, | 162 | fprintf(ctx->fp, |
| 145 | "\n\t.globl %s\n" | 163 | "\n\t.globl %s\n" |
| 146 | "\t.hidden %s\n" | 164 | "\t.hidden %s\n" |
| @@ -196,7 +214,7 @@ void emit_asm(BuildCtx *ctx) | |||
| 196 | if (ctx->mode != BUILD_machasm) | 214 | if (ctx->mode != BUILD_machasm) |
| 197 | fprintf(ctx->fp, ".Lbegin:\n"); | 215 | fprintf(ctx->fp, ".Lbegin:\n"); |
| 198 | 216 | ||
| 199 | #if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND) | 217 | #if LJ_TARGET_ARM && defined(__GNUC__) && !LJ_NO_UNWIND |
| 200 | /* This should really be moved into buildvm_arm.dasc. */ | 218 | /* This should really be moved into buildvm_arm.dasc. */ |
| 201 | fprintf(ctx->fp, | 219 | fprintf(ctx->fp, |
| 202 | ".fnstart\n" | 220 | ".fnstart\n" |
| @@ -210,8 +228,7 @@ void emit_asm(BuildCtx *ctx) | |||
| 210 | for (i = rel = 0; i < ctx->nsym; i++) { | 228 | for (i = rel = 0; i < ctx->nsym; i++) { |
| 211 | int32_t ofs = ctx->sym[i].ofs; | 229 | int32_t ofs = ctx->sym[i].ofs; |
| 212 | int32_t next = ctx->sym[i+1].ofs; | 230 | int32_t next = ctx->sym[i+1].ofs; |
| 213 | #if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND) && \ | 231 | #if LJ_TARGET_ARM && defined(__GNUC__) && !LJ_NO_UNWIND && LJ_HASFFI |
| 214 | LJ_HASFFI | ||
| 215 | if (!strcmp(ctx->sym[i].name, "lj_vm_ffi_call")) | 232 | if (!strcmp(ctx->sym[i].name, "lj_vm_ffi_call")) |
| 216 | fprintf(ctx->fp, | 233 | fprintf(ctx->fp, |
| 217 | ".globl lj_err_unwind_arm\n" | 234 | ".globl lj_err_unwind_arm\n" |
| @@ -246,7 +263,7 @@ void emit_asm(BuildCtx *ctx) | |||
| 246 | #endif | 263 | #endif |
| 247 | } | 264 | } |
| 248 | 265 | ||
| 249 | #if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND) | 266 | #if LJ_TARGET_ARM && defined(__GNUC__) && !LJ_NO_UNWIND |
| 250 | fprintf(ctx->fp, | 267 | fprintf(ctx->fp, |
| 251 | #if !LJ_HASFFI | 268 | #if !LJ_HASFFI |
| 252 | ".globl lj_err_unwind_arm\n" | 269 | ".globl lj_err_unwind_arm\n" |
| @@ -262,7 +279,7 @@ void emit_asm(BuildCtx *ctx) | |||
| 262 | #if LJ_TARGET_PPCSPE | 279 | #if LJ_TARGET_PPCSPE |
| 263 | /* Soft-float ABI + SPE. */ | 280 | /* Soft-float ABI + SPE. */ |
| 264 | fprintf(ctx->fp, "\t.gnu_attribute 4, 2\n\t.gnu_attribute 8, 3\n"); | 281 | fprintf(ctx->fp, "\t.gnu_attribute 4, 2\n\t.gnu_attribute 8, 3\n"); |
| 265 | #elif LJ_TARGET_PPC | 282 | #elif LJ_TARGET_PPC && !LJ_TARGET_PS3 |
| 266 | /* Hard-float ABI. */ | 283 | /* Hard-float ABI. */ |
| 267 | fprintf(ctx->fp, "\t.gnu_attribute 4, 1\n"); | 284 | fprintf(ctx->fp, "\t.gnu_attribute 4, 1\n"); |
| 268 | #endif | 285 | #endif |
diff --git a/src/lib_io.c b/src/lib_io.c index 90bc863b..ad99b9b7 100644 --- a/src/lib_io.c +++ b/src/lib_io.c | |||
| @@ -405,7 +405,7 @@ LJLIB_CF(io_popen) | |||
| 405 | #endif | 405 | #endif |
| 406 | return iof->fp != NULL ? 1 : io_pushresult(L, 0, fname); | 406 | return iof->fp != NULL ? 1 : io_pushresult(L, 0, fname); |
| 407 | #else | 407 | #else |
| 408 | luaL_error(L, LUA_QL("popen") " not supported"); | 408 | return luaL_error(L, LUA_QL("popen") " not supported"); |
| 409 | #endif | 409 | #endif |
| 410 | } | 410 | } |
| 411 | 411 | ||
diff --git a/src/lib_jit.c b/src/lib_jit.c index db6bcfa8..3687ad76 100644 --- a/src/lib_jit.c +++ b/src/lib_jit.c | |||
| @@ -613,20 +613,13 @@ static uint32_t jit_cpudetect(lua_State *L) | |||
| 613 | #endif | 613 | #endif |
| 614 | #endif | 614 | #endif |
| 615 | #elif LJ_TARGET_PPC | 615 | #elif LJ_TARGET_PPC |
| 616 | #if LJ_ARCH_PPC64 | 616 | #if LJ_HASJIT |
| 617 | flags |= JIT_F_PPC64; | ||
| 618 | #endif | ||
| 619 | #if LJ_ARCH_SQRT | 617 | #if LJ_ARCH_SQRT |
| 620 | flags |= JIT_F_SQRT; | 618 | flags |= JIT_F_SQRT; |
| 621 | #endif | 619 | #endif |
| 622 | #if LJ_ARCH_ROUND | 620 | #if LJ_ARCH_ROUND |
| 623 | flags |= JIT_F_ROUND; | 621 | flags |= JIT_F_ROUND; |
| 624 | #endif | 622 | #endif |
| 625 | #if LJ_ARCH_CELL | ||
| 626 | flags |= JIT_F_CELL; | ||
| 627 | #endif | ||
| 628 | #if LJ_ARCH_XENON | ||
| 629 | flags |= JIT_F_XENON; | ||
| 630 | #endif | 623 | #endif |
| 631 | #elif LJ_TARGET_PPCSPE | 624 | #elif LJ_TARGET_PPCSPE |
| 632 | /* Nothing to do. */ | 625 | /* Nothing to do. */ |
diff --git a/src/lib_os.c b/src/lib_os.c index e968d5d5..38aada67 100644 --- a/src/lib_os.c +++ b/src/lib_os.c | |||
| @@ -70,6 +70,10 @@ LJLIB_CF(os_rename) | |||
| 70 | 70 | ||
| 71 | LJLIB_CF(os_tmpname) | 71 | LJLIB_CF(os_tmpname) |
| 72 | { | 72 | { |
| 73 | #if LJ_TARGET_PS3 | ||
| 74 | lj_err_caller(L, LJ_ERR_OSUNIQF); | ||
| 75 | return 0; | ||
| 76 | #else | ||
| 73 | #if LJ_TARGET_POSIX | 77 | #if LJ_TARGET_POSIX |
| 74 | char buf[15+1]; | 78 | char buf[15+1]; |
| 75 | int fp; | 79 | int fp; |
| @@ -86,6 +90,7 @@ LJLIB_CF(os_tmpname) | |||
| 86 | #endif | 90 | #endif |
| 87 | lua_pushstring(L, buf); | 91 | lua_pushstring(L, buf); |
| 88 | return 1; | 92 | return 1; |
| 93 | #endif | ||
| 89 | } | 94 | } |
| 90 | 95 | ||
| 91 | LJLIB_CF(os_getenv) | 96 | LJLIB_CF(os_getenv) |
diff --git a/src/lib_package.c b/src/lib_package.c index 57344cd4..7435f6dc 100644 --- a/src/lib_package.c +++ b/src/lib_package.c | |||
| @@ -521,6 +521,7 @@ static void setpath(lua_State *L, const char *fieldname, const char *envname, | |||
| 521 | { | 521 | { |
| 522 | #if LJ_TARGET_CONSOLE | 522 | #if LJ_TARGET_CONSOLE |
| 523 | const char *path = NULL; | 523 | const char *path = NULL; |
| 524 | UNUSED(envname); | ||
| 524 | #else | 525 | #else |
| 525 | const char *path = getenv(envname); | 526 | const char *path = getenv(envname); |
| 526 | #endif | 527 | #endif |
diff --git a/src/lj_arch.h b/src/lj_arch.h index 476c1241..8d6830a3 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
| @@ -279,7 +279,7 @@ | |||
| 279 | #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) | 279 | #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) |
| 280 | #error "Need at least GCC 4.2 or newer" | 280 | #error "Need at least GCC 4.2 or newer" |
| 281 | #endif | 281 | #endif |
| 282 | #else | 282 | #elif !LJ_TARGET_PS3 |
| 283 | #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) | 283 | #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) |
| 284 | #error "Need at least GCC 4.3 or newer" | 284 | #error "Need at least GCC 4.3 or newer" |
| 285 | #endif | 285 | #endif |
| @@ -379,8 +379,8 @@ | |||
| 379 | #define LUAJIT_NO_EXP2 | 379 | #define LUAJIT_NO_EXP2 |
| 380 | #endif | 380 | #endif |
| 381 | 381 | ||
| 382 | #if defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 | 382 | #if defined(LUAJIT_NO_UNWIND) || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 |
| 383 | #define LUAJIT_NO_UNWIND | 383 | #define LJ_NO_UNWIND 1 |
| 384 | #endif | 384 | #endif |
| 385 | 385 | ||
| 386 | #endif | 386 | #endif |
diff --git a/src/lj_def.h b/src/lj_def.h index 876ce95f..27b6d6b7 100644 --- a/src/lj_def.h +++ b/src/lj_def.h | |||
| @@ -197,7 +197,16 @@ static LJ_AINLINE uint64_t lj_bswap64(uint64_t x) | |||
| 197 | } | 197 | } |
| 198 | #endif | 198 | #endif |
| 199 | #else | 199 | #else |
| 200 | #error "missing define for lj_bswap()" | 200 | static LJ_AINLINE uint32_t lj_bswap(uint32_t x) |
| 201 | { | ||
| 202 | return (x << 24) | ((x & 0xff00) << 8) | ((x >> 8) & 0xff00) | (x >> 24); | ||
| 203 | } | ||
| 204 | |||
| 205 | static LJ_AINLINE uint64_t lj_bswap64(uint64_t x) | ||
| 206 | { | ||
| 207 | return (uint64_t)lj_bswap((uint32_t)(x >> 32)) | | ||
| 208 | ((uint64_t)lj_bswap((uint32_t)x) << 32); | ||
| 209 | } | ||
| 201 | #endif | 210 | #endif |
| 202 | 211 | ||
| 203 | typedef union __attribute__((packed)) Unaligned16 { | 212 | typedef union __attribute__((packed)) Unaligned16 { |
diff --git a/src/lj_err.c b/src/lj_err.c index 05813cf8..34736b34 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
| @@ -185,7 +185,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) | |||
| 185 | 185 | ||
| 186 | /* -- External frame unwinding -------------------------------------------- */ | 186 | /* -- External frame unwinding -------------------------------------------- */ |
| 187 | 187 | ||
| 188 | #if defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND) | 188 | #if defined(__GNUC__) && !LJ_NO_UNWIND |
| 189 | 189 | ||
| 190 | /* | 190 | /* |
| 191 | ** We have to use our own definitions instead of the mandatory (!) unwind.h, | 191 | ** We have to use our own definitions instead of the mandatory (!) unwind.h, |
diff --git a/src/lj_jit.h b/src/lj_jit.h index 6d317a9e..28cdd17a 100644 --- a/src/lj_jit.h +++ b/src/lj_jit.h | |||
| @@ -35,15 +35,12 @@ | |||
| 35 | #define JIT_F_CPU_FIRST JIT_F_ARMV6 | 35 | #define JIT_F_CPU_FIRST JIT_F_ARMV6 |
| 36 | #define JIT_F_CPUSTRING "\5ARMv6\7ARMv6T2\5ARMv7" | 36 | #define JIT_F_CPUSTRING "\5ARMv6\7ARMv6T2\5ARMv7" |
| 37 | #elif LJ_TARGET_PPC | 37 | #elif LJ_TARGET_PPC |
| 38 | #define JIT_F_PPC64 0x00000010 | 38 | #define JIT_F_SQRT 0x00000010 |
| 39 | #define JIT_F_SQRT 0x00000020 | 39 | #define JIT_F_ROUND 0x00000020 |
| 40 | #define JIT_F_ROUND 0x00000040 | ||
| 41 | #define JIT_F_CELL 0x00000080 | ||
| 42 | #define JIT_F_XENON 0x00000100 | ||
| 43 | 40 | ||
| 44 | /* Names for the CPU-specific flags. Must match the order above. */ | 41 | /* Names for the CPU-specific flags. Must match the order above. */ |
| 45 | #define JIT_F_CPU_FIRST JIT_F_PPC64 | 42 | #define JIT_F_CPU_FIRST JIT_F_SQRT |
| 46 | #define JIT_F_CPUSTRING "\5PPC64\4SQRT\5ROUND\4CELL\5XENON" | 43 | #define JIT_F_CPUSTRING "\4SQRT\5ROUND" |
| 47 | #elif LJ_TARGET_MIPS | 44 | #elif LJ_TARGET_MIPS |
| 48 | #define JIT_F_MIPS32R2 0x00000010 | 45 | #define JIT_F_MIPS32R2 0x00000010 |
| 49 | 46 | ||
diff --git a/src/lj_mcode.c b/src/lj_mcode.c index 41f7951a..34405b5a 100644 --- a/src/lj_mcode.c +++ b/src/lj_mcode.c | |||
| @@ -13,6 +13,8 @@ | |||
| 13 | #include "lj_mcode.h" | 13 | #include "lj_mcode.h" |
| 14 | #include "lj_trace.h" | 14 | #include "lj_trace.h" |
| 15 | #include "lj_dispatch.h" | 15 | #include "lj_dispatch.h" |
| 16 | #endif | ||
| 17 | #if LJ_HASJIT || LJ_HASFFI | ||
| 16 | #include "lj_vm.h" | 18 | #include "lj_vm.h" |
| 17 | #endif | 19 | #endif |
| 18 | 20 | ||
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index 49f92d0a..2c4940cd 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
| @@ -4804,7 +4804,11 @@ static void emit_asm_debug(BuildCtx *ctx) | |||
| 4804 | "\t.long .LEFDE1-.LASFDE1\n" | 4804 | "\t.long .LEFDE1-.LASFDE1\n" |
| 4805 | ".LASFDE1:\n" | 4805 | ".LASFDE1:\n" |
| 4806 | "\t.long .Lframe0\n" | 4806 | "\t.long .Lframe0\n" |
| 4807 | #if LJ_TARGET_PS3 | ||
| 4808 | "\t.long .lj_vm_ffi_call\n" | ||
| 4809 | #else | ||
| 4807 | "\t.long lj_vm_ffi_call\n" | 4810 | "\t.long lj_vm_ffi_call\n" |
| 4811 | #endif | ||
| 4808 | "\t.long %d\n" | 4812 | "\t.long %d\n" |
| 4809 | "\t.byte 0x11\n\t.uleb128 65\n\t.sleb128 -1\n" | 4813 | "\t.byte 0x11\n\t.uleb128 65\n\t.sleb128 -1\n" |
| 4810 | "\t.byte 0x8e\n\t.uleb128 2\n" | 4814 | "\t.byte 0x8e\n\t.uleb128 2\n" |
| @@ -4812,6 +4816,7 @@ static void emit_asm_debug(BuildCtx *ctx) | |||
| 4812 | "\t.align 2\n" | 4816 | "\t.align 2\n" |
| 4813 | ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); | 4817 | ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); |
| 4814 | #endif | 4818 | #endif |
| 4819 | #if !LJ_NO_UNWIND | ||
| 4815 | fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n"); | 4820 | fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n"); |
| 4816 | fprintf(ctx->fp, | 4821 | fprintf(ctx->fp, |
| 4817 | ".Lframe1:\n" | 4822 | ".Lframe1:\n" |
| @@ -4880,6 +4885,7 @@ static void emit_asm_debug(BuildCtx *ctx) | |||
| 4880 | "\t.align 2\n" | 4885 | "\t.align 2\n" |
| 4881 | ".LEFDE3:\n\n", (int)ctx->codesz - fcofs); | 4886 | ".LEFDE3:\n\n", (int)ctx->codesz - fcofs); |
| 4882 | #endif | 4887 | #endif |
| 4888 | #endif | ||
| 4883 | break; | 4889 | break; |
| 4884 | default: | 4890 | default: |
| 4885 | break; | 4891 | break; |
