@@ -6445,7 +6445,6 @@ instruct addI_reg_imm(iRegINoSp dst, iRegIorL2I src1, immIAdd src2) %{
64456445 format %{ "addiw $dst, $src1, $src2\t#@addI_reg_imm" %}
64466446
64476447 ins_encode %{
6448- int32_t con = (int32_t)$src2$$constant;
64496448 __ addiw(as_Register($dst$$reg),
64506449 as_Register($src1$$reg),
64516450 $src2$$constant);
@@ -6507,7 +6506,6 @@ instruct addP_reg_imm(iRegPNoSp dst, iRegP src1, immLAdd src2) %{
65076506 format %{ "addi $dst, $src1, $src2\t# ptr, #@addP_reg_imm" %}
65086507
65096508 ins_encode %{
6510- // src2 is imm, so actually call the addi
65116509 __ addi(as_Register($dst$$reg),
65126510 as_Register($src1$$reg),
65136511 $src2$$constant);
@@ -6829,7 +6827,7 @@ instruct UmodL(iRegLNoSp dst, iRegL src1, iRegL src2) %{
68296827// Integer Shifts
68306828
68316829// Shift Left Register
6832- // In RV64I, only the low 5 bits of src2 are considered for the shift amount
6830+ // Only the low 5 bits of src2 are considered for the shift amount, all other bits are ignored.
68336831instruct lShiftI_reg_reg(iRegINoSp dst, iRegIorL2I src1, iRegIorL2I src2) %{
68346832 match(Set dst (LShiftI src1 src2));
68356833 ins_cost(ALU_COST);
@@ -6862,7 +6860,7 @@ instruct lShiftI_reg_imm(iRegINoSp dst, iRegIorL2I src1, immI src2) %{
68626860%}
68636861
68646862// Shift Right Logical Register
6865- // In RV64I, only the low 5 bits of src2 are considered for the shift amount
6863+ // Only the low 5 bits of src2 are considered for the shift amount, all other bits are ignored.
68666864instruct urShiftI_reg_reg(iRegINoSp dst, iRegIorL2I src1, iRegIorL2I src2) %{
68676865 match(Set dst (URShiftI src1 src2));
68686866 ins_cost(ALU_COST);
@@ -6895,7 +6893,7 @@ instruct urShiftI_reg_imm(iRegINoSp dst, iRegIorL2I src1, immI src2) %{
68956893%}
68966894
68976895// Shift Right Arithmetic Register
6898- // In RV64I, only the low 5 bits of src2 are considered for the shift amount
6896+ // Only the low 5 bits of src2 are considered for the shift amount, all other bits are ignored.
68996897instruct rShiftI_reg_reg(iRegINoSp dst, iRegIorL2I src1, iRegIorL2I src2) %{
69006898 match(Set dst (RShiftI src1 src2));
69016899 ins_cost(ALU_COST);
@@ -6930,7 +6928,7 @@ instruct rShiftI_reg_imm(iRegINoSp dst, iRegIorL2I src1, immI src2) %{
69306928// Long Shifts
69316929
69326930// Shift Left Register
6933- // In RV64I, only the low 6 bits of src2 are considered for the shift amount
6931+ // Only the low 6 bits of src2 are considered for the shift amount, all other bits are ignored.
69346932instruct lShiftL_reg_reg(iRegLNoSp dst, iRegL src1, iRegIorL2I src2) %{
69356933 match(Set dst (LShiftL src1 src2));
69366934
@@ -6965,7 +6963,7 @@ instruct lShiftL_reg_imm(iRegLNoSp dst, iRegL src1, immI src2) %{
69656963%}
69666964
69676965// Shift Right Logical Register
6968- // In RV64I, only the low 6 bits of src2 are considered for the shift amount
6966+ // Only the low 6 bits of src2 are considered for the shift amount, all other bits are ignored.
69696967instruct urShiftL_reg_reg(iRegLNoSp dst, iRegL src1, iRegIorL2I src2) %{
69706968 match(Set dst (URShiftL src1 src2));
69716969
@@ -7018,7 +7016,7 @@ instruct urShiftP_reg_imm(iRegLNoSp dst, iRegP src1, immI src2) %{
70187016%}
70197017
70207018// Shift Right Arithmetic Register
7021- // In RV64I, only the low 6 bits of src2 are considered for the shift amount
7019+ // Only the low 6 bits of src2 are considered for the shift amount, all other bits are ignored.
70227020instruct rShiftL_reg_reg(iRegLNoSp dst, iRegL src1, iRegIorL2I src2) %{
70237021 match(Set dst (RShiftL src1 src2));
70247022
0 commit comments