Index: src/x64/codegen-x64.cc |
=================================================================== |
--- src/x64/codegen-x64.cc (revision 4685) |
+++ src/x64/codegen-x64.cc (working copy) |
@@ -3840,11 +3840,13 @@ |
__ testb(FieldOperand(kScratchRegister, Map::kBitFieldOffset), |
Immediate(1 << Map::kIsUndetectable)); |
destination()->false_target()->Branch(not_zero); |
- __ CmpInstanceType(kScratchRegister, FIRST_JS_OBJECT_TYPE); |
- destination()->false_target()->Branch(less); |
- __ CmpInstanceType(kScratchRegister, LAST_JS_OBJECT_TYPE); |
+ __ movzxbq(kScratchRegister, |
+ FieldOperand(kScratchRegister, Map::kInstanceTypeOffset)); |
+ __ cmpq(kScratchRegister, Immediate(FIRST_JS_OBJECT_TYPE)); |
+ destination()->false_target()->Branch(below); |
+ __ cmpq(kScratchRegister, Immediate(LAST_JS_OBJECT_TYPE)); |
obj.Unuse(); |
- destination()->Split(less_equal); |
+ destination()->Split(below_equal); |
} |
@@ -4336,7 +4338,7 @@ |
__ PrepareCallCFunction(0); |
__ CallCFunction(ExternalReference::random_uint32_function(), 0); |
- // Convert 32 random bits in eax to 0.(32 random bits) in a double |
+ // Convert 32 random bits in rax to 0.(32 random bits) in a double |
// by computing: |
// ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)). |
__ movl(rcx, Immediate(0x49800000)); // 1.0 x 2^20 as single. |