[WASM] Fast load string literals from data section

This commit is contained in:
Igor Yakovlev
2022-10-14 00:03:51 +02:00
committed by teamcity
parent 033e2c45f1
commit 0e16889f45
9 changed files with 42 additions and 24 deletions
@@ -28,8 +28,8 @@ internal fun getTypeInfoTypeDataByPtr(typeInfoPtr: Int): TypeInfoData {
val simpleNameLength = wasm_i32_load(typeInfoPtr + TYPE_INFO_TYPE_SIMPLE_NAME_LENGTH_OFFSET)
val simpleNameId = wasm_i32_load(typeInfoPtr + TYPE_INFO_TYPE_SIMPLE_NAME_ID_OFFSET)
val simpleNamePtr = wasm_i32_load(typeInfoPtr + TYPE_INFO_TYPE_SIMPLE_NAME_PRT_OFFSET)
val packageName = stringLiteral(fqNameId, fqNamePtr, fqNameLength, 0)
val simpleName = stringLiteral(simpleNameId, simpleNamePtr, simpleNameLength, 0)
val packageName = stringLiteral(fqNameId, fqNamePtr, fqNameLength)
val simpleName = stringLiteral(simpleNameId, simpleNamePtr, simpleNameLength)
return TypeInfoData(typeInfoPtr, isInterface = false, packageName, simpleName)
}
@@ -28,6 +28,9 @@ internal fun <To> wasm_ref_test(a: Any?): Boolean =
internal fun <T> wasm_array_copy(destination: T, destinationIndex: Int, source: T, sourceIndex: Int, length: Int): Unit =
implementedAsIntrinsic
internal fun <T> array_new_data0(address: Int, length: Int): WasmCharArray =
implementedAsIntrinsic
@WasmOp(WasmOp.I32_EQ)
public external fun wasm_i32_eq(a: Int, b: Int): Boolean