| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #if V8_TARGET_ARCH_PPC | 5 #if V8_TARGET_ARCH_PPC | 
| 6 | 6 | 
| 7 #include "src/codegen.h" | 7 #include "src/codegen.h" | 
| 8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" | 
| 9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" | 
| 10 #include "src/full-codegen/full-codegen.h" | 10 #include "src/full-codegen/full-codegen.h" | 
| (...skipping 2059 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2070   // Count receiver argument as well (not included in args_reg). | 2070   // Count receiver argument as well (not included in args_reg). | 
| 2071   __ addi(src_reg, src_reg, Operand(kPointerSize)); | 2071   __ addi(src_reg, src_reg, Operand(kPointerSize)); | 
| 2072 | 2072 | 
| 2073   if (FLAG_debug_code) { | 2073   if (FLAG_debug_code) { | 
| 2074     __ cmpl(src_reg, dst_reg); | 2074     __ cmpl(src_reg, dst_reg); | 
| 2075     __ Check(lt, kStackAccessBelowStackPointer); | 2075     __ Check(lt, kStackAccessBelowStackPointer); | 
| 2076   } | 2076   } | 
| 2077 | 2077 | 
| 2078   // Restore caller's frame pointer and return address now as they will be | 2078   // Restore caller's frame pointer and return address now as they will be | 
| 2079   // overwritten by the copying loop. | 2079   // overwritten by the copying loop. | 
| 2080   if (FLAG_enable_embedded_constant_pool) { | 2080   __ RestoreFrameStateForTailCall(); | 
| 2081     __ LoadP(kConstantPoolRegister, |  | 
| 2082              MemOperand(fp, StandardFrameConstants::kConstantPoolOffset)); |  | 
| 2083   } |  | 
| 2084   __ LoadP(r0, MemOperand(fp, StandardFrameConstants::kCallerPCOffset)); |  | 
| 2085   __ LoadP(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |  | 
| 2086   __ mtlr(r0); |  | 
| 2087 | 2081 | 
| 2088   // Now copy callee arguments to the caller frame going backwards to avoid | 2082   // Now copy callee arguments to the caller frame going backwards to avoid | 
| 2089   // callee arguments corruption (source and destination areas could overlap). | 2083   // callee arguments corruption (source and destination areas could overlap). | 
| 2090 | 2084 | 
| 2091   // Both src_reg and dst_reg are pointing to the word after the one to copy, | 2085   // Both src_reg and dst_reg are pointing to the word after the one to copy, | 
| 2092   // so they must be pre-decremented in the loop. | 2086   // so they must be pre-decremented in the loop. | 
| 2093   Register tmp_reg = scratch3; | 2087   Register tmp_reg = scratch3; | 
| 2094   Label loop; | 2088   Label loop; | 
| 2095   __ addi(tmp_reg, args_reg, Operand(1));  // +1 for receiver | 2089   __ addi(tmp_reg, args_reg, Operand(1));  // +1 for receiver | 
| 2096   __ mtctr(tmp_reg); | 2090   __ mtctr(tmp_reg); | 
| (...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2674     __ bkpt(0); | 2668     __ bkpt(0); | 
| 2675   } | 2669   } | 
| 2676 } | 2670 } | 
| 2677 | 2671 | 
| 2678 | 2672 | 
| 2679 #undef __ | 2673 #undef __ | 
| 2680 }  // namespace internal | 2674 }  // namespace internal | 
| 2681 }  // namespace v8 | 2675 }  // namespace v8 | 
| 2682 | 2676 | 
| 2683 #endif  // V8_TARGET_ARCH_PPC | 2677 #endif  // V8_TARGET_ARCH_PPC | 
| OLD | NEW | 
|---|