Revision: 15914
Author: [email protected]
Date: Fri Jul 26 18:07:53 2013
Log: MIPS: Fix debug mode webkit failures.
* Handles SMI case in EmitLoadRegister correctly.
* Fix minor mistake in the assembler.
BUG=v8:2808
TEST=webkit/dfg-dead-min-two-args,webkit/fast/js/excessive-comma-usage
Review URL: https://codereview.chromium.org/20801003
http://code.google.com/p/v8/source/detail?r=15914
Modified:
/branches/bleeding_edge/src/mips/assembler-mips.cc
/branches/bleeding_edge/src/mips/lithium-codegen-mips.cc
=======================================
--- /branches/bleeding_edge/src/mips/assembler-mips.cc Fri Jul 5 02:52:11
2013
+++ /branches/bleeding_edge/src/mips/assembler-mips.cc Fri Jul 26 18:07:53
2013
@@ -1347,7 +1347,7 @@
// Helper for base-reg + offset, when offset is larger than int16.
void Assembler::LoadRegPlusOffsetToAt(const MemOperand& src) {
ASSERT(!src.rm().is(at));
- lui(at, src.offset_ >> kLuiShift);
+ lui(at, (src.offset_ >> kLuiShift) & kImm16Mask);
ori(at, at, src.offset_ & kImm16Mask); // Load 32-bit offset.
addu(at, at, src.rm()); // Add base register.
}
=======================================
--- /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Fri Jul 26
16:56:03 2013
+++ /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Fri Jul 26
18:07:53 2013
@@ -407,6 +407,9 @@
if (r.IsInteger32()) {
ASSERT(literal->IsNumber());
__ li(scratch, Operand(static_cast<int32_t>(literal->Number())));
+ } else if (r.IsSmi()) {
+ ASSERT(constant->HasSmiValue());
+ __ li(scratch, Operand(Smi::FromInt(constant->Integer32Value())));
} else if (r.IsDouble()) {
Abort("EmitLoadRegister: Unsupported double immediate.");
} else {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.