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
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | // license that can be found in the LICENSE file. | |
| 4 | 4 | ||
| 5 | 5 | #include "textflag.h" | |
| 6 | + | #include "abi_riscv64.h" | |
| 6 | 7 | ||
| 7 | 8 | // Called by C code generated by cmd/cgo. | |
| 8 | 9 | // func crosscall2(fn, a unsafe.Pointer, n int32, ctxt uintptr) | |
| @@ -14,65 +15,23 @@ TEXT crosscall2(SB), NOSPLIT|NOFRAME, $0 | |||
| 14 | 15 | * registers. Note that at procedure entry the first argument is at | |
| 15 | 16 | * 8(X2). | |
| 16 | 17 | */ | |
| 17 | - | ADD $(-8*29), X2 | |
| 18 | - | MOV X10, (8*1)(X2) // fn unsafe.Pointer | |
| 19 | - | MOV X11, (8*2)(X2) // a unsafe.Pointer | |
| 20 | - | MOV X13, (8*3)(X2) // ctxt uintptr | |
| 21 | - | MOV X8, (8*4)(X2) | |
| 22 | - | MOV X9, (8*5)(X2) | |
| 23 | - | MOV X18, (8*6)(X2) | |
| 24 | - | MOV X19, (8*7)(X2) | |
| 25 | - | MOV X20, (8*8)(X2) | |
| 26 | - | MOV X21, (8*9)(X2) | |
| 27 | - | MOV X22, (8*10)(X2) | |
| 28 | - | MOV X23, (8*11)(X2) | |
| 29 | - | MOV X24, (8*12)(X2) | |
| 30 | - | MOV X25, (8*13)(X2) | |
| 31 | - | MOV X26, (8*14)(X2) | |
| 32 | - | MOV g, (8*15)(X2) | |
| 33 | - | MOV X1, (8*16)(X2) | |
| 34 | - | MOVD F8, (8*17)(X2) | |
| 35 | - | MOVD F9, (8*18)(X2) | |
| 36 | - | MOVD F18, (8*19)(X2) | |
| 37 | - | MOVD F19, (8*20)(X2) | |
| 38 | - | MOVD F20, (8*21)(X2) | |
| 39 | - | MOVD F21, (8*22)(X2) | |
| 40 | - | MOVD F22, (8*23)(X2) | |
| 41 | - | MOVD F23, (8*24)(X2) | |
| 42 | - | MOVD F24, (8*25)(X2) | |
| 43 | - | MOVD F25, (8*26)(X2) | |
| 44 | - | MOVD F26, (8*27)(X2) | |
| 45 | - | MOVD F27, (8*28)(X2) | |
| 18 | + | ADD $(-8*29), X2 | |
| 19 | + | MOV X10, (8*1)(X2) // fn unsafe.Pointer | |
| 20 | + | MOV X11, (8*2)(X2) // a unsafe.Pointer | |
| 21 | + | MOV X13, (8*3)(X2) // ctxt uintptr | |
| 22 | + | ||
| 23 | + | SAVE_GPR((8*4)) | |
| 24 | + | MOV X1, (8*16)(X2) | |
| 25 | + | SAVE_FPR((8*17)) | |
| 46 | 26 | ||
| 47 | 27 | // Initialize Go ABI environment | |
| 48 | 28 | CALL runtime·load_g(SB) | |
| 49 | 29 | CALL runtime·cgocallback(SB) | |
| 50 | 30 | ||
| 51 | - | MOV (8*4)(X2), X8 | |
| 52 | - | MOV (8*5)(X2), X9 | |
| 53 | - | MOV (8*6)(X2), X18 | |
| 54 | - | MOV (8*7)(X2), X19 | |
| 55 | - | MOV (8*8)(X2), X20 | |
| 56 | - | MOV (8*9)(X2), X21 | |
| 57 | - | MOV (8*10)(X2), X22 | |
| 58 | - | MOV (8*11)(X2), X23 | |
| 59 | - | MOV (8*12)(X2), X24 | |
| 60 | - | MOV (8*13)(X2), X25 | |
| 61 | - | MOV (8*14)(X2), X26 | |
| 62 | - | MOV (8*15)(X2), g | |
| 63 | - | MOV (8*16)(X2), X1 | |
| 64 | - | MOVD (8*17)(X2), F8 | |
| 65 | - | MOVD (8*18)(X2), F9 | |
| 66 | - | MOVD (8*19)(X2), F18 | |
| 67 | - | MOVD (8*20)(X2), F19 | |
| 68 | - | MOVD (8*21)(X2), F20 | |
| 69 | - | MOVD (8*22)(X2), F21 | |
| 70 | - | MOVD (8*23)(X2), F22 | |
| 71 | - | MOVD (8*24)(X2), F23 | |
| 72 | - | MOVD (8*25)(X2), F24 | |
| 73 | - | MOVD (8*26)(X2), F25 | |
| 74 | - | MOVD (8*27)(X2), F26 | |
| 75 | - | MOVD (8*28)(X2), F27 | |
| 76 | - | ADD $(8*29), X2 | |
| 31 | + | RESTORE_GPR((8*4)) | |
| 32 | + | MOV (8*16)(X2), X1 | |
| 33 | + | RESTORE_FPR((8*17)) | |
| 34 | + | ||
| 35 | + | ADD $(8*29), X2 | |
| 77 | 36 | ||
| 78 | 37 | RET | |
| @@ -3,6 +3,7 @@ | |||||
| 3 | // license that can be found in the LICENSE file. | 3 | // license that can be found in the LICENSE file. | ||
| 4 | 4 | ||||
| 5 | #include "textflag.h" | 5 | #include "textflag.h" | ||
| 6 | + | #include "abi_riscv64.h" | |||
| 6 | 7 | ||||
| 7 | // Called by C code generated by cmd/cgo. | 8 | // Called by C code generated by cmd/cgo. | ||
| 8 | // func crosscall2(fn, a unsafe.Pointer, n int32, ctxt uintptr) | 9 | // func crosscall2(fn, a unsafe.Pointer, n int32, ctxt uintptr) | ||
| @@ -14,65 +15,23 @@ TEXT crosscall2(SB), NOSPLIT|NOFRAME, $0 | |||||
| 14 | * registers. Note that at procedure entry the first argument is at | 15 | * registers. Note that at procedure entry the first argument is at | ||
| 15 | * 8(X2). | 16 | * 8(X2). | ||
| 16 | */ | 17 | */ | ||
| 17 | - | ADD $(-8*29), X2 | 18 | + | ADD $(-8*29), X2 |
| 18 | - | MOV X10, (8*1)(X2) // fn unsafe.Pointer | 19 | + | MOV X10, (8*1)(X2) // fn unsafe.Pointer |
| 19 | - | MOV X11, (8*2)(X2) // a unsafe.Pointer | 20 | + | MOV X11, (8*2)(X2) // a unsafe.Pointer |
| 20 | - | MOV X13, (8*3)(X2) // ctxt uintptr | 21 | + | MOV X13, (8*3)(X2) // ctxt uintptr |
| 21 | - | MOV X8, (8*4)(X2) | 22 | + | |
| 22 | - | MOV X9, (8*5)(X2) | 23 | + | SAVE_GPR((8*4)) |
| 23 | - | MOV X18, (8*6)(X2) | 24 | + | MOV X1, (8*16)(X2) |
| 24 | - | MOV X19, (8*7)(X2) | 25 | + | SAVE_FPR((8*17)) |
| 25 | - | MOV X20, (8*8)(X2) | |||
| 26 | - | MOV X21, (8*9)(X2) | |||
| 27 | - | MOV X22, (8*10)(X2) | |||
| 28 | - | MOV X23, (8*11)(X2) | |||
| 29 | - | MOV X24, (8*12)(X2) | |||
| 30 | - | MOV X25, (8*13)(X2) | |||
| 31 | - | MOV X26, (8*14)(X2) | |||
| 32 | - | MOV g, (8*15)(X2) | |||
| 33 | - | MOV X1, (8*16)(X2) | |||
| 34 | - | MOVD F8, (8*17)(X2) | |||
| 35 | - | MOVD F9, (8*18)(X2) | |||
| 36 | - | MOVD F18, (8*19)(X2) | |||
| 37 | - | MOVD F19, (8*20)(X2) | |||
| 38 | - | MOVD F20, (8*21)(X2) | |||
| 39 | - | MOVD F21, (8*22)(X2) | |||
| 40 | - | MOVD F22, (8*23)(X2) | |||
| 41 | - | MOVD F23, (8*24)(X2) | |||
| 42 | - | MOVD F24, (8*25)(X2) | |||
| 43 | - | MOVD F25, (8*26)(X2) | |||
| 44 | - | MOVD F26, (8*27)(X2) | |||
| 45 | - | MOVD F27, (8*28)(X2) | |||
| 46 | 26 | ||||
| 47 | // Initialize Go ABI environment | 27 | // Initialize Go ABI environment | ||
| 48 | CALL runtime·load_g(SB) | 28 | CALL runtime·load_g(SB) | ||
| 49 | CALL runtime·cgocallback(SB) | 29 | CALL runtime·cgocallback(SB) | ||
| 50 | 30 | ||||
| 51 | - | MOV (8*4)(X2), X8 | 31 | + | RESTORE_GPR((8*4)) |
| 52 | - | MOV (8*5)(X2), X9 | 32 | + | MOV (8*16)(X2), X1 |
| 53 | - | MOV (8*6)(X2), X18 | 33 | + | RESTORE_FPR((8*17)) |
| 54 | - | MOV (8*7)(X2), X19 | 34 | + | |
| 55 | - | MOV (8*8)(X2), X20 | 35 | + | ADD $(8*29), X2 |
| 56 | - | MOV (8*9)(X2), X21 | |||
| 57 | - | MOV (8*10)(X2), X22 | |||
| 58 | - | MOV (8*11)(X2), X23 | |||
| 59 | - | MOV (8*12)(X2), X24 | |||
| 60 | - | MOV (8*13)(X2), X25 | |||
| 61 | - | MOV (8*14)(X2), X26 | |||
| 62 | - | MOV (8*15)(X2), g | |||
| 63 | - | MOV (8*16)(X2), X1 | |||
| 64 | - | MOVD (8*17)(X2), F8 | |||
| 65 | - | MOVD (8*18)(X2), F9 | |||
| 66 | - | MOVD (8*19)(X2), F18 | |||
| 67 | - | MOVD (8*20)(X2), F19 | |||
| 68 | - | MOVD (8*21)(X2), F20 | |||
| 69 | - | MOVD (8*22)(X2), F21 | |||
| 70 | - | MOVD (8*23)(X2), F22 | |||
| 71 | - | MOVD (8*24)(X2), F23 | |||
| 72 | - | MOVD (8*25)(X2), F24 | |||
| 73 | - | MOVD (8*26)(X2), F25 | |||
| 74 | - | MOVD (8*27)(X2), F26 | |||
| 75 | - | MOVD (8*28)(X2), F27 | |||
| 76 | - | ADD $(8*29), X2 | |||
| 77 | 36 | ||||
| 78 | RET | 37 | RET | ||