object StringUtils {
section module {
io
}
section data {
int rax = 0
int rbx = 0
float xmm0 = 0.0
ptr arg0 = null
string str_0 = "=== "
string str_1 = " ==="
string str_2 = "------------------------"
string str_3 = " "
string str_4 = ": "
string str_5 = "-"
string fmt_int = "%lld "
string fmt_str = "%s "
string fmt_float = "%.6f "
string newline = "\n"
ptr PrintHeader_title = null
ptr PrintLabeledInt_lbl = null
int PrintLabeledInt_value = 0
ptr PrintLabeledReal_lbl = null
float PrintLabeledReal_value = 0.0
ptr PrintBanner_msg = null
int PrintBanner_width = 0
int PrintBanner_i = 0
ptr PrintRepeat_ch = null
int PrintRepeat_count = 0
int PrintRepeat_i = 0
}
section code {
function PROC_UNIT_INIT:
ret
function PROC_PrintHeader:
mov PrintHeader_title, arg0
print fmt_str, str_0
print fmt_str, PrintHeader_title
print fmt_str, str_1
print newline
PROC_END_PrintHeader:
ret
function PROC_PrintSeparator:
print fmt_str, str_2
print newline
PROC_END_PrintSeparator:
ret
function PROC_PrintLabeledInt:
mov PrintLabeledInt_lbl, arg0
mov PrintLabeledInt_value, rbx
print fmt_str, str_3
print fmt_str, PrintLabeledInt_lbl
print fmt_str, str_4
print fmt_int, PrintLabeledInt_value
print newline
PROC_END_PrintLabeledInt:
ret
function PROC_PrintLabeledReal:
mov PrintLabeledReal_lbl, arg0
mov PrintLabeledReal_value, xmm0
print fmt_str, str_3
print fmt_str, PrintLabeledReal_lbl
print fmt_str, str_4
print fmt_float, PrintLabeledReal_value
print newline
PROC_END_PrintLabeledReal:
ret
function PROC_PrintBanner:
mov PrintBanner_msg, arg0
mov PrintBanner_width, rbx
mov PrintBanner_i, 1
FOR_0:
cmp PrintBanner_i, PrintBanner_width
jg ENDFOR_1
print fmt_str, str_5
FOR_CONTINUE_2:
add PrintBanner_i, 1
jmp FOR_0
ENDFOR_1:
print newline
print fmt_str, PrintBanner_msg
print newline
mov PrintBanner_i, 1
FOR_3:
cmp PrintBanner_i, PrintBanner_width
jg ENDFOR_4
print fmt_str, str_5
FOR_CONTINUE_5:
add PrintBanner_i, 1
jmp FOR_3
ENDFOR_4:
print newline
PROC_END_PrintBanner:
ret
function PROC_PrintRepeat:
mov PrintRepeat_ch, arg0
mov PrintRepeat_count, rbx
mov PrintRepeat_i, 1
FOR_6:
cmp PrintRepeat_i, PrintRepeat_count
jg ENDFOR_7
print fmt_str, PrintRepeat_ch
FOR_CONTINUE_8:
add PrintRepeat_i, 1
jmp FOR_6
ENDFOR_7:
print newline
PROC_END_PrintRepeat:
ret
}
}