mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-26 18:29:54 +00:00
Minor refactoring improving float lib.
This commit is contained in:
parent
80d5f2bf9d
commit
c769aabc0a
@ -0,0 +1,4 @@
|
|||||||
|
lda {zpwo1}
|
||||||
|
sta {zpptrby1}
|
||||||
|
lda {zpwo1}+1
|
||||||
|
sta {zpptrby1}+1
|
@ -2,13 +2,20 @@
|
|||||||
// See https://www.c64-wiki.com/wiki/Floating_point_arithmetic
|
// See https://www.c64-wiki.com/wiki/Floating_point_arithmetic
|
||||||
// See http://www.pagetable.com/c64rom/c64rom_sc.html
|
// See http://www.pagetable.com/c64rom/c64rom_sc.html
|
||||||
|
|
||||||
|
// Zeropage addresses used to hold lo/hi-bytes of addresses of float numbers in MEM
|
||||||
|
const byte* memLo = $fe;
|
||||||
|
const byte* memHi = $ff;
|
||||||
|
|
||||||
|
// Prepare MEM pointers for operations using MEM
|
||||||
|
void prepareMEM(byte* mem) {
|
||||||
|
*memLo = <mem;
|
||||||
|
*memHi = >mem;
|
||||||
|
}
|
||||||
|
|
||||||
// FAC = word
|
// FAC = word
|
||||||
// Set the FAC (floating point accumulator) to the integer value of a 16bit word
|
// Set the FAC (floating point accumulator) to the integer value of a 16bit word
|
||||||
void setFAC(word w) {
|
void setFAC(word w) {
|
||||||
const byte* lo = $fe;
|
prepareMEM((byte*)w);
|
||||||
const byte* hi = $ff;
|
|
||||||
*lo = <w;
|
|
||||||
*hi = >w;
|
|
||||||
// Load word register Y,A into FAC (floating point accumulator)
|
// Load word register Y,A into FAC (floating point accumulator)
|
||||||
asm {
|
asm {
|
||||||
ldy $fe
|
ldy $fe
|
||||||
@ -21,8 +28,6 @@ void setFAC(word w) {
|
|||||||
// Get the value of the FAC (floating point accumulator) as an integer 16bit word
|
// Get the value of the FAC (floating point accumulator) as an integer 16bit word
|
||||||
// Destroys the value in the FAC in the process
|
// Destroys the value in the FAC in the process
|
||||||
word getFAC() {
|
word getFAC() {
|
||||||
const byte* lo = $fe;
|
|
||||||
const byte* hi = $ff;
|
|
||||||
// Load FAC (floating point accumulator) integer part into word register Y,A
|
// Load FAC (floating point accumulator) integer part into word register Y,A
|
||||||
asm {
|
asm {
|
||||||
jsr $b1aa
|
jsr $b1aa
|
||||||
@ -30,8 +35,8 @@ word getFAC() {
|
|||||||
sta $ff
|
sta $ff
|
||||||
}
|
}
|
||||||
word w = 0;
|
word w = 0;
|
||||||
<w = *lo;
|
<w = *memLo;
|
||||||
>w = *hi;
|
>w = *memHi;
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,16 +56,6 @@ void setFACtoARG() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zeropage addresses used to hold lo/hi-bytes of addresses of float numbers in MEM
|
|
||||||
const byte* memLo = $fe;
|
|
||||||
const byte* memHi = $ff;
|
|
||||||
|
|
||||||
// Prepare MEM pointers for operations using MEM
|
|
||||||
void prepareMEM(byte* mem) {
|
|
||||||
*memLo = <mem;
|
|
||||||
*memHi = >mem;
|
|
||||||
}
|
|
||||||
|
|
||||||
// MEM = FAC
|
// MEM = FAC
|
||||||
// Stores the value of the FAC to memory
|
// Stores the value of the FAC to memory
|
||||||
// Stores 5 bytes (means it is necessary to allocate 5 bytes to avoid clobbering other data using eg. byte[] mem = {0, 0, 0, 0, 0};)
|
// Stores 5 bytes (means it is necessary to allocate 5 bytes to avoid clobbering other data using eg. byte[] mem = {0, 0, 0, 0, 0};)
|
||||||
|
@ -134,18 +134,16 @@ print_char: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
getFAC: {
|
getFAC: {
|
||||||
.const lo = $fe
|
|
||||||
.const hi = $ff
|
|
||||||
.label w = 9
|
.label w = 9
|
||||||
.label return = 9
|
.label return = 9
|
||||||
jsr $b1aa
|
jsr $b1aa
|
||||||
sty $fe
|
sty $fe
|
||||||
sta $ff
|
sta $ff
|
||||||
lda lo
|
lda memLo
|
||||||
sta w
|
sta w
|
||||||
lda #0
|
lda #0
|
||||||
sta w+1
|
sta w+1
|
||||||
lda hi
|
lda memHi
|
||||||
sta return+1
|
sta return+1
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
@ -192,13 +190,13 @@ divMEMbyFAC: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
setFAC: {
|
setFAC: {
|
||||||
.const lo = $fe
|
.label _0 = 7
|
||||||
.const hi = $ff
|
|
||||||
.label w = 9
|
.label w = 9
|
||||||
lda w
|
lda w
|
||||||
sta lo
|
sta _0
|
||||||
lda w+1
|
lda w+1
|
||||||
sta hi
|
sta _0+1
|
||||||
|
jsr prepareMEM
|
||||||
ldy $fe
|
ldy $fe
|
||||||
lda $ff
|
lda $ff
|
||||||
jsr $b391
|
jsr $b391
|
||||||
|
@ -127,8 +127,8 @@ print_char::@return: scope:[print_char] from print_char
|
|||||||
to:@return
|
to:@return
|
||||||
getFAC: scope:[getFAC] from main::@12
|
getFAC: scope:[getFAC] from main::@12
|
||||||
asm { jsr$b1aasty$festa$ff }
|
asm { jsr$b1aasty$festa$ff }
|
||||||
[65] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) getFAC::lo#0) [ getFAC::w#1 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::w#1 ] )
|
[65] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) memLo#0) [ getFAC::w#1 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::w#1 ] )
|
||||||
[66] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) getFAC::hi#0) [ getFAC::return#0 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
[66] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) memHi#0) [ getFAC::return#0 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||||
to:getFAC::@return
|
to:getFAC::@return
|
||||||
getFAC::@return: scope:[getFAC] from getFAC
|
getFAC::@return: scope:[getFAC] from getFAC
|
||||||
[67] return [ getFAC::return#0 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
[67] return [ getFAC::return#0 ] ( main:2::getFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||||
@ -143,19 +143,19 @@ addMEMtoFAC::@1: scope:[addMEMtoFAC] from addMEMtoFAC
|
|||||||
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
|
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
|
||||||
[71] return [ ] ( main:2::addMEMtoFAC:25 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[71] return [ ] ( main:2::addMEMtoFAC:25 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setMEMtoFAC
|
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||||
[72] (byte*) prepareMEM::mem#4 ← phi( addMEMtoFAC/(const byte[]) f_127#0 divMEMbyFAC/(const byte[]) f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#3 setMEMtoFAC/(byte*) prepareMEM::mem#0 ) [ prepareMEM::mem#4 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ prepareMEM::mem#4 ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
[72] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(const byte[]) f_127#0 divMEMbyFAC/(const byte[]) f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||||
[73] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#4 [ prepareMEM::mem#4 prepareMEM::$0 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 prepareMEM::$0 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 prepareMEM::$0 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 prepareMEM::$0 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 prepareMEM::$0 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ prepareMEM::mem#4 prepareMEM::$0 ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 prepareMEM::$0 ] )
|
[73] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:5::prepareMEM:92 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] )
|
||||||
[74] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#4 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ prepareMEM::mem#4 ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
[74] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||||
[75] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#4 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ prepareMEM::$1 ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
[75] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:5::prepareMEM:92 [ prepareMEM::$1 ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ prepareMEM::$1 ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
||||||
[76] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[76] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:92 [ ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:prepareMEM::@return
|
to:prepareMEM::@return
|
||||||
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
||||||
[77] return [ ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:7::prepareMEM:98 [ ] main:2::setMEMtoFAC:15::prepareMEM:98 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[77] return [ ] ( main:2::addMEMtoFAC:25::prepareMEM:69 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:13::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23::prepareMEM:80 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:19::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:92 [ ] main:2::setFAC:11::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:7::prepareMEM:97 [ ] main:2::setMEMtoFAC:15::prepareMEM:97 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
mulFACbyMEM: scope:[mulFACbyMEM] from main::@10 main::@5
|
mulFACbyMEM: scope:[mulFACbyMEM] from main::@10 main::@5
|
||||||
[78] (byte*) mulFACbyMEM::mem#2 ← phi( main::@10/(const byte[]) f_127#0 main::@5/(const byte*) f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
[78] (byte*) mulFACbyMEM::mem#2 ← phi( main::@10/(const byte[]) f_127#0 main::@5/(const byte*) f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
||||||
[79] (byte*) prepareMEM::mem#3 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#3 ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#3 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#3 ] )
|
[79] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
||||||
[80] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[80] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:13 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:23 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:mulFACbyMEM::@1
|
to:mulFACbyMEM::@1
|
||||||
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
|
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
|
||||||
@ -182,23 +182,24 @@ divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1
|
|||||||
to:@return
|
to:@return
|
||||||
setFAC: scope:[setFAC] from main main::@1 main::@7
|
setFAC: scope:[setFAC] from main main::@1 main::@7
|
||||||
[89] (word) setFAC::w#3 ← phi( main/(byte/signed byte/word/signed word) 127 main::@1/(word) setFAC::w#1 main::@7/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
[89] (word) setFAC::w#3 ← phi( main/(byte/signed byte/word/signed word) 127 main::@1/(word) setFAC::w#1 main::@7/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
||||||
[90] (byte~) setFAC::$0 ← < (word) setFAC::w#3 [ setFAC::w#3 setFAC::$0 ] ( main:2::setFAC:5 [ setFAC::w#3 setFAC::$0 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 setFAC::$0 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 setFAC::$0 ] )
|
[90] (byte*~) setFAC::$0 ← ((byte*)) (word) setFAC::w#3 [ setFAC::$0 ] ( main:2::setFAC:5 [ setFAC::$0 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$0 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$0 ] )
|
||||||
[91] *((const byte*) setFAC::lo#0) ← (byte~) setFAC::$0 [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
[91] (byte*) prepareMEM::mem#0 ← (byte*~) setFAC::$0 [ prepareMEM::mem#0 ] ( main:2::setFAC:5 [ prepareMEM::mem#0 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
||||||
[92] (byte~) setFAC::$1 ← > (word) setFAC::w#3 [ setFAC::$1 ] ( main:2::setFAC:5 [ setFAC::$1 ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$1 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$1 ] )
|
[92] call prepareMEM param-assignment [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
[93] *((const byte*) setFAC::hi#0) ← (byte~) setFAC::$1 [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
to:setFAC::@1
|
||||||
|
setFAC::@1: scope:[setFAC] from setFAC
|
||||||
asm { ldy$felda$ffjsr$b391 }
|
asm { ldy$felda$ffjsr$b391 }
|
||||||
to:setFAC::@return
|
to:setFAC::@return
|
||||||
setFAC::@return: scope:[setFAC] from setFAC
|
setFAC::@return: scope:[setFAC] from setFAC::@1
|
||||||
[95] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[94] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:11 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
setMEMtoFAC: scope:[setMEMtoFAC] from main::@3 main::@6
|
setMEMtoFAC: scope:[setMEMtoFAC] from main::@3 main::@6
|
||||||
[96] (byte*) setMEMtoFAC::mem#2 ← phi( main::@3/(const byte[]) f_127#0 main::@6/(const byte[]) f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:7 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
[95] (byte*) setMEMtoFAC::mem#2 ← phi( main::@3/(const byte[]) f_127#0 main::@6/(const byte[]) f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:7 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
||||||
[97] (byte*) prepareMEM::mem#0 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#0 ] ( main:2::setMEMtoFAC:7 [ prepareMEM::mem#0 ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
[96] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#1 ] ( main:2::setMEMtoFAC:7 [ prepareMEM::mem#1 ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#1 ] )
|
||||||
[98] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:7 [ ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[97] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:7 [ ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:setMEMtoFAC::@1
|
to:setMEMtoFAC::@1
|
||||||
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
|
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
|
||||||
asm { ldx$feldy$ffjsr$bbd4 }
|
asm { ldx$feldy$ffjsr$bbd4 }
|
||||||
to:setMEMtoFAC::@return
|
to:setMEMtoFAC::@return
|
||||||
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
|
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
|
||||||
[100] return [ ] ( main:2::setMEMtoFAC:7 [ ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[99] return [ ] ( main:2::setMEMtoFAC:7 [ ] main:2::setMEMtoFAC:15 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -23,10 +23,6 @@
|
|||||||
(const byte[]) f_i#0 f_i = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
|
(const byte[]) f_i#0 f_i = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
|
||||||
(word()) getFAC()
|
(word()) getFAC()
|
||||||
(label) getFAC::@return
|
(label) getFAC::@return
|
||||||
(byte*) getFAC::hi
|
|
||||||
(const byte*) getFAC::hi#0 hi = ((byte*))(byte/word/signed word) 255
|
|
||||||
(byte*) getFAC::lo
|
|
||||||
(const byte*) getFAC::lo#0 lo = ((byte*))(byte/word/signed word) 254
|
|
||||||
(word) getFAC::return
|
(word) getFAC::return
|
||||||
(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333
|
(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333
|
||||||
(word) getFAC::return#2 return zp ZP_WORD:9 22.0
|
(word) getFAC::return#2 return zp ZP_WORD:9 22.0
|
||||||
@ -73,8 +69,9 @@
|
|||||||
(label) prepareMEM::@return
|
(label) prepareMEM::@return
|
||||||
(byte*) prepareMEM::mem
|
(byte*) prepareMEM::mem
|
||||||
(byte*) prepareMEM::mem#0 mem zp ZP_PTR_BYTE:7 4.0
|
(byte*) prepareMEM::mem#0 mem zp ZP_PTR_BYTE:7 4.0
|
||||||
(byte*) prepareMEM::mem#3 mem zp ZP_PTR_BYTE:7 4.0
|
(byte*) prepareMEM::mem#1 mem zp ZP_PTR_BYTE:7 4.0
|
||||||
(byte*) prepareMEM::mem#4 mem zp ZP_PTR_BYTE:7 2.6666666666666665
|
(byte*) prepareMEM::mem#4 mem zp ZP_PTR_BYTE:7 4.0
|
||||||
|
(byte*) prepareMEM::mem#5 mem zp ZP_PTR_BYTE:7 3.333333333333333
|
||||||
(void()) print_byte((byte) print_byte::b)
|
(void()) print_byte((byte) print_byte::b)
|
||||||
(byte~) print_byte::$0 reg byte y 4.0
|
(byte~) print_byte::$0 reg byte y 4.0
|
||||||
(byte~) print_byte::$1 reg byte a 4.0
|
(byte~) print_byte::$1 reg byte a 4.0
|
||||||
@ -104,16 +101,12 @@
|
|||||||
(word) print_word::w
|
(word) print_word::w
|
||||||
(word) print_word::w#0 w zp ZP_WORD:9 3.75
|
(word) print_word::w#0 w zp ZP_WORD:9 3.75
|
||||||
(void()) setFAC((word) setFAC::w)
|
(void()) setFAC((word) setFAC::w)
|
||||||
(byte~) setFAC::$0 reg byte a 4.0
|
(byte*~) setFAC::$0 $0 zp ZP_PTR_BYTE:7 4.0
|
||||||
(byte~) setFAC::$1 reg byte a 4.0
|
(label) setFAC::@1
|
||||||
(label) setFAC::@return
|
(label) setFAC::@return
|
||||||
(byte*) setFAC::hi
|
|
||||||
(const byte*) setFAC::hi#0 hi = ((byte*))(byte/word/signed word) 255
|
|
||||||
(byte*) setFAC::lo
|
|
||||||
(const byte*) setFAC::lo#0 lo = ((byte*))(byte/word/signed word) 254
|
|
||||||
(word) setFAC::w
|
(word) setFAC::w
|
||||||
(word) setFAC::w#1 w zp ZP_WORD:9 22.0
|
(word) setFAC::w#1 w zp ZP_WORD:9 22.0
|
||||||
(word) setFAC::w#3 w zp ZP_WORD:9 5.0
|
(word) setFAC::w#3 w zp ZP_WORD:9 13.0
|
||||||
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
||||||
(label) setMEMtoFAC::@1
|
(label) setMEMtoFAC::@1
|
||||||
(label) setMEMtoFAC::@return
|
(label) setMEMtoFAC::@return
|
||||||
@ -127,7 +120,7 @@ zp ZP_PTR_BYTE:3 [ line_cursor#6 line_cursor#13 print_ln::$0 ]
|
|||||||
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||||
zp ZP_PTR_BYTE:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#49 char_cursor#10 ]
|
zp ZP_PTR_BYTE:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#49 char_cursor#10 ]
|
||||||
zp ZP_PTR_BYTE:7 [ prepareMEM::mem#4 prepareMEM::mem#3 prepareMEM::mem#0 mulFACbyMEM::mem#2 setMEMtoFAC::mem#2 ]
|
zp ZP_PTR_BYTE:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 setMEMtoFAC::mem#2 setFAC::$0 ]
|
||||||
zp ZP_WORD:9 [ setFAC::w#3 setFAC::w#1 main::$2 getFAC::return#2 main::$11 print_word::w#0 getFAC::w#1 getFAC::return#0 ]
|
zp ZP_WORD:9 [ setFAC::w#3 setFAC::w#1 main::$2 getFAC::return#2 main::$11 print_word::w#0 getFAC::w#1 getFAC::return#0 ]
|
||||||
reg byte a [ print_word::$0 ]
|
reg byte a [ print_word::$0 ]
|
||||||
reg byte a [ print_word::$2 ]
|
reg byte a [ print_word::$2 ]
|
||||||
@ -137,5 +130,3 @@ reg byte a [ print_byte::$3 ]
|
|||||||
reg byte a [ print_byte::$4 ]
|
reg byte a [ print_byte::$4 ]
|
||||||
reg byte a [ prepareMEM::$0 ]
|
reg byte a [ prepareMEM::$0 ]
|
||||||
reg byte a [ prepareMEM::$1 ]
|
reg byte a [ prepareMEM::$1 ]
|
||||||
reg byte a [ setFAC::$0 ]
|
|
||||||
reg byte a [ setFAC::$1 ]
|
|
||||||
|
Loading…
Reference in New Issue
Block a user