def fact ()
local x:
jumpif lte %rdi, 1 -> fini, rec;
fini:
%rax <- copy 1;
ret;
rec:
x <- copy %rdi;
%rdi <- sub %rdi, 1;
fact();
%rax <- mul %rax, x;
end
globals (x)
x <- copy 5;
%rdi <- copy x;
x <- copy %rax;
observe_int();