diff options
Diffstat (limited to 'lang/ocaml/files/patch-runtime_power.S')
-rw-r--r-- | lang/ocaml/files/patch-runtime_power.S | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/lang/ocaml/files/patch-runtime_power.S b/lang/ocaml/files/patch-runtime_power.S index 0155af6a4e1c..6822b07d6a9b 100644 --- a/lang/ocaml/files/patch-runtime_power.S +++ b/lang/ocaml/files/patch-runtime_power.S @@ -1,6 +1,6 @@ ---- runtime/power.S.orig 2019-08-05 17:32:44 UTC +--- runtime/power.S.orig 2024-02-05 15:40:20 UTC +++ runtime/power.S -@@ -13,11 +13,11 @@ +@@ -13,7 +13,7 @@ /* */ /**************************************************************************/ @@ -9,12 +9,16 @@ .abiversion 2 #endif +@@ -27,7 +27,7 @@ + #define DOMAIN_STATE_PTR 30 + #define ALLOC_PTR 31 + -#if defined(MODEL_ppc64) || defined(MODEL_ppc64le) +#if _CALL_ELF == 1 || _CALL_ELF == 2 #define EITHER(a,b) b #else #define EITHER(a,b) a -@@ -42,7 +42,7 @@ +@@ -52,7 +52,7 @@ #define CALLBACK_LINK_SIZE 16 #define CALLBACK_LINK_OFFSET 0 #endif @@ -23,7 +27,7 @@ #define RESERVED_STACK 48 #define PARAM_SAVE_AREA (8*8) #define LR_SAVE 16 -@@ -54,7 +54,7 @@ +@@ -64,7 +64,7 @@ #define CALLBACK_LINK_SIZE 32 #define CALLBACK_LINK_OFFSET 48 #endif @@ -32,7 +36,7 @@ #define RESERVED_STACK 32 #define PARAM_SAVE_AREA 0 #define LR_SAVE 16 -@@ -82,7 +82,7 @@ +@@ -92,7 +92,7 @@ #endif @@ -41,7 +45,7 @@ #define FUNCTION(name) \ .section ".opd","aw"; \ .align 3; \ -@@ -98,7 +98,7 @@ +@@ -108,7 +108,7 @@ #endif @@ -50,8 +54,8 @@ #define FUNCTION(name) \ .section ".text"; \ .globl name; \ -@@ -136,7 +136,7 @@ - +@@ -133,7 +133,7 @@ + addi reg, reg, glob@l #endif -#if defined(MODEL_ppc64) || defined(MODEL_ppc64le) @@ -59,16 +63,16 @@ #define LSYMB(glob) .L##glob -@@ -157,7 +157,7 @@ +@@ -150,7 +150,7 @@ - #endif + #define Caml_state(var) 8*domain_field_caml_##var(DOMAIN_STATE_PTR) -#if defined(MODEL_ppc64) +#if _CALL_ELF == 1 .section ".opd","aw" #else .section ".text" -@@ -244,7 +244,7 @@ FUNCTION(caml_call_gc) +@@ -237,7 +237,7 @@ FUNCTION(caml_call_gc) stfdu 31, 8(11) /* Call the GC */ bl caml_garbage_collection @@ -76,25 +80,25 @@ +#if _CALL_ELF == 1 || _CALL_ELF == 2 nop #endif - /* Reload new allocation pointer and allocation limit */ -@@ -338,14 +338,14 @@ FUNCTION(caml_c_call) + /* Reload new allocation pointer */ +@@ -329,14 +329,14 @@ FUNCTION(caml_c_call) #if defined(MODEL_ppc) - mtctr 28 + mtctr C_CALL_FUN bctrl -#elif defined(MODEL_ppc64) +#elif _CALL_ELF == 1 - ld 0, 0(28) - mr 26, 2 /* save current TOC in a callee-save register */ + ld 0, 0(C_CALL_FUN) + mr C_CALL_TOC, 2 /* save current TOC in a callee-save register */ mtctr 0 - ld 2, 8(28) + ld 2, 8(C_CALL_FUN) bctrl - mr 2, 26 /* restore current TOC */ + mr 2, C_CALL_TOC /* restore current TOC */ -#elif defined(MODEL_ppc64le) +#elif _CALL_ELF == 2 - mtctr 28 - mr 12, 28 - mr 26, 2 /* save current TOC in a callee-save register */ -@@ -388,7 +388,7 @@ FUNCTION(caml_raise_exn) + mtctr C_CALL_FUN + mr 12, C_CALL_FUN + mr C_CALL_TOC, 2 /* save current TOC in a callee-save register */ +@@ -378,7 +378,7 @@ FUNCTION(caml_raise_exn) addi 1, 1, -(PARAM_SAVE_AREA + RESERVED_STACK) /* reserve stack space for C call */ bl caml_stash_backtrace @@ -102,8 +106,8 @@ +#if _CALL_ELF == 1 || _CALL_ELF == 2 nop #endif - mr 3, 28 /* restore exn bucket */ -@@ -424,7 +424,7 @@ FUNCTION(caml_raise_exception) + mr 3, 27 /* restore exn bucket */ +@@ -414,7 +414,7 @@ FUNCTION(caml_raise_exception) addi 1, 1, -(PARAM_SAVE_AREA + RESERVED_STACK) /* reserve stack space for C call */ bl caml_stash_backtrace @@ -111,8 +115,8 @@ +#if _CALL_ELF == 1 || _CALL_ELF == 2 nop #endif - mr 3, 28 /* restore exn bucket */ -@@ -514,14 +514,14 @@ FUNCTION(caml_start_program) + mr 3, 27 /* restore exn bucket */ +@@ -507,14 +507,14 @@ FUNCTION(caml_start_program) #if defined(MODEL_ppc) mtctr 12 .L105: bctrl @@ -129,16 +133,16 @@ mtctr 12 std 2, TOC_SAVE(1) .L105: bctrl -@@ -634,7 +634,7 @@ ENDFUNCTION(caml_callback3_exn) +@@ -633,7 +633,7 @@ ENDFUNCTION(caml_callback3_asm) b .L102 - ENDFUNCTION(caml_callback3_exn) + ENDFUNCTION(caml_callback3_asm) -#if defined(MODEL_ppc64) +#if _CALL_ELF == 1 .section ".opd","aw" #else .section ".text" -@@ -656,7 +656,7 @@ caml_system__frametable: +@@ -655,7 +655,7 @@ caml_system__frametable: /* TOC entries */ |