fix(asm): materialise large RISC-V immediates
Assisted-by: DeepSeek V4 Pro
This commit is contained in:
@@ -61,6 +61,13 @@ Unreleased changes on the `development` branch.
|
||||
`C.LDSP`/`C.SDSP`), plus `C.ADDI4SPN`, `C.ADDW` and `C.SUBW`. The
|
||||
byte-exact ground-truth test exercises these against `GOARCH=riscv64
|
||||
go tool asm`.
|
||||
- **RISC-V large-immediate materialisation.** `ADDI`/`ANDI`/`ORI`/`XORI`
|
||||
with a 32-bit immediate that does not fit 12 bits now expand exactly as
|
||||
`cmd/asm`: two `ADDI`s for the small `ADDI` split range, and
|
||||
`LUI`+`ADDIW`+`<op>` otherwise, with the `LUI` and `ADDIW` compressed to
|
||||
`C.LUI`/`C.ADDIW` when their immediate fits six signed bits. The
|
||||
byte-exact ground-truth test covers positive, negative, and out-of-range
|
||||
immediates against `GOARCH=riscv64 go tool asm`.
|
||||
- **Debugger watchpoint slots.** `gasm debug`'s `watch` command always used
|
||||
hardware watchpoint slot 0, so a second `watch` call silently overwrote
|
||||
the first. Watchpoint slots are now tracked in the `Session` (DR0–DR3);
|
||||
|
||||
Reference in New Issue
Block a user