| 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 #include <assert.h> // For assert | 5 #include <assert.h> // For assert |
| 6 #include <limits.h> // For LONG_MIN, LONG_MAX. | 6 #include <limits.h> // For LONG_MIN, LONG_MAX. |
| 7 | 7 |
| 8 #if V8_TARGET_ARCH_S390 | 8 #if V8_TARGET_ARCH_S390 |
| 9 | 9 |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 993 // the caller frame pointer, return address and constant pool pointer. | 993 // the caller frame pointer, return address and constant pool pointer. |
| 994 LoadP(r14, MemOperand(fp, StandardFrameConstants::kCallerPCOffset)); | 994 LoadP(r14, MemOperand(fp, StandardFrameConstants::kCallerPCOffset)); |
| 995 lay(r1, MemOperand( | 995 lay(r1, MemOperand( |
| 996 fp, StandardFrameConstants::kCallerSPOffset + stack_adjustment)); | 996 fp, StandardFrameConstants::kCallerSPOffset + stack_adjustment)); |
| 997 LoadP(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); | 997 LoadP(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
| 998 LoadRR(sp, r1); | 998 LoadRR(sp, r1); |
| 999 int frame_ends = pc_offset(); | 999 int frame_ends = pc_offset(); |
| 1000 return frame_ends; | 1000 return frame_ends; |
| 1001 } | 1001 } |
| 1002 | 1002 |
| 1003 void MacroAssembler::EnterBuiltinFrame(Register context, Register target, |
| 1004 Register argc) { |
| 1005 CleanseP(r14); |
| 1006 Push(r14, fp, context, target); |
| 1007 la(fp, MemOperand(sp, 2 * kPointerSize)); |
| 1008 Push(argc); |
| 1009 } |
| 1010 |
| 1011 void MacroAssembler::LeaveBuiltinFrame(Register context, Register target, |
| 1012 Register argc) { |
| 1013 Pop(argc); |
| 1014 Pop(r14, fp, context, target); |
| 1015 } |
| 1016 |
| 1003 // ExitFrame layout (probably wrongish.. needs updating) | 1017 // ExitFrame layout (probably wrongish.. needs updating) |
| 1004 // | 1018 // |
| 1005 // SP -> previousSP | 1019 // SP -> previousSP |
| 1006 // LK reserved | 1020 // LK reserved |
| 1007 // code | 1021 // code |
| 1008 // sp_on_exit (for debug?) | 1022 // sp_on_exit (for debug?) |
| 1009 // oldSP->prev SP | 1023 // oldSP->prev SP |
| 1010 // LK | 1024 // LK |
| 1011 // <parameters on stack> | 1025 // <parameters on stack> |
| 1012 | 1026 |
| (...skipping 4495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5508 } | 5522 } |
| 5509 if (mag.shift > 0) ShiftRightArith(result, result, Operand(mag.shift)); | 5523 if (mag.shift > 0) ShiftRightArith(result, result, Operand(mag.shift)); |
| 5510 ExtractBit(r0, dividend, 31); | 5524 ExtractBit(r0, dividend, 31); |
| 5511 AddP(result, r0); | 5525 AddP(result, r0); |
| 5512 } | 5526 } |
| 5513 | 5527 |
| 5514 } // namespace internal | 5528 } // namespace internal |
| 5515 } // namespace v8 | 5529 } // namespace v8 |
| 5516 | 5530 |
| 5517 #endif // V8_TARGET_ARCH_S390 | 5531 #endif // V8_TARGET_ARCH_S390 |
| OLD | NEW |