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

Unified Diff: src/interpreter/bytecode-array-builder.cc

Issue 1700993002: Remove strong mode support from property loads. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix comment. 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
« no previous file with comments | « src/interpreter/bytecode-array-builder.h ('k') | src/interpreter/bytecode-generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/interpreter/bytecode-array-builder.cc
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
index 6a6981bd9cdcc4a9c1dde002b4753064dcccbfae..5e7770532d6a67233a82cfc942aec97eb040e895 100644
--- a/src/interpreter/bytecode-array-builder.cc
+++ b/src/interpreter/bytecode-array-builder.cc
@@ -364,11 +364,10 @@ void BytecodeArrayBuilder::MoveRegisterUntranslated(Register from,
}
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(
- const Handle<String> name, int feedback_slot, LanguageMode language_mode,
- TypeofMode typeof_mode) {
- // TODO(rmcilroy): Potentially store language and typeof information in an
+ const Handle<String> name, int feedback_slot, TypeofMode typeof_mode) {
+ // TODO(rmcilroy): Potentially store typeof information in an
// operand rather than having extra bytecodes.
- Bytecode bytecode = BytecodeForLoadGlobal(language_mode, typeof_mode);
+ Bytecode bytecode = BytecodeForLoadGlobal(typeof_mode);
size_t name_index = GetConstantPoolEntry(name);
if (FitsInIdx8Operand(name_index) && FitsInIdx8Operand(feedback_slot)) {
Output(bytecode, static_cast<uint8_t>(name_index),
@@ -468,16 +467,15 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreLookupSlot(
}
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty(
- Register object, const Handle<Name> name, int feedback_slot,
- LanguageMode language_mode) {
- Bytecode bytecode = BytecodeForLoadIC(language_mode);
+ Register object, const Handle<Name> name, int feedback_slot) {
size_t name_index = GetConstantPoolEntry(name);
if (FitsInIdx8Operand(name_index) && FitsInIdx8Operand(feedback_slot)) {
- Output(bytecode, object.ToRawOperand(), static_cast<uint8_t>(name_index),
+ Output(Bytecode::kLoadIC, object.ToRawOperand(),
+ static_cast<uint8_t>(name_index),
static_cast<uint8_t>(feedback_slot));
} else if (FitsInIdx16Operand(name_index) &&
FitsInIdx16Operand(feedback_slot)) {
- Output(BytecodeForWideOperands(bytecode), object.ToRawOperand(),
+ Output(Bytecode::kLoadICWide, object.ToRawOperand(),
static_cast<uint16_t>(name_index),
static_cast<uint16_t>(feedback_slot));
} else {
@@ -486,15 +484,13 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty(
return *this;
}
-
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty(
- Register object, int feedback_slot, LanguageMode language_mode) {
- Bytecode bytecode = BytecodeForKeyedLoadIC(language_mode);
+ Register object, int feedback_slot) {
if (FitsInIdx8Operand(feedback_slot)) {
- Output(bytecode, object.ToRawOperand(),
+ Output(Bytecode::kKeyedLoadIC, object.ToRawOperand(),
static_cast<uint8_t>(feedback_slot));
} else if (FitsInIdx16Operand(feedback_slot)) {
- Output(BytecodeForWideOperands(bytecode), object.ToRawOperand(),
+ Output(Bytecode::kKeyedLoadICWide, object.ToRawOperand(),
static_cast<uint16_t>(feedback_slot));
} else {
UNIMPLEMENTED();
@@ -1429,14 +1425,10 @@ Bytecode BytecodeArrayBuilder::BytecodeForCompareOperation(Token::Value op) {
// static
Bytecode BytecodeArrayBuilder::BytecodeForWideOperands(Bytecode bytecode) {
switch (bytecode) {
- case Bytecode::kLoadICSloppy:
- return Bytecode::kLoadICSloppyWide;
- case Bytecode::kLoadICStrict:
- return Bytecode::kLoadICStrictWide;
- case Bytecode::kKeyedLoadICSloppy:
- return Bytecode::kKeyedLoadICSloppyWide;
- case Bytecode::kKeyedLoadICStrict:
- return Bytecode::kKeyedLoadICStrictWide;
+ case Bytecode::kLoadIC:
+ return Bytecode::kLoadICWide;
+ case Bytecode::kKeyedLoadIC:
+ return Bytecode::kKeyedLoadICWide;
case Bytecode::kStoreICSloppy:
return Bytecode::kStoreICSloppyWide;
case Bytecode::kStoreICStrict:
@@ -1445,14 +1437,10 @@ Bytecode BytecodeArrayBuilder::BytecodeForWideOperands(Bytecode bytecode) {
return Bytecode::kKeyedStoreICSloppyWide;
case Bytecode::kKeyedStoreICStrict:
return Bytecode::kKeyedStoreICStrictWide;
- case Bytecode::kLdaGlobalSloppy:
- return Bytecode::kLdaGlobalSloppyWide;
- case Bytecode::kLdaGlobalStrict:
- return Bytecode::kLdaGlobalStrictWide;
- case Bytecode::kLdaGlobalInsideTypeofSloppy:
- return Bytecode::kLdaGlobalInsideTypeofSloppyWide;
- case Bytecode::kLdaGlobalInsideTypeofStrict:
- return Bytecode::kLdaGlobalInsideTypeofStrictWide;
+ case Bytecode::kLdaGlobal:
+ return Bytecode::kLdaGlobalWide;
+ case Bytecode::kLdaGlobalInsideTypeof:
+ return Bytecode::kLdaGlobalInsideTypeofWide;
case Bytecode::kStaGlobalSloppy:
return Bytecode::kStaGlobalSloppyWide;
case Bytecode::kStaGlobalStrict:
@@ -1473,39 +1461,6 @@ Bytecode BytecodeArrayBuilder::BytecodeForWideOperands(Bytecode bytecode) {
// static
-Bytecode BytecodeArrayBuilder::BytecodeForLoadIC(LanguageMode language_mode) {
- switch (language_mode) {
- case SLOPPY:
- return Bytecode::kLoadICSloppy;
- case STRICT:
- return Bytecode::kLoadICStrict;
- case STRONG:
- UNIMPLEMENTED();
- default:
- UNREACHABLE();
- }
- return static_cast<Bytecode>(-1);
-}
-
-
-// static
-Bytecode BytecodeArrayBuilder::BytecodeForKeyedLoadIC(
- LanguageMode language_mode) {
- switch (language_mode) {
- case SLOPPY:
- return Bytecode::kKeyedLoadICSloppy;
- case STRICT:
- return Bytecode::kKeyedLoadICStrict;
- case STRONG:
- UNIMPLEMENTED();
- default:
- UNREACHABLE();
- }
- return static_cast<Bytecode>(-1);
-}
-
-
-// static
Bytecode BytecodeArrayBuilder::BytecodeForStoreIC(LanguageMode language_mode) {
switch (language_mode) {
case SLOPPY:
@@ -1539,23 +1494,9 @@ Bytecode BytecodeArrayBuilder::BytecodeForKeyedStoreIC(
// static
-Bytecode BytecodeArrayBuilder::BytecodeForLoadGlobal(LanguageMode language_mode,
- TypeofMode typeof_mode) {
- switch (language_mode) {
- case SLOPPY:
- return typeof_mode == INSIDE_TYPEOF
- ? Bytecode::kLdaGlobalInsideTypeofSloppy
- : Bytecode::kLdaGlobalSloppy;
- case STRICT:
- return typeof_mode == INSIDE_TYPEOF
- ? Bytecode::kLdaGlobalInsideTypeofStrict
- : Bytecode::kLdaGlobalStrict;
- case STRONG:
- UNIMPLEMENTED();
- default:
- UNREACHABLE();
- }
- return static_cast<Bytecode>(-1);
+Bytecode BytecodeArrayBuilder::BytecodeForLoadGlobal(TypeofMode typeof_mode) {
+ return typeof_mode == INSIDE_TYPEOF ? Bytecode::kLdaGlobalInsideTypeof
+ : Bytecode::kLdaGlobal;
}
« no previous file with comments | « src/interpreter/bytecode-array-builder.h ('k') | src/interpreter/bytecode-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698