runtime: simplify the implementation of walltime and nanotime1 on loong64
goos: linux
goarch: loong64
pkg: time
cpu: Loongson-3A6000 @ 2500.00MHz
| old.txt | new.txt |
| sec/op | sec/op vs base |
Now 34.82n ± 0% 34.24n ± 0% -1.67% (p=0.000 n=10)
NowUnixNano 35.44n ± 0% 35.82n ± 0% +1.07% (p=0.000 n=10)
NowUnixMilli 36.05n ± 0% 34.24n ± 0% -5.02% (p=0.000 n=10)
NowUnixMicro 36.83n ± 0% 34.83n ± 0% -5.43% (p=0.000 n=10)
geomean 35.78n 34.78n -2.80%
diff --git a/src/runtime/sys_linux_loong64.s b/src/runtime/sys_linux_loong64.s
index 41e12c3..0abbda4 100644
--- a/src/runtime/sys_linux_loong64.s
+++ b/src/runtime/sys_linux_loong64.s
@@ -205,7 +205,6 @@
// func walltime() (sec int64, nsec int32)
TEXT runtime·walltime<ABIInternal>(SB),NOSPLIT,$24
MOVV R3, R23 // R23 is unchanged by C code
- MOVV R3, R25
MOVV g_m(g), R24 // R24 = m
@@ -222,16 +221,14 @@
MOVV R11, m_vdsoSP(R24)
MOVV m_curg(R24), R4
- MOVV g, R5
- BNE R4, R5, noswitch
+ BNE R4, g, noswitch
MOVV m_g0(R24), R4
- MOVV (g_sched+gobuf_sp)(R4), R25 // Set SP to g0 stack
+ MOVV (g_sched+gobuf_sp)(R4), R3 // Set SP to g0 stack
noswitch:
- SUBV $16, R25
- AND $~15, R25 // Align for C code
- MOVV R25, R3
+ SUBV $16, R3
+ AND $~15, R3 // Align for C code
MOVW $CLOCK_REALTIME, R4
MOVV $0(R3), R5
@@ -283,7 +280,6 @@
// func nanotime1() int64
TEXT runtime·nanotime1<ABIInternal>(SB),NOSPLIT,$24
MOVV R3, R23 // R23 is unchanged by C code
- MOVV R3, R25
MOVV g_m(g), R24 // R24 = m
@@ -300,16 +296,14 @@
MOVV R11, m_vdsoSP(R24)
MOVV m_curg(R24), R4
- MOVV g, R5
- BNE R4, R5, noswitch
+ BNE R4, g, noswitch
MOVV m_g0(R24), R4
- MOVV (g_sched+gobuf_sp)(R4), R25 // Set SP to g0 stack
+ MOVV (g_sched+gobuf_sp)(R4), R3 // Set SP to g0 stack
noswitch:
- SUBV $16, R25
- AND $~15, R25 // Align for C code
- MOVV R25, R3
+ SUBV $16, R3
+ AND $~15, R3 // Align for C code
MOVW $CLOCK_MONOTONIC, R4
MOVV $0(R3), R5
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
runtime: simplify the implementation of walltime and nanotime1 on loong64
goos: linux
goarch: loong64
pkg: time
cpu: Loongson-3A6000 @ 2500.00MHz
| old.txt | new.txt |
| sec/op | sec/op vs base |
Now 34.82n ± 0% 34.24n ± 0% -1.67% (p=0.000 n=10)
NowUnixNano 35.44n ± 0% 35.82n ± 0% +1.07% (p=0.000 n=10)
NowUnixMilli 36.05n ± 0% 34.24n ± 0% -5.02% (p=0.000 n=10)
NowUnixMicro 36.83n ± 0% 34.83n ± 0% -5.43% (p=0.000 n=10)
geomean 35.78n 34.78n -2.80%
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |