mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-16 21:07:56 +00:00
217 lines
9.7 KiB
Plaintext
217 lines
9.7 KiB
Plaintext
const byte* DIGITS[] = "0123456789abcdef"z
|
|
const byte RADIX::BINARY = 2
|
|
const byte RADIX::DECIMAL = $a
|
|
const byte RADIX::HEXADECIMAL = $10
|
|
const byte RADIX::OCTAL = 8
|
|
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
|
|
const byte SIZEOF_SIGNED_WORD = 2
|
|
const byte* decimal_digits[6] = { fill( 6, 0) }
|
|
signed word div16s(signed word div16s::dividend , signed word div16s::divisor)
|
|
signed word div16s::dividend
|
|
signed word div16s::dividend#0 dividend zp[2]:6 367.33333333333337
|
|
signed word div16s::divisor
|
|
signed word div16s::divisor#0 divisor zp[2]:18 551.0
|
|
signed word div16s::return
|
|
signed word divr16s(signed word divr16s::dividend , signed word divr16s::divisor , signed word divr16s::rem)
|
|
signed word divr16s::dividend
|
|
signed word divr16s::dividend#0 dividend zp[2]:23 7001.0
|
|
word divr16s::dividendu
|
|
signed word divr16s::dividendu#1 dividendu zp[2]:23 10001.0
|
|
word divr16s::dividendu#3 dividendu zp[2]:23 4286.142857142857
|
|
word divr16s::dividendu#7 dividendu zp[2]:23 20002.0
|
|
word divr16s::dividendu#8 dividendu zp[2]:23 20002.0
|
|
signed word divr16s::divisor
|
|
signed word divr16s::divisor#0 divisor zp[2]:18 3000.4285714285716
|
|
word divr16s::divisoru
|
|
signed word divr16s::divisoru#1 divisoru zp[2]:18 5000.5
|
|
word divr16s::divisoru#3 divisoru zp[2]:18 15001.5
|
|
word divr16s::divisoru#4 divisoru zp[2]:18 20002.0
|
|
word divr16s::divisoru#5 divisoru zp[2]:18 20002.0
|
|
byte divr16s::neg
|
|
byte divr16s::neg#2 reg byte y 10001.0
|
|
byte divr16s::neg#3 reg byte y 5000.5
|
|
byte divr16s::neg#4 reg byte y 7500.75
|
|
signed word divr16s::rem
|
|
word divr16s::remu
|
|
word divr16s::resultu
|
|
signed word divr16s::return
|
|
word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem)
|
|
byte~ divr16u::$1 reg byte a 2.00000002E8
|
|
byte~ divr16u::$2 reg byte a 2.00000002E8
|
|
word divr16u::dividend
|
|
word divr16u::dividend#0 dividend zp[2]:23 2.500000025E7
|
|
word divr16u::dividend#1 dividend zp[2]:23 36667.33333333333
|
|
word divr16u::dividend#2 dividend zp[2]:23 4.287142914285715E7
|
|
word divr16u::divisor
|
|
word divr16u::divisor#0 divisor zp[2]:18 1.1765294294117648E7
|
|
byte divr16u::i
|
|
byte divr16u::i#1 reg byte x 1.500000015E8
|
|
byte divr16u::i#2 reg byte x 1.5384615538461538E7
|
|
word divr16u::quotient
|
|
word divr16u::quotient#1 quotient zp[2]:27 1.500000015E8
|
|
word divr16u::quotient#2 quotient zp[2]:27 1.00000001E8
|
|
word divr16u::quotient#3 quotient zp[2]:27 2.500000025E7
|
|
word divr16u::rem
|
|
word divr16u::rem#0 rem zp[2]:25 7.500000075E7
|
|
word divr16u::rem#1 rem zp[2]:25 2.00000002E8
|
|
word divr16u::rem#10 rem zp[2]:25 1.0003333466666667E8
|
|
word divr16u::rem#2 rem zp[2]:25 2.00000002E8
|
|
word divr16u::rem#4 rem zp[2]:25 2.00000002E8
|
|
word divr16u::rem#5 rem zp[2]:25 1.00000001E8
|
|
word divr16u::return
|
|
word divr16u::return#0 return zp[2]:27 1.00000001E8
|
|
signed word lastprime
|
|
signed word lastprime#1 lastprime zp[2]:4 4.888888888888889
|
|
signed word lastprime#17 lastprime zp[2]:4 0.88
|
|
signed word lasttest
|
|
signed word lasttest#1 lasttest zp[2]:2 22.0
|
|
signed word lasttest#13 lasttest zp[2]:2 4.0
|
|
signed word lasttest#19 lasttest zp[2]:2 6.090909090909091
|
|
void main()
|
|
signed dword~ main::$0 zp[4]:8 11.0
|
|
signed word~ main::$12 zp[2]:21 22.0
|
|
signed word~ main::$13 zp[2]:18 101.0
|
|
signed word~ main::$14 zp[2]:25 22.0
|
|
signed word~ main::$15 zp[2]:23 22.0
|
|
signed word*~ main::$16 zp[2]:21 22.0
|
|
signed word*~ main::$17 zp[2]:18 202.0
|
|
signed word*~ main::$18 zp[2]:25 22.0
|
|
signed word main::p
|
|
signed word main::p#0 p zp[2]:21 16.5
|
|
signed dword mul16s(signed word mul16s::a , signed word mul16s::b)
|
|
word~ mul16s::$11 zp[2]:27 202.0
|
|
word~ mul16s::$12 zp[2]:29 202.0
|
|
word~ mul16s::$6 zp[2]:27 202.0
|
|
word~ mul16s::$9 zp[2]:29 202.0
|
|
signed word mul16s::a
|
|
signed word mul16s::a#0 a zp[2]:21 8.0
|
|
signed word mul16s::b
|
|
signed word mul16s::b#0 b zp[2]:21 10.181818181818182
|
|
dword mul16s::m
|
|
dword mul16s::m#0 m zp[4]:8 101.0
|
|
dword mul16s::m#1 m zp[4]:8 202.0
|
|
dword mul16s::m#2 m zp[4]:8 202.0
|
|
dword mul16s::m#4 m zp[4]:8 202.0
|
|
dword mul16s::m#5 m zp[4]:8 126.25
|
|
signed dword mul16s::return
|
|
signed dword mul16s::return#0 return zp[4]:8 37.33333333333333
|
|
signed dword mul16s::return#2 return zp[4]:8 22.0
|
|
dword mul16u(word mul16u::a , word mul16u::b)
|
|
byte~ mul16u::$1 reg byte a 200002.0
|
|
word mul16u::a
|
|
word mul16u::a#0 a zp[2]:23 100001.0
|
|
word mul16u::a#1 a zp[2]:23 367.33333333333337
|
|
word mul16u::a#2 a zp[2]:23 66834.16666666666
|
|
word mul16u::b
|
|
word mul16u::b#0 b zp[2]:27 101.0
|
|
dword mul16u::mb
|
|
dword mul16u::mb#0 mb zp[4]:14 2002.0
|
|
dword mul16u::mb#1 mb zp[4]:14 200002.0
|
|
dword mul16u::mb#2 mb zp[4]:14 43000.57142857143
|
|
dword mul16u::res
|
|
dword mul16u::res#1 res zp[4]:8 200002.0
|
|
dword mul16u::res#2 res zp[4]:8 50017.33333333333
|
|
dword mul16u::res#6 res zp[4]:8 100001.0
|
|
dword mul16u::return
|
|
dword mul16u::return#2 return zp[4]:8 202.0
|
|
const signed word* primenum[$3e8] = { fill( $3e8, 0) }
|
|
signed word primeptr
|
|
signed word primeptr#1 primeptr zp[2]:21 101.0
|
|
signed word primeptr#10 primeptr zp[2]:21 151.5
|
|
signed word primeptr#7 primeptr zp[2]:21 50.5
|
|
void print_char(byte print_char::ch)
|
|
byte print_char::ch
|
|
byte print_char::ch#0 reg byte a 200002.0
|
|
byte print_char::ch#4 reg byte a 1100002.0
|
|
byte* print_char_cursor
|
|
byte* print_char_cursor#20 print_char_cursor zp[2]:12 1050108.0
|
|
byte* print_char_cursor#21 print_char_cursor zp[2]:12 50001.09090909091
|
|
byte* print_char_cursor#41 print_char_cursor zp[2]:12 6.454545454545455
|
|
byte* print_line_cursor
|
|
byte* print_screen
|
|
const byte* print_screen#0 print_screen = (byte*) 1024
|
|
void print_sint_decimal(signed word print_sint_decimal::w)
|
|
signed word print_sint_decimal::w
|
|
signed word print_sint_decimal::w#0 w zp[2]:21 202.0
|
|
signed word print_sint_decimal::w#1 w zp[2]:21 52.33333333333333
|
|
signed word print_sint_decimal::w#4 w zp[2]:21 202.0
|
|
void print_str(byte* print_str::str)
|
|
byte* print_str::str
|
|
byte* print_str::str#0 str zp[2]:27 200002.0
|
|
byte* print_str::str#2 str zp[2]:27 100001.0
|
|
signed word rem16s
|
|
signed word rem16s#1 rem16s zp[2]:25 20002.0
|
|
signed word rem16s#10 rem16s zp[2]:25 3350.5
|
|
signed word rem16s#30 rem16s zp[2]:25 20002.0
|
|
word rem16u
|
|
word rem16u#0 rem16u zp[2]:25 25000.25
|
|
signed word testnum
|
|
signed word testnum#1 testnum zp[2]:6 22.0
|
|
signed word testnum#10 testnum zp[2]:6 51.875
|
|
signed word testnum#11 testnum zp[2]:6 30.545454545454547
|
|
signed word testnum#15 testnum zp[2]:6 2.5384615384615383
|
|
signed word testnum#2 testnum zp[2]:6 202.0
|
|
void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix)
|
|
byte~ utoa::$10 reg byte a 200002.0
|
|
byte~ utoa::$11 reg byte a 2002.0
|
|
byte* utoa::buffer
|
|
byte* utoa::buffer#11 buffer zp[2]:25 28714.714285714286
|
|
byte* utoa::buffer#14 buffer zp[2]:25 150001.5
|
|
byte* utoa::buffer#3 buffer zp[2]:25 2002.0
|
|
byte* utoa::buffer#4 buffer zp[2]:25 200002.0
|
|
byte utoa::digit
|
|
byte utoa::digit#1 digit zp[1]:20 200002.0
|
|
byte utoa::digit#2 digit zp[1]:20 28571.714285714286
|
|
word utoa::digit_value
|
|
word utoa::digit_value#0 digit_value zp[2]:29 60000.600000000006
|
|
word* utoa::digit_values
|
|
byte utoa::max_digits
|
|
const byte utoa::max_digits#1 max_digits = 5
|
|
byte utoa::radix
|
|
byte utoa::started
|
|
byte utoa::started#2 reg byte x 50000.5
|
|
byte utoa::started#4 reg byte x 100001.0
|
|
word utoa::value
|
|
word utoa::value#0 value zp[2]:21 100001.0
|
|
word utoa::value#1 value zp[2]:21 551.0
|
|
word utoa::value#2 value zp[2]:21 57286.42857142857
|
|
word utoa::value#6 value zp[2]:21 150001.5
|
|
word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub)
|
|
byte* utoa_append::buffer
|
|
byte* utoa_append::buffer#0 buffer zp[2]:25 137500.25
|
|
byte utoa_append::digit
|
|
byte utoa_append::digit#1 reg byte x 1.000000001E9
|
|
byte utoa_append::digit#2 reg byte x 1.0005000015E9
|
|
word utoa_append::return
|
|
word utoa_append::return#0 return zp[2]:21 200002.0
|
|
word utoa_append::sub
|
|
word utoa_append::sub#0 sub zp[2]:29 3.333500005E8
|
|
word utoa_append::value
|
|
word utoa_append::value#0 value zp[2]:21 366667.3333333334
|
|
word utoa_append::value#1 value zp[2]:21 2.000000002E9
|
|
word utoa_append::value#2 value zp[2]:21 5.0018333416666675E8
|
|
|
|
zp[2]:2 [ lasttest#13 lasttest#19 lasttest#1 ]
|
|
zp[2]:4 [ lastprime#17 lastprime#1 ]
|
|
zp[2]:6 [ testnum#10 testnum#1 testnum#15 testnum#11 testnum#2 div16s::dividend#0 ]
|
|
zp[4]:8 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16s::return#2 main::$0 ]
|
|
reg byte a [ print_char::ch#4 print_char::ch#0 ]
|
|
zp[2]:12 [ print_char_cursor#20 print_char_cursor#41 print_char_cursor#21 ]
|
|
zp[4]:14 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
|
|
zp[2]:18 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 div16s::divisor#0 main::$13 main::$17 ]
|
|
reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ]
|
|
zp[1]:20 [ utoa::digit#2 utoa::digit#1 ]
|
|
reg byte x [ utoa::started#2 utoa::started#4 ]
|
|
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
|
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
|
|
zp[2]:21 [ main::$12 main::$16 main::p#0 mul16s::a#0 mul16s::b#0 print_sint_decimal::w#4 print_sint_decimal::w#0 print_sint_decimal::w#1 utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 primeptr#7 primeptr#10 primeptr#1 ]
|
|
zp[2]:23 [ main::$15 divr16s::dividendu#3 divr16s::dividendu#7 divr16s::dividendu#8 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 divr16s::dividend#0 divr16s::dividendu#1 mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
|
|
zp[2]:25 [ main::$14 main::$18 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 rem16s#10 rem16s#30 rem16s#1 rem16u#0 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
|
|
zp[2]:27 [ mul16s::$6 mul16s::$11 mul16u::b#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 print_str::str#2 print_str::str#0 ]
|
|
reg byte a [ mul16u::$1 ]
|
|
reg byte a [ utoa::$11 ]
|
|
reg byte a [ utoa::$10 ]
|
|
zp[2]:29 [ utoa::digit_value#0 utoa_append::sub#0 mul16s::$9 mul16s::$12 ]
|
|
reg byte a [ divr16u::$1 ]
|
|
reg byte a [ divr16u::$2 ]
|