mirror of
https://github.com/i-net-software/JWebAssembly.git
synced 2025-03-25 07:27:52 +01:00
implements br_table
This commit is contained in:
parent
a7fc8e0fc6
commit
7f92d062e9
@ -644,6 +644,14 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod
|
|||||||
codeStream.write( BR );
|
codeStream.write( BR );
|
||||||
codeStream.writeVaruint32( (Integer)data );
|
codeStream.writeVaruint32( (Integer)data );
|
||||||
break;
|
break;
|
||||||
|
case BR_TABLE:
|
||||||
|
codeStream.write( BR_TABLE );
|
||||||
|
int[] targets = (int[])data;
|
||||||
|
codeStream.writeVaruint32( targets.length - 1 );
|
||||||
|
for( int i : targets ) {
|
||||||
|
codeStream.writeVaruint32( i );
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error( "Unknown block: " + op );
|
throw new Error( "Unknown block: " + op );
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,11 @@ import java.util.List;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import de.inetsoftware.jwebassembly.module.WasmBlockOperator;
|
|
||||||
import de.inetsoftware.jwebassembly.module.ModuleWriter;
|
import de.inetsoftware.jwebassembly.module.ModuleWriter;
|
||||||
import de.inetsoftware.jwebassembly.module.NumericOperator;
|
import de.inetsoftware.jwebassembly.module.NumericOperator;
|
||||||
import de.inetsoftware.jwebassembly.module.ValueType;
|
import de.inetsoftware.jwebassembly.module.ValueType;
|
||||||
import de.inetsoftware.jwebassembly.module.ValueTypeConvertion;
|
import de.inetsoftware.jwebassembly.module.ValueTypeConvertion;
|
||||||
|
import de.inetsoftware.jwebassembly.module.WasmBlockOperator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Module Writer for text format with S-expressions.
|
* Module Writer for text format with S-expressions.
|
||||||
@ -279,6 +279,13 @@ public class TextModuleWriter extends ModuleWriter {
|
|||||||
case BR:
|
case BR:
|
||||||
name = "br " + data;
|
name = "br " + data;
|
||||||
break;
|
break;
|
||||||
|
case BR_TABLE:
|
||||||
|
StringBuilder builder = new StringBuilder( "br_table");
|
||||||
|
for( int i : (int[])data ) {
|
||||||
|
builder.append( ' ' ).append( i );
|
||||||
|
}
|
||||||
|
name = builder.toString();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error( "Unknown block: " + op );
|
throw new Error( "Unknown block: " + op );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user