chore: switch purego dependency to bnema/purego fork
Replace local path replace directive with GitHub URL pointing to bnema/purego@91aa177 to avoid accidental pushes to upstream.
- commit
- 8b029581aa8aebd90aa84a2b638058062afa9bdd
- author
- brice · · 2026-03-23 19:51 UTC
- parent
- f14f9b6
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
51 files · +1860 -488
M go.mod +2 -0
| @@ -3,3 +3,5 @@ module github.com/bnema/puregotk | |||
| 3 | 3 | go 1.26.1 | |
| 4 | 4 | ||
| 5 | 5 | require github.com/ebitengine/purego v0.10.0 | |
| 6 | + | ||
| 7 | + | replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 | |
| @@ -3,3 +3,5 @@ module github.com/bnema/puregotk | |||||
| 3 | go 1.26.1 | 3 | go 1.26.1 | ||
| 4 | 4 | ||||
| 5 | require github.com/ebitengine/purego v0.10.0 | 5 | require github.com/ebitengine/purego v0.10.0 | ||
| 6 | + | ||||
| 7 | + | replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 | |||
M go.sum +2 -2 generated file: collapsed
M vendor/github.com/ebitengine/purego/README.md +3 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/dlfcn_nocgo_netbsd.go +2 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/func.go +220 -107 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_go123.go +12 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_nogo123.go +11 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/abi_riscv64.h +72 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/asm_riscv64.s +14 -55 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_freebsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_linux.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_netbsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_netbsd.go +2 -2 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/linux.go +184 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/netbsd.go +1 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_386.s +18 -4 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_amd64.s +1 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_arm.s +44 -3
| @@ -54,12 +54,53 @@ TEXT ·setg_trampoline(SB), NOSPLIT, $0-8 | |||
| 54 | 54 | BL (R12) | |
| 55 | 55 | RET | |
| 56 | 56 | ||
| 57 | - | TEXT threadentry_trampoline(SB), NOSPLIT, $8-0 | |
| 58 | - | // See crosscall2. | |
| 59 | - | MOVW R0, 4(R13) | |
| 57 | + | TEXT threadentry_trampoline(SB), NOSPLIT, $104-0 | |
| 58 | + | // Save C callee-saved registers at C-to-Go boundary. | |
| 59 | + | // See crosscall2 in asm_arm.s. | |
| 60 | + | // ARM AAPCS callee-saved: R4-R11 (includes g=R10), D8-D15. | |
| 61 | + | // LR is saved/restored by the Go-managed frame prologue/epilogue. | |
| 62 | + | MOVW R0, 4(R13) // arg for threadentry_call | |
| 63 | + | ||
| 64 | + | MOVW R4, 8(R13) | |
| 65 | + | MOVW R5, 12(R13) | |
| 66 | + | MOVW R6, 16(R13) | |
| 67 | + | MOVW R7, 20(R13) | |
| 68 | + | MOVW R8, 24(R13) | |
| 69 | + | MOVW R9, 28(R13) | |
| 70 | + | MOVW g, 32(R13) // R10 | |
| 71 | + | MOVW R11, 36(R13) | |
| 72 | + | ||
| 73 | + | MOVD F8, 40(R13) | |
| 74 | + | MOVD F9, 48(R13) | |
| 75 | + | MOVD F10, 56(R13) | |
| 76 | + | MOVD F11, 64(R13) | |
| 77 | + | MOVD F12, 72(R13) | |
| 78 | + | MOVD F13, 80(R13) | |
| 79 | + | MOVD F14, 88(R13) | |
| 80 | + | MOVD F15, 96(R13) | |
| 81 | + | ||
| 60 | 82 | MOVW ·threadentry_call(SB), R12 | |
| 61 | 83 | MOVW (R12), R12 | |
| 62 | 84 | CALL (R12) | |
| 85 | + | ||
| 86 | + | MOVD 40(R13), F8 | |
| 87 | + | MOVD 48(R13), F9 | |
| 88 | + | MOVD 56(R13), F10 | |
| 89 | + | MOVD 64(R13), F11 | |
| 90 | + | MOVD 72(R13), F12 | |
| 91 | + | MOVD 80(R13), F13 | |
| 92 | + | MOVD 88(R13), F14 | |
| 93 | + | MOVD 96(R13), F15 | |
| 94 | + | ||
| 95 | + | MOVW 8(R13), R4 | |
| 96 | + | MOVW 12(R13), R5 | |
| 97 | + | MOVW 16(R13), R6 | |
| 98 | + | MOVW 20(R13), R7 | |
| 99 | + | MOVW 24(R13), R8 | |
| 100 | + | MOVW 28(R13), R9 | |
| 101 | + | MOVW 32(R13), g | |
| 102 | + | MOVW 36(R13), R11 | |
| 103 | + | ||
| 63 | 104 | RET | |
| 64 | 105 | ||
| 65 | 106 | TEXT ·call5(SB), NOSPLIT, $8-28 | |
| @@ -54,12 +54,53 @@ TEXT ·setg_trampoline(SB), NOSPLIT, $0-8 | |||||
| 54 | BL (R12) | 54 | BL (R12) | ||
| 55 | RET | 55 | RET | ||
| 56 | 56 | ||||
| 57 | - | TEXT threadentry_trampoline(SB), NOSPLIT, $8-0 | 57 | + | TEXT threadentry_trampoline(SB), NOSPLIT, $104-0 |
| 58 | - | // See crosscall2. | 58 | + | // Save C callee-saved registers at C-to-Go boundary. |
| 59 | - | MOVW R0, 4(R13) | 59 | + | // See crosscall2 in asm_arm.s. |
| 60 | + | // ARM AAPCS callee-saved: R4-R11 (includes g=R10), D8-D15. | |||
| 61 | + | // LR is saved/restored by the Go-managed frame prologue/epilogue. | |||
| 62 | + | MOVW R0, 4(R13) // arg for threadentry_call | |||
| 63 | + | ||||
| 64 | + | MOVW R4, 8(R13) | |||
| 65 | + | MOVW R5, 12(R13) | |||
| 66 | + | MOVW R6, 16(R13) | |||
| 67 | + | MOVW R7, 20(R13) | |||
| 68 | + | MOVW R8, 24(R13) | |||
| 69 | + | MOVW R9, 28(R13) | |||
| 70 | + | MOVW g, 32(R13) // R10 | |||
| 71 | + | MOVW R11, 36(R13) | |||
| 72 | + | ||||
| 73 | + | MOVD F8, 40(R13) | |||
| 74 | + | MOVD F9, 48(R13) | |||
| 75 | + | MOVD F10, 56(R13) | |||
| 76 | + | MOVD F11, 64(R13) | |||
| 77 | + | MOVD F12, 72(R13) | |||
| 78 | + | MOVD F13, 80(R13) | |||
| 79 | + | MOVD F14, 88(R13) | |||
| 80 | + | MOVD F15, 96(R13) | |||
| 81 | + | ||||
| 60 | MOVW ·threadentry_call(SB), R12 | 82 | MOVW ·threadentry_call(SB), R12 | ||
| 61 | MOVW (R12), R12 | 83 | MOVW (R12), R12 | ||
| 62 | CALL (R12) | 84 | CALL (R12) | ||
| 85 | + | ||||
| 86 | + | MOVD 40(R13), F8 | |||
| 87 | + | MOVD 48(R13), F9 | |||
| 88 | + | MOVD 56(R13), F10 | |||
| 89 | + | MOVD 64(R13), F11 | |||
| 90 | + | MOVD 72(R13), F12 | |||
| 91 | + | MOVD 80(R13), F13 | |||
| 92 | + | MOVD 88(R13), F14 | |||
| 93 | + | MOVD 96(R13), F15 | |||
| 94 | + | ||||
| 95 | + | MOVW 8(R13), R4 | |||
| 96 | + | MOVW 12(R13), R5 | |||
| 97 | + | MOVW 16(R13), R6 | |||
| 98 | + | MOVW 20(R13), R7 | |||
| 99 | + | MOVW 24(R13), R8 | |||
| 100 | + | MOVW 28(R13), R9 | |||
| 101 | + | MOVW 32(R13), g | |||
| 102 | + | MOVW 36(R13), R11 | |||
| 103 | + | ||||
| 63 | RET | 104 | RET | ||
| 64 | 105 | ||||
| 65 | TEXT ·call5(SB), NOSPLIT, $8-28 | 106 | TEXT ·call5(SB), NOSPLIT, $8-28 | ||