program RecordTest {
section module {
}
section data {
int rax = 0
int rbx = 0
int rcx = 0
int rdx = 0
int rsi = 0
float xmm0 = 0.0
float xmm1 = 0.0
ptr arg0 = null
float real_const_0 = 25.0
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
int z = 0
ptr printPoint_pi = null
ptr printPoint_px = null
}
section code {
start:
alloc p, 24, 1
store 5, p, 0, 1
store 10, p, 8, 1
mov xmm0, real_const_0
store xmm0, p, 16, 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
load xmm1, p, 16, 1
print fmt_float, xmm1
print newline
free p
done
function PROC_printPoint:
mov printPoint_pi, arg0
alloc printPoint_px, 24, 1
store 10, printPoint_px, 0, 1
store 10, printPoint_px, 8, 1
load rbx, printPoint_pi, 0, 1
print fmt_int, rbx
print fmt_str, str_1
load rcx, printPoint_pi, 8, 1
print fmt_int, rcx
print newline
load rdx, printPoint_px, 0, 1
print fmt_int, rdx
print fmt_str, str_1
load rsi, printPoint_px, 8, 1
print fmt_int, rsi
print newline
PROC_END_printPoint:
free printPoint_px
ret
}
}