mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-16 18:30:37 +00:00
Updated sinusgen8 test code.
This commit is contained in:
parent
7ece3b172d
commit
e0749c4ac2
@ -131,8 +131,8 @@ public class DirectiveParserContext {
|
||||
// Setup default directives
|
||||
this.defaultDirectives = new ArrayList<>();
|
||||
this.defaultDirectives.add(new Directive.MemoryArea(SymbolVariable.MemoryArea.ZEROPAGE_MEMORY, null));
|
||||
//this.defaultDirectives.add(new Directive.FormSsa(true));
|
||||
//this.defaultDirectives.add(new Directive.Register(true, null));
|
||||
this.defaultDirectives.add(new Directive.FormSsa(true));
|
||||
this.defaultDirectives.add(new Directive.Const(SymbolVariable.ConstantDeclaration.MAYBE_CONST));
|
||||
this.registerImpliesDirectives = new ArrayList<>();
|
||||
this.typeDirectives = new HashMap<>();
|
||||
this.typeDirectives.put(DirectiveType.ARRAY, Arrays.asList(new Directive.Const(SymbolVariable.ConstantDeclaration.CONST), new Directive.MemoryArea(SymbolVariable.MemoryArea.MAIN_MEMORY, null)));
|
||||
|
@ -202,7 +202,6 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
|
||||
ConstantValue constant = getConstant(assignment.getrValue2());
|
||||
if(assignment.getrValue1() == null && assignment.getOperator() == null && constant != null) {
|
||||
constants.put(varRef, new ConstantVariableValue(varRef, constant, assignment));
|
||||
throw new CompileError("Encountered constant variable! " + variable.toString(), statementLValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ public class TestPrograms {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeclaredSsaVar8() throws IOException, URISyntaxException {
|
||||
public void testDeclaredSsaVar0() throws IOException, URISyntaxException {
|
||||
compileAndCompare("declared-ssa-var-0");
|
||||
}
|
||||
|
||||
|
@ -23,9 +23,6 @@ void main() {
|
||||
print_cls();
|
||||
for(byte i: 0..191) {
|
||||
signed byte sb = sintab2[i]-(signed byte)sintabref[i];
|
||||
if(sb>=0) {
|
||||
print_str(" ");
|
||||
}
|
||||
print_sbyte(sb);
|
||||
print_str(" ");
|
||||
}
|
||||
|
@ -11,7 +11,6 @@
|
||||
.label print_char_cursor = 2
|
||||
main: {
|
||||
.label wavelength = $c0
|
||||
.label sb = 4
|
||||
jsr sin8s_gen
|
||||
jsr print_cls
|
||||
lda #<print_line_cursor
|
||||
@ -23,19 +22,8 @@ main: {
|
||||
lda sintab2,x
|
||||
sec
|
||||
sbc sintabref,x
|
||||
sta.z sb
|
||||
bmi __b2
|
||||
lda #<str1
|
||||
sta.z print_str.str
|
||||
lda #>str1
|
||||
sta.z print_str.str+1
|
||||
jsr print_str
|
||||
__b2:
|
||||
sta.z print_sbyte.b
|
||||
jsr print_sbyte
|
||||
lda #<str
|
||||
sta.z print_str.str
|
||||
lda #>str
|
||||
sta.z print_str.str+1
|
||||
jsr print_str
|
||||
inx
|
||||
cpx #$c0
|
||||
@ -43,8 +31,6 @@ main: {
|
||||
rts
|
||||
str: .text " "
|
||||
.byte 0
|
||||
str1: .text " "
|
||||
.byte 0
|
||||
sintab2: .fill $c0, 0
|
||||
// .fill $c0, round(127.5*sin(i*2*PI/$c0))
|
||||
sintabref: .byte 0, 4, 8, $c, $11, $15, $19, $1d, $21, $25, $29, $2d, $31, $35, $38, $3c, $40, $43, $47, $4a, $4e, $51, $54, $57, $5a, $5d, $60, $63, $65, $68, $6a, $6c, $6e, $70, $72, $74, $76, $77, $79, $7a, $7b, $7c, $7d, $7e, $7e, $7f, $7f, $7f, $80, $7f, $7f, $7f, $7e, $7e, $7d, $7c, $7b, $7a, $79, $77, $76, $74, $72, $70, $6e, $6c, $6a, $68, $65, $63, $60, $5d, $5a, $57, $54, $51, $4e, $4a, $47, $43, $40, $3c, $38, $35, $31, $2d, $29, $25, $21, $1d, $19, $15, $11, $c, 8, 4, 0, $fc, $f8, $f4, $ef, $eb, $e7, $e3, $df, $db, $d7, $d3, $cf, $cb, $c8, $c4, $c0, $bd, $b9, $b6, $b2, $af, $ac, $a9, $a6, $a3, $a0, $9d, $9b, $98, $96, $94, $92, $90, $8e, $8c, $8a, $89, $87, $86, $85, $84, $83, $82, $82, $81, $81, $81, $81, $81, $81, $81, $82, $82, $83, $84, $85, $86, $87, $89, $8a, $8c, $8e, $90, $92, $94, $96, $98, $9b, $9d, $a0, $a3, $a6, $a9, $ac, $af, $b2, $b6, $b9, $bd, $c0, $c4, $c8, $cb, $cf, $d3, $d7, $db, $df, $e3, $e7, $eb, $ef, $f4, $f8, $fc
|
||||
@ -53,6 +39,10 @@ main: {
|
||||
// print_str(byte* zeropage(6) str)
|
||||
print_str: {
|
||||
.label str = 6
|
||||
lda #<main.str
|
||||
sta.z str
|
||||
lda #>main.str
|
||||
sta.z str+1
|
||||
__b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
|
@ -12,332 +12,323 @@
|
||||
main: scope:[main] from @1
|
||||
[4] phi()
|
||||
[5] call sin8s_gen
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main
|
||||
[6] phi()
|
||||
[7] call print_cls
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@4 main::@6
|
||||
[8] (byte*) print_char_cursor#45 ← phi( main::@4/(const byte*) print_line_cursor#0 main::@6/(byte*) print_char_cursor#2 )
|
||||
[8] (byte) main::i#2 ← phi( main::@4/(byte) 0 main::@6/(byte) main::i#1 )
|
||||
main::@1: scope:[main] from main::@2 main::@4
|
||||
[8] (byte*) print_char_cursor#42 ← phi( main::@2/(const byte*) print_line_cursor#0 main::@4/(byte*) print_char_cursor#19 )
|
||||
[8] (byte) main::i#2 ← phi( main::@2/(byte) 0 main::@4/(byte) main::i#1 )
|
||||
[9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref + (byte) main::i#2)
|
||||
[10] if((signed byte) main::sb#0<(signed byte) 0) goto main::@2
|
||||
[10] (signed byte) print_sbyte::b#1 ← (signed byte) main::sb#0
|
||||
[11] call print_sbyte
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
[11] phi()
|
||||
[12] call print_str
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1 main::@3
|
||||
[13] (byte*) print_char_cursor#44 ← phi( main::@1/(byte*) print_char_cursor#45 main::@3/(byte*) print_char_cursor#2 )
|
||||
[14] (signed byte) print_sbyte::b#1 ← (signed byte) main::sb#0
|
||||
[15] call print_sbyte
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@2
|
||||
[16] phi()
|
||||
[17] call print_str
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[18] (byte) main::i#1 ← ++ (byte) main::i#2
|
||||
[19] if((byte) main::i#1!=(byte) $c0) goto main::@1
|
||||
[12] phi()
|
||||
[13] call print_str
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[14] (byte) main::i#1 ← ++ (byte) main::i#2
|
||||
[15] if((byte) main::i#1!=(byte) $c0) goto main::@1
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@6
|
||||
[20] return
|
||||
main::@return: scope:[main] from main::@4
|
||||
[16] return
|
||||
to:@return
|
||||
|
||||
(void()) print_str((byte*) print_str::str)
|
||||
print_str: scope:[print_str] from main::@3 main::@5
|
||||
[21] (byte*) print_char_cursor#47 ← phi( main::@3/(byte*) print_char_cursor#45 main::@5/(byte*) print_char_cursor#10 )
|
||||
[21] (byte*) print_str::str#5 ← phi( main::@3/(const string) main::str1 main::@5/(const string) main::str )
|
||||
print_str: scope:[print_str] from main::@3
|
||||
[17] phi()
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[22] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#47 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
[22] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
||||
[23] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
|
||||
[18] (byte*) print_char_cursor#19 ← phi( print_str/(byte*) print_char_cursor#10 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
[18] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
|
||||
[19] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||
to:print_str::@return
|
||||
print_str::@return: scope:[print_str] from print_str::@1
|
||||
[24] return
|
||||
[20] return
|
||||
to:@return
|
||||
print_str::@2: scope:[print_str] from print_str::@1
|
||||
[25] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#3)
|
||||
[26] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2
|
||||
[27] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3
|
||||
[21] *((byte*) print_char_cursor#19) ← *((byte*) print_str::str#2)
|
||||
[22] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#19
|
||||
[23] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#2
|
||||
to:print_str::@1
|
||||
|
||||
(void()) print_sbyte((signed byte) print_sbyte::b)
|
||||
print_sbyte: scope:[print_sbyte] from main::@2
|
||||
[28] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
|
||||
print_sbyte: scope:[print_sbyte] from main::@1
|
||||
[24] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
|
||||
to:print_sbyte::@3
|
||||
print_sbyte::@3: scope:[print_sbyte] from print_sbyte
|
||||
[29] phi()
|
||||
[30] call print_char
|
||||
[25] phi()
|
||||
[26] call print_char
|
||||
to:print_sbyte::@2
|
||||
print_sbyte::@2: scope:[print_sbyte] from print_sbyte::@3 print_sbyte::@4
|
||||
[31] (signed byte) print_sbyte::b#4 ← phi( print_sbyte::@4/(signed byte) print_sbyte::b#0 print_sbyte::@3/(signed byte) print_sbyte::b#1 )
|
||||
[32] (byte) print_byte::b#0 ← (byte)(signed byte) print_sbyte::b#4
|
||||
[33] call print_byte
|
||||
[27] (signed byte) print_sbyte::b#4 ← phi( print_sbyte::@4/(signed byte) print_sbyte::b#0 print_sbyte::@3/(signed byte) print_sbyte::b#1 )
|
||||
[28] (byte) print_byte::b#0 ← (byte)(signed byte) print_sbyte::b#4
|
||||
[29] call print_byte
|
||||
to:print_sbyte::@return
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@2
|
||||
[34] return
|
||||
[30] return
|
||||
to:@return
|
||||
print_sbyte::@1: scope:[print_sbyte] from print_sbyte
|
||||
[35] phi()
|
||||
[36] call print_char
|
||||
[31] phi()
|
||||
[32] call print_char
|
||||
to:print_sbyte::@4
|
||||
print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@1
|
||||
[37] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1
|
||||
[33] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1
|
||||
to:print_sbyte::@2
|
||||
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 print_sbyte::@3
|
||||
[38] (byte*) print_char_cursor#29 ← phi( print_byte/(byte*) print_char_cursor#10 print_byte::@1/(byte*) print_char_cursor#10 print_sbyte::@1/(byte*) print_char_cursor#44 print_sbyte::@3/(byte*) print_char_cursor#44 )
|
||||
[38] (byte) print_char::ch#4 ← phi( print_byte/(byte) print_char::ch#2 print_byte::@1/(byte) print_char::ch#3 print_sbyte::@1/(byte) '-' print_sbyte::@3/(byte) ' ' )
|
||||
[39] *((byte*) print_char_cursor#29) ← (byte) print_char::ch#4
|
||||
[40] (byte*) print_char_cursor#10 ← ++ (byte*) print_char_cursor#29
|
||||
[34] (byte*) print_char_cursor#28 ← phi( print_byte/(byte*) print_char_cursor#10 print_byte::@1/(byte*) print_char_cursor#10 print_sbyte::@1/(byte*) print_char_cursor#42 print_sbyte::@3/(byte*) print_char_cursor#42 )
|
||||
[34] (byte) print_char::ch#4 ← phi( print_byte/(byte) print_char::ch#2 print_byte::@1/(byte) print_char::ch#3 print_sbyte::@1/(byte) '-' print_sbyte::@3/(byte) ' ' )
|
||||
[35] *((byte*) print_char_cursor#28) ← (byte) print_char::ch#4
|
||||
[36] (byte*) print_char_cursor#10 ← ++ (byte*) print_char_cursor#28
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[41] return
|
||||
[37] return
|
||||
to:@return
|
||||
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
print_byte: scope:[print_byte] from print_sbyte::@2
|
||||
[42] (byte~) print_byte::$0 ← (byte) print_byte::b#0 >> (byte) 4
|
||||
[43] (byte) print_char::ch#2 ← *((const byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
[44] call print_char
|
||||
[38] (byte~) print_byte::$0 ← (byte) print_byte::b#0 >> (byte) 4
|
||||
[39] (byte) print_char::ch#2 ← *((const byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
[40] call print_char
|
||||
to:print_byte::@1
|
||||
print_byte::@1: scope:[print_byte] from print_byte
|
||||
[45] (byte~) print_byte::$2 ← (byte) print_byte::b#0 & (byte) $f
|
||||
[46] (byte) print_char::ch#3 ← *((const byte[]) print_hextab + (byte~) print_byte::$2)
|
||||
[47] call print_char
|
||||
[41] (byte~) print_byte::$2 ← (byte) print_byte::b#0 & (byte) $f
|
||||
[42] (byte) print_char::ch#3 ← *((const byte[]) print_hextab + (byte~) print_byte::$2)
|
||||
[43] call print_char
|
||||
to:print_byte::@return
|
||||
print_byte::@return: scope:[print_byte] from print_byte::@1
|
||||
[48] return
|
||||
[44] return
|
||||
to:@return
|
||||
|
||||
(void()) print_cls()
|
||||
print_cls: scope:[print_cls] from main::@4
|
||||
[49] phi()
|
||||
[50] call memset
|
||||
print_cls: scope:[print_cls] from main::@2
|
||||
[45] phi()
|
||||
[46] call memset
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls
|
||||
[51] return
|
||||
[47] return
|
||||
to:@return
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from print_cls
|
||||
[52] phi()
|
||||
[48] phi()
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset memset::@2
|
||||
[53] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[54] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
[49] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[50] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@1
|
||||
[55] return
|
||||
[51] return
|
||||
to:@return
|
||||
memset::@2: scope:[memset] from memset::@1
|
||||
[56] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[57] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
[52] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[53] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@1
|
||||
|
||||
(void()) sin8s_gen((signed byte*) sin8s_gen::sintab , (word) sin8s_gen::wavelength)
|
||||
sin8s_gen: scope:[sin8s_gen] from main
|
||||
[58] phi()
|
||||
[59] call div16u
|
||||
[60] (word) div16u::return#2 ← (word) div16u::return#0
|
||||
[54] phi()
|
||||
[55] call div16u
|
||||
[56] (word) div16u::return#2 ← (word) div16u::return#0
|
||||
to:sin8s_gen::@3
|
||||
sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen
|
||||
[61] (word) sin8s_gen::step#0 ← (word) div16u::return#2
|
||||
[57] (word) sin8s_gen::step#0 ← (word) div16u::return#2
|
||||
to:sin8s_gen::@1
|
||||
sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4
|
||||
[62] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintab2 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 )
|
||||
[62] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 )
|
||||
[62] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 )
|
||||
[63] if((word) sin8s_gen::i#2<(const word) main::wavelength) goto sin8s_gen::@2
|
||||
[58] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintab2 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 )
|
||||
[58] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 )
|
||||
[58] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 )
|
||||
[59] if((word) sin8s_gen::i#2<(const word) main::wavelength) goto sin8s_gen::@2
|
||||
to:sin8s_gen::@return
|
||||
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
[64] return
|
||||
[60] return
|
||||
to:@return
|
||||
sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
[65] (word) sin8s::x#0 ← (word) sin8s_gen::x#2
|
||||
[66] call sin8s
|
||||
[67] (signed byte) sin8s::return#0 ← (signed byte) sin8s::return#1
|
||||
[61] (word) sin8s::x#0 ← (word) sin8s_gen::x#2
|
||||
[62] call sin8s
|
||||
[63] (signed byte) sin8s::return#0 ← (signed byte) sin8s::return#1
|
||||
to:sin8s_gen::@4
|
||||
sin8s_gen::@4: scope:[sin8s_gen] from sin8s_gen::@2
|
||||
[68] (signed byte~) sin8s_gen::$2 ← (signed byte) sin8s::return#0
|
||||
[69] *((signed byte*) sin8s_gen::sintab#2) ← (signed byte~) sin8s_gen::$2
|
||||
[70] (signed byte*) sin8s_gen::sintab#0 ← ++ (signed byte*) sin8s_gen::sintab#2
|
||||
[71] (word) sin8s_gen::x#1 ← (word) sin8s_gen::x#2 + (word) sin8s_gen::step#0
|
||||
[72] (word) sin8s_gen::i#1 ← ++ (word) sin8s_gen::i#2
|
||||
[64] (signed byte~) sin8s_gen::$2 ← (signed byte) sin8s::return#0
|
||||
[65] *((signed byte*) sin8s_gen::sintab#2) ← (signed byte~) sin8s_gen::$2
|
||||
[66] (signed byte*) sin8s_gen::sintab#0 ← ++ (signed byte*) sin8s_gen::sintab#2
|
||||
[67] (word) sin8s_gen::x#1 ← (word) sin8s_gen::x#2 + (word) sin8s_gen::step#0
|
||||
[68] (word) sin8s_gen::i#1 ← ++ (word) sin8s_gen::i#2
|
||||
to:sin8s_gen::@1
|
||||
|
||||
(signed byte()) sin8s((word) sin8s::x)
|
||||
sin8s: scope:[sin8s] from sin8s_gen::@2
|
||||
[73] if((word) sin8s::x#0<(const word) PI_u4f12) goto sin8s::@1
|
||||
[69] if((word) sin8s::x#0<(const word) PI_u4f12) goto sin8s::@1
|
||||
to:sin8s::@5
|
||||
sin8s::@5: scope:[sin8s] from sin8s
|
||||
[74] (word) sin8s::x#1 ← (word) sin8s::x#0 - (const word) PI_u4f12
|
||||
[70] (word) sin8s::x#1 ← (word) sin8s::x#0 - (const word) PI_u4f12
|
||||
to:sin8s::@1
|
||||
sin8s::@1: scope:[sin8s] from sin8s sin8s::@5
|
||||
[75] (byte) sin8s::isUpper#10 ← phi( sin8s/(byte) 0 sin8s::@5/(byte) 1 )
|
||||
[75] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#0 sin8s::@5/(word) sin8s::x#1 )
|
||||
[76] if((word) sin8s::x#4<(const word) PI_HALF_u4f12) goto sin8s::@2
|
||||
[71] (byte) sin8s::isUpper#10 ← phi( sin8s/(byte) 0 sin8s::@5/(byte) 1 )
|
||||
[71] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#0 sin8s::@5/(word) sin8s::x#1 )
|
||||
[72] if((word) sin8s::x#4<(const word) PI_HALF_u4f12) goto sin8s::@2
|
||||
to:sin8s::@6
|
||||
sin8s::@6: scope:[sin8s] from sin8s::@1
|
||||
[77] (word) sin8s::x#2 ← (const word) PI_u4f12 - (word) sin8s::x#4
|
||||
[73] (word) sin8s::x#2 ← (const word) PI_u4f12 - (word) sin8s::x#4
|
||||
to:sin8s::@2
|
||||
sin8s::@2: scope:[sin8s] from sin8s::@1 sin8s::@6
|
||||
[78] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@6/(word) sin8s::x#2 )
|
||||
[79] (word~) sin8s::$4 ← (word) sin8s::x#6 << (byte) 3
|
||||
[80] (byte) sin8s::x1#0 ← > (word~) sin8s::$4
|
||||
[81] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0
|
||||
[82] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0
|
||||
[83] call mulu8_sel
|
||||
[84] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12
|
||||
[74] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@6/(word) sin8s::x#2 )
|
||||
[75] (word~) sin8s::$4 ← (word) sin8s::x#6 << (byte) 3
|
||||
[76] (byte) sin8s::x1#0 ← > (word~) sin8s::$4
|
||||
[77] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0
|
||||
[78] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0
|
||||
[79] call mulu8_sel
|
||||
[80] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12
|
||||
to:sin8s::@9
|
||||
sin8s::@9: scope:[sin8s] from sin8s::@2
|
||||
[85] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0
|
||||
[86] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0
|
||||
[87] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0
|
||||
[88] call mulu8_sel
|
||||
[89] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12
|
||||
[81] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0
|
||||
[82] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0
|
||||
[83] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0
|
||||
[84] call mulu8_sel
|
||||
[85] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12
|
||||
to:sin8s::@10
|
||||
sin8s::@10: scope:[sin8s] from sin8s::@9
|
||||
[90] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1
|
||||
[91] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0
|
||||
[92] call mulu8_sel
|
||||
[93] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12
|
||||
[86] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1
|
||||
[87] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0
|
||||
[88] call mulu8_sel
|
||||
[89] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12
|
||||
to:sin8s::@11
|
||||
sin8s::@11: scope:[sin8s] from sin8s::@10
|
||||
[94] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2
|
||||
[95] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0
|
||||
[96] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0
|
||||
[97] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0
|
||||
[98] call mulu8_sel
|
||||
[99] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12
|
||||
[90] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2
|
||||
[91] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0
|
||||
[92] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0
|
||||
[93] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0
|
||||
[94] call mulu8_sel
|
||||
[95] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12
|
||||
to:sin8s::@12
|
||||
sin8s::@12: scope:[sin8s] from sin8s::@11
|
||||
[100] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10
|
||||
[101] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0
|
||||
[102] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0
|
||||
[103] call mulu8_sel
|
||||
[104] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12
|
||||
[96] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10
|
||||
[97] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0
|
||||
[98] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0
|
||||
[99] call mulu8_sel
|
||||
[100] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12
|
||||
to:sin8s::@13
|
||||
sin8s::@13: scope:[sin8s] from sin8s::@12
|
||||
[105] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11
|
||||
[106] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte) 4
|
||||
[107] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0
|
||||
[108] if((byte) sin8s::usinx#1<(byte) $80) goto sin8s::@3
|
||||
[101] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11
|
||||
[102] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte) 4
|
||||
[103] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0
|
||||
[104] if((byte) sin8s::usinx#1<(byte) $80) goto sin8s::@3
|
||||
to:sin8s::@7
|
||||
sin8s::@7: scope:[sin8s] from sin8s::@13
|
||||
[109] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1
|
||||
[105] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1
|
||||
to:sin8s::@3
|
||||
sin8s::@3: scope:[sin8s] from sin8s::@13 sin8s::@7
|
||||
[110] (byte) sin8s::usinx#4 ← phi( sin8s::@13/(byte) sin8s::usinx#1 sin8s::@7/(byte) sin8s::usinx#2 )
|
||||
[111] if((byte) sin8s::isUpper#10==(byte) 0) goto sin8s::@14
|
||||
[106] (byte) sin8s::usinx#4 ← phi( sin8s::@13/(byte) sin8s::usinx#1 sin8s::@7/(byte) sin8s::usinx#2 )
|
||||
[107] if((byte) sin8s::isUpper#10==(byte) 0) goto sin8s::@14
|
||||
to:sin8s::@8
|
||||
sin8s::@8: scope:[sin8s] from sin8s::@3
|
||||
[112] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4
|
||||
[108] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4
|
||||
to:sin8s::@4
|
||||
sin8s::@4: scope:[sin8s] from sin8s::@14 sin8s::@8
|
||||
[113] (signed byte) sin8s::return#1 ← phi( sin8s::@14/(signed byte~) sin8s::return#5 sin8s::@8/(signed byte) sin8s::sinx#1 )
|
||||
[109] (signed byte) sin8s::return#1 ← phi( sin8s::@14/(signed byte~) sin8s::return#5 sin8s::@8/(signed byte) sin8s::sinx#1 )
|
||||
to:sin8s::@return
|
||||
sin8s::@return: scope:[sin8s] from sin8s::@4
|
||||
[114] return
|
||||
[110] return
|
||||
to:@return
|
||||
sin8s::@14: scope:[sin8s] from sin8s::@3
|
||||
[115] (signed byte~) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#4
|
||||
[111] (signed byte~) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#4
|
||||
to:sin8s::@4
|
||||
|
||||
(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select)
|
||||
mulu8_sel: scope:[mulu8_sel] from sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@2 sin8s::@9
|
||||
[116] (byte) mulu8_sel::select#5 ← phi( sin8s::@9/(byte) 1 sin8s::@10/(byte) 1 sin8s::@11/(byte) 0 sin8s::@12/(byte) 0 sin8s::@2/(byte) 0 )
|
||||
[116] (byte) mulu8_sel::v2#5 ← phi( sin8s::@9/(byte) mulu8_sel::v2#1 sin8s::@10/(const byte) sin8s::DIV_6 sin8s::@11/(byte) mulu8_sel::v2#3 sin8s::@12/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 )
|
||||
[116] (byte) mulu8_sel::v1#5 ← phi( sin8s::@9/(byte) mulu8_sel::v1#1 sin8s::@10/(byte) mulu8_sel::v1#2 sin8s::@11/(byte) mulu8_sel::v1#3 sin8s::@12/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 )
|
||||
[117] (byte) mul8u::a#1 ← (byte) mulu8_sel::v1#5
|
||||
[118] (byte) mul8u::b#0 ← (byte) mulu8_sel::v2#5
|
||||
[119] call mul8u
|
||||
[120] (word) mul8u::return#2 ← (word) mul8u::res#2
|
||||
[112] (byte) mulu8_sel::select#5 ← phi( sin8s::@9/(byte) 1 sin8s::@10/(byte) 1 sin8s::@11/(byte) 0 sin8s::@12/(byte) 0 sin8s::@2/(byte) 0 )
|
||||
[112] (byte) mulu8_sel::v2#5 ← phi( sin8s::@9/(byte) mulu8_sel::v2#1 sin8s::@10/(const byte) sin8s::DIV_6 sin8s::@11/(byte) mulu8_sel::v2#3 sin8s::@12/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 )
|
||||
[112] (byte) mulu8_sel::v1#5 ← phi( sin8s::@9/(byte) mulu8_sel::v1#1 sin8s::@10/(byte) mulu8_sel::v1#2 sin8s::@11/(byte) mulu8_sel::v1#3 sin8s::@12/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 )
|
||||
[113] (byte) mul8u::a#1 ← (byte) mulu8_sel::v1#5
|
||||
[114] (byte) mul8u::b#0 ← (byte) mulu8_sel::v2#5
|
||||
[115] call mul8u
|
||||
[116] (word) mul8u::return#2 ← (word) mul8u::res#2
|
||||
to:mulu8_sel::@1
|
||||
mulu8_sel::@1: scope:[mulu8_sel] from mulu8_sel
|
||||
[121] (word~) mulu8_sel::$0 ← (word) mul8u::return#2
|
||||
[122] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5
|
||||
[123] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1
|
||||
[117] (word~) mulu8_sel::$0 ← (word) mul8u::return#2
|
||||
[118] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5
|
||||
[119] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1
|
||||
to:mulu8_sel::@return
|
||||
mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@1
|
||||
[124] return
|
||||
[120] return
|
||||
to:@return
|
||||
|
||||
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
||||
mul8u: scope:[mul8u] from mulu8_sel
|
||||
[125] phi()
|
||||
[121] phi()
|
||||
to:mul8u::@1
|
||||
mul8u::@1: scope:[mul8u] from mul8u mul8u::@3
|
||||
[126] (word) mul8u::mb#2 ← phi( mul8u/(byte) mul8u::b#0 mul8u::@3/(word) mul8u::mb#1 )
|
||||
[126] (word) mul8u::res#2 ← phi( mul8u/(byte) 0 mul8u::@3/(word) mul8u::res#6 )
|
||||
[126] (byte) mul8u::a#2 ← phi( mul8u/(byte) mul8u::a#1 mul8u::@3/(byte) mul8u::a#0 )
|
||||
[127] if((byte) mul8u::a#2!=(byte) 0) goto mul8u::@2
|
||||
[122] (word) mul8u::mb#2 ← phi( mul8u/(byte) mul8u::b#0 mul8u::@3/(word) mul8u::mb#1 )
|
||||
[122] (word) mul8u::res#2 ← phi( mul8u/(byte) 0 mul8u::@3/(word) mul8u::res#6 )
|
||||
[122] (byte) mul8u::a#2 ← phi( mul8u/(byte) mul8u::a#1 mul8u::@3/(byte) mul8u::a#0 )
|
||||
[123] if((byte) mul8u::a#2!=(byte) 0) goto mul8u::@2
|
||||
to:mul8u::@return
|
||||
mul8u::@return: scope:[mul8u] from mul8u::@1
|
||||
[128] return
|
||||
[124] return
|
||||
to:@return
|
||||
mul8u::@2: scope:[mul8u] from mul8u::@1
|
||||
[129] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte) 1
|
||||
[130] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@3
|
||||
[125] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte) 1
|
||||
[126] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@3
|
||||
to:mul8u::@4
|
||||
mul8u::@4: scope:[mul8u] from mul8u::@2
|
||||
[131] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
|
||||
[127] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
|
||||
to:mul8u::@3
|
||||
mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4
|
||||
[132] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 )
|
||||
[133] (byte) mul8u::a#0 ← (byte) mul8u::a#2 >> (byte) 1
|
||||
[134] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte) 1
|
||||
[128] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 )
|
||||
[129] (byte) mul8u::a#0 ← (byte) mul8u::a#2 >> (byte) 1
|
||||
[130] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte) 1
|
||||
to:mul8u::@1
|
||||
|
||||
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
||||
div16u: scope:[div16u] from sin8s_gen
|
||||
[135] phi()
|
||||
[136] call divr16u
|
||||
[137] (word) divr16u::return#2 ← (word) divr16u::return#0
|
||||
[131] phi()
|
||||
[132] call divr16u
|
||||
[133] (word) divr16u::return#2 ← (word) divr16u::return#0
|
||||
to:div16u::@1
|
||||
div16u::@1: scope:[div16u] from div16u
|
||||
[138] (word) div16u::return#0 ← (word) divr16u::return#2
|
||||
[134] (word) div16u::return#0 ← (word) divr16u::return#2
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u::@1
|
||||
[139] return
|
||||
[135] return
|
||||
to:@return
|
||||
|
||||
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
divr16u: scope:[divr16u] from div16u
|
||||
[140] phi()
|
||||
[136] phi()
|
||||
to:divr16u::@1
|
||||
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
||||
[141] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
|
||||
[141] (word) divr16u::quotient#3 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::return#0 )
|
||||
[141] (word) divr16u::dividend#2 ← phi( divr16u/(const word) PI2_u4f12 divr16u::@3/(word) divr16u::dividend#0 )
|
||||
[141] (word) divr16u::rem#4 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::rem#9 )
|
||||
[142] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte) 1
|
||||
[143] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
||||
[144] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
|
||||
[145] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
|
||||
[137] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
|
||||
[137] (word) divr16u::quotient#3 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::return#0 )
|
||||
[137] (word) divr16u::dividend#2 ← phi( divr16u/(const word) PI2_u4f12 divr16u::@3/(word) divr16u::dividend#0 )
|
||||
[137] (word) divr16u::rem#4 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::rem#9 )
|
||||
[138] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte) 1
|
||||
[139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
||||
[140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
|
||||
[141] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
|
||||
to:divr16u::@4
|
||||
divr16u::@4: scope:[divr16u] from divr16u::@1
|
||||
[146] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
|
||||
[142] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
|
||||
to:divr16u::@2
|
||||
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
||||
[147] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
||||
[148] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte) 1
|
||||
[149] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
|
||||
[150] if((word) divr16u::rem#5<(const word) main::wavelength) goto divr16u::@3
|
||||
[143] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
||||
[144] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte) 1
|
||||
[145] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
|
||||
[146] if((word) divr16u::rem#5<(const word) main::wavelength) goto divr16u::@3
|
||||
to:divr16u::@5
|
||||
divr16u::@5: scope:[divr16u] from divr16u::@2
|
||||
[151] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
|
||||
[152] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::wavelength
|
||||
[147] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
|
||||
[148] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::wavelength
|
||||
to:divr16u::@3
|
||||
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
||||
[153] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
||||
[153] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
||||
[154] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
|
||||
[155] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
|
||||
[149] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
||||
[149] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
||||
[150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
|
||||
[151] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
|
||||
to:divr16u::@return
|
||||
divr16u::@return: scope:[divr16u] from divr16u::@3
|
||||
[156] return
|
||||
[152] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -51,18 +51,15 @@
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@return
|
||||
(byte) main::i
|
||||
(byte) main::i#1 reg byte x 16.5
|
||||
(byte) main::i#2 reg byte x 3.3000000000000003
|
||||
(byte) main::i#2 reg byte x 5.5
|
||||
(signed byte) main::sb
|
||||
(signed byte) main::sb#0 sb zp[1]:4 6.6000000000000005
|
||||
(signed byte) main::sb#0 reg byte a 22.0
|
||||
(const signed byte[$c0]) main::sintab2 = { fill( $c0, 0) }
|
||||
(const byte[]) main::sintabref = { (byte) 0, (byte) 4, (byte) 8, (byte) $c, (byte) $11, (byte) $15, (byte) $19, (byte) $1d, (byte) $21, (byte) $25, (byte) $29, (byte) $2d, (byte) $31, (byte) $35, (byte) $38, (byte) $3c, (byte) $40, (byte) $43, (byte) $47, (byte) $4a, (byte) $4e, (byte) $51, (byte) $54, (byte) $57, (byte) $5a, (byte) $5d, (byte) $60, (byte) $63, (byte) $65, (byte) $68, (byte) $6a, (byte) $6c, (byte) $6e, (byte) $70, (byte) $72, (byte) $74, (byte) $76, (byte) $77, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7c, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7c, (byte) $7b, (byte) $7a, (byte) $79, (byte) $77, (byte) $76, (byte) $74, (byte) $72, (byte) $70, (byte) $6e, (byte) $6c, (byte) $6a, (byte) $68, (byte) $65, (byte) $63, (byte) $60, (byte) $5d, (byte) $5a, (byte) $57, (byte) $54, (byte) $51, (byte) $4e, (byte) $4a, (byte) $47, (byte) $43, (byte) $40, (byte) $3c, (byte) $38, (byte) $35, (byte) $31, (byte) $2d, (byte) $29, (byte) $25, (byte) $21, (byte) $1d, (byte) $19, (byte) $15, (byte) $11, (byte) $c, (byte) 8, (byte) 4, (byte) 0, (byte) $fc, (byte) $f8, (byte) $f4, (byte) $ef, (byte) $eb, (byte) $e7, (byte) $e3, (byte) $df, (byte) $db, (byte) $d7, (byte) $d3, (byte) $cf, (byte) $cb, (byte) $c8, (byte) $c4, (byte) $c0, (byte) $bd, (byte) $b9, (byte) $b6, (byte) $b2, (byte) $af, (byte) $ac, (byte) $a9, (byte) $a6, (byte) $a3, (byte) $a0, (byte) $9d, (byte) $9b, (byte) $98, (byte) $96, (byte) $94, (byte) $92, (byte) $90, (byte) $8e, (byte) $8c, (byte) $8a, (byte) $89, (byte) $87, (byte) $86, (byte) $85, (byte) $84, (byte) $83, (byte) $82, (byte) $82, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $82, (byte) $82, (byte) $83, (byte) $84, (byte) $85, (byte) $86, (byte) $87, (byte) $89, (byte) $8a, (byte) $8c, (byte) $8e, (byte) $90, (byte) $92, (byte) $94, (byte) $96, (byte) $98, (byte) $9b, (byte) $9d, (byte) $a0, (byte) $a3, (byte) $a6, (byte) $a9, (byte) $ac, (byte) $af, (byte) $b2, (byte) $b6, (byte) $b9, (byte) $bd, (byte) $c0, (byte) $c4, (byte) $c8, (byte) $cb, (byte) $cf, (byte) $d3, (byte) $d7, (byte) $db, (byte) $df, (byte) $e3, (byte) $e7, (byte) $eb, (byte) $ef, (byte) $f4, (byte) $f8, (byte) $fc }
|
||||
(const string) main::str = (string) " "
|
||||
(const string) main::str1 = (string) " "
|
||||
(const word) main::wavelength = (byte) $c0
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
@ -144,12 +141,10 @@
|
||||
(byte) print_char::ch#4 reg byte a 6.0
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp[2]:2 101.0
|
||||
(byte*) print_char_cursor#10 print_char_cursor zp[2]:2 0.9444444444444446
|
||||
(byte*) print_char_cursor#2 print_char_cursor zp[2]:2 40.875
|
||||
(byte*) print_char_cursor#29 print_char_cursor zp[2]:2 6.0
|
||||
(byte*) print_char_cursor#44 print_char_cursor zp[2]:2 5.200000000000001
|
||||
(byte*) print_char_cursor#45 print_char_cursor zp[2]:2 8.25
|
||||
(byte*) print_char_cursor#47 print_char_cursor zp[2]:2 24.0
|
||||
(byte*) print_char_cursor#10 print_char_cursor zp[2]:2 0.42105263157894735
|
||||
(byte*) print_char_cursor#19 print_char_cursor zp[2]:2 45.142857142857146
|
||||
(byte*) print_char_cursor#28 print_char_cursor zp[2]:2 6.0
|
||||
(byte*) print_char_cursor#42 print_char_cursor zp[2]:2 2.5
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@return
|
||||
(const byte[]) print_hextab = (string) "0123456789abcdef"z
|
||||
@ -172,8 +167,7 @@
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp[2]:6 202.0
|
||||
(byte*) print_str::str#3 str zp[2]:6 101.5
|
||||
(byte*) print_str::str#5 str zp[2]:6 2.0
|
||||
(byte*) print_str::str#2 str zp[2]:6 101.0
|
||||
(signed byte()) sin8s((word) sin8s::x)
|
||||
(word~) sin8s::$4 zp[2]:6 4.0
|
||||
(label) sin8s::@1
|
||||
@ -247,21 +241,22 @@
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
|
||||
zp[2]:2 [ sin8s_gen::i#2 sin8s_gen::i#1 print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ]
|
||||
zp[1]:4 [ sin8s::isUpper#10 print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 main::sb#0 print_byte::b#0 ]
|
||||
zp[2]:2 [ sin8s_gen::i#2 sin8s_gen::i#1 print_char_cursor#28 print_char_cursor#42 print_char_cursor#19 print_char_cursor#10 print_char_cursor#1 ]
|
||||
zp[1]:4 [ sin8s::isUpper#10 print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 print_byte::b#0 ]
|
||||
reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ]
|
||||
reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ]
|
||||
reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ]
|
||||
reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ]
|
||||
zp[1]:5 [ mulu8_sel::select#5 ]
|
||||
reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ]
|
||||
zp[2]:6 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$4 memset::dst#2 memset::dst#1 print_str::str#3 print_str::str#5 print_str::str#0 ]
|
||||
zp[2]:6 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$4 memset::dst#2 memset::dst#1 print_str::str#2 print_str::str#0 ]
|
||||
zp[2]:8 [ mul8u::mb#2 mul8u::mb#1 ]
|
||||
reg byte a [ mul8u::b#0 ]
|
||||
zp[2]:10 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 sin8s_gen::x#2 sin8s_gen::x#1 ]
|
||||
zp[2]:12 [ divr16u::dividend#2 divr16u::dividend#0 sin8s_gen::sintab#2 sin8s_gen::sintab#0 ]
|
||||
zp[2]:14 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8s_gen::step#0 div16u::return#0 ]
|
||||
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
||||
reg byte a [ main::sb#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ sin8s::return#0 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user