program RecordTest {
section module {
}
section data {
int rax = 0
int rbx = 0
int rcx = 0
int rdx = 0
float xmm0 = 0.0
ptr _tmpptr0 = null
ptr _tmpptr1 = null
ptr arg0 = null
float real_const_0 = 0.5
string str_0 = "equals: "
string str_1 = ":"
string fmt_int = "%lld "
string fmt_str = "%s "
string fmt_float = "%.6f "
string newline = "\n"
ptr p = null
ptr p_test_val = null
int z = 0
ptr printPoint_pi = null
ptr printPoint_px = null
}
section code {
start:
alloc p, 104, 1
alloc p_test_val, 8, 11
store p_test_val, p, 16, 1
store 5, p, 0, 1
store 10, p, 8, 1
load rbx, p, 0, 1
load rcx, p, 8, 1
mov rdx, rbx
mul rdx, rcx
mov z, rdx
push rbx
push rcx
push rdx
mov arg0, p
call PROC_printPoint
pop rdx
pop rcx
pop rbx
print fmt_str, str_0
print fmt_int, z
print newline
mov xmm0, real_const_0
print fmt_float, xmm0
print newline
free p_test_val
free p
done
function PROC_printPoint:
mov printPoint_pi, arg0
alloc printPoint_px, 104, 3
mov rbx, 0
mov rcx, rbx
mul rcx, 104
mov _tmpptr0, printPoint_px
add _tmpptr0, rcx
store 100, _tmpptr0, 0, 1
mov rbx, 0
mov rcx, rbx
mul rcx, 104
mov _tmpptr0, printPoint_px
add _tmpptr0, rcx
store 200, _tmpptr0, 8, 1
mov rbx, 0
mov rcx, rbx
mul rcx, 104
mov _tmpptr0, printPoint_px
add _tmpptr0, rcx
load rbx, _tmpptr0, 0, 1
print fmt_int, rbx
print fmt_str, str_1
mov rcx, 0
mov rdx, rcx
mul rdx, 104
mov _tmpptr1, printPoint_px
add _tmpptr1, rdx
load rcx, _tmpptr1, 8, 1
print fmt_int, rcx
print newline
PROC_END_printPoint:
ret
}
}