]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/runtime/memmove_riscv64.s
all: clean up addition of constants in riscv64 assembly
[gostls13.git] / src / runtime / memmove_riscv64.s
index f5db86562b449cd73265cb5593bf9ba586e22f1e..e099a64100273883c8cd8728ba7778d9f8d646ec 100644 (file)
@@ -32,7 +32,7 @@ TEXT runtime·memmove<ABIInternal>(SB),NOSPLIT,$-0-24
        SUB     X5, X9, X5
        SUB     X5, X12, X12
 f_align:
-       ADD     $-1, X5
+       SUB     $1, X5
        MOVB    0(X11), X14
        MOVB    X14, 0(X10)
        ADD     $1, X10
@@ -65,7 +65,7 @@ f_loop64:
        MOV     X21, 56(X10)
        ADD     $64, X10
        ADD     $64, X11
-       ADD     $-64, X12
+       SUB     $64, X12
        BGE     X12, X9, f_loop64
        BEQZ    X12, done
 
@@ -83,7 +83,7 @@ f_loop32:
        MOV     X17, 24(X10)
        ADD     $32, X10
        ADD     $32, X11
-       ADD     $-32, X12
+       SUB     $32, X12
        BGE     X12, X9, f_loop32
        BEQZ    X12, done
 
@@ -97,7 +97,7 @@ f_loop16:
        MOV     X15, 8(X10)
        ADD     $16, X10
        ADD     $16, X11
-       ADD     $-16, X12
+       SUB     $16, X12
        BGE     X12, X9, f_loop16
        BEQZ    X12, done
 
@@ -109,7 +109,7 @@ f_loop8:
        MOV     X14, 0(X10)
        ADD     $8, X10
        ADD     $8, X11
-       ADD     $-8, X12
+       SUB     $8, X12
        BGE     X12, X9, f_loop8
        BEQZ    X12, done
        JMP     f_loop4_check
@@ -136,7 +136,7 @@ f_loop8_unaligned:
        MOVB    X21, 7(X10)
        ADD     $8, X10
        ADD     $8, X11
-       ADD     $-8, X12
+       SUB     $8, X12
        BGE     X12, X9, f_loop8_unaligned
 
 f_loop4_check:
@@ -153,7 +153,7 @@ f_loop4:
        MOVB    X17, 3(X10)
        ADD     $4, X10
        ADD     $4, X11
-       ADD     $-4, X12
+       SUB     $4, X12
        BGE     X12, X9, f_loop4
 
 f_loop1:
@@ -162,7 +162,7 @@ f_loop1:
        MOVB    X14, 0(X10)
        ADD     $1, X10
        ADD     $1, X11
-       ADD     $-1, X12
+       SUB     $1, X12
        JMP     f_loop1
 
 backward:
@@ -182,9 +182,9 @@ backward:
        // Move one byte at a time until we reach 8 byte alignment.
        SUB     X5, X12, X12
 b_align:
-       ADD     $-1, X5
-       ADD     $-1, X10
-       ADD     $-1, X11
+       SUB     $1, X5
+       SUB     $1, X10
+       SUB     $1, X11
        MOVB    0(X11), X14
        MOVB    X14, 0(X10)
        BNEZ    X5, b_align
@@ -197,8 +197,8 @@ b_loop_check:
        MOV     $64, X9
        BLT     X12, X9, b_loop32_check
 b_loop64:
-       ADD     $-64, X10
-       ADD     $-64, X11
+       SUB     $64, X10
+       SUB     $64, X11
        MOV     0(X11), X14
        MOV     8(X11), X15
        MOV     16(X11), X16
@@ -215,7 +215,7 @@ b_loop64:
        MOV     X19, 40(X10)
        MOV     X20, 48(X10)
        MOV     X21, 56(X10)
-       ADD     $-64, X12
+       SUB     $64, X12
        BGE     X12, X9, b_loop64
        BEQZ    X12, done
 
@@ -223,8 +223,8 @@ b_loop32_check:
        MOV     $32, X9
        BLT     X12, X9, b_loop16_check
 b_loop32:
-       ADD     $-32, X10
-       ADD     $-32, X11
+       SUB     $32, X10
+       SUB     $32, X11
        MOV     0(X11), X14
        MOV     8(X11), X15
        MOV     16(X11), X16
@@ -233,7 +233,7 @@ b_loop32:
        MOV     X15, 8(X10)
        MOV     X16, 16(X10)
        MOV     X17, 24(X10)
-       ADD     $-32, X12
+       SUB     $32, X12
        BGE     X12, X9, b_loop32
        BEQZ    X12, done
 
@@ -241,13 +241,13 @@ b_loop16_check:
        MOV     $16, X9
        BLT     X12, X9, b_loop8_check
 b_loop16:
-       ADD     $-16, X10
-       ADD     $-16, X11
+       SUB     $16, X10
+       SUB     $16, X11
        MOV     0(X11), X14
        MOV     8(X11), X15
        MOV     X14, 0(X10)
        MOV     X15, 8(X10)
-       ADD     $-16, X12
+       SUB     $16, X12
        BGE     X12, X9, b_loop16
        BEQZ    X12, done
 
@@ -255,11 +255,11 @@ b_loop8_check:
        MOV     $8, X9
        BLT     X12, X9, b_loop4_check
 b_loop8:
-       ADD     $-8, X10
-       ADD     $-8, X11
+       SUB     $8, X10
+       SUB     $8, X11
        MOV     0(X11), X14
        MOV     X14, 0(X10)
-       ADD     $-8, X12
+       SUB     $8, X12
        BGE     X12, X9, b_loop8
        BEQZ    X12, done
        JMP     b_loop4_check
@@ -268,8 +268,8 @@ b_loop8_unaligned_check:
        MOV     $8, X9
        BLT     X12, X9, b_loop4_check
 b_loop8_unaligned:
-       ADD     $-8, X10
-       ADD     $-8, X11
+       SUB     $8, X10
+       SUB     $8, X11
        MOVB    0(X11), X14
        MOVB    1(X11), X15
        MOVB    2(X11), X16
@@ -286,15 +286,15 @@ b_loop8_unaligned:
        MOVB    X19, 5(X10)
        MOVB    X20, 6(X10)
        MOVB    X21, 7(X10)
-       ADD     $-8, X12
+       SUB     $8, X12
        BGE     X12, X9, b_loop8_unaligned
 
 b_loop4_check:
        MOV     $4, X9
        BLT     X12, X9, b_loop1
 b_loop4:
-       ADD     $-4, X10
-       ADD     $-4, X11
+       SUB     $4, X10
+       SUB     $4, X11
        MOVB    0(X11), X14
        MOVB    1(X11), X15
        MOVB    2(X11), X16
@@ -303,16 +303,16 @@ b_loop4:
        MOVB    X15, 1(X10)
        MOVB    X16, 2(X10)
        MOVB    X17, 3(X10)
-       ADD     $-4, X12
+       SUB     $4, X12
        BGE     X12, X9, b_loop4
 
 b_loop1:
        BEQZ    X12, done
-       ADD     $-1, X10
-       ADD     $-1, X11
+       SUB     $1, X10
+       SUB     $1, X11
        MOVB    0(X11), X14
        MOVB    X14, 0(X10)
-       ADD     $-1, X12
+       SUB     $1, X12
        JMP     b_loop1
 
 done: