diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /sim/ucsim/tlcs.src/test | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'sim/ucsim/tlcs.src/test')
| -rw-r--r-- | sim/ucsim/tlcs.src/test/Makefile | 11 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/b2385.c | 18 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/b2385.mk | 3 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/conf.cmd | 1 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/dummy.h | 0 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/run.cmd | 2 | ||||
| -rwxr-xr-x | sim/ucsim/tlcs.src/test/run.sh | 7 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/sdcc.mk | 43 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t0.c | 12 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t0.mk | 3 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t1.c | 37 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t1.mk | 3 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t2.c | 36 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t2.mk | 3 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t3.c | 17 | ||||
| -rw-r--r-- | sim/ucsim/tlcs.src/test/t3.mk | 3 |
16 files changed, 199 insertions, 0 deletions
diff --git a/sim/ucsim/tlcs.src/test/Makefile b/sim/ucsim/tlcs.src/test/Makefile new file mode 100644 index 0000000..0db0fb2 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/Makefile @@ -0,0 +1,11 @@ +PRJ = t0 t1 t2 t3 b2385 + +all: + for p in $(PRJ); do \ + $(MAKE) -f $$p.mk ;\ + done + +clean: + for p in $(PRJ); do \ + $(MAKE) -f $$p.mk clean ;\ + done diff --git a/sim/ucsim/tlcs.src/test/b2385.c b/sim/ucsim/tlcs.src/test/b2385.c new file mode 100644 index 0000000..2af8aed --- /dev/null +++ b/sim/ucsim/tlcs.src/test/b2385.c @@ -0,0 +1,18 @@ +struct ts { int a; }; + +typedef struct ts *pts; + +pts s; + +int test(void) +{ + pts ps; + ps= s; + //return ps->a; // GOOD + return (ps= s)->a; // FAIL +} + +void main(void) +{ + test(); +} diff --git a/sim/ucsim/tlcs.src/test/b2385.mk b/sim/ucsim/tlcs.src/test/b2385.mk new file mode 100644 index 0000000..f3c4ba4 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/b2385.mk @@ -0,0 +1,3 @@ +MAIN = b2385 + +include sdcc.mk diff --git a/sim/ucsim/tlcs.src/test/conf.cmd b/sim/ucsim/tlcs.src/test/conf.cmd new file mode 100644 index 0000000..29c9c01 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/conf.cmd @@ -0,0 +1 @@ +set hw simif nas 0x7fff diff --git a/sim/ucsim/tlcs.src/test/dummy.h b/sim/ucsim/tlcs.src/test/dummy.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/dummy.h diff --git a/sim/ucsim/tlcs.src/test/run.cmd b/sim/ucsim/tlcs.src/test/run.cmd new file mode 100644 index 0000000..972da4f --- /dev/null +++ b/sim/ucsim/tlcs.src/test/run.cmd @@ -0,0 +1,2 @@ +run +state diff --git a/sim/ucsim/tlcs.src/test/run.sh b/sim/ucsim/tlcs.src/test/run.sh new file mode 100755 index 0000000..eb223eb --- /dev/null +++ b/sim/ucsim/tlcs.src/test/run.sh @@ -0,0 +1,7 @@ +PRJ=$1 + +if [ -z "$PRJ" ]; then + PRJ=t1 +fi + +../stlcs -C conf.cmd ${PRJ}.ihx <run.cmd diff --git a/sim/ucsim/tlcs.src/test/sdcc.mk b/sim/ucsim/tlcs.src/test/sdcc.mk new file mode 100644 index 0000000..a5470f2 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/sdcc.mk @@ -0,0 +1,43 @@ +TARGET = tlcs90 + +CC = sdcc -m$(TARGET) + +CPPFLAGS = +CFLAGS = --fverbose-asm -DNO_VARARGS --debug +LDFLAGS = +LIBS = + +ALL = $(MAIN) $(OTHERS) +OBJECTS = $(MAIN).rel $(OTHERS:=.rel) + +all: $(MAIN).hex + +dep: $(MAIN).dep + +$(MAIN).dep: $(OBJECTS:.rel=.c) *.h + @>$(MAIN).dep + @for c in $(OBJECTS:.rel=.c); do \ + $(CC) -MM $(CPPFALGS) $$c >>$(MAIN).dep ;\ + done + +include $(MAIN).dep + +$(MAIN).ihx: $(OBJECTS) + $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o $@ + +.SUFFIXES: .rel .ihx .hex + +.c.rel: + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< + +.ihx.hex: + packihx $< >$@ + +clean: + rm -f $(ALL:=.rel) $(ALL:=.asm) $(ALL:=.lst) $(ALL:=.rst) $(ALL:=.sym) $(ALL:=.adb) + rm -f $(MAIN).ihx $(MAIN).hex $(MAIN).lk $(MAIN).map $(MAIN).mem $(MAIN).cdb $(MAIN).omf $(MAIN).noi + rm -f *~ + rm -f $(MAIN).dep + + +# End of sdcc.mk diff --git a/sim/ucsim/tlcs.src/test/t0.c b/sim/ucsim/tlcs.src/test/t0.c new file mode 100644 index 0000000..59cedb3 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t0.c @@ -0,0 +1,12 @@ +static unsigned char * volatile sif= (unsigned char *)0xffff; + +void main(void) +{ + unsigned int i, j; + + for (i=0; i<0x2233; i++) + j= i; + *sif= 's'; + for (;;) + ; +} diff --git a/sim/ucsim/tlcs.src/test/t0.mk b/sim/ucsim/tlcs.src/test/t0.mk new file mode 100644 index 0000000..6f11fe4 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t0.mk @@ -0,0 +1,3 @@ +MAIN = t0 + +include sdcc.mk diff --git a/sim/ucsim/tlcs.src/test/t1.c b/sim/ucsim/tlcs.src/test/t1.c new file mode 100644 index 0000000..071bf52 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t1.c @@ -0,0 +1,37 @@ +static unsigned char * volatile sif= (unsigned char *)0x7fff; + +volatile unsigned char x; + +void +putchar(unsigned char c) +{ + *sif= 'p'; + *sif= c; +} + +void +prints(char *s) +{ + while (*s) + putchar(*s++); +} + +void +main(void) +{ + unsigned char i; + unsigned int j; + + prints("Start.\n"); + for (j= 0; j<41000; j++) + { + x= j; + i= j; + putchar('a'); + } + + prints("Done.\n"); + *sif= 's'; + for (;;) + ; +} diff --git a/sim/ucsim/tlcs.src/test/t1.mk b/sim/ucsim/tlcs.src/test/t1.mk new file mode 100644 index 0000000..dee0618 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t1.mk @@ -0,0 +1,3 @@ +MAIN = t1 + +include sdcc.mk diff --git a/sim/ucsim/tlcs.src/test/t2.c b/sim/ucsim/tlcs.src/test/t2.c new file mode 100644 index 0000000..50debbb --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t2.c @@ -0,0 +1,36 @@ +static unsigned char * volatile sif= (unsigned char *)0xffff; + +volatile unsigned char x; + +void +putchar(unsigned char c) +{ + *sif= 'p'; + *sif= c; +} + +void +prints(char *s) +{ + while (*s) + putchar(*s++); +} + +void +main(void) +{ + unsigned int i; + unsigned int j; + + prints("Start.\n"); + for (j= 0; j<200; j++) + { + for (i= 1000; i; i--) + putchar('a'); + } + + prints("Done.\n"); + *sif= 's'; + for (;;) + ; +} diff --git a/sim/ucsim/tlcs.src/test/t2.mk b/sim/ucsim/tlcs.src/test/t2.mk new file mode 100644 index 0000000..c2dd6e7 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t2.mk @@ -0,0 +1,3 @@ +MAIN = t2 + +include sdcc.mk diff --git a/sim/ucsim/tlcs.src/test/t3.c b/sim/ucsim/tlcs.src/test/t3.c new file mode 100644 index 0000000..9482115 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t3.c @@ -0,0 +1,17 @@ +const unsigned char a[2]= { 0x11, 0x22 }; + +void __fail(char *s) +{ +} + +#define ASSERT(_a) ((_a) ? (void)0 : __fail ("Assertion failed", #_a, __FILE__, __LINE__)) + +volatile unsigned char idx; + +void main(void) +{ + volatile unsigned char c; + idx= 1; + (a[idx]==0x22)?(void)0:__fail("s"); + while (1) ; +} diff --git a/sim/ucsim/tlcs.src/test/t3.mk b/sim/ucsim/tlcs.src/test/t3.mk new file mode 100644 index 0000000..f651106 --- /dev/null +++ b/sim/ucsim/tlcs.src/test/t3.mk @@ -0,0 +1,3 @@ +MAIN = t3 + +include sdcc.mk |
