| Index: src/mips64/macro-assembler-mips64.cc
|
| diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
|
| index a832c59a10c75e502019fbfe5f38bfd21be01c31..a505f4acb81f524c82362eebe87e918a9bcbf9d6 100644
|
| --- a/src/mips64/macro-assembler-mips64.cc
|
| +++ b/src/mips64/macro-assembler-mips64.cc
|
| @@ -622,7 +622,7 @@ void MacroAssembler::Addu(Register rd, Register rs, const Operand& rt) {
|
| addu(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - addiu(rd, rs, rt.imm64_);
|
| + addiu(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -638,7 +638,7 @@ void MacroAssembler::Daddu(Register rd, Register rs, const Operand& rt) {
|
| daddu(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - daddiu(rd, rs, rt.imm64_);
|
| + daddiu(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -654,7 +654,8 @@ void MacroAssembler::Subu(Register rd, Register rs, const Operand& rt) {
|
| subu(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - addiu(rd, rs, -rt.imm64_); // No subiu instr, use addiu(x, y, -imm).
|
| + addiu(rd, rs, static_cast<int32_t>(
|
| + -rt.imm64_)); // No subiu instr, use addiu(x, y, -imm).
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -670,7 +671,9 @@ void MacroAssembler::Dsubu(Register rd, Register rs, const Operand& rt) {
|
| dsubu(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - daddiu(rd, rs, -rt.imm64_); // No subiu instr, use addiu(x, y, -imm).
|
| + daddiu(rd, rs,
|
| + static_cast<int32_t>(
|
| + -rt.imm64_)); // No subiu instr, use addiu(x, y, -imm).
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -1067,7 +1070,7 @@ void MacroAssembler::And(Register rd, Register rs, const Operand& rt) {
|
| and_(rd, rs, rt.rm());
|
| } else {
|
| if (is_uint16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - andi(rd, rs, rt.imm64_);
|
| + andi(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -1083,7 +1086,7 @@ void MacroAssembler::Or(Register rd, Register rs, const Operand& rt) {
|
| or_(rd, rs, rt.rm());
|
| } else {
|
| if (is_uint16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - ori(rd, rs, rt.imm64_);
|
| + ori(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -1099,7 +1102,7 @@ void MacroAssembler::Xor(Register rd, Register rs, const Operand& rt) {
|
| xor_(rd, rs, rt.rm());
|
| } else {
|
| if (is_uint16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - xori(rd, rs, rt.imm64_);
|
| + xori(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -1136,7 +1139,7 @@ void MacroAssembler::Slt(Register rd, Register rs, const Operand& rt) {
|
| slt(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - slti(rd, rs, rt.imm64_);
|
| + slti(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -1152,7 +1155,7 @@ void MacroAssembler::Sltu(Register rd, Register rs, const Operand& rt) {
|
| sltu(rd, rs, rt.rm());
|
| } else {
|
| if (is_int16(rt.imm64_) && !MustUseReg(rt.rmode_)) {
|
| - sltiu(rd, rs, rt.imm64_);
|
| + sltiu(rd, rs, static_cast<int32_t>(rt.imm64_));
|
| } else {
|
| // li handles the relocation.
|
| DCHECK(!rs.is(at));
|
| @@ -2331,7 +2334,7 @@ void MacroAssembler::BranchShort(int16_t offset, Condition cond, Register rs,
|
| if (rt.imm64_ == 0) {
|
| bgez(rs, offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - slti(scratch, rs, rt.imm64_);
|
| + slti(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| beq(scratch, zero_reg, offset);
|
| } else {
|
| r2 = scratch;
|
| @@ -2344,7 +2347,7 @@ void MacroAssembler::BranchShort(int16_t offset, Condition cond, Register rs,
|
| if (rt.imm64_ == 0) {
|
| bltz(rs, offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - slti(scratch, rs, rt.imm64_);
|
| + slti(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| bne(scratch, zero_reg, offset);
|
| } else {
|
| r2 = scratch;
|
| @@ -2378,7 +2381,7 @@ void MacroAssembler::BranchShort(int16_t offset, Condition cond, Register rs,
|
| if (rt.imm64_ == 0) {
|
| b(offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - sltiu(scratch, rs, rt.imm64_);
|
| + sltiu(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| beq(scratch, zero_reg, offset);
|
| } else {
|
| r2 = scratch;
|
| @@ -2392,7 +2395,7 @@ void MacroAssembler::BranchShort(int16_t offset, Condition cond, Register rs,
|
| // No code needs to be emitted.
|
| return;
|
| } else if (is_int16(rt.imm64_)) {
|
| - sltiu(scratch, rs, rt.imm64_);
|
| + sltiu(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| bne(scratch, zero_reg, offset);
|
| } else {
|
| r2 = scratch;
|
| @@ -2598,7 +2601,7 @@ void MacroAssembler::BranchShort(Label* L, Condition cond, Register rs,
|
| offset = shifted_branch_offset(L, false);
|
| bgez(rs, offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - slti(scratch, rs, rt.imm64_);
|
| + slti(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| offset = shifted_branch_offset(L, false);
|
| beq(scratch, zero_reg, offset);
|
| } else {
|
| @@ -2615,7 +2618,7 @@ void MacroAssembler::BranchShort(Label* L, Condition cond, Register rs,
|
| offset = shifted_branch_offset(L, false);
|
| bltz(rs, offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - slti(scratch, rs, rt.imm64_);
|
| + slti(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| offset = shifted_branch_offset(L, false);
|
| bne(scratch, zero_reg, offset);
|
| } else {
|
| @@ -2659,7 +2662,7 @@ void MacroAssembler::BranchShort(Label* L, Condition cond, Register rs,
|
| offset = shifted_branch_offset(L, false);
|
| b(offset);
|
| } else if (is_int16(rt.imm64_)) {
|
| - sltiu(scratch, rs, rt.imm64_);
|
| + sltiu(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| offset = shifted_branch_offset(L, false);
|
| beq(scratch, zero_reg, offset);
|
| } else {
|
| @@ -2676,7 +2679,7 @@ void MacroAssembler::BranchShort(Label* L, Condition cond, Register rs,
|
| // No code needs to be emitted.
|
| return;
|
| } else if (is_int16(rt.imm64_)) {
|
| - sltiu(scratch, rs, rt.imm64_);
|
| + sltiu(scratch, rs, static_cast<int32_t>(rt.imm64_));
|
| offset = shifted_branch_offset(L, false);
|
| bne(scratch, zero_reg, offset);
|
| } else {
|
| @@ -3456,7 +3459,7 @@ void MacroAssembler::Allocate(int object_size,
|
| Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
|
| }
|
| // Load allocation limit into t9. Result already contains allocation top.
|
| - ld(t9, MemOperand(topaddr, limit - top));
|
| + ld(t9, MemOperand(topaddr, static_cast<int32_t>(limit - top)));
|
| }
|
|
|
| DCHECK(kPointerSize == kDoubleSize);
|
| @@ -3532,7 +3535,7 @@ void MacroAssembler::Allocate(Register object_size,
|
| Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
|
| }
|
| // Load allocation limit into t9. Result already contains allocation top.
|
| - ld(t9, MemOperand(topaddr, limit - top));
|
| + ld(t9, MemOperand(topaddr, static_cast<int32_t>(limit - top)));
|
| }
|
|
|
| DCHECK(kPointerSize == kDoubleSize);
|
| @@ -4460,17 +4463,18 @@ void MacroAssembler::AdduAndCheckForOverflow(Register dst, Register left,
|
| } else {
|
| if (dst.is(left)) {
|
| mov(scratch, left); // Preserve left.
|
| - daddiu(dst, left, right.immediate()); // Left is overwritten.
|
| + daddiu(dst, left,
|
| + static_cast<int32_t>(right.immediate())); // Left is overwritten.
|
| xor_(scratch, dst, scratch); // Original left.
|
| // Load right since xori takes uint16 as immediate.
|
| - daddiu(t9, zero_reg, right.immediate());
|
| + daddiu(t9, zero_reg, static_cast<int32_t>(right.immediate()));
|
| xor_(overflow_dst, dst, t9);
|
| and_(overflow_dst, overflow_dst, scratch);
|
| } else {
|
| - daddiu(dst, left, right.immediate());
|
| + daddiu(dst, left, static_cast<int32_t>(right.immediate()));
|
| xor_(overflow_dst, dst, left);
|
| // Load right since xori takes uint16 as immediate.
|
| - daddiu(t9, zero_reg, right.immediate());
|
| + daddiu(t9, zero_reg, static_cast<int32_t>(right.immediate()));
|
| xor_(scratch, dst, t9);
|
| and_(overflow_dst, scratch, overflow_dst);
|
| }
|
| @@ -4529,17 +4533,18 @@ void MacroAssembler::SubuAndCheckForOverflow(Register dst, Register left,
|
| } else {
|
| if (dst.is(left)) {
|
| mov(scratch, left); // Preserve left.
|
| - daddiu(dst, left, -(right.immediate())); // Left is overwritten.
|
| + daddiu(dst, left,
|
| + static_cast<int32_t>(-right.immediate())); // Left is overwritten.
|
| xor_(overflow_dst, dst, scratch); // scratch is original left.
|
| // Load right since xori takes uint16 as immediate.
|
| - daddiu(t9, zero_reg, right.immediate());
|
| + daddiu(t9, zero_reg, static_cast<int32_t>(right.immediate()));
|
| xor_(scratch, scratch, t9); // scratch is original left.
|
| and_(overflow_dst, scratch, overflow_dst);
|
| } else {
|
| - daddiu(dst, left, -(right.immediate()));
|
| + daddiu(dst, left, static_cast<int32_t>(-right.immediate()));
|
| xor_(overflow_dst, dst, left);
|
| // Load right since xori takes uint16 as immediate.
|
| - daddiu(t9, zero_reg, right.immediate());
|
| + daddiu(t9, zero_reg, static_cast<int32_t>(right.immediate()));
|
| xor_(scratch, left, t9);
|
| and_(overflow_dst, scratch, overflow_dst);
|
| }
|
| @@ -4840,8 +4845,7 @@ void MacroAssembler::LoadTransitionedArrayMapConditional(
|
| ld(scratch,
|
| MemOperand(scratch,
|
| Context::SlotOffset(Context::JS_ARRAY_MAPS_INDEX)));
|
| - size_t offset = expected_kind * kPointerSize +
|
| - FixedArrayBase::kHeaderSize;
|
| + int offset = expected_kind * kPointerSize + FixedArrayBase::kHeaderSize;
|
| ld(at, FieldMemOperand(scratch, offset));
|
| Branch(no_map_match, ne, map_in_out, Operand(at));
|
|
|
|
|