This adds a "colocated" flag to function and symbolic global variables which indicates that they are defined along with the current function, so they can use PC-relative addressing. This also changes the function decl syntax; the name now always precedes the signature, and the "function" keyword is no longer included.
14 lines
241 B
Plaintext
14 lines
241 B
Plaintext
test verifier
|
|
|
|
function %gcd(i32 uext, i32 uext) -> i32 uext system_v {
|
|
fn1 = %divmod(i32 uext, i32 uext) -> i32 uext, i32 uext
|
|
|
|
ebb1(v1: i32, v2: i32):
|
|
brz v2, ebb2
|
|
v3, v4 = call fn1(v1, v2)
|
|
return v3
|
|
|
|
ebb2:
|
|
return v1
|
|
}
|