Implement jump tables (#453)

* Add 'jump_table_entry' and 'indirect_jump' instructions.

* Update CodeSink to keep track of code size. Pretty up clif-util's disassembly output.

* Only disassemble the machine portion of output. Pretty print the read-only data after it.

* Update switch frontend code to use new br_table instruction w/ default.
This commit is contained in:
Tyler McMullen
2018-10-03 11:04:21 -06:00
committed by Dan Gohman
parent de1d82b4ba
commit 79cea5e18b
39 changed files with 627 additions and 100 deletions

View File

@@ -71,10 +71,12 @@ function %jump_table_args() {
jt1 = jump_table ebb1
ebb0:
v0 = iconst.i32 0
br_table v0, jt1 ; error: takes no arguments, but had target ebb1 with 1 arguments
return
br_table v0, ebb2, jt1 ; error: takes no arguments, but had target ebb1 with 1 arguments
ebb1(v5: i32):
return
ebb2:
return
}
function %jump_args() {