From 7c4ae5853b472f0a2bb1dd049a818ab8346c5cff Mon Sep 17 00:00:00 2001 From: Xavier ASUS Date: Wed, 30 Oct 2019 00:04:10 +0100 Subject: Bugfixes --- src/stm8/gen.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/stm8/gen.c b/src/stm8/gen.c index 91dd7c7..e910ece 100644 --- a/src/stm8/gen.c +++ b/src/stm8/gen.c @@ -7655,7 +7655,13 @@ genJumpTab (const iCode *ic) if (!regalloc_dry_run) { - emit2 ("ldw", "x, (#!tlabel, x)", labelKey2num (jtab->key)); + if (options.gasOutput) + /* The '#' character might confuse GNU as to think !tlabel + * is an immediate operand instead of a label address. */ + emit2 ("ldw", "x, (!tlabel, x)", labelKey2num (jtab->key)); + else + emit2 ("ldw", "x, (#!tlabel, x)", labelKey2num (jtab->key)); + emit2 ("jp", "(x)"); } cost (4, 3); @@ -7669,7 +7675,7 @@ genJumpTab (const iCode *ic) dbuf_init(&b, 1024); /* emit2 (".dw", "#!tlabel", labelKey2num (jtab->key)); */ - emit2 ("", "!dw %d", labelKey2num (jtab->key)); + emit2 ("", "!dw !tlabel", labelKey2num (jtab->key)); } cost (2, 0); } -- cgit v1.2.3