diff options
Diffstat (limited to 'src/type-checker.cc')
-rw-r--r-- | src/type-checker.cc | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/type-checker.cc b/src/type-checker.cc index 88c4c776..e7006ed0 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -350,7 +350,7 @@ Result TypeChecker::OnAtomicWait(Opcode opcode) { return CheckOpcode3(opcode); } -Result TypeChecker::OnAtomicWake(Opcode opcode) { +Result TypeChecker::OnAtomicNotify(Opcode opcode) { return CheckOpcode2(opcode); } @@ -562,20 +562,35 @@ Result TypeChecker::OnIfExcept(const TypeVector& param_types, return result; } -Result TypeChecker::OnGetGlobal(Type type) { +Result TypeChecker::OnGlobalGet(Type type) { PushType(type); return Result::Ok; } -Result TypeChecker::OnGetLocal(Type type) { - PushType(type); - return Result::Ok; +Result TypeChecker::OnGlobalSet(Type type) { + return PopAndCheck1Type(type, "global.set"); } Result TypeChecker::OnLoad(Opcode opcode) { return CheckOpcode1(opcode); } +Result TypeChecker::OnLocalGet(Type type) { + PushType(type); + return Result::Ok; +} + +Result TypeChecker::OnLocalSet(Type type) { + return PopAndCheck1Type(type, "local.set"); +} + +Result TypeChecker::OnLocalTee(Type type) { + Result result = Result::Ok; + result |= PopAndCheck1Type(type, "local.tee"); + PushType(type); + return result; +} + Result TypeChecker::OnLoop(const TypeVector& param_types, const TypeVector& result_types) { Result result = PopAndCheckSignature(param_types, "loop"); @@ -655,14 +670,6 @@ Result TypeChecker::OnSelect() { return result; } -Result TypeChecker::OnSetGlobal(Type type) { - return PopAndCheck1Type(type, "set_global"); -} - -Result TypeChecker::OnSetLocal(Type type) { - return PopAndCheck1Type(type, "set_local"); -} - Result TypeChecker::OnStore(Opcode opcode) { return CheckOpcode2(opcode); } @@ -675,13 +682,6 @@ Result TypeChecker::OnTry(const TypeVector& param_types, return result; } -Result TypeChecker::OnTeeLocal(Type type) { - Result result = Result::Ok; - result |= PopAndCheck1Type(type, "tee_local"); - PushType(type); - return result; -} - Result TypeChecker::OnUnary(Opcode opcode) { return CheckOpcode1(opcode); } |