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

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

Issue 194793002: [v8-dev] ARM: safepoints frame optimization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1442 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 // the position of the first bit. Leaves addr_reg unchanged. 1453 // the position of the first bit. Leaves addr_reg unchanged.
1454 inline void GetMarkBits(Register addr_reg, 1454 inline void GetMarkBits(Register addr_reg,
1455 Register bitmap_reg, 1455 Register bitmap_reg,
1456 Register mask_reg); 1456 Register mask_reg);
1457 1457
1458 // Helper for throwing exceptions. Compute a handler address and jump to 1458 // Helper for throwing exceptions. Compute a handler address and jump to
1459 // it. See the implementation for register usage. 1459 // it. See the implementation for register usage.
1460 void JumpToHandlerEntry(); 1460 void JumpToHandlerEntry();
1461 1461
1462 // Compute memory operands for safepoint stack slots. 1462 // Compute memory operands for safepoint stack slots.
1463 static int SafepointRegisterStackIndex(int reg_code); 1463 int SafepointRegisterStackIndex(int reg_code);
1464 MemOperand SafepointRegisterSlot(Register reg); 1464 MemOperand SafepointRegisterSlot(Register reg);
1465 MemOperand SafepointRegistersAndDoublesSlot(Register reg); 1465 MemOperand SafepointRegistersAndDoublesSlot(Register reg);
1466 1466
1467 bool generating_stub_; 1467 bool generating_stub_;
1468 bool has_frame_; 1468 bool has_frame_;
1469 // This handle will be patched with the code object on installation. 1469 // This handle will be patched with the code object on installation.
1470 Handle<Object> code_object_; 1470 Handle<Object> code_object_;
1471
1472 // Needs access to SafepointRegisterStackIndex for compiled frame
1473 // traversal.
1474 friend class StandardFrame;
1475 }; 1471 };
1476 1472
1477 1473
1478 // The code patcher is used to patch (typically) small parts of code e.g. for 1474 // The code patcher is used to patch (typically) small parts of code e.g. for
1479 // debugging and other types of instrumentation. When using the code patcher 1475 // debugging and other types of instrumentation. When using the code patcher
1480 // the exact number of bytes specified must be emitted. It is not legal to emit 1476 // the exact number of bytes specified must be emitted. It is not legal to emit
1481 // relocation information. If any of these constraints are violated it causes 1477 // relocation information. If any of these constraints are violated it causes
1482 // an assertion to fail. 1478 // an assertion to fail.
1483 class CodePatcher { 1479 class CodePatcher {
1484 public: 1480 public:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1528 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1533 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1529 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1534 #else 1530 #else
1535 #define ACCESS_MASM(masm) masm-> 1531 #define ACCESS_MASM(masm) masm->
1536 #endif 1532 #endif
1537 1533
1538 1534
1539 } } // namespace v8::internal 1535 } } // namespace v8::internal
1540 1536
1541 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1537 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698