diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/ffi.configure | 7 | ||||
-rw-r--r-- | js/src/wasm/WasmSignalHandlers.cpp | 13 |
2 files changed, 17 insertions, 3 deletions
diff --git a/js/ffi.configure b/js/ffi.configure index 9c60ac3a3c..749b5f7010 100644 --- a/js/ffi.configure +++ b/js/ffi.configure @@ -38,8 +38,11 @@ def ffi_target(target): else: target_name = 'X86_WIN32' elif target.os == 'OSX': - target_dir = 'x86' - target_name = 'X86_DARWIN' + if target.cpu == 'aarch64': + target_name = 'AARCH64_DARWIN' + else: + target_name = 'X86_DARWIN' + target_dir = 'aarch64' elif target.cpu == 'arm': target_dir = 'arm' target_name = 'ARM' diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp index 7699b336cc..36011abe90 100644 --- a/js/src/wasm/WasmSignalHandlers.cpp +++ b/js/src/wasm/WasmSignalHandlers.cpp @@ -283,6 +283,12 @@ struct macos_arm_context { arm_neon_state_t float_; }; # define EMULATOR_CONTEXT macos_arm_context +# elif defined(__aarch64__) +struct macos_aarch64_context { + arm_thread_state64_t thread; + arm_neon_state64_t float_; +}; +# define EMULATOR_CONTEXT macos_aarch64_context # else # error Unsupported architecture # endif @@ -800,7 +806,7 @@ ContextToPC(EMULATOR_CONTEXT* context) static_assert(sizeof(context->thread.uts.ts32.__eip) == sizeof(void*), "stored IP should be compile-time pointer-sized"); return reinterpret_cast<uint8_t**>(&context->thread.uts.ts32.__eip); -# elif defined(JS_CPU_ARM) +# elif defined(JS_CPU_ARM) || defined(__aarch64__) static_assert(sizeof(context->thread.__pc) == sizeof(void*), "stored IP should be compile-time pointer-sized"); return reinterpret_cast<uint8_t**>(&context->thread.__pc); @@ -861,6 +867,11 @@ HandleMachException(JSRuntime* rt, const ExceptionRequest& request) unsigned int float_state_count = ARM_NEON_STATE_COUNT; int thread_state = ARM_THREAD_STATE; int float_state = ARM_NEON_STATE; +# elif defined(__aarch64__) + unsigned int thread_state_count = ARM_THREAD_STATE64_COUNT; + unsigned int float_state_count = ARM_NEON_STATE64_COUNT; + int thread_state = ARM_THREAD_STATE64; + int float_state = ARM_NEON_STATE64; # else # error Unsupported architecture # endif |