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 |