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

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

Issue 2816703002: [arm] Remove embedded constant pool support. (Closed)
Patch Set: [arm] Remove embedded constant pool support. Created 3 years, 8 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
« no previous file with comments | « src/arm/frames-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/arm/assembler-arm.h" 8 #include "src/arm/assembler-arm.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 23 matching lines...) Expand all
34 // Static helper functions 34 // Static helper functions
35 35
36 // Generate a MemOperand for loading a field from an object. 36 // Generate a MemOperand for loading a field from an object.
37 inline MemOperand FieldMemOperand(Register object, int offset) { 37 inline MemOperand FieldMemOperand(Register object, int offset) {
38 return MemOperand(object, offset - kHeapObjectTag); 38 return MemOperand(object, offset - kHeapObjectTag);
39 } 39 }
40 40
41 41
42 // Give alias names to registers 42 // Give alias names to registers
43 const Register cp = {Register::kCode_r7}; // JavaScript context pointer. 43 const Register cp = {Register::kCode_r7}; // JavaScript context pointer.
44 const Register pp = {Register::kCode_r8}; // Constant pool pointer.
45 const Register kRootRegister = {Register::kCode_r10}; // Roots array pointer. 44 const Register kRootRegister = {Register::kCode_r10}; // Roots array pointer.
46 45
47 // Flags used for AllocateHeapNumber 46 // Flags used for AllocateHeapNumber
48 enum TaggingMode { 47 enum TaggingMode {
49 // Tag the result. 48 // Tag the result.
50 TAG_RESULT, 49 TAG_RESULT,
51 // Don't tag 50 // Don't tag
52 DONT_TAG_RESULT 51 DONT_TAG_RESULT
53 }; 52 };
54 53
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 } else { 466 } else {
468 Pop(src3, src4, cond); 467 Pop(src3, src4, cond);
469 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); 468 ldm(ia_w, sp, src1.bit() | src2.bit(), cond);
470 } 469 }
471 } else { 470 } else {
472 Pop(src2, src3, src4, cond); 471 Pop(src2, src3, src4, cond);
473 ldr(src1, MemOperand(sp, 4, PostIndex), cond); 472 ldr(src1, MemOperand(sp, 4, PostIndex), cond);
474 } 473 }
475 } 474 }
476 475
477 // Push a fixed frame, consisting of lr, fp, constant pool (if 476 // Push a fixed frame, consisting of lr, fp
478 // FLAG_enable_embedded_constant_pool)
479 void PushCommonFrame(Register marker_reg = no_reg); 477 void PushCommonFrame(Register marker_reg = no_reg);
480 478
481 // Push a standard frame, consisting of lr, fp, constant pool (if 479 // Push a standard frame, consisting of lr, fp, context and JS function
482 // FLAG_enable_embedded_constant_pool), context and JS function
483 void PushStandardFrame(Register function_reg); 480 void PushStandardFrame(Register function_reg);
484 481
485 void PopCommonFrame(Register marker_reg = no_reg); 482 void PopCommonFrame(Register marker_reg = no_reg);
486 483
487 // Push and pop the registers that can hold pointers, as defined by the 484 // Push and pop the registers that can hold pointers, as defined by the
488 // RegList constant kSafepointSavedRegisters. 485 // RegList constant kSafepointSavedRegisters.
489 void PushSafepointRegisters(); 486 void PushSafepointRegisters();
490 void PopSafepointRegisters(); 487 void PopSafepointRegisters();
491 // Store value in register src in the safepoint stack slot for 488 // Store value in register src in the safepoint stack slot for
492 // register dst. 489 // register dst.
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 // AllocationMemento support. Arrays may have an associated 1327 // AllocationMemento support. Arrays may have an associated
1331 // AllocationMemento object that can be checked for in order to pretransition 1328 // AllocationMemento object that can be checked for in order to pretransition
1332 // to another type. 1329 // to another type.
1333 // On entry, receiver_reg should point to the array object. 1330 // On entry, receiver_reg should point to the array object.
1334 // scratch_reg gets clobbered. 1331 // scratch_reg gets clobbered.
1335 // If allocation info is present, condition flags are set to eq. 1332 // If allocation info is present, condition flags are set to eq.
1336 void TestJSArrayForAllocationMemento(Register receiver_reg, 1333 void TestJSArrayForAllocationMemento(Register receiver_reg,
1337 Register scratch_reg, 1334 Register scratch_reg,
1338 Label* no_memento_found); 1335 Label* no_memento_found);
1339 1336
1340 // Loads the constant pool pointer (pp) register.
1341 void LoadConstantPoolPointerRegisterFromCodeTargetAddress(
1342 Register code_target_address);
1343 void LoadConstantPoolPointerRegister();
1344
1345 private: 1337 private:
1346 void CallCFunctionHelper(Register function, 1338 void CallCFunctionHelper(Register function,
1347 int num_reg_arguments, 1339 int num_reg_arguments,
1348 int num_double_arguments); 1340 int num_double_arguments);
1349 1341
1350 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); 1342 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
1351 1343
1352 // Helper functions for generating invokes. 1344 // Helper functions for generating invokes.
1353 void InvokePrologue(const ParameterCount& expected, 1345 void InvokePrologue(const ParameterCount& expected,
1354 const ParameterCount& actual, 1346 const ParameterCount& actual,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 inline MemOperand NativeContextMemOperand() { 1437 inline MemOperand NativeContextMemOperand() {
1446 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); 1438 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX);
1447 } 1439 }
1448 1440
1449 #define ACCESS_MASM(masm) masm-> 1441 #define ACCESS_MASM(masm) masm->
1450 1442
1451 } // namespace internal 1443 } // namespace internal
1452 } // namespace v8 1444 } // namespace v8
1453 1445
1454 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1446 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/frames-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698