Skip to content

Commit 49181b8

Browse files
feilongjiangRealFYang
authored andcommitted
8303955: RISC-V: Factor out the tmp parameter from copy_memory and copy_memory_v
Reviewed-by: fyang, yzhu
1 parent 7bbc5e0 commit 49181b8

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

src/hotspot/cpu/riscv/stubGenerator_riscv.cpp

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -897,12 +897,12 @@ class StubGenerator: public StubCodeGenerator {
897897

898898
typedef void (MacroAssembler::*copy_insn)(Register Rd, const Address &adr, Register temp);
899899

900-
void copy_memory_v(Register s, Register d, Register count, Register tmp, int step) {
900+
void copy_memory_v(Register s, Register d, Register count, int step) {
901901
bool is_backward = step < 0;
902902
int granularity = uabs(step);
903903

904904
const Register src = x30, dst = x31, vl = x14, cnt = x15, tmp1 = x16, tmp2 = x17;
905-
assert_different_registers(s, d, cnt, vl, tmp, tmp1, tmp2);
905+
assert_different_registers(s, d, cnt, vl, tmp1, tmp2);
906906
Assembler::SEW sew = Assembler::elembytes_to_sew(granularity);
907907
Label loop_forward, loop_backward, done;
908908

@@ -929,11 +929,11 @@ class StubGenerator: public StubCodeGenerator {
929929
__ j(done);
930930

931931
__ bind(loop_backward);
932-
__ sub(tmp, cnt, vl);
933-
__ slli(tmp, tmp, sew);
934-
__ add(tmp1, s, tmp);
932+
__ sub(t0, cnt, vl);
933+
__ slli(t0, t0, sew);
934+
__ add(tmp1, s, t0);
935935
__ vlex_v(v0, tmp1, sew);
936-
__ add(tmp2, d, tmp);
936+
__ add(tmp2, d, t0);
937937
__ vsex_v(v0, tmp2, sew);
938938
__ sub(cnt, cnt, vl);
939939
__ bnez(cnt, loop_forward);
@@ -942,10 +942,10 @@ class StubGenerator: public StubCodeGenerator {
942942
}
943943

944944
void copy_memory(DecoratorSet decorators, BasicType type, bool is_aligned,
945-
Register s, Register d, Register count, Register tmp, int step) {
945+
Register s, Register d, Register count, int step) {
946946
BarrierSetAssembler* bs_asm = BarrierSet::barrier_set()->barrier_set_assembler();
947947
if (UseRVV && (!is_reference_type(type) || bs_asm->supports_rvv_arraycopy())) {
948-
return copy_memory_v(s, d, count, tmp, step);
948+
return copy_memory_v(s, d, count, step);
949949
}
950950

951951
bool is_backwards = step < 0;
@@ -968,22 +968,22 @@ class StubGenerator: public StubCodeGenerator {
968968
}
969969

970970
if (is_aligned) {
971-
__ addi(tmp, cnt, -32);
972-
__ bgez(tmp, copy32_loop);
973-
__ addi(tmp, cnt, -8);
974-
__ bgez(tmp, copy8_loop);
971+
__ addi(t0, cnt, -32);
972+
__ bgez(t0, copy32_loop);
973+
__ addi(t0, cnt, -8);
974+
__ bgez(t0, copy8_loop);
975975
__ j(copy_small);
976976
} else {
977-
__ mv(tmp, 16);
978-
__ blt(cnt, tmp, copy_small);
977+
__ mv(t0, 16);
978+
__ blt(cnt, t0, copy_small);
979979

980-
__ xorr(tmp, src, dst);
981-
__ andi(tmp, tmp, 0b111);
982-
__ bnez(tmp, copy_small);
980+
__ xorr(t0, src, dst);
981+
__ andi(t0, t0, 0b111);
982+
__ bnez(t0, copy_small);
983983

984984
__ bind(same_aligned);
985-
__ andi(tmp, src, 0b111);
986-
__ beqz(tmp, copy_big);
985+
__ andi(t0, src, 0b111);
986+
__ beqz(t0, copy_big);
987987
if (is_backwards) {
988988
__ addi(src, src, step);
989989
__ addi(dst, dst, step);
@@ -999,8 +999,8 @@ class StubGenerator: public StubCodeGenerator {
999999
__ j(same_aligned);
10001000

10011001
__ bind(copy_big);
1002-
__ mv(tmp, 32);
1003-
__ blt(cnt, tmp, copy8_loop);
1002+
__ mv(t0, 32);
1003+
__ blt(cnt, t0, copy8_loop);
10041004
}
10051005
__ bind(copy32_loop);
10061006
if (is_backwards) {
@@ -1022,14 +1022,14 @@ class StubGenerator: public StubCodeGenerator {
10221022
__ addi(src, src, wordSize * 4);
10231023
__ addi(dst, dst, wordSize * 4);
10241024
}
1025-
__ addi(tmp, cnt, -(32 + wordSize * 4));
1025+
__ addi(t0, cnt, -(32 + wordSize * 4));
10261026
__ addi(cnt, cnt, -wordSize * 4);
1027-
__ bgez(tmp, copy32_loop); // cnt >= 32, do next loop
1027+
__ bgez(t0, copy32_loop); // cnt >= 32, do next loop
10281028

10291029
__ beqz(cnt, done); // if that's all - done
10301030

1031-
__ addi(tmp, cnt, -8); // if not - copy the reminder
1032-
__ bltz(tmp, copy_small); // cnt < 8, go to copy_small, else fall throught to copy8_loop
1031+
__ addi(t0, cnt, -8); // if not - copy the reminder
1032+
__ bltz(t0, copy_small); // cnt < 8, go to copy_small, else fall throught to copy8_loop
10331033

10341034
__ bind(copy8_loop);
10351035
if (is_backwards) {
@@ -1043,9 +1043,9 @@ class StubGenerator: public StubCodeGenerator {
10431043
__ addi(src, src, wordSize);
10441044
__ addi(dst, dst, wordSize);
10451045
}
1046-
__ addi(tmp, cnt, -(8 + wordSize));
1046+
__ addi(t0, cnt, -(8 + wordSize));
10471047
__ addi(cnt, cnt, -wordSize);
1048-
__ bgez(tmp, copy8_loop); // cnt >= 8, do next loop
1048+
__ bgez(t0, copy8_loop); // cnt >= 8, do next loop
10491049

10501050
__ beqz(cnt, done); // if that's all - done
10511051

@@ -1144,7 +1144,7 @@ class StubGenerator: public StubCodeGenerator {
11441144
// UnsafeCopyMemory page error: continue after ucm
11451145
bool add_entry = !is_oop && (!aligned || sizeof(jlong) == size);
11461146
UnsafeCopyMemoryMark ucmm(this, add_entry, true);
1147-
copy_memory(decorators, is_oop ? T_OBJECT : T_BYTE, aligned, s, d, count, t0, size);
1147+
copy_memory(decorators, is_oop ? T_OBJECT : T_BYTE, aligned, s, d, count, size);
11481148
}
11491149

11501150
if (is_oop) {
@@ -1220,7 +1220,7 @@ class StubGenerator: public StubCodeGenerator {
12201220
// UnsafeCopyMemory page error: continue after ucm
12211221
bool add_entry = !is_oop && (!aligned || sizeof(jlong) == size);
12221222
UnsafeCopyMemoryMark ucmm(this, add_entry, true);
1223-
copy_memory(decorators, is_oop ? T_OBJECT : T_BYTE, aligned, s, d, count, t0, -size);
1223+
copy_memory(decorators, is_oop ? T_OBJECT : T_BYTE, aligned, s, d, count, -size);
12241224
}
12251225

12261226
if (is_oop) {

0 commit comments

Comments
 (0)