Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 1131783003: Embedded constant pools. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 Pop(src3, src4, cond); 430 Pop(src3, src4, cond);
431 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); 431 ldm(ia_w, sp, src1.bit() | src2.bit(), cond);
432 } 432 }
433 } else { 433 } else {
434 Pop(src2, src3, src4, cond); 434 Pop(src2, src3, src4, cond);
435 ldr(src1, MemOperand(sp, 4, PostIndex), cond); 435 ldr(src1, MemOperand(sp, 4, PostIndex), cond);
436 } 436 }
437 } 437 }
438 438
439 // Push a fixed frame, consisting of lr, fp, constant pool (if 439 // Push a fixed frame, consisting of lr, fp, constant pool (if
440 // FLAG_enable_ool_constant_pool), context and JS function / marker id if 440 // FLAG_enable_embedded_constant_pool), context and JS function / marker id if
441 // marker_reg is a valid register. 441 // marker_reg is a valid register.
442 void PushFixedFrame(Register marker_reg = no_reg); 442 void PushFixedFrame(Register marker_reg = no_reg);
443 void PopFixedFrame(Register marker_reg = no_reg); 443 void PopFixedFrame(Register marker_reg = no_reg);
444 444
445 // Push and pop the registers that can hold pointers, as defined by the 445 // Push and pop the registers that can hold pointers, as defined by the
446 // RegList constant kSafepointSavedRegisters. 446 // RegList constant kSafepointSavedRegisters.
447 void PushSafepointRegisters(); 447 void PushSafepointRegisters();
448 void PopSafepointRegisters(); 448 void PopSafepointRegisters();
449 // Store value in register src in the safepoint stack slot for 449 // Store value in register src in the safepoint stack slot for
450 // register dst. 450 // register dst.
(...skipping 983 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, 1434 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1435 &no_memento_found); 1435 &no_memento_found);
1436 b(eq, memento_found); 1436 b(eq, memento_found);
1437 bind(&no_memento_found); 1437 bind(&no_memento_found);
1438 } 1438 }
1439 1439
1440 // Jumps to found label if a prototype map has dictionary elements. 1440 // Jumps to found label if a prototype map has dictionary elements.
1441 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, 1441 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0,
1442 Register scratch1, Label* found); 1442 Register scratch1, Label* found);
1443 1443
1444 // Loads the constant pool pointer (pp) register.
1445 void LoadTargetConstantPoolPointerRegister(Register target);
1446 void LoadConstantPoolPointerRegister();
1447
1444 private: 1448 private:
1445 void CallCFunctionHelper(Register function, 1449 void CallCFunctionHelper(Register function,
1446 int num_reg_arguments, 1450 int num_reg_arguments,
1447 int num_double_arguments); 1451 int num_double_arguments);
1448 1452
1449 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); 1453 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
1450 1454
1451 // Helper functions for generating invokes. 1455 // Helper functions for generating invokes.
1452 void InvokePrologue(const ParameterCount& expected, 1456 void InvokePrologue(const ParameterCount& expected,
1453 const ParameterCount& actual, 1457 const ParameterCount& actual,
(...skipping 21 matching lines...) Expand all
1475 // the position of the first bit. Leaves addr_reg unchanged. 1479 // the position of the first bit. Leaves addr_reg unchanged.
1476 inline void GetMarkBits(Register addr_reg, 1480 inline void GetMarkBits(Register addr_reg,
1477 Register bitmap_reg, 1481 Register bitmap_reg,
1478 Register mask_reg); 1482 Register mask_reg);
1479 1483
1480 // Compute memory operands for safepoint stack slots. 1484 // Compute memory operands for safepoint stack slots.
1481 static int SafepointRegisterStackIndex(int reg_code); 1485 static int SafepointRegisterStackIndex(int reg_code);
1482 MemOperand SafepointRegisterSlot(Register reg); 1486 MemOperand SafepointRegisterSlot(Register reg);
1483 MemOperand SafepointRegistersAndDoublesSlot(Register reg); 1487 MemOperand SafepointRegistersAndDoublesSlot(Register reg);
1484 1488
1485 // Loads the constant pool pointer (pp) register.
1486 void LoadConstantPoolPointerRegister();
1487
1488 bool generating_stub_; 1489 bool generating_stub_;
1489 bool has_frame_; 1490 bool has_frame_;
1490 // This handle will be patched with the code object on installation. 1491 // This handle will be patched with the code object on installation.
1491 Handle<Object> code_object_; 1492 Handle<Object> code_object_;
1492 1493
1493 // Needs access to SafepointRegisterStackIndex for compiled frame 1494 // Needs access to SafepointRegisterStackIndex for compiled frame
1494 // traversal. 1495 // traversal.
1495 friend class StandardFrame; 1496 friend class StandardFrame;
1496 }; 1497 };
1497 1498
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1553 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1554 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1554 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1555 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1555 #else 1556 #else
1556 #define ACCESS_MASM(masm) masm-> 1557 #define ACCESS_MASM(masm) masm->
1557 #endif 1558 #endif
1558 1559
1559 1560
1560 } } // namespace v8::internal 1561 } } // namespace v8::internal
1561 1562
1562 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1563 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698