[Wasm] Require location for buildGetGlobal and fix all usages

This commit is contained in:
Zalim Bashorov
2022-12-13 17:59:17 +01:00
parent 00d0c38fc3
commit 65e1b53027
2 changed files with 5 additions and 5 deletions
@@ -189,7 +189,7 @@ class BodyGenerator(
generateInstanceFieldAccess(field)
}
} else {
body.buildGetGlobal(context.referenceGlobalField(field.symbol))
body.buildGetGlobal(context.referenceGlobalField(field.symbol), expression.getSourceLocation())
body.commentPreviousInstr { "type: ${field.type.render()}" }
}
}
@@ -300,9 +300,9 @@ class BodyGenerator(
private fun generateAnyParameters(klassSymbol: IrClassSymbol, location: SourceLocation) {
//ClassITable and VTable load
body.commentGroupStart { "Any parameters" }
body.buildGetGlobal(context.referenceGlobalVTable(klassSymbol))
body.buildGetGlobal(context.referenceGlobalVTable(klassSymbol), location)
if (klassSymbol.owner.hasInterfaceSuperClass()) {
body.buildGetGlobal(context.referenceGlobalClassITable(klassSymbol))
body.buildGetGlobal(context.referenceGlobalClassITable(klassSymbol), location)
} else {
body.buildRefNull(WasmHeapType.Simple.Data)
}
@@ -137,8 +137,8 @@ abstract class WasmExpressionBuilder {
buildInstr(WasmOp.LOCAL_SET, location, WasmImmediate.LocalIdx(local))
}
fun buildGetGlobal(global: WasmSymbol<WasmGlobal>) {
buildInstr(WasmOp.GLOBAL_GET, WasmImmediate.GlobalIdx(global))
fun buildGetGlobal(global: WasmSymbol<WasmGlobal>, location: SourceLocation) {
buildInstr(WasmOp.GLOBAL_GET, location, WasmImmediate.GlobalIdx(global))
}
fun buildSetGlobal(global: WasmSymbol<WasmGlobal>) {