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

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

Issue 136203005: A64: Implement patchable inline code for InstanceOfKnownGlobal. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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
« no previous file with comments | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 1576 matching lines...) Expand 10 before | Expand all | Expand 10 after
1587 // Push and pop the registers that can hold pointers, as defined by the 1587 // Push and pop the registers that can hold pointers, as defined by the
1588 // RegList constant kSafepointSavedRegisters. 1588 // RegList constant kSafepointSavedRegisters.
1589 void PushSafepointRegisters(); 1589 void PushSafepointRegisters();
1590 void PopSafepointRegisters(); 1590 void PopSafepointRegisters();
1591 1591
1592 // Store value in register src in the safepoint stack slot for register dst. 1592 // Store value in register src in the safepoint stack slot for register dst.
1593 void StoreToSafepointRegisterSlot(Register src, Register dst) { 1593 void StoreToSafepointRegisterSlot(Register src, Register dst) {
1594 Poke(src, SafepointRegisterStackIndex(dst.code()) * kPointerSize); 1594 Poke(src, SafepointRegisterStackIndex(dst.code()) * kPointerSize);
1595 } 1595 }
1596 1596
1597 // Load the value of the src register from its safepoint stack slot
1598 // into register dst.
1599 void LoadFromSafepointRegisterSlot(Register dst, Register src) {
1600 Peek(src, SafepointRegisterStackIndex(dst.code()) * kPointerSize);
1601 }
1602
1597 void CheckPageFlagSet(const Register& object, 1603 void CheckPageFlagSet(const Register& object,
1598 const Register& scratch, 1604 const Register& scratch,
1599 int mask, 1605 int mask,
1600 Label* if_any_set); 1606 Label* if_any_set);
1601 1607
1602 void CheckPageFlagClear(const Register& object, 1608 void CheckPageFlagClear(const Register& object,
1603 const Register& scratch, 1609 const Register& scratch,
1604 int mask, 1610 int mask,
1605 Label* if_all_clear); 1611 Label* if_all_clear);
1606 1612
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1708 Label* has_color, 1714 Label* has_color,
1709 int first_bit, 1715 int first_bit,
1710 int second_bit); 1716 int second_bit);
1711 1717
1712 void JumpIfBlack(Register object, 1718 void JumpIfBlack(Register object,
1713 Register scratch0, 1719 Register scratch0,
1714 Register scratch1, 1720 Register scratch1,
1715 Label* on_black); 1721 Label* on_black);
1716 1722
1717 1723
1724 // Get the location of a relocated constant (its address in the constant pool)
1725 // from its load site.
1726 void GetRelocatedValueLocation(Register ldr_location,
1727 Register result);
1728
1729
1718 // --------------------------------------------------------------------------- 1730 // ---------------------------------------------------------------------------
1719 // Debugging. 1731 // Debugging.
1720 1732
1721 // Calls Abort(msg) if the condition cond is not satisfied. 1733 // Calls Abort(msg) if the condition cond is not satisfied.
1722 // Use --debug_code to enable. 1734 // Use --debug_code to enable.
1723 void Assert(Condition cond, const char* msg); 1735 void Assert(Condition cond, const char* msg);
1724 void AssertRegisterIsClear(Register reg, const char* msg); 1736 void AssertRegisterIsClear(Register reg, const char* msg);
1725 void AssertRegisterIsRoot(Register reg, Heap::RootListIndex index); 1737 void AssertRegisterIsRoot(Register reg, Heap::RootListIndex index);
1726 void AssertFastElements(Register elements); 1738 void AssertFastElements(Register elements);
1727 1739
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
2132 #error "Unsupported option" 2144 #error "Unsupported option"
2133 #define CODE_COVERAGE_STRINGIFY(x) #x 2145 #define CODE_COVERAGE_STRINGIFY(x) #x
2134 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 2146 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
2135 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 2147 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
2136 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 2148 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
2137 #else 2149 #else
2138 #define ACCESS_MASM(masm) masm-> 2150 #define ACCESS_MASM(masm) masm->
2139 #endif 2151 #endif
2140 2152
2141 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_ 2153 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_
OLDNEW
« no previous file with comments | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698