summaryrefslogtreecommitdiff
path: root/support/regression/ports/rrgbz80
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/ports/rrgbz80
downloadsdcc-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 'support/regression/ports/rrgbz80')
-rw-r--r--support/regression/ports/rrgbz80/spec.mk54
-rw-r--r--support/regression/ports/rrgbz80/support.asm12
2 files changed, 66 insertions, 0 deletions
diff --git a/support/regression/ports/rrgbz80/spec.mk b/support/regression/ports/rrgbz80/spec.mk
new file mode 100644
index 0000000..05cc3df
--- /dev/null
+++ b/support/regression/ports/rrgbz80/spec.mk
@@ -0,0 +1,54 @@
+# Regression test specification for the gbz80 target.
+
+EMU = $(SDCC_EXTRA_DIR)/emu/rrgb/rrgb$(EXEEXT)
+MAKEBIN = $(top_builddir)/bin/makebin$(EXEEXT)
+
+SDCCFLAGS += --nostdinc -I$(top_srcdir)
+LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/gbz80
+
+SDCCFLAGS += -mgbz80 --less-pedantic
+LINKFLAGS += --out-fmt-ihx gbz80.lib
+
+OBJEXT = .rel
+BINEXT = .gb
+
+# otherwise `make` deletes testfwk.rel and `make -j` will fail
+.PRECIOUS: $(PORT_CASES_DIR)/%$(OBJEXT)
+
+# Needs parts of gbdk-lib, namely the internal mul/div/mod functions.
+EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT)
+include $(srcdir)/fwk/lib/spec.mk
+
+# Rule to convert .ihx to .gb
+%$(BINEXT): %.ihx
+ $(MAKEBIN) -Z -yn ABS $< $@
+
+# Rule to link into .ihx
+%.ihx: %$(OBJEXT) $(EXTRAS) $(FWKLIB) $(PORT_CASES_DIR)/fwk.lib
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) $(EXTRAS) $(PORT_CASES_DIR)/fwk.lib $< -o $@
+
+$(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.asm
+ @# TODO: sdas should place it\'s output in the current dir
+ cp $< $(PORT_CASES_DIR)
+ $(top_builddir)/bin/sdasgb -plosgff $(PORT_CASES_DIR)/$(notdir $<)
+ rm $(PORT_CASES_DIR)/$(notdir $<)
+
+%$(OBJEXT): %.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+$(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+$(PORT_CASES_DIR)/%$(OBJEXT): $(srcdir)/fwk/lib/%.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+$(PORT_CASES_DIR)/fwk.lib: $(srcdir)/fwk/lib/fwk.lib
+ cat < $(srcdir)/fwk/lib/fwk.lib > $@
+
+# PENDING: Path to sdcc-extra
+%.out: %$(BINEXT)
+ mkdir -p $(dir $@)
+ $(EMU) -k $< > $@
+ -grep -n FAIL $@ /dev/null || true
+
+_clean:
diff --git a/support/regression/ports/rrgbz80/support.asm b/support/regression/ports/rrgbz80/support.asm
new file mode 100644
index 0000000..c16fa2a
--- /dev/null
+++ b/support/regression/ports/rrgbz80/support.asm
@@ -0,0 +1,12 @@
+ .area _CODE
+ .globl _putchar
+ .globl _exit
+
+__putchar::
+ jp _putchar
+
+__initEmu::
+ ret
+
+__exitEmu::
+ jp _exit