Skip to content

Commit 19247cb

Browse files
committed
remove redundant MOV
1 parent 30508b2 commit 19247cb

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

src/runtime/internal/atomic/atomic_mips64x.s

+16-20
Original file line numberDiff line numberDiff line change
@@ -317,12 +317,11 @@ TEXT ·Or32(SB), NOSPLIT, $0-20
317317

318318
SYNC
319319
LL (R1), R3
320-
MOVW R3, R4
321-
OR R2, R3
322-
SC R3, (R1)
323-
BEQ R3, -4(PC)
320+
OR R2, R3, R4
321+
SC R4, (R1)
322+
BEQ R4, -4(PC)
324323
SYNC
325-
MOVW R4, ret+16(FP)
324+
MOVW R3, ret+16(FP)
326325
RET
327326

328327
// func And32(addr *uint32, v uint32) old uint32
@@ -332,12 +331,11 @@ TEXT ·And32(SB), NOSPLIT, $0-20
332331

333332
SYNC
334333
LL (R1), R3
335-
MOVW R3, R4
336-
AND R2, R3
337-
SC R3, (R1)
338-
BEQ R3, -4(PC)
334+
AND R2, R3, R4
335+
SC R4, (R1)
336+
BEQ R4, -4(PC)
339337
SYNC
340-
MOVW R4, ret+16(FP)
338+
MOVW R3, ret+16(FP)
341339
RET
342340

343341
// func Or64(addr *uint64, v uint64) old uint64
@@ -347,12 +345,11 @@ TEXT ·Or64(SB), NOSPLIT, $0-24
347345

348346
SYNC
349347
LLV (R1), R3
350-
MOVV R3, R4
351-
OR R2, R3
352-
SCV R3, (R1)
353-
BEQ R3, -4(PC)
348+
OR R2, R3, R4
349+
SCV R4, (R1)
350+
BEQ R4, -4(PC)
354351
SYNC
355-
MOVV R4, ret+16(FP)
352+
MOVV R3, ret+16(FP)
356353
RET
357354

358355
// func And64(addr *uint64, v uint64) old uint64
@@ -362,12 +359,11 @@ TEXT ·And64(SB), NOSPLIT, $0-24
362359

363360
SYNC
364361
LLV (R1), R3
365-
MOVV R3, R4
366-
AND R2, R3
367-
SCV R3, (R1)
368-
BEQ R3, -4(PC)
362+
AND R2, R3, R4
363+
SCV R4, (R1)
364+
BEQ R4, -4(PC)
369365
SYNC
370-
MOVV R4, ret+16(FP)
366+
MOVV R3, ret+16(FP)
371367
RET
372368

373369
// func Anduintptr(addr *uintptr, v uintptr) old uintptr

src/runtime/internal/atomic/atomic_mipsx.s

+8-10
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,11 @@ TEXT ·Or32(SB), NOSPLIT, $0-12
247247

248248
SYNC
249249
LL (R1), R3
250-
MOVW R3, R4
251-
OR R2, R3
252-
SC R3, (R1)
253-
BEQ R3, -4(PC)
250+
OR R2, R3, R4
251+
SC R4, (R1)
252+
BEQ R4, -4(PC)
254253
SYNC
255-
MOVW R4, ret+8(FP)
254+
MOVW R3, ret+8(FP)
256255
RET
257256

258257
// func And32(addr *uint32, v uint32) old uint32
@@ -262,12 +261,11 @@ TEXT ·And32(SB), NOSPLIT, $0-12
262261

263262
SYNC
264263
LL (R1), R3
265-
MOVW R3, R4
266-
AND R2, R3
267-
SC R3, (R1)
268-
BEQ R3, -4(PC)
264+
AND R2, R3, R4
265+
SC R4, (R1)
266+
BEQ R4, -4(PC)
269267
SYNC
270-
MOVW R4, ret+8(FP)
268+
MOVW R3, ret+8(FP)
271269
RET
272270

273271
// func Anduintptr(addr *uintptr, v uintptr) old uintptr

0 commit comments

Comments
 (0)