Fix Bigint_rsh on mips (was obviously not properly tested).

Review URL: https://codereview.chromium.org//1124553006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45522 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
regis@google.com 2015-05-05 10:11:41 +00:00
parent 9d0987d1e7
commit a2f43064dc

View file

@ -868,9 +868,12 @@ void Intrinsifier::Bigint_rsh(Assembler* assembler) {
// T2 = 32 - T3 // T2 = 32 - T3
__ subu(T2, ZR, T3); __ subu(T2, ZR, T3);
__ addiu(T2, T2, Immediate(32)); __ addiu(T2, T2, Immediate(32));
// T1 = x_digits[n ~/ _DIGIT_BITS] >> (n % _DIGIT_BITS)
__ lw(T1, Address(V0, 0));
__ addiu(V0, V0, Immediate(Bigint::kBytesPerDigit));
Label loop_exit; Label loop_exit;
__ beq(V1, T6, &loop_exit); __ beq(V1, T6, &loop_exit);
__ delay_slot()->mov(T1, ZR); __ delay_slot()->srlv(T1, T1, T3);
Label loop; Label loop;
__ Bind(&loop); __ Bind(&loop);
__ lw(T0, Address(V0, 0)); __ lw(T0, Address(V0, 0));