Add a RISC-V 64 (`riscv64`, RV64GC) backend. Co-authored-by: yuyang <756445638@qq.com> Co-authored-by: Chris Fallin <chris@cfallin.org> Co-authored-by: Afonso Bordado <afonsobordado@az8.co>
25 lines
635 B
Plaintext
25 lines
635 B
Plaintext
test interpret
|
|
test run
|
|
target x86_64
|
|
target s390x
|
|
target aarch64
|
|
target riscv64
|
|
|
|
; Store a value in the heap using `heap_addr` and load it using `global_value`
|
|
function %store_load(i64 vmctx, i64, i32) -> i32 {
|
|
gv0 = vmctx
|
|
gv1 = load.i64 notrap aligned gv0+0
|
|
heap0 = static gv1, min 0x1000, bound 0x1_0000_0000, offset_guard 0, index_type i64
|
|
|
|
block0(v0: i64, v1: i64, v2: i32):
|
|
v3 = heap_addr.i64 heap0, v1, 0
|
|
store.i32 v2, v3
|
|
|
|
v4 = global_value.i64 gv1
|
|
v5 = load.i32 v4
|
|
return v5
|
|
}
|
|
; heap: static, size=0x1000, ptr=vmctx+0, bound=vmctx+8
|
|
; run: %store_load(0, 1) == 1
|
|
; run: %store_load(0, -1) == -1
|