From 23d7bdf6eb33cf132f7adb883f3064409846c575 Mon Sep 17 00:00:00 2001 From: hayabusa-cloud Date: Sun, 28 Dec 2025 18:02:50 +0900 Subject: [PATCH 1/2] fix: riscv64 PAUSE hint --- internal/pause/pause_riscv64.s | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/pause/pause_riscv64.s b/internal/pause/pause_riscv64.s index 1011f8a..d0440a1 100644 --- a/internal/pause/pause_riscv64.s +++ b/internal/pause/pause_riscv64.s @@ -6,16 +6,18 @@ #include "textflag.h" +#define PAUSE WORD $0x0100000F // Zihintpause + // func pause1() TEXT ·pause1(SB), NOSPLIT|NOFRAME, $0-0 - FENCE + PAUSE RET // func pauseN(cycles int) TEXT ·pauseN(SB), NOSPLIT|NOFRAME, $0-8 MOV cycles+0(FP), X10 loop: - FENCE - ADDI $-1, X10, X10 // X10 = X10 - 1 + PAUSE + ADDI $-1, X10, X10 BNEZ X10, loop RET From 6b6ed805c055f29465e9aae78c43814975751660 Mon Sep 17 00:00:00 2001 From: hayabusa-cloud Date: Sun, 28 Dec 2025 18:03:11 +0900 Subject: [PATCH 2/2] fix: loong64 zero register --- internal/pause/pause_loong64.s | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/pause/pause_loong64.s b/internal/pause/pause_loong64.s index e800a4b..27d842d 100644 --- a/internal/pause/pause_loong64.s +++ b/internal/pause/pause_loong64.s @@ -13,9 +13,9 @@ TEXT ·pause1(SB), NOSPLIT|NOFRAME, $0-0 // func pauseN(cycles int) TEXT ·pauseN(SB), NOSPLIT|NOFRAME, $0-8 - MOVV cycles+0(FP), R0 + MOVV cycles+0(FP), R4 loop: OR R0, R0, R0 - ADDV $-1, R0, R0 - BNE R0, loop + ADDV $-1, R4, R4 + BNE R4, loop RET