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

Unified Diff: src/compiler/linkage.cc

Issue 1513543003: [turbofan] Make MachineType a pair of enums. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Moar rebase Created 5 years 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
« no previous file with comments | « src/compiler/linkage.h ('k') | src/compiler/live-range-separator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/linkage.cc
diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
index 7fd8202bd6ebfbe28139ca8423c334d1e16ee089..7dc4018e2576cbed200b6dd39eb606d4133e71bb 100644
--- a/src/compiler/linkage.cc
+++ b/src/compiler/linkage.cc
@@ -25,29 +25,29 @@ LinkageLocation regloc(Register reg) {
MachineType reptyp(Representation representation) {
switch (representation.kind()) {
case Representation::kInteger8:
- return kMachInt8;
+ return MachineType::Int8();
case Representation::kUInteger8:
- return kMachUint8;
+ return MachineType::Uint8();
case Representation::kInteger16:
- return kMachInt16;
+ return MachineType::Int16();
case Representation::kUInteger16:
- return kMachUint16;
+ return MachineType::Uint16();
case Representation::kInteger32:
- return kMachInt32;
+ return MachineType::Int32();
case Representation::kSmi:
case Representation::kTagged:
case Representation::kHeapObject:
- return kMachAnyTagged;
+ return MachineType::AnyTagged();
case Representation::kDouble:
- return kMachFloat64;
+ return MachineType::Float64();
case Representation::kExternal:
- return kMachPtr;
+ return MachineType::Pointer();
case Representation::kNone:
case Representation::kNumRepresentations:
break;
}
UNREACHABLE();
- return kMachNone;
+ return MachineType::None();
}
} // namespace
@@ -242,26 +242,26 @@ CallDescriptor* Linkage::GetRuntimeCallDescriptor(
locations.AddReturn(regloc(kReturnRegister1));
}
for (size_t i = 0; i < return_count; i++) {
- types.AddReturn(kMachAnyTagged);
+ types.AddReturn(MachineType::AnyTagged());
}
// All parameters to the runtime call go on the stack.
for (int i = 0; i < js_parameter_count; i++) {
locations.AddParam(
LinkageLocation::ForCallerFrameSlot(i - js_parameter_count));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
}
// Add runtime function itself.
locations.AddParam(regloc(kRuntimeCallFunctionRegister));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
// Add runtime call argument count.
locations.AddParam(regloc(kRuntimeCallArgCountRegister));
- types.AddParam(kMachPtr);
+ types.AddParam(MachineType::Pointer());
// Add context.
locations.AddParam(regloc(kContextRegister));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
if (Linkage::FrameStateInputCount(function_id) == 0) {
flags = static_cast<CallDescriptor::Flags>(
@@ -269,7 +269,7 @@ CallDescriptor* Linkage::GetRuntimeCallDescriptor(
}
// The target for runtime calls is a code object.
- MachineType target_type = kMachAnyTagged;
+ MachineType target_type = MachineType::AnyTagged();
LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
return new (zone) CallDescriptor( // --
CallDescriptor::kCallCodeObject, // kind
@@ -294,7 +294,7 @@ CallDescriptor* Linkage::GetLazyBailoutDescriptor(Zone* zone) {
MachineSignature::Builder types(zone, return_count, parameter_count);
// The target is ignored, but we need to give some values here.
- MachineType target_type = kMachAnyTagged;
+ MachineType target_type = MachineType::AnyTagged();
LinkageLocation target_loc = regloc(kJSFunctionRegister);
return new (zone) CallDescriptor( // --
CallDescriptor::kLazyBailout, // kind
@@ -326,29 +326,29 @@ CallDescriptor* Linkage::GetJSCallDescriptor(Zone* zone, bool is_osr,
// All JS calls have exactly one return value.
locations.AddReturn(regloc(kReturnRegister0));
- types.AddReturn(kMachAnyTagged);
+ types.AddReturn(MachineType::AnyTagged());
// All parameters to JS calls go on the stack.
for (int i = 0; i < js_parameter_count; i++) {
int spill_slot_index = i - js_parameter_count;
locations.AddParam(LinkageLocation::ForCallerFrameSlot(spill_slot_index));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
}
// Add JavaScript call new target value.
locations.AddParam(regloc(kJavaScriptCallNewTargetRegister));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
// Add JavaScript call argument count.
locations.AddParam(regloc(kJavaScriptCallArgCountRegister));
- types.AddParam(kMachInt32);
+ types.AddParam(MachineType::Int32());
// Add context.
locations.AddParam(regloc(kContextRegister));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
// The target for JS function calls is the JSFunction object.
- MachineType target_type = kMachAnyTagged;
+ MachineType target_type = MachineType::AnyTagged();
// TODO(titzer): When entering into an OSR function from unoptimized code,
// the JSFunction is not in a register, but it is on the stack in an
// unaddressable spill slot. We hack this in the OSR prologue. Fix.
@@ -375,23 +375,23 @@ CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(Zone* zone) {
// Add registers for fixed parameters passed via interpreter dispatch.
STATIC_ASSERT(0 == Linkage::kInterpreterAccumulatorParameter);
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
locations.AddParam(regloc(kInterpreterAccumulatorRegister));
STATIC_ASSERT(1 == Linkage::kInterpreterRegisterFileParameter);
- types.AddParam(kMachPtr);
+ types.AddParam(MachineType::Pointer());
locations.AddParam(regloc(kInterpreterRegisterFileRegister));
STATIC_ASSERT(2 == Linkage::kInterpreterBytecodeOffsetParameter);
- types.AddParam(kMachIntPtr);
+ types.AddParam(MachineType::IntPtr());
locations.AddParam(regloc(kInterpreterBytecodeOffsetRegister));
STATIC_ASSERT(3 == Linkage::kInterpreterBytecodeArrayParameter);
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
locations.AddParam(regloc(kInterpreterBytecodeArrayRegister));
STATIC_ASSERT(4 == Linkage::kInterpreterDispatchTableParameter);
- types.AddParam(kMachPtr);
+ types.AddParam(MachineType::Pointer());
#if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X87)
// TODO(rmcilroy): Make the context param the one spilled to the stack once
// Turbofan supports modified stack arguments in tail calls.
@@ -402,13 +402,13 @@ CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(Zone* zone) {
#endif
STATIC_ASSERT(5 == Linkage::kInterpreterContextParameter);
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
locations.AddParam(regloc(kContextRegister));
LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
return new (zone) CallDescriptor( // --
CallDescriptor::kCallCodeObject, // kind
- kMachNone, // target MachineType
+ MachineType::None(), // target MachineType
target_loc, // target location
types.Build(), // machine_sig
locations.Build(), // location_sig
@@ -457,15 +457,15 @@ CallDescriptor* Linkage::GetStubCallDescriptor(
// The rest of the parameters go on the stack.
int stack_slot = i - register_parameter_count - stack_parameter_count;
locations.AddParam(LinkageLocation::ForCallerFrameSlot(stack_slot));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
}
}
// Add context.
locations.AddParam(regloc(kContextRegister));
- types.AddParam(kMachAnyTagged);
+ types.AddParam(MachineType::AnyTagged());
// The target for stub calls is a code object.
- MachineType target_type = kMachAnyTagged;
+ MachineType target_type = MachineType::AnyTagged();
LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
return new (zone) CallDescriptor( // --
CallDescriptor::kCallCodeObject, // kind
« no previous file with comments | « src/compiler/linkage.h ('k') | src/compiler/live-range-separator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698