1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-09 18:29:36 +00:00
kickc/src/test/ref/deref-to-derefidx-2.asm
2019-04-20 22:12:56 +02:00

39 lines
662 B
NASM

// Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.label SCREEN = $400
.label screen_idx = 4
main: {
lda #0
sta screen_idx
lda #<msg1
sta print.m
lda #>msg1
sta print.m+1
jsr print
lda #<msg2
sta print.m
lda #>msg2
sta print.m+1
jsr print
rts
}
// print(byte* zeropage(2) m)
print: {
.label m = 2
lda screen_idx
asl
ldy #2
tax
lda (m),y
sta SCREEN,y
iny
lda (m),y
sta SCREEN+1,y
inc screen_idx
rts
}
msg1: .byte 'a', 'b', 'c', 'd'
msg2: .byte '1', '2', '3', '4'