@@ -660,69 +660,69 @@ class WOODState(woodResponse: WOODDumpResponse) {
660660 }
661661 }
662662
663- companion object {
664- fun serializeValue (value : WasmStackValue , includeType : Boolean = true): String {
665- // | Type | value |
666- // | 1 * 2 bytes | 4*2 or 8*2 bytes |
667- var type = - 1
668- var v = " "
669- var type_str = " "
670-
671- if (value.type == " i32" || value.type == " I32" ) {
672- if (value.value < 0 ) {
673- v = HexaEncoder .serializeInt32LE(value.value.toInt())
674- }
675- else {
676- v = HexaEncoder .serializeUInt32LE(value.value.toInt())
677- }
678- type = 0
679- type_str = " i32"
680- }
681- else if (value.type == " i64" || value.type == " I64" ) {
682- if (value.value < 0 ) {
683- v = HexaEncoder .serializeBigUInt64LE(value.value)
684- }
685- else {
686- v = HexaEncoder .serializeBigUInt64LE(value.value)
687- }
688- type = 1
689- type_str = " i64"
690- }
691- else if (value.type == " f32" || value.type == " F32" ) {
692- v = HexaEncoder .serializeFloatLE(value.value.toFloat())
693- type = 2
694- type_str = " f32"
695- }
696- else if (value.type == " f64" || value.type == " F64" ) {
697- v = HexaEncoder .serializeDoubleLE(value.value.toDouble())
698- type = 3
699- type_str = " f64"
700- }
663+ fun serializeValue (value : WasmStackValue , includeType : Boolean = true): String {
664+ // | Type | value |
665+ // | 1 * 2 bytes | 4*2 or 8*2 bytes |
666+ var type = - 1
667+ var v = " "
668+ var type_str = " "
669+
670+ if (value.type == " i32" || value.type == " I32" ) {
671+ if (value.value < 0 ) {
672+ v = HexaEncoder .serializeInt32LE(value.value.toInt())
673+ }
701674 else {
702- throw Error (" Got unexisting stack Value type ${value.type} value ${value.value} " )
703- }
704- println (" Value: type=${type_str} (idx ${type} ) val=${value.value} " )
705- if (includeType) {
706- val typeHex = HexaEncoder .serializeUInt8(type)
707- return " ${typeHex}${v} "
708- }
675+ v = HexaEncoder .serializeUInt32LE(value.value.toInt())
676+ }
677+ type = 0
678+ type_str = " i32"
679+ }
680+ else if (value.type == " i64" || value.type == " I64" ) {
681+ if (value.value < 0 ) {
682+ v = HexaEncoder .serializeBigUInt64LE(value.value)
683+ }
709684 else {
710- return v
711- }
685+ v = HexaEncoder .serializeBigUInt64LE(value.value)
712686 }
713-
714- fun serializeStackValueUpdate (value : WasmStackValue ): String {
715- val stackIDx = HexaEncoder .convertToLEB128(value.idx)
716- val valueHex = HexaEncoder .convertToLEB128(value.value.toInt())
717- return " ${InterruptTypes .interruptUPDATEStackValue}${stackIDx}${valueHex} "
687+ type = 1
688+ type_str = " i64"
718689 }
719-
720- fun serializeGlobalValueUpdate (value : WasmStackValue ): String {
721- val globalIDX = HexaEncoder .convertToLEB128(value.idx)
722- val valueHex = HexaEncoder .convertToLEB128(value.value.toInt())
723- return " ${InterruptTypes .interruptUPDATEGlobal}${globalIDX}${valueHex} "
690+ else if (value.type == " f32" || value.type == " F32" ) {
691+ v = HexaEncoder .serializeFloatLE(value.value.toFloat())
692+ type = 2
693+ type_str = " f32"
694+ }
695+ else if (value.type == " f64" || value.type == " F64" ) {
696+ v = HexaEncoder .serializeDoubleLE(value.value.toDouble())
697+ type = 3
698+ type_str = " f64"
724699 }
700+ else {
701+ throw Error (" Got unexisting stack Value type ${value.type} value ${value.value} " )
702+ }
703+ logger.trace(" Value: type=${type_str} (idx ${type} ) val=${value.value} " )
704+ if (includeType) {
705+ val typeHex = HexaEncoder .serializeUInt8(type)
706+ return " ${typeHex}${v} "
707+ }
708+ else {
709+ return v
710+ }
711+ }
712+
713+ fun serializeStackValueUpdate (value : WasmStackValue ): String {
714+ val stackIDx = HexaEncoder .convertToLEB128(value.idx)
715+ val valueHex = HexaEncoder .convertToLEB128(value.value.toInt())
716+ return " ${InterruptTypes .interruptUPDATEStackValue}${stackIDx}${valueHex} "
717+ }
725718
719+ fun serializeGlobalValueUpdate (value : WasmStackValue ): String {
720+ val globalIDX = HexaEncoder .convertToLEB128(value.idx)
721+ val valueHex = HexaEncoder .convertToLEB128(value.value.toInt())
722+ return " ${InterruptTypes .interruptUPDATEGlobal}${globalIDX}${valueHex} "
723+ }
724+
725+ companion object {
726726 fun parseSnapshot (line : String ): WOODDumpResponse {
727727 val trimmed = line.trimEnd()
728728 val objectMapper = ObjectMapper ()
0 commit comments