Index: src/mips64/assembler-mips64.cc |
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc |
index 0675a0759f6e331b4a74757077528cfed387ca10..9a688dc0dbf42d7fc78b87ed9880fd78adf3c637 100644 |
--- a/src/mips64/assembler-mips64.cc |
+++ b/src/mips64/assembler-mips64.cc |
@@ -1716,7 +1716,7 @@ void Assembler::sll(Register rd, |
// nop(int/NopMarkerTypes) or MarkCode(int/NopMarkerTypes) pseudo |
// instructions. |
DCHECK(coming_from_nop || !(rd.is(zero_reg) && rt.is(zero_reg))); |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SLL); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SLL); |
} |
@@ -1726,7 +1726,7 @@ void Assembler::sllv(Register rd, Register rt, Register rs) { |
void Assembler::srl(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SRL); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SRL); |
} |
@@ -1736,7 +1736,7 @@ void Assembler::srlv(Register rd, Register rt, Register rs) { |
void Assembler::sra(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SRA); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SRA); |
} |
@@ -1766,7 +1766,7 @@ void Assembler::rotrv(Register rd, Register rt, Register rs) { |
void Assembler::dsll(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSLL); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSLL); |
} |
@@ -1776,7 +1776,7 @@ void Assembler::dsllv(Register rd, Register rt, Register rs) { |
void Assembler::dsrl(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSRL); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSRL); |
} |
@@ -1802,7 +1802,7 @@ void Assembler::drotrv(Register rd, Register rt, Register rs) { |
void Assembler::dsra(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSRA); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSRA); |
} |
@@ -1812,17 +1812,17 @@ void Assembler::dsrav(Register rd, Register rt, Register rs) { |
void Assembler::dsll32(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSLL32); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSLL32); |
} |
void Assembler::dsrl32(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSRL32); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSRL32); |
} |
void Assembler::dsra32(Register rd, Register rt, uint16_t sa) { |
- GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, DSRA32); |
+ GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, DSRA32); |
} |