opnsense-ports/lang/ocaml/files/patch-runtime_power.S
Franco Fichtner 5badfe657f */*: sync with upstream
Taken from: FreeBSD
2024-03-14 14:22:26 +01:00

153 lines
4.1 KiB
ArmAsm

--- runtime/power.S.orig 2024-02-05 15:40:20 UTC
+++ runtime/power.S
@@ -13,7 +13,7 @@
/* */
/**************************************************************************/
-#if defined(MODEL_ppc64le)
+#if _CALL_ELF == 2
.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
@@ -52,7 +52,7 @@
#define CALLBACK_LINK_SIZE 16
#define CALLBACK_LINK_OFFSET 0
#endif
-#if defined(MODEL_ppc64)
+#if _CALL_ELF == 1
#define RESERVED_STACK 48
#define PARAM_SAVE_AREA (8*8)
#define LR_SAVE 16
@@ -64,7 +64,7 @@
#define CALLBACK_LINK_SIZE 32
#define CALLBACK_LINK_OFFSET 48
#endif
-#if defined(MODEL_ppc64le)
+#if _CALL_ELF == 2
#define RESERVED_STACK 32
#define PARAM_SAVE_AREA 0
#define LR_SAVE 16
@@ -92,7 +92,7 @@
#endif
-#if defined(MODEL_ppc64)
+#if _CALL_ELF == 1
#define FUNCTION(name) \
.section ".opd","aw"; \
.align 3; \
@@ -108,7 +108,7 @@
#endif
-#if defined(MODEL_ppc64le)
+#if _CALL_ELF == 2
#define FUNCTION(name) \
.section ".text"; \
.globl name; \
@@ -133,7 +133,7 @@
addi reg, reg, glob@l
#endif
-#if defined(MODEL_ppc64) || defined(MODEL_ppc64le)
+#if _CALL_ELF == 1 || _CALL_ELF == 2
#define LSYMB(glob) .L##glob
@@ -150,7 +150,7 @@
#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"
@@ -237,7 +237,7 @@ FUNCTION(caml_call_gc)
stfdu 31, 8(11)
/* Call the GC */
bl caml_garbage_collection
-#if defined(MODEL_ppc64) || defined(MODEL_ppc64le)
+#if _CALL_ELF == 1 || _CALL_ELF == 2
nop
#endif
/* Reload new allocation pointer */
@@ -329,14 +329,14 @@ FUNCTION(caml_c_call)
#if defined(MODEL_ppc)
mtctr C_CALL_FUN
bctrl
-#elif defined(MODEL_ppc64)
+#elif _CALL_ELF == 1
ld 0, 0(C_CALL_FUN)
mr C_CALL_TOC, 2 /* save current TOC in a callee-save register */
mtctr 0
ld 2, 8(C_CALL_FUN)
bctrl
mr 2, C_CALL_TOC /* restore current TOC */
-#elif defined(MODEL_ppc64le)
+#elif _CALL_ELF == 2
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
-#if defined(MODEL_ppc64) || defined(MODEL_ppc64le)
+#if _CALL_ELF == 1 || _CALL_ELF == 2
nop
#endif
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
-#if defined(MODEL_ppc64) || defined(MODEL_ppc64le)
+#if _CALL_ELF == 1 || _CALL_ELF == 2
nop
#endif
mr 3, 27 /* restore exn bucket */
@@ -507,14 +507,14 @@ FUNCTION(caml_start_program)
#if defined(MODEL_ppc)
mtctr 12
.L105: bctrl
-#elif defined(MODEL_ppc64)
+#elif _CALL_ELF == 1
ld 0, 0(12)
mtctr 0
std 2, TOC_SAVE(1)
ld 2, 8(12)
.L105: bctrl
ld 2, TOC_SAVE(1)
-#elif defined(MODEL_ppc64le)
+#elif _CALL_ELF == 2
mtctr 12
std 2, TOC_SAVE(1)
.L105: bctrl
@@ -633,7 +633,7 @@ ENDFUNCTION(caml_callback3_asm)
b .L102
ENDFUNCTION(caml_callback3_asm)
-#if defined(MODEL_ppc64)
+#if _CALL_ELF == 1
.section ".opd","aw"
#else
.section ".text"
@@ -655,7 +655,7 @@ caml_system__frametable:
/* TOC entries */
-#if defined(MODEL_ppc64) || defined(MODEL_ppc64le)
+#if _CALL_ELF == 1 || _CALL_ELF == 2
.section ".toc", "aw"