summaryrefslogtreecommitdiff
path: root/sdcc-sdcc_z80_boN_baN.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sdcc-sdcc_z80_boN_baN.patch')
-rw-r--r--sdcc-sdcc_z80_boN_baN.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/sdcc-sdcc_z80_boN_baN.patch b/sdcc-sdcc_z80_boN_baN.patch
new file mode 100644
index 0000000..0f8db9e
--- /dev/null
+++ b/sdcc-sdcc_z80_boN_baN.patch
@@ -0,0 +1,50 @@
+diff --git a/src/z80/main.c b/src/z80/main.c
+index c0b2450..ef20082 100644
+--- a/src/z80/main.c
++++ b/src/z80/main.c
+@@ -76,20 +76,22 @@ static char _z80n_defaultRules[] = {
+ #include "peeph-z80.rul"
+ #include "peeph-z80n.rul"
+ };
+
+
+ Z80_OPTS z80_opts;
+
+ static OPTION _z80_options[] = {
+ {0, OPTION_CALLEE_SAVES_BC, &z80_opts.calleeSavesBC, "Force a called function to always save BC"},
+ {0, OPTION_PORTMODE, NULL, "Determine PORT I/O mode (z80/z180)"},
++ {0, OPTION_BO, NULL, "<num> use code bank <num>"},
++ {0, OPTION_BA, NULL, "<num> use data bank <num>"},
+ {0, OPTION_ASM, NULL, "Define assembler name (rgbds/asxxxx/isas/z80asm/gas)"},
+ {0, OPTION_CODE_SEG, &options.code_seg, "<name> use this name for the code segment", CLAT_STRING},
+ {0, OPTION_CONST_SEG, &options.const_seg, "<name> use this name for the const segment", CLAT_STRING},
+ {0, OPTION_DATA_SEG, &options.data_seg, "<name> use this name for the data segment", CLAT_STRING},
+ {0, OPTION_NO_STD_CRT0, &options.no_std_crt0, "For the z80/gbz80 do not link default crt0.rel"},
+ {0, OPTION_RESERVE_IY, &z80_opts.reserveIY, "Do not use IY (incompatible with --fomit-frame-pointer)"},
+ {0, OPTION_OLDRALLOC, &options.oldralloc, "Use old register allocator (deprecated)"},
+ {0, OPTION_FRAMEPOINTER, &z80_opts.noOmitFramePtr, "Do not omit frame pointer"},
+ {0, OPTION_EMIT_EXTERNS, NULL, "Emit externs list in generated asm"},
+ {0, OPTION_LEGACY_BANKING, &z80_opts.legacyBanking, "Use legacy method to call banked functions"},
+@@ -570,21 +572,21 @@ _gbz80_rgblink (void)
+ exit (1);
+ }
+ Safe_free (buffer);
+ }
+
+ static bool
+ _parseOptions (int *pargc, char **argv, int *i)
+ {
+ if (argv[*i][0] == '-')
+ {
+- if (IS_GB)
++ if (IS_GB || IS_Z80)
+ {
+ if (!strncmp (argv[*i], OPTION_BO, sizeof (OPTION_BO) - 1))
+ {
+ /* ROM bank */
+ int bank = getIntArg (OPTION_BO, argv, i, *pargc);
+ struct dbuf_s buffer;
+
+ dbuf_init (&buffer, 16);
+ if (_G.asmType == ASM_TYPE_RGBDS)
+ {