| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2189 } | 2189 } |
| 2190 | 2190 |
| 2191 XMMRegister input_reg = ToDoubleRegister(instr->object()); | 2191 XMMRegister input_reg = ToDoubleRegister(instr->object()); |
| 2192 __ ucomisd(input_reg, input_reg); | 2192 __ ucomisd(input_reg, input_reg); |
| 2193 EmitFalseBranch(instr, parity_odd); | 2193 EmitFalseBranch(instr, parity_odd); |
| 2194 | 2194 |
| 2195 __ subq(rsp, Immediate(kDoubleSize)); | 2195 __ subq(rsp, Immediate(kDoubleSize)); |
| 2196 __ movsd(MemOperand(rsp, 0), input_reg); | 2196 __ movsd(MemOperand(rsp, 0), input_reg); |
| 2197 __ addq(rsp, Immediate(kDoubleSize)); | 2197 __ addq(rsp, Immediate(kDoubleSize)); |
| 2198 | 2198 |
| 2199 int size = sizeof(kHoleNanUpper32); | 2199 int offset = sizeof(kHoleNanUpper32); |
| 2200 __ cmpl(MemOperand(rsp, -size), | 2200 __ cmpl(MemOperand(rsp, -offset), Immediate(kHoleNanUpper32)); |
| 2201 Immediate(kHoleNanUpper32)); | |
| 2202 EmitBranch(instr, equal); | 2201 EmitBranch(instr, equal); |
| 2203 } | 2202 } |
| 2204 | 2203 |
| 2205 | 2204 |
| 2206 Condition LCodeGen::EmitIsObject(Register input, | 2205 Condition LCodeGen::EmitIsObject(Register input, |
| 2207 Label* is_not_object, | 2206 Label* is_not_object, |
| 2208 Label* is_object) { | 2207 Label* is_object) { |
| 2209 ASSERT(!input.is(kScratchRegister)); | 2208 ASSERT(!input.is(kScratchRegister)); |
| 2210 | 2209 |
| 2211 __ JumpIfSmi(input, is_not_object); | 2210 __ JumpIfSmi(input, is_not_object); |
| (...skipping 3299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5511 FixedArray::kHeaderSize - kPointerSize)); | 5510 FixedArray::kHeaderSize - kPointerSize)); |
| 5512 __ bind(&done); | 5511 __ bind(&done); |
| 5513 } | 5512 } |
| 5514 | 5513 |
| 5515 | 5514 |
| 5516 #undef __ | 5515 #undef __ |
| 5517 | 5516 |
| 5518 } } // namespace v8::internal | 5517 } } // namespace v8::internal |
| 5519 | 5518 |
| 5520 #endif // V8_TARGET_ARCH_X64 | 5519 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |