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

Unified Diff: src/compiler/code-stub-assembler.h

Issue 1735803003: [turbofan] Adds an Allocate macro to the CodeStubAssembler. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: src/compiler/code-stub-assembler.h
diff --git a/src/compiler/code-stub-assembler.h b/src/compiler/code-stub-assembler.h
index 2ab13764c46acdb4e67bcc78cf9306d832e57e30..c50f2e5565ea7f1835cef139c0aa798a14c015c4 100644
--- a/src/compiler/code-stub-assembler.h
+++ b/src/compiler/code-stub-assembler.h
@@ -68,6 +68,27 @@ class Schedule;
V(Word64Ror) \
V(UintPtrGreaterThanOrEqual)
+enum AllocationFlags : uint8_t {
Benedikt Meurer 2016/02/25 13:00:40 Can you move this into the CodeStubAssembler?
epertoso 2016/02/25 13:26:54 Done.
+ kNone = 0,
+ kTagObject = 1,
Benedikt Meurer 2016/02/25 13:00:41 Don't add kTagObject here. This is terrible in the
epertoso 2016/02/25 13:26:54 OK.
+ kDoubleAlignment = 1 << 1,
+ kPretenured = 1 << 2
+};
+
+inline AllocationFlags operator|(AllocationFlags lhs, AllocationFlags rhs) {
Benedikt Meurer 2016/02/25 13:00:40 Use base::Flags and DEFINE_OPERATORS_FOR_FLAGS her
epertoso 2016/02/25 13:26:53 Done.
+ return static_cast<AllocationFlags>(static_cast<uint8_t>(lhs) |
+ static_cast<uint8_t>(rhs));
+}
+
+inline AllocationFlags operator&(AllocationFlags lhs, AllocationFlags rhs) {
+ return static_cast<AllocationFlags>(static_cast<uint8_t>(lhs) &
+ static_cast<uint8_t>(rhs));
+}
+
+inline AllocationFlags operator~(AllocationFlags arg) {
+ return static_cast<AllocationFlags>(~static_cast<uint8_t>(arg));
+}
+
class CodeStubAssembler {
public:
// |result_size| specifies the number of results returned by the stub.
@@ -211,6 +232,9 @@ class CodeStubAssembler {
int additional_offset = 0);
Node* LoadFixedArrayElementConstantIndex(Node* object, int index);
+ // Allocate in new space.
+ Node* Allocate(int size, AllocationFlags flags);
+
protected:
// Protected helpers which delegate to RawMachineAssembler.
Graph* graph();
@@ -229,6 +253,11 @@ class CodeStubAssembler {
Node* SmiShiftBitsConstant();
+ Node* AllocateRawAligned(Node* size_in_bytes, AllocationFlags flags,
+ Node* top_address, Node* limit_address);
+ Node* AllocateRawUnaligned(Node* size_in_bytes, AllocationFlags flags,
+ Node* top_adddress, Node* limit_address);
+
base::SmartPointer<RawMachineAssembler> raw_assembler_;
Code::Flags flags_;
const char* name_;

Powered by Google App Engine
This is Rietveld 408576698