From 842cbbe2deac7546b6e860bf413e03b6ad565c82 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 16 Dec 2012 13:56:54 +0000 Subject: make spidermonkey 1.8.5 build without JIT on RISC OS add support for spidermonkey 1.7.0 source --- .../ExecutableAllocator.h.p | 11 ++++ .../ExecutableAllocatorPosix.cpp.p | 11 ++++ .../arm-unknown-riscos-1.8.5/Makefile.p | 21 +++++++ .../arm-unknown-riscos-1.8.5/MethodJIT.p | 67 ++++++++++++++++++++++ .../arm-unknown-riscos-1.8.5/Platform.h.p | 32 +++++++++++ .../arm-unknown-riscos-1.8.5/configure.p | 30 ++++++++++ .../arm-unknown-riscos-1.8.5/jscntxt.cpp.p | 11 ++++ .../arm-unknown-riscos-1.8.5/jsgcchunk.cpp.p | 27 +++++++++ .../arm-unknown-riscos-1.8.5/jsnativestack.cpp.p | 22 +++++++ .../arm-unknown-riscos-1.8.5/jstypedarray.cpp.p | 11 ++++ .../arm-unknown-riscos/ExecutableAllocator.h.p | 11 ---- .../ExecutableAllocatorPosix.cpp.p | 11 ---- .../spidermonkey/arm-unknown-riscos/MethodJIT.p | 67 ---------------------- .../spidermonkey/arm-unknown-riscos/Platform.h.p | 32 ----------- .../spidermonkey/arm-unknown-riscos/configure.p | 30 ---------- .../spidermonkey/arm-unknown-riscos/jscntxt.cpp.p | 11 ---- .../arm-unknown-riscos/jsgcchunk.cpp.p | 27 --------- .../arm-unknown-riscos/jsnativestack.cpp.p | 22 ------- .../arm-unknown-riscos/jstypedarray.cpp.p | 11 ---- 19 files changed, 243 insertions(+), 222 deletions(-) create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocator.h.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocatorPosix.cpp.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Makefile.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Platform.h.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/configure.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jscntxt.cpp.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsgcchunk.cpp.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsnativestack.cpp.p create mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jstypedarray.cpp.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p delete mode 100644 sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p (limited to 'sdk/recipes/patches/spidermonkey') diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocator.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocator.h.p new file mode 100644 index 0000000..30b811f --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocator.h.p @@ -0,0 +1,11 @@ +--- js/src/assembler/jit/ExecutableAllocator.h.orig 2012-11-08 14:37:17.000000000 +0000 ++++ js/src/assembler/jit/ExecutableAllocator.h 2012-11-08 14:46:42.000000000 +0000 +@@ -370,7 +370,7 @@ + } + #elif WTF_CPU_ARM_TRADITIONAL && WTF_PLATFORM_LINUX && WTF_COMPILER_RVCT + static __asm void cacheFlush(void* code, size_t size); +-#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID) && WTF_COMPILER_GCC ++#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID || WTF_PLATFORM_RISCOS) && WTF_COMPILER_GCC + static void cacheFlush(void* code, size_t size) + { + asm volatile ( diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocatorPosix.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocatorPosix.cpp.p new file mode 100644 index 0000000..2f31400 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/ExecutableAllocatorPosix.cpp.p @@ -0,0 +1,11 @@ +--- js/src/assembler/jit/ExecutableAllocatorPosix.cpp.orig 2012-11-08 16:02:56.000000000 +0000 ++++ js/src/assembler/jit/ExecutableAllocatorPosix.cpp 2012-11-08 15:34:03.000000000 +0000 +@@ -25,7 +25,7 @@ + + #include "ExecutableAllocator.h" + +-#if ENABLE_ASSEMBLER && WTF_PLATFORM_UNIX && !WTF_PLATFORM_SYMBIAN ++#if ENABLE_ASSEMBLER && (WTF_PLATFORM_UNIX || WTF_PLATFORM_RISCOS) && !WTF_PLATFORM_SYMBIAN + + #include + #include diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Makefile.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Makefile.p new file mode 100644 index 0000000..abe9df9 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Makefile.p @@ -0,0 +1,21 @@ +--- js/src/Makefile.in.orig 2012-12-16 13:10:27.000000000 +0000 ++++ js/src/Makefile.in 2012-12-16 13:10:59.000000000 +0000 +@@ -878,7 +878,7 @@ + install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) + ifneq (,$(LIBRARY)) + $(SYSINSTALL) $(LIBRARY) $(DESTDIR)$(libdir) +- mv -f $(DESTDIR)$(libdir)/$(LIBRARY) $(subst $(STATIC_LIBRARY_NAME),mozjs185-$(SRCREL_ABI_VERSION),$(DESTDIR)$(libdir)/$(LIBRARY)) ++ mv -f $(DESTDIR)$(libdir)/$(LIBRARY) $(subst $(STATIC_LIBRARY_NAME),mozjs185,$(DESTDIR)$(libdir)/$(LIBRARY)) + endif + ifneq (,$(SHARED_LIBRARY)) + ifeq (,$(HOST_BIN_SUFFIX)) +@@ -968,7 +968,8 @@ + # Needed to "configure" it correctly. Unfortunately these + # flags wind up being applied to all code in js/src, not just + # the code in js/src/assembler. +-CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1 ++CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 ++#-DENABLE_ASSEMBLER=1 -DENABLE_JIT=1 + + INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr + diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p new file mode 100644 index 0000000..2d7ddb0 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p @@ -0,0 +1,67 @@ +--- js/src/methodjit/MethodJIT.cpp 2012-12-10 19:03:08.000000000 +0000 ++++ js/src/methodjit/MethodJIT.cpp 2012-12-10 19:04:11.000000000 +0000 +@@ -433,7 +433,7 @@ + "ldr r1, [r11, #24]" "\n" /* fp->rval data */ + "ldr r2, [r11, #28]" "\n" /* fp->rval type */ + "ldr r11, [sp, #28]" "\n" /* load f.fp */ +- "bx lr" "\n" ++ "mov pc, lr" "\n" + ); + + asm volatile ( +@@ -487,12 +487,12 @@ + " mov r11, r1" "\n" + + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" ++" bl " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" ++" bl " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" + + /* Call the compiled JavaScript function. */ +-" bx r4" "\n" ++" mov pc, r4" "\n" + ); + + asm volatile ( +@@ -505,7 +505,7 @@ + + /* Tidy up. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + + /* Skip past the parameters we pushed (such as cx and the like). */ + " add sp, sp, #(4*7 + 4*4)" "\n" +@@ -524,17 +524,17 @@ + " mov r0, sp" "\n" + + /* Call the utility function that sets up the internal throw routine. */ +-" blx " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" ++" bl " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" + + /* If js_InternalThrow found a scripted handler, jump to it. Otherwise, tidy + * up and return. */ + " cmp r0, #0" "\n" + " it ne" "\n" +-" bxne r0" "\n" ++" movne pc, r0" "\n" + + /* Tidy up, then return '0' to represent an unhandled exception. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + " add sp, sp, #(4*7 + 4*4)" "\n" + " mov r0, #0" "\n" + " pop {r4-r11,pc}" "\n" +@@ -551,7 +551,8 @@ + * The arguments are identical to those for js_* except that the target function should be in + * 'ip'. */ + " push {ip,lr}" "\n" +-" blx ip" "\n" ++" mov lr, pc" "\n" ++" mov pc, ip" "\n" + " pop {ip,pc}" "\n" + ); + diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Platform.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Platform.h.p new file mode 100644 index 0000000..29bc2c2 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/Platform.h.p @@ -0,0 +1,32 @@ +--- js/src/assembler/wtf/Platform.h.orig 2011-03-31 20:08:36.000000000 +0100 ++++ js/src/assembler/wtf/Platform.h 2012-11-08 14:48:57.000000000 +0000 +@@ -188,6 +188,7 @@ + #elif !defined(__ARM_EABI__) \ + && !defined(__EABI__) \ + && !defined(__VFP_FP__) \ ++ && !defined(__riscos__) \ + && !defined(ANDROID) + #define WTF_CPU_MIDDLE_ENDIAN 1 + +@@ -232,6 +233,7 @@ + + #endif + ++#ifndef __riscos__ + /* Set WTF_THUMB_ARCH_VERSION */ + #if defined(__ARM_ARCH_4T__) + #define WTF_THUMB_ARCH_VERSION 1 +@@ -263,6 +265,13 @@ + #define WTF_THUMB_ARCH_VERSION 0 + #endif + ++#else ++ ++#define WTF_THUMB_ARCH_VERSION 0 ++#define WTF_PLATFORM_RISCOS 1 ++#define WTF_CPU_ARM_TRADITIONAL 0 ++ ++#endif + + /* CPU(ARMV5_OR_LOWER) - ARM instruction set v5 or earlier */ + /* On ARMv5 and below the natural alignment is required. diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/configure.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/configure.p new file mode 100644 index 0000000..fcd012a --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/configure.p @@ -0,0 +1,30 @@ +--- js/src/configure 2011-03-31 20:08:36.000000000 +0100 ++++ js/src/configure 2012-12-10 00:34:27.312881924 +0000 +@@ -7779,6 +7785,10 @@ + HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"' + ;; + ++*-riscos*) ++ TARGET_NSPR_MDCPUCFG='\"md/_riscos.cfg\"' ++ ;; ++ + *-android*) + cat >> confdefs.h <<\EOF + #define NO_PW_GECOS 1 +@@ -13341,6 +13341,16 @@ + { echo "configure: error: --with-cpu-arch=armv7 is not supported for non-ARM CPU architectures" 1>&2; exit 1; } + ;; + esac ++elif test "$MOZ_ARM_ARCH" = "armv3"; then ++ case "$target_cpu" in ++ arm*) ++ if test "$GNU_CC"; then ++ CFLAGS="$CFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ CXXFLAGS="$CXXFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ ASFLAGS="$ASFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ fi ++ ;; ++ esac + else + case "$target_cpu" in + arm*) diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jscntxt.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jscntxt.cpp.p new file mode 100644 index 0000000..d61d860 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jscntxt.cpp.p @@ -0,0 +1,11 @@ +--- js/src/jscntxt.cpp.orig 2012-11-08 14:49:30.000000000 +0000 ++++ js/src/jscntxt.cpp 2012-11-08 14:50:19.000000000 +0000 +@@ -179,7 +179,7 @@ + #elif defined(XP_OS2) + DosFreeMem(base); + #else +-#ifdef SOLARIS ++#if defined(SOLARIS) || defined(__riscos__) + munmap((caddr_t)base, CAPACITY_BYTES); + #else + munmap(base, CAPACITY_BYTES); diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsgcchunk.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsgcchunk.cpp.p new file mode 100644 index 0000000..b8720e4 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsgcchunk.cpp.p @@ -0,0 +1,27 @@ +--- js/src/jsgcchunk.cpp 2012-12-10 00:50:18.369597597 +0000 ++++ js/src/jsgcchunk.cpp 2012-12-10 00:51:36.317984488 +0000 +@@ -322,13 +322,13 @@ + * We don't use MAP_FIXED here, because it can cause the *replacement* + * of existing mappings, and we only want to create new mappings. + */ +- void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, ++ void *p = mmap((caddr_t)addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, + -1, 0); + if (p == MAP_FAILED) + return NULL; + if (addr && p != addr) { + /* We succeeded in mapping memory, but not in the right place. */ +- JS_ALWAYS_TRUE(munmap(p, size) == 0); ++ JS_ALWAYS_TRUE(munmap((caddr_t)p, size) == 0); + return NULL; + } + return p; +@@ -342,7 +342,7 @@ + #ifdef SOLARIS + JS_ALWAYS_TRUE(munmap((caddr_t) addr, size) == 0); + #else +- JS_ALWAYS_TRUE(munmap(addr, size) == 0); ++ JS_ALWAYS_TRUE(munmap((caddr_t)addr, size) == 0); + #endif + } + diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsnativestack.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsnativestack.cpp.p new file mode 100644 index 0000000..0e042a9 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jsnativestack.cpp.p @@ -0,0 +1,22 @@ +--- js/src/jsnativestack.cpp.orig 2012-11-08 14:53:01.000000000 +0000 ++++ js/src/jsnativestack.cpp 2012-11-08 14:53:58.000000000 +0000 +@@ -204,7 +204,9 @@ + * FIXME: this function is non-portable; + * other POSIX systems may have different np alternatives + */ ++#ifndef __riscos__ + pthread_getattr_np(thread, &sattr); ++#endif + # endif + + void *stackBase = 0; +@@ -212,7 +214,9 @@ + # ifdef DEBUG + int rc = + # endif ++#ifndef __riscos__ + pthread_attr_getstack(&sattr, &stackBase, &stackSize); ++#endif + JS_ASSERT(!rc); + JS_ASSERT(stackBase); + pthread_attr_destroy(&sattr); diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jstypedarray.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jstypedarray.cpp.p new file mode 100644 index 0000000..0f4cfa9 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/jstypedarray.cpp.p @@ -0,0 +1,11 @@ +--- js/src/jstypedarray.cpp.orig 2012-11-08 16:22:50.000000000 +0000 ++++ js/src/jstypedarray.cpp 2012-11-08 16:23:25.000000000 +0000 +@@ -454,7 +454,7 @@ + inline operator uint8() const { + return val; + } +-}; ++} __attribute__((packed)); + + /* Make sure the compiler isn't doing some funky stuff */ + JS_STATIC_ASSERT(sizeof(uint8_clamped) == 1); diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p deleted file mode 100644 index 30b811f..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p +++ /dev/null @@ -1,11 +0,0 @@ ---- js/src/assembler/jit/ExecutableAllocator.h.orig 2012-11-08 14:37:17.000000000 +0000 -+++ js/src/assembler/jit/ExecutableAllocator.h 2012-11-08 14:46:42.000000000 +0000 -@@ -370,7 +370,7 @@ - } - #elif WTF_CPU_ARM_TRADITIONAL && WTF_PLATFORM_LINUX && WTF_COMPILER_RVCT - static __asm void cacheFlush(void* code, size_t size); --#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID) && WTF_COMPILER_GCC -+#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID || WTF_PLATFORM_RISCOS) && WTF_COMPILER_GCC - static void cacheFlush(void* code, size_t size) - { - asm volatile ( diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p deleted file mode 100644 index 2f31400..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p +++ /dev/null @@ -1,11 +0,0 @@ ---- js/src/assembler/jit/ExecutableAllocatorPosix.cpp.orig 2012-11-08 16:02:56.000000000 +0000 -+++ js/src/assembler/jit/ExecutableAllocatorPosix.cpp 2012-11-08 15:34:03.000000000 +0000 -@@ -25,7 +25,7 @@ - - #include "ExecutableAllocator.h" - --#if ENABLE_ASSEMBLER && WTF_PLATFORM_UNIX && !WTF_PLATFORM_SYMBIAN -+#if ENABLE_ASSEMBLER && (WTF_PLATFORM_UNIX || WTF_PLATFORM_RISCOS) && !WTF_PLATFORM_SYMBIAN - - #include - #include diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p deleted file mode 100644 index 2d7ddb0..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p +++ /dev/null @@ -1,67 +0,0 @@ ---- js/src/methodjit/MethodJIT.cpp 2012-12-10 19:03:08.000000000 +0000 -+++ js/src/methodjit/MethodJIT.cpp 2012-12-10 19:04:11.000000000 +0000 -@@ -433,7 +433,7 @@ - "ldr r1, [r11, #24]" "\n" /* fp->rval data */ - "ldr r2, [r11, #28]" "\n" /* fp->rval type */ - "ldr r11, [sp, #28]" "\n" /* load f.fp */ -- "bx lr" "\n" -+ "mov pc, lr" "\n" - ); - - asm volatile ( -@@ -487,12 +487,12 @@ - " mov r11, r1" "\n" - - " mov r0, sp" "\n" --" blx " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" -+" bl " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" - " mov r0, sp" "\n" --" blx " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" -+" bl " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" - - /* Call the compiled JavaScript function. */ --" bx r4" "\n" -+" mov pc, r4" "\n" - ); - - asm volatile ( -@@ -505,7 +505,7 @@ - - /* Tidy up. */ - " mov r0, sp" "\n" --" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" -+" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" - - /* Skip past the parameters we pushed (such as cx and the like). */ - " add sp, sp, #(4*7 + 4*4)" "\n" -@@ -524,17 +524,17 @@ - " mov r0, sp" "\n" - - /* Call the utility function that sets up the internal throw routine. */ --" blx " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" -+" bl " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" - - /* If js_InternalThrow found a scripted handler, jump to it. Otherwise, tidy - * up and return. */ - " cmp r0, #0" "\n" - " it ne" "\n" --" bxne r0" "\n" -+" movne pc, r0" "\n" - - /* Tidy up, then return '0' to represent an unhandled exception. */ - " mov r0, sp" "\n" --" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" -+" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" - " add sp, sp, #(4*7 + 4*4)" "\n" - " mov r0, #0" "\n" - " pop {r4-r11,pc}" "\n" -@@ -551,7 +551,8 @@ - * The arguments are identical to those for js_* except that the target function should be in - * 'ip'. */ - " push {ip,lr}" "\n" --" blx ip" "\n" -+" mov lr, pc" "\n" -+" mov pc, ip" "\n" - " pop {ip,pc}" "\n" - ); - diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p deleted file mode 100644 index 9d91ac8..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p +++ /dev/null @@ -1,32 +0,0 @@ ---- js/src/assembler/wtf/Platform.h.orig 2011-03-31 20:08:36.000000000 +0100 -+++ js/src/assembler/wtf/Platform.h 2012-11-08 14:48:57.000000000 +0000 -@@ -188,6 +188,7 @@ - #elif !defined(__ARM_EABI__) \ - && !defined(__EABI__) \ - && !defined(__VFP_FP__) \ -+ && !defined(__riscos__) \ - && !defined(ANDROID) - #define WTF_CPU_MIDDLE_ENDIAN 1 - -@@ -232,6 +233,7 @@ - - #endif - -+#ifndef __riscos__ - /* Set WTF_THUMB_ARCH_VERSION */ - #if defined(__ARM_ARCH_4T__) - #define WTF_THUMB_ARCH_VERSION 1 -@@ -263,6 +265,13 @@ - #define WTF_THUMB_ARCH_VERSION 0 - #endif - -+#else -+ -+#define WTF_THUMB_ARCH_VERSION 0 -+#define WTF_PLATFORM_RISCOS 1 -+#define WTF_CPU_ARM_TRADITIONAL 1 -+ -+#endif - - /* CPU(ARMV5_OR_LOWER) - ARM instruction set v5 or earlier */ - /* On ARMv5 and below the natural alignment is required. diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p deleted file mode 100644 index fcd012a..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p +++ /dev/null @@ -1,30 +0,0 @@ ---- js/src/configure 2011-03-31 20:08:36.000000000 +0100 -+++ js/src/configure 2012-12-10 00:34:27.312881924 +0000 -@@ -7779,6 +7785,10 @@ - HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"' - ;; - -+*-riscos*) -+ TARGET_NSPR_MDCPUCFG='\"md/_riscos.cfg\"' -+ ;; -+ - *-android*) - cat >> confdefs.h <<\EOF - #define NO_PW_GECOS 1 -@@ -13341,6 +13341,16 @@ - { echo "configure: error: --with-cpu-arch=armv7 is not supported for non-ARM CPU architectures" 1>&2; exit 1; } - ;; - esac -+elif test "$MOZ_ARM_ARCH" = "armv3"; then -+ case "$target_cpu" in -+ arm*) -+ if test "$GNU_CC"; then -+ CFLAGS="$CFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" -+ CXXFLAGS="$CXXFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" -+ ASFLAGS="$ASFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" -+ fi -+ ;; -+ esac - else - case "$target_cpu" in - arm*) diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p deleted file mode 100644 index d61d860..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p +++ /dev/null @@ -1,11 +0,0 @@ ---- js/src/jscntxt.cpp.orig 2012-11-08 14:49:30.000000000 +0000 -+++ js/src/jscntxt.cpp 2012-11-08 14:50:19.000000000 +0000 -@@ -179,7 +179,7 @@ - #elif defined(XP_OS2) - DosFreeMem(base); - #else --#ifdef SOLARIS -+#if defined(SOLARIS) || defined(__riscos__) - munmap((caddr_t)base, CAPACITY_BYTES); - #else - munmap(base, CAPACITY_BYTES); diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p deleted file mode 100644 index b8720e4..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p +++ /dev/null @@ -1,27 +0,0 @@ ---- js/src/jsgcchunk.cpp 2012-12-10 00:50:18.369597597 +0000 -+++ js/src/jsgcchunk.cpp 2012-12-10 00:51:36.317984488 +0000 -@@ -322,13 +322,13 @@ - * We don't use MAP_FIXED here, because it can cause the *replacement* - * of existing mappings, and we only want to create new mappings. - */ -- void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -+ void *p = mmap((caddr_t)addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, - -1, 0); - if (p == MAP_FAILED) - return NULL; - if (addr && p != addr) { - /* We succeeded in mapping memory, but not in the right place. */ -- JS_ALWAYS_TRUE(munmap(p, size) == 0); -+ JS_ALWAYS_TRUE(munmap((caddr_t)p, size) == 0); - return NULL; - } - return p; -@@ -342,7 +342,7 @@ - #ifdef SOLARIS - JS_ALWAYS_TRUE(munmap((caddr_t) addr, size) == 0); - #else -- JS_ALWAYS_TRUE(munmap(addr, size) == 0); -+ JS_ALWAYS_TRUE(munmap((caddr_t)addr, size) == 0); - #endif - } - diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p deleted file mode 100644 index 0e042a9..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p +++ /dev/null @@ -1,22 +0,0 @@ ---- js/src/jsnativestack.cpp.orig 2012-11-08 14:53:01.000000000 +0000 -+++ js/src/jsnativestack.cpp 2012-11-08 14:53:58.000000000 +0000 -@@ -204,7 +204,9 @@ - * FIXME: this function is non-portable; - * other POSIX systems may have different np alternatives - */ -+#ifndef __riscos__ - pthread_getattr_np(thread, &sattr); -+#endif - # endif - - void *stackBase = 0; -@@ -212,7 +214,9 @@ - # ifdef DEBUG - int rc = - # endif -+#ifndef __riscos__ - pthread_attr_getstack(&sattr, &stackBase, &stackSize); -+#endif - JS_ASSERT(!rc); - JS_ASSERT(stackBase); - pthread_attr_destroy(&sattr); diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p deleted file mode 100644 index 0f4cfa9..0000000 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p +++ /dev/null @@ -1,11 +0,0 @@ ---- js/src/jstypedarray.cpp.orig 2012-11-08 16:22:50.000000000 +0000 -+++ js/src/jstypedarray.cpp 2012-11-08 16:23:25.000000000 +0000 -@@ -454,7 +454,7 @@ - inline operator uint8() const { - return val; - } --}; -+} __attribute__((packed)); - - /* Make sure the compiler isn't doing some funky stuff */ - JS_STATIC_ASSERT(sizeof(uint8_clamped) == 1); -- cgit v1.2.3