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

Unified Diff: src/compiler/wasm-compiler.cc

Issue 1941323002: [wasm] Mark all 64-bit instructions as supported on 32-bit platforms. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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/compiler/int64-lowering.cc ('k') | src/wasm/wasm-opcodes.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/wasm-compiler.cc
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
index 5cc9202fa673ebb2555d644c3c24d513f79e99ab..f0df862ae004725467e015f5df6707b90aae1bb3 100644
--- a/src/compiler/wasm-compiler.cc
+++ b/src/compiler/wasm-compiler.cc
@@ -49,11 +49,6 @@ namespace compiler {
namespace {
const Operator* UnsupportedOpcode(wasm::WasmOpcode opcode) {
- if (wasm::WasmOpcodes::IsSupported(opcode)) {
- V8_Fatal(__FILE__, __LINE__,
- "Unsupported opcode #%d:%s reported as supported", opcode,
- wasm::WasmOpcodes::OpcodeName(opcode));
- }
V8_Fatal(__FILE__, __LINE__, "Unsupported opcode #%d:%s", opcode,
wasm::WasmOpcodes::OpcodeName(opcode));
return nullptr;
@@ -471,62 +466,46 @@ Node* WasmGraphBuilder::Binop(wasm::WasmOpcode opcode, Node* left, Node* right,
case wasm::kExprI64And:
op = m->Word64And();
break;
- // todo(ahaas): I added a list of missing instructions here to make merging
- // easier when I do them one by one.
- // kExprI64Add:
case wasm::kExprI64Add:
op = m->Int64Add();
break;
- // kExprI64Sub:
case wasm::kExprI64Sub:
op = m->Int64Sub();
break;
- // kExprI64Mul:
case wasm::kExprI64Mul:
op = m->Int64Mul();
break;
- // kExprI64DivS:
case wasm::kExprI64DivS:
return BuildI64DivS(left, right, position);
- // kExprI64DivU:
case wasm::kExprI64DivU:
return BuildI64DivU(left, right, position);
- // kExprI64RemS:
case wasm::kExprI64RemS:
return BuildI64RemS(left, right, position);
- // kExprI64RemU:
case wasm::kExprI64RemU:
return BuildI64RemU(left, right, position);
case wasm::kExprI64Ior:
op = m->Word64Or();
break;
-// kExprI64Xor:
case wasm::kExprI64Xor:
op = m->Word64Xor();
break;
-// kExprI64Shl:
case wasm::kExprI64Shl:
op = m->Word64Shl();
right = MaskShiftCount64(right);
break;
- // kExprI64ShrU:
case wasm::kExprI64ShrU:
op = m->Word64Shr();
right = MaskShiftCount64(right);
break;
- // kExprI64ShrS:
case wasm::kExprI64ShrS:
op = m->Word64Sar();
right = MaskShiftCount64(right);
break;
- // kExprI64Eq:
case wasm::kExprI64Eq:
op = m->Word64Equal();
break;
-// kExprI64Ne:
case wasm::kExprI64Ne:
return Invert(Binop(wasm::kExprI64Eq, left, right));
-// kExprI64LtS:
case wasm::kExprI64LtS:
op = m->Int64LessThan();
break;
@@ -795,31 +774,24 @@ Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input,
case wasm::kExprF64Log: {
return BuildF64Log(input);
}
- // kExprI32ConvertI64:
case wasm::kExprI32ConvertI64:
op = m->TruncateInt64ToInt32();
break;
- // kExprI64SConvertI32:
case wasm::kExprI64SConvertI32:
op = m->ChangeInt32ToInt64();
break;
- // kExprI64UConvertI32:
case wasm::kExprI64UConvertI32:
op = m->ChangeUint32ToUint64();
break;
- // kExprF64ReinterpretI64:
case wasm::kExprF64ReinterpretI64:
op = m->BitcastInt64ToFloat64();
break;
- // kExprI64ReinterpretF64:
case wasm::kExprI64ReinterpretF64:
op = m->BitcastFloat64ToInt64();
break;
- // kExprI64Clz:
case wasm::kExprI64Clz:
op = m->Word64Clz();
break;
- // kExprI64Ctz:
case wasm::kExprI64Ctz: {
if (m->Word64Ctz().IsSupported()) {
op = m->Word64Ctz().op();
@@ -835,7 +807,6 @@ Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input,
return BuildI64Ctz(input);
}
}
- // kExprI64Popcnt:
case wasm::kExprI64Popcnt: {
if (m->Word64Popcnt().IsSupported()) {
op = m->Word64Popcnt().op();
@@ -846,7 +817,6 @@ Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input,
}
break;
}
- // kExprF32SConvertI64:
case wasm::kExprI64Eqz:
op = m->Word64Equal();
return graph()->NewNode(op, input, jsgraph()->Int64Constant(0));
@@ -856,40 +826,33 @@ Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input,
}
op = m->RoundInt64ToFloat32();
break;
- // kExprF32UConvertI64:
case wasm::kExprF32UConvertI64:
if (m->Is32()) {
return BuildF32UConvertI64(input);
}
op = m->RoundUint64ToFloat32();
break;
- // kExprF64SConvertI64:
case wasm::kExprF64SConvertI64:
if (m->Is32()) {
return BuildF64SConvertI64(input);
}
op = m->RoundInt64ToFloat64();
break;
- // kExprF64UConvertI64:
case wasm::kExprF64UConvertI64:
if (m->Is32()) {
return BuildF64UConvertI64(input);
}
op = m->RoundUint64ToFloat64();
break;
-// kExprI64SConvertF32:
case wasm::kExprI64SConvertF32: {
return BuildI64SConvertF32(input, position);
}
- // kExprI64SConvertF64:
case wasm::kExprI64SConvertF64: {
return BuildI64SConvertF64(input, position);
}
- // kExprI64UConvertF32:
case wasm::kExprI64UConvertF32: {
return BuildI64UConvertF32(input, position);
}
- // kExprI64UConvertF64:
case wasm::kExprI64UConvertF64: {
return BuildI64UConvertF64(input, position);
}
« no previous file with comments | « src/compiler/int64-lowering.cc ('k') | src/wasm/wasm-opcodes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698