~maelkum/viuavm

79a5234d119410833684577d3e9a80c50f7fa7ab — Marek Marecki 9 months ago e33ad4f
Add a test for indirect calls

This is basically testing the ability to load an address of a label
pointing at an instruction in the .text section and use that as a jump
target. But an "indirect call" sounds way nicer.
2 files changed, 24 insertions(+), 0 deletions(-)

A new/tests/asm/call_indirect.asm
A new/tests/asm/call_indirect.skip
A new/tests/asm/call_indirect.asm => new/tests/asm/call_indirect.asm +24 -0
@@ 0,0 1,24 @@
.section ".rodata"

.label hello_world
.object string "hello_world"

.section ".text"

.symbol [[entry_point]] main
.label main
    atom $1, @hello_world
    ebreak

    li $2.l, @dummy

    frame $1.a
    move $0.a, $1.l
    call void, $2.l

    return void

.symbol [[local]] dummy
.label dummy
    ebreak
    return void

A new/tests/asm/call_indirect.skip => new/tests/asm/call_indirect.skip +0 -0