mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-30 09:57:11 +00:00
239 lines
12 KiB
Plaintext
239 lines
12 KiB
Plaintext
|
__constant char BINARY = 2
|
||
|
__constant char BUF[$14] = { fill( $14, 0) }
|
||
|
__constant char DECIMAL = $a
|
||
|
__constant char DIGITS[] = "0123456789abcdef"z
|
||
|
__constant char HEXADECIMAL = $10
|
||
|
__constant char OCTAL = 8
|
||
|
__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
|
||
|
__constant char RADIX::BINARY = 2
|
||
|
__constant char RADIX::DECIMAL = $a
|
||
|
__constant char RADIX::HEXADECIMAL = $10
|
||
|
__constant char RADIX::OCTAL = 8
|
||
|
__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
|
||
|
__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
|
||
|
__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
|
||
|
__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
|
||
|
__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
|
||
|
__constant unsigned int STACK_BASE = $103
|
||
|
__loadstore char *__snprintf_buffer // zp[2]:22 9.022222222222222
|
||
|
__loadstore volatile unsigned int __snprintf_capacity // zp[2]:18 6.48936170212766
|
||
|
__loadstore volatile unsigned int __snprintf_size // zp[2]:20 11.021739130434781
|
||
|
void __start()
|
||
|
void main()
|
||
|
__constant char main::s[$e] = "hello world! "
|
||
|
__constant char main::s1[7] = "hello "
|
||
|
__constant char main::s2[2] = " "
|
||
|
__constant char main::s4[2] = "+"
|
||
|
__constant char main::s5[3] = "! "
|
||
|
__constant char main::s6[4] = "hi "
|
||
|
__constant char main::str[6] = "world"
|
||
|
void print(char *msg)
|
||
|
char *print::msg
|
||
|
char *print::msg#0 // msg zp[2]:11 2002.0
|
||
|
char *print::msg#5 // msg zp[2]:11 1001.0
|
||
|
__loadstore struct printf_buffer_number printf_buffer = {} // mem[12]
|
||
|
void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
|
||
|
unsigned int printf_number_buffer::$19 // zp[2]:13 1001.0
|
||
|
struct printf_buffer_number printf_number_buffer::buffer
|
||
|
char *printf_number_buffer::buffer_digits
|
||
|
char printf_number_buffer::buffer_sign
|
||
|
char printf_number_buffer::buffer_sign#0 // buffer_sign zp[1]:8 202.0
|
||
|
char printf_number_buffer::buffer_sign#1 // buffer_sign zp[1]:8 202.0
|
||
|
char printf_number_buffer::buffer_sign#10 // buffer_sign zp[1]:8 152.61904761904762
|
||
|
struct printf_format_number printf_number_buffer::format
|
||
|
char printf_number_buffer::format_justify_left
|
||
|
char printf_number_buffer::format_justify_left#10 // format_justify_left zp[1]:6 60.666666666666664
|
||
|
char printf_number_buffer::format_min_length
|
||
|
char printf_number_buffer::format_min_length#2 // reg byte x 100.1
|
||
|
char printf_number_buffer::format_radix
|
||
|
char printf_number_buffer::format_sign_always
|
||
|
char printf_number_buffer::format_upper_case
|
||
|
char printf_number_buffer::format_upper_case#10 // format_upper_case zp[1]:9 35.75
|
||
|
char printf_number_buffer::format_zero_padding
|
||
|
char printf_number_buffer::format_zero_padding#10 // format_zero_padding zp[1]:7 88.32352941176471
|
||
|
signed char printf_number_buffer::len
|
||
|
signed char printf_number_buffer::len#0 // reg byte y 1501.5
|
||
|
signed char printf_number_buffer::len#1 // reg byte y 2002.0
|
||
|
signed char printf_number_buffer::len#2 // reg byte y 3003.0
|
||
|
signed char printf_number_buffer::padding
|
||
|
signed char printf_number_buffer::padding#1 // padding zp[1]:10 1001.0
|
||
|
signed char printf_number_buffer::padding#10 // padding zp[1]:10 166.83333333333334
|
||
|
void (*printf_number_buffer::putc)(char)
|
||
|
void (*printf_number_buffer::putc#10)(char) // putc zp[2]:4 111.22222222222223
|
||
|
void printf_padding(void (*putc)(char) , char pad , char length)
|
||
|
char printf_padding::i
|
||
|
char printf_padding::i#1 // i zp[1]:17 200002.0
|
||
|
char printf_padding::i#2 // i zp[1]:17 100001.0
|
||
|
char printf_padding::length
|
||
|
char printf_padding::length#0 // length zp[1]:15 2002.0
|
||
|
char printf_padding::length#1 // length zp[1]:15 2002.0
|
||
|
char printf_padding::length#2 // length zp[1]:15 2002.0
|
||
|
char printf_padding::length#6 // length zp[1]:15 20600.8
|
||
|
char printf_padding::pad
|
||
|
char printf_padding::pad#7 // pad zp[1]:16 16666.833333333332
|
||
|
void (*printf_padding::putc)(char)
|
||
|
void (*printf_padding::putc#0)(char) // putc zp[2]:4 1001.0
|
||
|
void (*printf_padding::putc#1)(char) // putc zp[2]:4 1001.0
|
||
|
void (*printf_padding::putc#2)(char) // putc zp[2]:4 1001.0
|
||
|
void (*printf_padding::putc#7)(char) // putc zp[2]:4 30030.0
|
||
|
void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
|
||
|
struct printf_format_number printf_sint::format
|
||
|
char printf_sint::format_justify_left
|
||
|
char printf_sint::format_min_length
|
||
|
char printf_sint::format_radix
|
||
|
char printf_sint::format_sign_always
|
||
|
char printf_sint::format_upper_case
|
||
|
char printf_sint::format_zero_padding
|
||
|
void (*printf_sint::putc)(char)
|
||
|
unsigned int printf_sint::uvalue
|
||
|
int printf_sint::value
|
||
|
int printf_sint::value#0 // value zp[2]:4 101.0
|
||
|
int printf_sint::value#3 // value zp[2]:4 101.0
|
||
|
int printf_sint::value#5 // value zp[2]:4 202.0
|
||
|
void printf_str(void (*putc)(char) , const char *s)
|
||
|
char printf_str::c
|
||
|
char printf_str::c#1 // reg byte a 100001.0
|
||
|
void (*printf_str::putc)(char)
|
||
|
void (*printf_str::putc#0)(char) // putc zp[2]:4 2002.0
|
||
|
void (*printf_str::putc#12)(char) // putc zp[2]:4 10010.0
|
||
|
const char *printf_str::s
|
||
|
const char *printf_str::s#0 // s zp[2]:11 100001.0
|
||
|
const char *printf_str::s#11 // s zp[2]:11 155002.0
|
||
|
const char *printf_str::s#12 // s zp[2]:11 10001.0
|
||
|
void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
|
||
|
struct printf_format_string printf_string::format
|
||
|
char printf_string::format_justify_left
|
||
|
char printf_string::format_min_length
|
||
|
signed char printf_string::len
|
||
|
signed char printf_string::padding
|
||
|
void (*printf_string::putc)(char)
|
||
|
__constant void (*printf_string::putc#0)(char) = &snputc // putc
|
||
|
char *printf_string::str
|
||
|
void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
|
||
|
struct printf_format_number printf_uint::format
|
||
|
char printf_uint::format_justify_left
|
||
|
__constant char printf_uint::format_justify_left#0 = 0 // format_justify_left
|
||
|
char printf_uint::format_min_length
|
||
|
__constant char printf_uint::format_min_length#0 = 0 // format_min_length
|
||
|
char printf_uint::format_radix
|
||
|
char printf_uint::format_sign_always
|
||
|
char printf_uint::format_upper_case
|
||
|
__constant char printf_uint::format_upper_case#0 = 0 // format_upper_case
|
||
|
char printf_uint::format_zero_padding
|
||
|
__constant char printf_uint::format_zero_padding#0 = 0 // format_zero_padding
|
||
|
void (*printf_uint::putc)(char)
|
||
|
__constant void (*printf_uint::putc#0)(char) = &snputc // putc
|
||
|
unsigned int printf_uint::uvalue
|
||
|
__constant unsigned int printf_uint::uvalue#0 = $b // uvalue
|
||
|
char *screen
|
||
|
char *screen#0 // screen zp[2]:2 1001.0
|
||
|
char *screen#1 // screen zp[2]:2 68.19565217391305
|
||
|
char *screen#25 // screen zp[2]:2 134.0
|
||
|
void snprintf_init(char *s , unsigned int n)
|
||
|
unsigned int snprintf_init::n
|
||
|
unsigned int snprintf_init::n#4 // n zp[2]:4 101.0
|
||
|
char *snprintf_init::s
|
||
|
__stackcall void snputc(char c)
|
||
|
__constant char snputc::OFFSET_STACK_C = 0
|
||
|
char snputc::c
|
||
|
char snputc::c#0 // reg byte x 40.4
|
||
|
char snputc::c#2 // reg byte x 202.0
|
||
|
unsigned int strlen(char *str)
|
||
|
unsigned int strlen::len
|
||
|
unsigned int strlen::len#1 // len zp[2]:13 100001.0
|
||
|
unsigned int strlen::len#2 // len zp[2]:13 50250.75
|
||
|
unsigned int strlen::return
|
||
|
unsigned int strlen::return#2 // return zp[2]:13 2002.0
|
||
|
char *strlen::str
|
||
|
char *strlen::str#0 // str zp[2]:11 200002.0
|
||
|
char *strlen::str#3 // str zp[2]:11 100001.0
|
||
|
char * strupr(char *str)
|
||
|
char strupr::$0 // reg byte a 200002.0
|
||
|
char *strupr::return
|
||
|
char *strupr::src
|
||
|
char *strupr::src#1 // src zp[2]:24 200002.0
|
||
|
char *strupr::src#2 // src zp[2]:24 71429.28571428571
|
||
|
char *strupr::str
|
||
|
__constant char *strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // str
|
||
|
char toupper(char ch)
|
||
|
char toupper::ch
|
||
|
char toupper::ch#0 // reg byte a 1700002.0000000002
|
||
|
char toupper::return
|
||
|
char toupper::return#0 // reg byte a 2000002.0
|
||
|
char toupper::return#2 // reg byte a 1033334.6666666667
|
||
|
char toupper::return#3 // reg byte a 200002.0
|
||
|
void utoa(unsigned int value , char *buffer , char radix)
|
||
|
char utoa::$10 // reg byte a 20002.0
|
||
|
char utoa::$11 // reg byte x 2002.0
|
||
|
char utoa::$4 // reg byte a 20002.0
|
||
|
char *utoa::buffer
|
||
|
char *utoa::buffer#10 // buffer zp[2]:13 2800.4000000000005
|
||
|
char *utoa::buffer#15 // buffer zp[2]:13 15001.5
|
||
|
char *utoa::buffer#3 // buffer zp[2]:13 2002.0
|
||
|
char *utoa::buffer#4 // buffer zp[2]:13 20002.0
|
||
|
char utoa::digit
|
||
|
char utoa::digit#1 // digit zp[1]:7 20002.0
|
||
|
char utoa::digit#2 // digit zp[1]:7 2666.9333333333334
|
||
|
unsigned int utoa::digit_value
|
||
|
unsigned int utoa::digit_value#0 // digit_value zp[2]:24 6000.6
|
||
|
unsigned int *utoa::digit_values
|
||
|
unsigned int *utoa::digit_values#8 // digit_values zp[2]:11 588.2941176470588
|
||
|
char utoa::max_digits
|
||
|
char utoa::max_digits#7 // max_digits zp[1]:6 588.2941176470588
|
||
|
char utoa::radix
|
||
|
char utoa::radix#2 // reg byte x 1001.0
|
||
|
char utoa::started
|
||
|
char utoa::started#2 // reg byte x 4286.142857142857
|
||
|
char utoa::started#4 // reg byte x 10001.0
|
||
|
unsigned int utoa::value
|
||
|
unsigned int utoa::value#0 // value zp[2]:4 10001.0
|
||
|
unsigned int utoa::value#1 // value zp[2]:4 202.0
|
||
|
unsigned int utoa::value#10 // value zp[2]:4 183.66666666666669
|
||
|
unsigned int utoa::value#3 // value zp[2]:4 5125.625
|
||
|
unsigned int utoa::value#7 // value zp[2]:4 15001.5
|
||
|
unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
|
||
|
char *utoa_append::buffer
|
||
|
char *utoa_append::buffer#0 // buffer zp[2]:13 13750.25
|
||
|
char utoa_append::digit
|
||
|
char utoa_append::digit#1 // reg byte x 1.0000001E7
|
||
|
char utoa_append::digit#2 // reg byte x 1.00500015E7
|
||
|
unsigned int utoa_append::return
|
||
|
unsigned int utoa_append::return#0 // return zp[2]:4 20002.0
|
||
|
unsigned int utoa_append::sub
|
||
|
unsigned int utoa_append::sub#0 // sub zp[2]:24 3335000.5
|
||
|
unsigned int utoa_append::value
|
||
|
unsigned int utoa_append::value#0 // value zp[2]:4 36667.33333333333
|
||
|
unsigned int utoa_append::value#1 // value zp[2]:4 2.0000002E7
|
||
|
unsigned int utoa_append::value#2 // value zp[2]:4 5018334.166666666
|
||
|
|
||
|
reg byte x [ snputc::c#2 snputc::c#0 ]
|
||
|
zp[2]:2 [ screen#25 screen#1 screen#0 ]
|
||
|
zp[2]:4 [ printf_sint::value#5 printf_sint::value#0 printf_sint::value#3 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#1 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 snprintf_init::n#4 ]
|
||
|
reg byte x [ utoa::radix#2 ]
|
||
|
reg byte x [ utoa::started#2 utoa::started#4 ]
|
||
|
reg byte x [ printf_number_buffer::format_min_length#2 ]
|
||
|
zp[1]:6 [ printf_number_buffer::format_justify_left#10 utoa::max_digits#7 ]
|
||
|
zp[1]:7 [ printf_number_buffer::format_zero_padding#10 utoa::digit#2 utoa::digit#1 ]
|
||
|
zp[1]:8 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#1 ]
|
||
|
zp[1]:9 [ printf_number_buffer::format_upper_case#10 ]
|
||
|
reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
|
||
|
zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||
|
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
|
||
|
zp[2]:11 [ strlen::str#3 strlen::str#0 utoa::digit_values#8 print::msg#5 print::msg#0 printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
|
||
|
zp[2]:13 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ]
|
||
|
zp[1]:15 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||
|
zp[1]:16 [ printf_padding::pad#7 ]
|
||
|
zp[1]:17 [ printf_padding::i#2 printf_padding::i#1 ]
|
||
|
reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
|
||
|
zp[2]:18 [ __snprintf_capacity ]
|
||
|
zp[2]:20 [ __snprintf_size ]
|
||
|
zp[2]:22 [ __snprintf_buffer ]
|
||
|
reg byte a [ printf_str::c#1 ]
|
||
|
reg byte a [ utoa::$4 ]
|
||
|
reg byte x [ utoa::$11 ]
|
||
|
reg byte a [ utoa::$10 ]
|
||
|
zp[2]:24 [ utoa::digit_value#0 utoa_append::sub#0 strupr::src#2 strupr::src#1 ]
|
||
|
reg byte a [ toupper::return#3 ]
|
||
|
reg byte a [ strupr::$0 ]
|
||
|
mem[12] [ printf_buffer ]
|