diff --git a/src/coreclr/jit/codegenwasm.cpp b/src/coreclr/jit/codegenwasm.cpp index a9d5308d63ee41..9f111f738003fc 100644 --- a/src/coreclr/jit/codegenwasm.cpp +++ b/src/coreclr/jit/codegenwasm.cpp @@ -2302,8 +2302,9 @@ void CodeGen::genCodeForLclVar(GenTreeLclVar* tree) else { assert(genIsValidReg(varDsc->GetRegNum())); - unsigned wasmLclIndex = WasmRegToIndex(varDsc->GetRegNum()); - GetEmitter()->emitIns_I(INS_local_get, emitTypeSize(tree), wasmLclIndex); + var_types type = varDsc->GetRegisterType(tree); + unsigned wasmLclIndex = WasmRegToIndex(varDsc->GetRegNum()); + GetEmitter()->emitIns_I(INS_local_get, emitTypeSize(type), wasmLclIndex); // In this case, the resulting tree type may be different from the local var type where the value originates, // and so we need an explicit conversion since we can't "load" // the value with a different type like we can if the value is on the shadow stack.