OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 Pop(src3, src4, cond); | 450 Pop(src3, src4, cond); |
451 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); | 451 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); |
452 } | 452 } |
453 } else { | 453 } else { |
454 Pop(src2, src3, src4, cond); | 454 Pop(src2, src3, src4, cond); |
455 ldr(src1, MemOperand(sp, 4, PostIndex), cond); | 455 ldr(src1, MemOperand(sp, 4, PostIndex), cond); |
456 } | 456 } |
457 } | 457 } |
458 | 458 |
459 // Push a fixed frame, consisting of lr, fp, constant pool (if | 459 // Push a fixed frame, consisting of lr, fp, constant pool (if |
460 // FLAG_enable_embedded_constant_pool), context and JS function / marker id if | 460 // FLAG_enable_embedded_constant_pool) |
461 // marker_reg is a valid register. | 461 void PushCommonFrame(Register marker_reg = no_reg); |
462 void PushFixedFrame(Register marker_reg = no_reg); | 462 |
463 void PopFixedFrame(Register marker_reg = no_reg); | 463 // Push a standard frame, consisting of lr, fp, constant pool (if |
| 464 // FLAG_enable_embedded_constant_pool), context and JS function |
| 465 void PushStandardFrame(Register function_reg); |
| 466 |
| 467 void PopCommonFrame(Register marker_reg = no_reg); |
464 | 468 |
465 // Push and pop the registers that can hold pointers, as defined by the | 469 // Push and pop the registers that can hold pointers, as defined by the |
466 // RegList constant kSafepointSavedRegisters. | 470 // RegList constant kSafepointSavedRegisters. |
467 void PushSafepointRegisters(); | 471 void PushSafepointRegisters(); |
468 void PopSafepointRegisters(); | 472 void PopSafepointRegisters(); |
469 // Store value in register src in the safepoint stack slot for | 473 // Store value in register src in the safepoint stack slot for |
470 // register dst. | 474 // register dst. |
471 void StoreToSafepointRegisterSlot(Register src, Register dst); | 475 void StoreToSafepointRegisterSlot(Register src, Register dst); |
472 // Load the value of the src register from its safepoint stack slot | 476 // Load the value of the src register from its safepoint stack slot |
473 // into register dst. | 477 // into register dst. |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 // won't be converted. | 582 // won't be converted. |
579 void LoadNumberAsInt32(Register object, | 583 void LoadNumberAsInt32(Register object, |
580 Register dst, | 584 Register dst, |
581 Register heap_number_map, | 585 Register heap_number_map, |
582 Register scratch, | 586 Register scratch, |
583 DwVfpRegister double_scratch0, | 587 DwVfpRegister double_scratch0, |
584 LowDwVfpRegister double_scratch1, | 588 LowDwVfpRegister double_scratch1, |
585 Label* not_int32); | 589 Label* not_int32); |
586 | 590 |
587 // Generates function and stub prologue code. | 591 // Generates function and stub prologue code. |
588 void StubPrologue(); | 592 void StubPrologue(StackFrame::Type type); |
589 void Prologue(bool code_pre_aging); | 593 void Prologue(bool code_pre_aging); |
590 | 594 |
591 // Enter exit frame. | 595 // Enter exit frame. |
592 // stack_space - extra stack space, used for alignment before call to C. | 596 // stack_space - extra stack space, used for alignment before call to C. |
593 void EnterExitFrame(bool save_doubles, int stack_space = 0); | 597 void EnterExitFrame(bool save_doubles, int stack_space = 0); |
594 | 598 |
595 // Leave the current exit frame. Expects the return value in r0. | 599 // Leave the current exit frame. Expects the return value in r0. |
596 // Expect the number of values, pushed prior to the exit frame, to | 600 // Expect the number of values, pushed prior to the exit frame, to |
597 // remove in a register (or no_reg, if there is nothing to remove). | 601 // remove in a register (or no_reg, if there is nothing to remove). |
598 void LeaveExitFrame(bool save_doubles, Register argument_count, | 602 void LeaveExitFrame(bool save_doubles, Register argument_count, |
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1561 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1565 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1562 #else | 1566 #else |
1563 #define ACCESS_MASM(masm) masm-> | 1567 #define ACCESS_MASM(masm) masm-> |
1564 #endif | 1568 #endif |
1565 | 1569 |
1566 | 1570 |
1567 } // namespace internal | 1571 } // namespace internal |
1568 } // namespace v8 | 1572 } // namespace v8 |
1569 | 1573 |
1570 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1574 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |