mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-06 13:31:05 +00:00
Added test with working work-around for #717.
This commit is contained in:
parent
1f133e34e9
commit
be69833ff2
@ -20361,3 +20361,94 @@ lda {c1},y
|
||||
sta {z1}
|
||||
lda #0
|
||||
sta {z1}+1
|
||||
//FRAGMENT vwsm1=vwsc1
|
||||
lda #<{c1}
|
||||
sta {m1}
|
||||
lda #>{c1}
|
||||
sta {m1}+1
|
||||
//FRAGMENT vwsm1_lt_vbsc1_then_la1
|
||||
NO_SYNTHESIS
|
||||
//FRAGMENT vwsm1_lt_vwuc1_then_la1
|
||||
lda {m1}+1
|
||||
bmi {la1}
|
||||
cmp #>{c1}
|
||||
bcc {la1}
|
||||
bne !+
|
||||
lda {m1}
|
||||
cmp #<{c1}
|
||||
bcc {la1}
|
||||
!:
|
||||
//FRAGMENT vbum1=_byte_vwsm2
|
||||
lda {m2}
|
||||
sta {m1}
|
||||
//FRAGMENT vbum1=vbum2_rol_1
|
||||
lda {m2}
|
||||
asl
|
||||
sta {m1}
|
||||
//FRAGMENT pwsc1_derefidx_vbum1=vwsm2
|
||||
ldy {m1}
|
||||
lda {m2}
|
||||
sta {c1},y
|
||||
lda {m2}+1
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT vwsm1=_inc_vwsm1
|
||||
inc {m1}
|
||||
bne !+
|
||||
inc {m1}+1
|
||||
!:
|
||||
//FRAGMENT vbuaa=_byte_vwsm1
|
||||
lda {m1}
|
||||
//FRAGMENT vbuxx=_byte_vwsm1
|
||||
lda {m1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=_byte_vwsm1
|
||||
lda {m1}
|
||||
tay
|
||||
//FRAGMENT vbuaa=vbum1_rol_1
|
||||
lda {m1}
|
||||
asl
|
||||
//FRAGMENT vbuxx=vbum1_rol_1
|
||||
lda {m1}
|
||||
asl
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbum1_rol_1
|
||||
lda {m1}
|
||||
asl
|
||||
tay
|
||||
//FRAGMENT vbum1=vbuaa_rol_1
|
||||
asl
|
||||
sta {m1}
|
||||
//FRAGMENT vbum1=vbuxx_rol_1
|
||||
txa
|
||||
asl
|
||||
sta {m1}
|
||||
//FRAGMENT vbum1=vbuyy_rol_1
|
||||
tya
|
||||
asl
|
||||
sta {m1}
|
||||
//FRAGMENT pwsc1_derefidx_vbuaa=vwsm1
|
||||
tay
|
||||
lda {m1}
|
||||
sta {c1},y
|
||||
lda {m1}+1
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwsc1_derefidx_vbuxx=vwsm1
|
||||
lda {m1}
|
||||
sta {c1},x
|
||||
lda {m1}+1
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwsc1_derefidx_vbuyy=vwsm1
|
||||
lda {m1}
|
||||
sta {c1},y
|
||||
lda {m1}+1
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT vbum1=vbuz2_rol_1
|
||||
lda {z2}
|
||||
asl
|
||||
sta {m1}
|
||||
//FRAGMENT pwsc1_derefidx_vbum1=vwsz2
|
||||
ldy {m1}
|
||||
lda {z2}
|
||||
sta {c1},y
|
||||
lda {z2}+1
|
||||
sta {c1}+1,y
|
||||
|
@ -9,6 +9,11 @@ import java.io.IOException;
|
||||
*/
|
||||
public class TestProgramsFast extends TestPrograms {
|
||||
|
||||
@Test
|
||||
public void testStructWithHugeArray() throws IOException {
|
||||
compileAndCompare("struct-with-huge-array.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOldKeywords() throws IOException {
|
||||
compileAndCompare("old-keywords.c");
|
||||
|
13
src/test/kc/struct-with-huge-array.c
Normal file
13
src/test/kc/struct-with-huge-array.c
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma struct_model(classic)
|
||||
|
||||
typedef struct {
|
||||
unsigned char header[282];
|
||||
} bug;
|
||||
|
||||
char * SCREEN = (char*)0x0400;
|
||||
|
||||
void main() {
|
||||
bug b;
|
||||
for(unsigned int i=0;i<sizeof b;i++)
|
||||
SCREEN[i] = b.header[i];
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user