prog8/todo2.ill
2018-02-08 21:10:52 +01:00

112 lines
2.7 KiB
Plaintext

%output basic
%import c64lib
~ main {
var .byte v1t = true
var .byte v1f = false
var .word v2t = true
var .word v2f = false
var .float v3t = true
var .float v3f = false
var .text v4t = true
var .text v4f = false
var .array(3) v5t = true
var .array(3) v5f = false
var .array(10) v6t = true
var .array(10) v6f = false
var .wordarray(3) v7t = true
var .wordarray(3) v7f = false
var .wordarray(10) v8t = true
var .wordarray(10) v8f = false
var .matrix(2,2) v9t = true
var .matrix(2,2) v9f = false
var .matrix(5,5) v10t = true
var .matrix(5,5) v10f = false
const .byte c1t=true
const .byte c1f=false
const .word c2t=true
const .word c2f=false
const .float c3t=true
const .float c3f=false
memory border = $d020
start:
%breakpoint abc,def
X += border
XY += border ; @todo .word augassign register
XY -= 1234+333 ; @todo .word augassign register
A += [c2f]
AY += [c2f]
AY += [XY]
XY+=255
XY+=254
XY+=253
XY-=255
XY-=254
XY-=253
v3t++
v3t+=1
v3t+=1 ; @todo? (optimize) join with previous
v3t+=0 ; is removed.
v3t+=1 ; @todo? (optimize) join with previous
v3t+=1 ; @todo? (optimize) join with previous
v3t=2.23424 ; @todo store as constant float with generated name, replace value node
v3t=2.23411 ; @todo store as constant float with generated name, replace value node
v3t=1.23411 + 1; @todo store as constant float with generated name, replace value node
v3t+=2.23424 ; @todo store as constant float with generated name, replace value node
v3t+=2.23424 ; @todo store as constant float with generated name, replace value node
v3t+=2.23411 ; @todo store as constant float with generated name, replace value node
v3t+=2.23411 ; @todo store as constant float with generated name, replace value node
v3t=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
XY*=2
XY*=3
X=3 ; @todo optimize consecutive assignments
X=4
X=5
X=A=6
A=X=6
X=A=6
X=A=9
X=A=10
v3t=1 ; @todo optimize consecutive assignments
v3t=2
v3t=3
border = 0 ; @todo do not optimize consecucutive assignments to a memory var
border = 1
border = 2
XY=XY/0 ; @todo zerodiv (during expression to code generation)
XY=XY//0 ; @todo zerodiv (during expression to code generation)
XY*=2.23424 ; @todo store as constant float with generated name, replace value node
XY*=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
v3t*=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
A++
X--
A+=1
X-=2
[AX]++
[AX .byte]++
[AX .word]++
[AX .float]++
[$ccc0]++
[$ccc0 .byte]++
[$ccc0 .word]++
[$ccc0 .float]++
A+=2
A+=3
XY+=6
XY+=222
XY+=666
return 44
}