diff options
Diffstat (limited to 'src/crypto/CryptonightR_JIT.c')
-rw-r--r-- | src/crypto/CryptonightR_JIT.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/crypto/CryptonightR_JIT.c b/src/crypto/CryptonightR_JIT.c index 1667bf816..08dc039c4 100644 --- a/src/crypto/CryptonightR_JIT.c +++ b/src/crypto/CryptonightR_JIT.c @@ -12,6 +12,7 @@ #include "CryptonightR_template.h" static const uint8_t prologue[] = { +#if defined __i386 || defined __x86_64__ 0x4C, 0x8B, 0xD7, // mov r10, rdi 0x53, // push rbx 0x55, // push rbp @@ -26,9 +27,11 @@ static const uint8_t prologue[] = { 0x41, 0x8B, 0x42, 0x18, // mov eax, DWORD PTR [r10+24] 0x41, 0x8B, 0x52, 0x1C, // mov edx, DWORD PTR [r10+28] 0x45, 0x8B, 0x4A, 0x20, // mov r9d, DWORD PTR [r10+32] +#endif }; static const uint8_t epilogue[] = { +#if defined __i386 || defined __x86_64__ 0x49, 0x8B, 0xE3, // mov rsp, r11 0x41, 0x89, 0x1A, // mov DWORD PTR [r10], ebx 0x41, 0x89, 0x72, 0x04, // mov DWORD PTR [r10+4], esi @@ -38,6 +41,7 @@ static const uint8_t epilogue[] = { 0x5D, // pop rbp 0x5B, // pop rbx 0xC3, // ret +#endif }; #define APPEND_CODE(src, size) \ @@ -50,6 +54,7 @@ static const uint8_t epilogue[] = { int v4_generate_JIT_code(const struct V4_Instruction* code, v4_random_math_JIT_func buf, const size_t buf_size) { +#if defined __i386 || defined __x86_64__ uint8_t* JIT_code = (uint8_t*) buf; const uint8_t* JIT_code_end = JIT_code + buf_size; @@ -99,4 +104,7 @@ int v4_generate_JIT_code(const struct V4_Instruction* code, v4_random_math_JIT_f __builtin___clear_cache((char*)buf, (char*)JIT_code); return 0; +#else + return 1; +#endif } |