petrbalvin
fc2d92eabd
feat(amd64): encode the GOROOT instruction families
...
Assisted-by: GLM 5.3 Flash
2026-09-20 06:44:51 +02:00
petrbalvin
f15ff66fb1
fix(riscv64): accept the g spelling of the goroutine register
...
Assisted-by: GLM 5.3
2026-09-20 00:38:24 +02:00
petrbalvin
187e4856d3
feat(amd64): encode the mixed-width extend family and PMOVMSKB
...
Assisted-by: GLM 5.3
2026-09-20 00:38:24 +02:00
petrbalvin
d315a998ce
fix(arm64): store-exclusive operand order and large-frame parity
...
Assisted-by: GLM 5.3
2026-09-20 00:38:24 +02:00
petrbalvin
87b1081c53
fix(goobj): external package and symbol indices and arm64 pair relocations
...
Assisted-by: GLM 5.3
2026-09-19 23:49:13 +02:00
petrbalvin
f3c8510a58
fix(elf): relocation records, DWARF tables and per-architecture frame data
...
Assisted-by: GLM 5.3
2026-09-19 23:49:13 +02:00
petrbalvin
ebdf14939f
fix(loong64): FP immediates through R30 and unsigned branch forms
...
Assisted-by: GLM 5.3
2026-09-19 23:49:13 +02:00
petrbalvin
79a2c16bac
fix(riscv64): compressed store offsets, FENCE and branch range checks
...
Assisted-by: GLM 5.3
2026-09-19 23:49:13 +02:00
petrbalvin
401386956c
fix(arm64): encode shifts, divides and multiplies and align sizes with emission
...
Assisted-by: GLM 5.3
2026-09-19 23:49:07 +02:00
petrbalvin
4258131a3a
fix(amd64): correct guard displacements, frameless FP offsets and immediate ranges
...
Assisted-by: GLM 5.3
2026-09-19 23:49:07 +02:00
petrbalvin
ac1c05c793
fix(lexer): tokenise the flag separator and handle NUL and invalid UTF-8
...
Assisted-by: GLM 5.3
2026-09-19 23:48:47 +02:00
petrbalvin
f37f183577
feat(riscv64): GOROOT instruction shapes, DATA order and offset expressions
...
Assisted-by: GLM 5.3 Flash
2026-09-19 19:58:43 +02:00
petrbalvin
23c001be51
feat(asm): encode indirect JMP and CALL on all four architectures
...
Assisted-by: GLM 5.3 Flash
2026-09-19 19:17:07 +02:00
petrbalvin
0078f7be5c
style: purge em dashes from the produced text
...
Assisted-by: GLM 5.3 Flash
2026-09-16 23:12:31 +02:00
petrbalvin
40476546df
fix(asm): close the oracle parity gaps in frame addressing and calls
2026-09-14 23:25:14 +02:00
petrbalvin
70218e84ba
feat(asm): emit the loong64 stack-split guard for big frames
2026-09-14 22:38:58 +02:00
petrbalvin
db50b98179
feat(asm): emit the loong64 stack-split guard for small and medium frames
2026-09-14 21:21:58 +02:00
petrbalvin
2e2c0b82a0
feat(asm): emit the riscv64 stack-split guard and fix large-frame addressing
2026-09-14 21:09:13 +02:00
petrbalvin
8dc1e98ca1
feat(asm): emit the arm64 stack-split guard and morestack block
2026-09-14 20:49:03 +02:00
petrbalvin
1d8e68c574
feat(asm): emit the amd64 stack-split guard and morestack block
2026-09-14 20:35:55 +02:00
petrbalvin
1691c81095
style: replace em and en dashes across sources
2026-09-14 18:22:18 +02:00
petrbalvin
953c258d6a
fix(asm): make arm64 and loong64 relocations match the toolchain
2026-09-14 18:22:00 +02:00
petrbalvin
c6f0286732
fix(asm): encode amd64 frame adjustments above 127 bytes with imm32
2026-09-14 18:22:00 +02:00
petrbalvin
56ad158772
fix: restore iota blocks, asm --format flag and prose after the syntax pass
Test / vet (push) Successful in 48s
Test / test (push) Successful in 2m35s
Test / build (push) Successful in 40s
2026-08-29 17:12:53 +02:00
petrbalvin
9beff4ae85
style: modernize to splitseq, cut, min, maps.copy and range-over-int
2026-08-29 16:04:32 +02:00
petrbalvin
eacf33d0f7
fix: staticcheck and deadcode findings repo-wide, modernize counting loops
2026-08-29 15:25:15 +02:00
petrbalvin
685b150ecf
feat(lint): flag table-known instructions the encoder cannot emit
2026-08-29 13:42:47 +02:00
petrbalvin
6699ebd34f
feat(asm): add prefetch hint encoding
Test / vet (push) Successful in 51s
Test / test (push) Successful in 2m37s
Test / build (push) Successful in 41s
2026-08-29 10:42:15 +02:00
petrbalvin
ba4d961b20
fix(asm): ADDQ imm8 frame adjust for 128-255 byte frames
2026-08-28 22:11:24 +02:00
petrbalvin
78b12dd427
fix(asm): match go tool asm encodings and strictness
2026-08-28 19:55:25 +02:00
petrbalvin
19a26e049b
feat(asm): add vpcmp compare, full opmask set, legacy sse integers and bswap
...
Test / vet (push) Successful in 47s
Test / test (push) Successful in 2m35s
Test / build (push) Successful in 41s
Assisted-by: GLM 5.3
2026-08-27 22:41:03 +02:00
petrbalvin
163480e283
feat(amd64): encode scalar/double conversion ops (CVTSS2SD/CVTSD2SS/CVTPS2PD/CVTPD2PS)
2026-08-27 22:02:11 +02:00
petrbalvin
0d62818db7
feat(amd64): encode legacy SSE binaries, imm8 shuffles and MOVQ xmm moves
2026-08-27 22:02:11 +02:00
petrbalvin
be2ceaafb9
feat(amd64): encode legacy SSE packed binaries and imm8 shuffles
Test / vet (push) Successful in 47s
Test / test (push) Successful in 2m34s
Test / build (push) Successful in 41s
2026-08-27 17:15:10 +02:00
petrbalvin
eade875b53
fix(asm): compress movq immediates to the go-tool-asm imm32 forms
...
Assisted-by: GLM 5.3
2026-08-24 20:23:39 +02:00
petrbalvin
b08005753e
fix(asm): encode BSF, BSR and POPCNT
...
Assisted-by: GLM 5.3
2026-08-24 20:19:34 +02:00
petrbalvin
746cef8100
feat(asm): add .debug_frame CFI section for stack unwinding
...
Assisted-by: MiMo V2.5 Pro
2026-08-21 01:20:21 +02:00
petrbalvin
ce5ec24fa8
feat(asm): integrate DWARF5 sections into all ELF emitters
...
Assisted-by: MiMo V2.5 Pro
2026-08-21 00:35:21 +02:00
petrbalvin
3acbdd6533
feat(asm): add DWARF5 debug info generation for ELF output
...
Assisted-by: MiMo V2.5 Pro
2026-08-21 00:35:21 +02:00
petrbalvin
ae550cc05a
fix(asm): add cross-package GOOBJ resolution for riscv64, loong64, arm64
...
Assisted-by: MiMo V2.5 Pro
2026-08-21 00:35:21 +02:00
petrbalvin
56630f8624
chore(toolchain): upgrade to Go 1.27
Test / vet (push) Successful in 1m5s
Test / test (push) Successful in 2m33s
Test / build (push) Successful in 40s
2026-08-20 16:03:26 +02:00
petrbalvin
459f4a2b6e
fix(test): add arm64 encoding tests for Go 1.26 coverage compatibility
...
Assisted-by: MiMo V2.5 Pro
2026-08-20 15:44:23 +02:00
petrbalvin
5d66343488
fix(goobj): make R_DWTXTADDR_U4 relocation type Go-version-aware
...
The relocation type number shifted between Go 1.26 (103) and Go 1.27
(106)
because new LoongArch relocations were inserted. Detect the Go version
at
runtime and use the correct value.
2026-08-20 15:35:39 +02:00
petrbalvin
97951cbeb6
feat(asm): extend arm64 encoder with atomics, bitfield, SIMD and more test kernels
...
Assisted-by: MiMo V2.5 Pro
2026-08-20 14:31:15 +02:00
petrbalvin
6e73f59e78
feat(asm): extend arm64 encoder with FP, conditional select, CRC32 and tests
...
Assisted-by: MiMo V2.5 Pro
2026-08-20 14:07:12 +02:00
petrbalvin
4221ec5741
feat(asm): add AArch64 arm64 encoder with ground-truth verification
...
Assisted-by: MiMo V2.5 Pro
2026-08-20 13:33:39 +02:00
petrbalvin
c05c53452f
fix(asm): encode RISC-V CALL sym(SB) as JAL
...
Test / vet (push) Successful in 47s
Test / test (push) Failing after 2m9s
Test / build (push) Skipped
Assisted-by: DeepSeek V4 Pro
2026-08-13 18:12:22 +02:00
petrbalvin
681a449c01
fix(asm): match RISC-V branch and jump encodings
2026-08-13 17:57:10 +02:00
petrbalvin
31a2cee382
fix(asm): materialise RISC-V MOV immediates
Test / vet (push) Successful in 44s
Test / test (push) Failing after 1m56s
Test / build (push) Skipped
2026-08-13 17:41:16 +02:00
petrbalvin
3bc7c18bc3
fix(asm): materialise large RISC-V immediates
...
Assisted-by: DeepSeek V4 Pro
2026-08-13 16:04:08 +02:00