As we discussed in the last meeting, we reset the ports tree and began from scratch, even though this change involves porting all the packages. Starting small and growing gradually, this approach will reduce build times and consequently lower energy consumption in a world affected by climate change. We will add new ports as users needs arise; ok h3artbl33d@
This commit is contained in:
parent
83a0aaf92c
commit
9a3af55370
59377 changed files with 98673 additions and 4712155 deletions
369
devel/libffi/patches/patch-src_aarch64_sysv_S
Normal file
369
devel/libffi/patches/patch-src_aarch64_sysv_S
Normal file
|
@ -0,0 +1,369 @@
|
|||
Index: src/aarch64/sysv.S
|
||||
--- src/aarch64/sysv.S.orig
|
||||
+++ src/aarch64/sysv.S
|
||||
@@ -78,6 +78,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
cfi_startproc
|
||||
CNAME(ffi_call_SYSV):
|
||||
+ bti c
|
||||
/* Sign the lr with x1 since that is where it will be stored */
|
||||
SIGN_LR_WITH_REG(x1)
|
||||
|
||||
@@ -138,78 +139,142 @@ CNAME(ffi_call_SYSV):
|
||||
/* Save the return value as directed. */
|
||||
adr x5, 0f
|
||||
and w4, w4, #AARCH64_RET_MASK
|
||||
- add x5, x5, x4, lsl #3
|
||||
+ add x5, x5, x4, lsl #4
|
||||
br x5
|
||||
|
||||
- /* Note that each table entry is 2 insns, and thus 8 bytes.
|
||||
+ /* Note that each table entry is 4 insns, and thus 16 bytes.
|
||||
For integer data, note that we're storing into ffi_arg
|
||||
and therefore we want to extend to 64 bits; these types
|
||||
have two consecutive entries allocated for them. */
|
||||
.align 4
|
||||
-0: b 99f /* VOID */
|
||||
+0: bti j /* VOID */
|
||||
+ b 99f
|
||||
+ nop
|
||||
nop
|
||||
-1: str x0, [x3] /* INT64 */
|
||||
+1: bti j /* INT64 */
|
||||
+ str x0, [x3]
|
||||
b 99f
|
||||
-2: stp x0, x1, [x3] /* INT128 */
|
||||
+ nop
|
||||
+2: bti j /* INT128 */
|
||||
+ stp x0, x1, [x3]
|
||||
b 99f
|
||||
+ nop
|
||||
3: brk #1000 /* UNUSED */
|
||||
b 99f
|
||||
+ nop
|
||||
+ nop
|
||||
4: brk #1000 /* UNUSED */
|
||||
b 99f
|
||||
+ nop
|
||||
+ nop
|
||||
5: brk #1000 /* UNUSED */
|
||||
b 99f
|
||||
+ nop
|
||||
+ nop
|
||||
6: brk #1000 /* UNUSED */
|
||||
b 99f
|
||||
+ nop
|
||||
+ nop
|
||||
7: brk #1000 /* UNUSED */
|
||||
b 99f
|
||||
-8: st4 { v0.s, v1.s, v2.s, v3.s }[0], [x3] /* S4 */
|
||||
+ nop
|
||||
+ nop
|
||||
+8: bti j /* S4 */
|
||||
+ st4 { v0.s, v1.s, v2.s, v3.s }[0], [x3]
|
||||
b 99f
|
||||
-9: st3 { v0.s, v1.s, v2.s }[0], [x3] /* S3 */
|
||||
+ nop
|
||||
+9: bti j /* S3 */
|
||||
+ st3 { v0.s, v1.s, v2.s }[0], [x3]
|
||||
b 99f
|
||||
-10: stp s0, s1, [x3] /* S2 */
|
||||
+ nop
|
||||
+10: bti j /* S2 */
|
||||
+ stp s0, s1, [x3]
|
||||
b 99f
|
||||
-11: str s0, [x3] /* S1 */
|
||||
+ nop
|
||||
+11: bti j
|
||||
+ str s0, [x3] /* S1 */
|
||||
b 99f
|
||||
-12: st4 { v0.d, v1.d, v2.d, v3.d }[0], [x3] /* D4 */
|
||||
+ nop
|
||||
+12: bti j /* D4 */
|
||||
+ st4 { v0.d, v1.d, v2.d, v3.d }[0], [x3]
|
||||
b 99f
|
||||
-13: st3 { v0.d, v1.d, v2.d }[0], [x3] /* D3 */
|
||||
+ nop
|
||||
+13: bti j /* D3 */
|
||||
+ st3 { v0.d, v1.d, v2.d }[0], [x3]
|
||||
b 99f
|
||||
-14: stp d0, d1, [x3] /* D2 */
|
||||
+ nop
|
||||
+14: bti j /* D2 */
|
||||
+ stp d0, d1, [x3]
|
||||
b 99f
|
||||
-15: str d0, [x3] /* D1 */
|
||||
+ nop
|
||||
+15: bti j /* D1 */
|
||||
+ str d0, [x3]
|
||||
b 99f
|
||||
-16: str q3, [x3, #48] /* Q4 */
|
||||
nop
|
||||
-17: str q2, [x3, #32] /* Q3 */
|
||||
+16: bti j /* Q4 */
|
||||
+ str q3, [x3, #48]
|
||||
nop
|
||||
-18: stp q0, q1, [x3] /* Q2 */
|
||||
+ nop
|
||||
+17: bti j /* Q3 */
|
||||
+ str q2, [x3, #32]
|
||||
+ nop
|
||||
+ nop
|
||||
+18: bti j /* Q2 */
|
||||
+ stp q0, q1, [x3]
|
||||
b 99f
|
||||
-19: str q0, [x3] /* Q1 */
|
||||
+ nop
|
||||
+19: bti j /* Q1 */
|
||||
+ str q0, [x3]
|
||||
b 99f
|
||||
-20: uxtb w0, w0 /* UINT8 */
|
||||
+ nop
|
||||
+20: bti j /* UINT8 */
|
||||
+ uxtb w0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
21: b 99f /* reserved */
|
||||
nop
|
||||
-22: uxth w0, w0 /* UINT16 */
|
||||
+ nop
|
||||
+ nop
|
||||
+22: bti j /* UINT16 */
|
||||
+ uxth w0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
23: b 99f /* reserved */
|
||||
nop
|
||||
-24: mov w0, w0 /* UINT32 */
|
||||
+ nop
|
||||
+ nop
|
||||
+24: bti j /* UINT32 */
|
||||
+ mov w0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
25: b 99f /* reserved */
|
||||
nop
|
||||
-26: sxtb x0, w0 /* SINT8 */
|
||||
+ nop
|
||||
+ nop
|
||||
+26: bti j /* SINT8 */
|
||||
+ sxtb x0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
27: b 99f /* reserved */
|
||||
nop
|
||||
-28: sxth x0, w0 /* SINT16 */
|
||||
+ nop
|
||||
+ nop
|
||||
+28: bti j /* SINT16 */
|
||||
+ sxth x0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
29: b 99f /* reserved */
|
||||
nop
|
||||
-30: sxtw x0, w0 /* SINT32 */
|
||||
+ nop
|
||||
+ nop
|
||||
+30: bti j /* SINT32 */
|
||||
+ sxtw x0, w0
|
||||
str x0, [x3]
|
||||
+ nop
|
||||
31: b 99f /* reserved */
|
||||
nop
|
||||
+ nop
|
||||
+ nop
|
||||
|
||||
/* Return now that result has been populated. */
|
||||
99:
|
||||
@@ -246,6 +311,7 @@ CNAME(ffi_call_SYSV):
|
||||
.align 4
|
||||
CNAME(ffi_closure_SYSV_V):
|
||||
cfi_startproc
|
||||
+ bti c
|
||||
SIGN_LR
|
||||
stp x29, x30, [sp, #-ffi_closure_SYSV_FS]!
|
||||
cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
|
||||
@@ -270,6 +336,7 @@ CNAME(ffi_closure_SYSV_V):
|
||||
.align 4
|
||||
cfi_startproc
|
||||
CNAME(ffi_closure_SYSV):
|
||||
+ bti c
|
||||
SIGN_LR
|
||||
stp x29, x30, [sp, #-ffi_closure_SYSV_FS]!
|
||||
cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
|
||||
@@ -299,74 +366,136 @@ CNAME(ffi_closure_SYSV):
|
||||
/* Load the return value as directed. */
|
||||
adr x1, 0f
|
||||
and w0, w0, #AARCH64_RET_MASK
|
||||
- add x1, x1, x0, lsl #3
|
||||
+ add x1, x1, x0, lsl #4
|
||||
add x3, sp, #16+CALL_CONTEXT_SIZE
|
||||
br x1
|
||||
|
||||
- /* Note that each table entry is 2 insns, and thus 8 bytes. */
|
||||
+ /* Note that each table entry is 4 insns, and thus 16 bytes. */
|
||||
.align 4
|
||||
-0: b 99f /* VOID */
|
||||
+0: bti j /* VOID */
|
||||
+ b 99f
|
||||
nop
|
||||
-1: ldr x0, [x3] /* INT64 */
|
||||
+ nop
|
||||
+1: bti j /* INT64 */
|
||||
+ ldr x0, [x3]
|
||||
b 99f
|
||||
-2: ldp x0, x1, [x3] /* INT128 */
|
||||
+ nop
|
||||
+2: bti j /* INT128 */
|
||||
+ ldp x0, x1, [x3]
|
||||
b 99f
|
||||
+ nop
|
||||
3: brk #1000 /* UNUSED */
|
||||
nop
|
||||
+ nop
|
||||
+ nop
|
||||
4: brk #1000 /* UNUSED */
|
||||
nop
|
||||
+ nop
|
||||
+ nop
|
||||
5: brk #1000 /* UNUSED */
|
||||
nop
|
||||
+ nop
|
||||
+ nop
|
||||
6: brk #1000 /* UNUSED */
|
||||
nop
|
||||
+ nop
|
||||
+ nop
|
||||
7: brk #1000 /* UNUSED */
|
||||
nop
|
||||
-8: ldr s3, [x3, #12] /* S4 */
|
||||
nop
|
||||
-9: ldr s2, [x3, #8] /* S3 */
|
||||
nop
|
||||
-10: ldp s0, s1, [x3] /* S2 */
|
||||
+8: bti j /* S4 */
|
||||
+ ldr s3, [x3, #12]
|
||||
+ nop
|
||||
+ nop
|
||||
+9: bti j /* S3 */
|
||||
+ ldr s2, [x3, #8]
|
||||
+ nop
|
||||
+ nop
|
||||
+10: bti j /* S2 */
|
||||
+ ldp s0, s1, [x3]
|
||||
b 99f
|
||||
-11: ldr s0, [x3] /* S1 */
|
||||
+ nop
|
||||
+11: bti j /* S1 */
|
||||
+ ldr s0, [x3]
|
||||
b 99f
|
||||
-12: ldr d3, [x3, #24] /* D4 */
|
||||
nop
|
||||
-13: ldr d2, [x3, #16] /* D3 */
|
||||
+12: bti j /* D4 */
|
||||
+ ldr d3, [x3, #24]
|
||||
nop
|
||||
-14: ldp d0, d1, [x3] /* D2 */
|
||||
+ nop
|
||||
+13: bti j /* D3 */
|
||||
+ ldr d2, [x3, #16]
|
||||
+ nop
|
||||
+ nop
|
||||
+14: bti j /* D2 */
|
||||
+ ldp d0, d1, [x3]
|
||||
b 99f
|
||||
-15: ldr d0, [x3] /* D1 */
|
||||
+ nop
|
||||
+15: bti j /* D1 */
|
||||
+ ldr d0, [x3]
|
||||
b 99f
|
||||
-16: ldr q3, [x3, #48] /* Q4 */
|
||||
nop
|
||||
-17: ldr q2, [x3, #32] /* Q3 */
|
||||
+16: bti j /* Q4 */
|
||||
+ ldr q3, [x3, #48]
|
||||
nop
|
||||
-18: ldp q0, q1, [x3] /* Q2 */
|
||||
+ nop
|
||||
+17: bti j /* Q3 */
|
||||
+ ldr q2, [x3, #32]
|
||||
+ nop
|
||||
+ nop
|
||||
+18: bti j /* Q2 */
|
||||
+ ldp q0, q1, [x3]
|
||||
b 99f
|
||||
-19: ldr q0, [x3] /* Q1 */
|
||||
+ nop
|
||||
+19: bti j /* Q1 */
|
||||
+ ldr q0, [x3]
|
||||
b 99f
|
||||
-20: ldrb w0, [x3, #BE(7)] /* UINT8 */
|
||||
+ nop
|
||||
+20: bti j /* UINT8 */
|
||||
+ ldrb w0, [x3, #BE(7)]
|
||||
b 99f
|
||||
+ nop
|
||||
21: brk #1000 /* reserved */
|
||||
nop
|
||||
-22: ldrh w0, [x3, #BE(6)] /* UINT16 */
|
||||
+ nop
|
||||
+ nop
|
||||
+22: bti j /* UINT16 */
|
||||
+ ldrh w0, [x3, #BE(6)]
|
||||
b 99f
|
||||
+ nop
|
||||
23: brk #1000 /* reserved */
|
||||
nop
|
||||
-24: ldr w0, [x3, #BE(4)] /* UINT32 */
|
||||
+ nop
|
||||
+ nop
|
||||
+24: bti j /* UINT32 */
|
||||
+ ldr w0, [x3, #BE(4)]
|
||||
b 99f
|
||||
+ nop
|
||||
25: brk #1000 /* reserved */
|
||||
nop
|
||||
-26: ldrsb x0, [x3, #BE(7)] /* SINT8 */
|
||||
+ nop
|
||||
+ nop
|
||||
+26: bti j /* SINT8 */
|
||||
+ ldrsb x0, [x3, #BE(7)]
|
||||
b 99f
|
||||
+ nop
|
||||
27: brk #1000 /* reserved */
|
||||
nop
|
||||
-28: ldrsh x0, [x3, #BE(6)] /* SINT16 */
|
||||
+ nop
|
||||
+ nop
|
||||
+28: bti j /* SINT16 */
|
||||
+ ldrsh x0, [x3, #BE(6)]
|
||||
b 99f
|
||||
+ nop
|
||||
29: brk #1000 /* reserved */
|
||||
nop
|
||||
-30: ldrsw x0, [x3, #BE(4)] /* SINT32 */
|
||||
nop
|
||||
+ nop
|
||||
+30: bti j /* SINT32 */
|
||||
+ ldrsw x0, [x3, #BE(4)]
|
||||
+ nop
|
||||
+ nop
|
||||
31: /* reserved */
|
||||
99: ldp x29, x30, [sp], #ffi_closure_SYSV_FS
|
||||
cfi_adjust_cfa_offset (-ffi_closure_SYSV_FS)
|
||||
@@ -479,6 +608,7 @@ CNAME(ffi_closure_trampoline_table_page):
|
||||
.align 4
|
||||
CNAME(ffi_go_closure_SYSV_V):
|
||||
cfi_startproc
|
||||
+ bti c
|
||||
stp x29, x30, [sp, #-ffi_closure_SYSV_FS]!
|
||||
cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
|
||||
cfi_rel_offset (x29, 0)
|
||||
@@ -502,6 +632,7 @@ CNAME(ffi_go_closure_SYSV_V):
|
||||
.align 4
|
||||
cfi_startproc
|
||||
CNAME(ffi_go_closure_SYSV):
|
||||
+ bti c
|
||||
stp x29, x30, [sp, #-ffi_closure_SYSV_FS]!
|
||||
cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
|
||||
cfi_rel_offset (x29, 0)
|
Loading…
Add table
Add a link
Reference in a new issue