| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 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 1245 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1256   __ sub(ecx, Immediate(sizeof(uint32_t))); |  1256   __ sub(ecx, Immediate(sizeof(uint32_t))); | 
|  1257   __ push(Operand(ebx, ecx, times_1, FrameDescription::frame_content_offset())); |  1257   __ push(Operand(ebx, ecx, times_1, FrameDescription::frame_content_offset())); | 
|  1258   __ bind(&inner_loop_header); |  1258   __ bind(&inner_loop_header); | 
|  1259   __ test(ecx, ecx); |  1259   __ test(ecx, ecx); | 
|  1260   __ j(not_zero, &inner_push_loop); |  1260   __ j(not_zero, &inner_push_loop); | 
|  1261   __ add(eax, Immediate(kPointerSize)); |  1261   __ add(eax, Immediate(kPointerSize)); | 
|  1262   __ bind(&outer_loop_header); |  1262   __ bind(&outer_loop_header); | 
|  1263   __ cmp(eax, edx); |  1263   __ cmp(eax, edx); | 
|  1264   __ j(below, &outer_push_loop); |  1264   __ j(below, &outer_push_loop); | 
|  1265  |  1265  | 
|  1266   // In case of OSR, we have to restore the XMM registers. |  1266   // In case of OSR or a failed STUB, we have to restore the XMM registers. | 
|  1267   if (type() == OSR) { |  1267   if (CpuFeatures::IsSupported(SSE2)) { | 
|  1268     if (CpuFeatures::IsSupported(SSE2)) { |  1268     CpuFeatures::Scope scope(SSE2); | 
|  1269       CpuFeatures::Scope scope(SSE2); |  1269     for (int i = 0; i < XMMRegister::kNumAllocatableRegisters; ++i) { | 
|  1270       for (int i = 0; i < XMMRegister::kNumAllocatableRegisters; ++i) { |  1270       XMMRegister xmm_reg = XMMRegister::FromAllocationIndex(i); | 
|  1271         XMMRegister xmm_reg = XMMRegister::FromAllocationIndex(i); |  1271       int src_offset = i * kDoubleSize + double_regs_offset; | 
|  1272         int src_offset = i * kDoubleSize + double_regs_offset; |  1272       __ movdbl(xmm_reg, Operand(ebx, src_offset)); | 
|  1273         __ movdbl(xmm_reg, Operand(ebx, src_offset)); |  | 
|  1274       } |  | 
|  1275     } |  1273     } | 
|  1276   } |  1274   } | 
|  1277  |  1275  | 
|  1278   // Push state, pc, and continuation from the last output frame. |  1276   // Push state, pc, and continuation from the last output frame. | 
|  1279   if (type() != OSR) { |  1277   if (type() != OSR) { | 
|  1280     __ push(Operand(ebx, FrameDescription::state_offset())); |  1278     __ push(Operand(ebx, FrameDescription::state_offset())); | 
|  1281   } |  1279   } | 
|  1282   __ push(Operand(ebx, FrameDescription::pc_offset())); |  1280   __ push(Operand(ebx, FrameDescription::pc_offset())); | 
|  1283   __ push(Operand(ebx, FrameDescription::continuation_offset())); |  1281   __ push(Operand(ebx, FrameDescription::continuation_offset())); | 
|  1284  |  1282  | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
|  1309   } |  1307   } | 
|  1310   __ bind(&done); |  1308   __ bind(&done); | 
|  1311 } |  1309 } | 
|  1312  |  1310  | 
|  1313 #undef __ |  1311 #undef __ | 
|  1314  |  1312  | 
|  1315  |  1313  | 
|  1316 } }  // namespace v8::internal |  1314 } }  // namespace v8::internal | 
|  1317  |  1315  | 
|  1318 #endif  // V8_TARGET_ARCH_IA32 |  1316 #endif  // V8_TARGET_ARCH_IA32 | 
| OLD | NEW |