amd64/sysv: unbreak env calls
Env calls were disfunctional from the start. This fixes them on amd64, but they remain to do on arm64. A new test shows how to use them.
This commit is contained in:
parent
462e49fd5c
commit
503c672d47
2 changed files with 26 additions and 3 deletions
21
test/env.ssa
Normal file
21
test/env.ssa
Normal file
|
@ -0,0 +1,21 @@
|
|||
# sanity checks for env calls
|
||||
|
||||
function l $epar(env %e, l %i) {
|
||||
@start
|
||||
%x =l add %e, %i
|
||||
ret %x
|
||||
}
|
||||
|
||||
export function l $earg(l %a, l %b) {
|
||||
@start
|
||||
%r1 =l call $epar(env %a, l %b)
|
||||
# okay to call a regular function
|
||||
# with an env argument
|
||||
%r2 =l call $labs(env 113, l %r1)
|
||||
ret %r2
|
||||
}
|
||||
|
||||
# >>> driver
|
||||
# extern long earg(long, long);
|
||||
# int main(void) { return !(earg(2, -44) == 42); }
|
||||
# <<<
|
Loading…
Add table
Add a link
Reference in a new issue