mirror of
https://github.com/wfjm/w11.git
synced 2026-03-10 04:54:26 +00:00
asm-11 BUGFIX: misused # and @ don't cause BUGCHECKs anymore
This commit is contained in:
@@ -31,7 +31,9 @@ The full set of tests is only run for tagged releases.
|
||||
### New features
|
||||
### Changes
|
||||
### Bug Fixes
|
||||
- tools/bin/asm-11: BUGFIX: support @(R) modifier with omitted offset
|
||||
- tools/bin/asm-11:
|
||||
- BUGFIX: support @(R) modifier with omitted offset
|
||||
- BUGFIX: misused # and @ don't cause BUGCHECKs anymore
|
||||
|
||||
<!-- --------------------------------------------------------------------- -->
|
||||
---
|
||||
|
||||
20
tools/asm-11/tests/zbug_0005.mac
Normal file
20
tools/asm-11/tests/zbug_0005.mac
Normal file
@@ -0,0 +1,20 @@
|
||||
; $Id: zbug_0005.mac 1352 2023-01-22 08:29:50Z mueller $
|
||||
; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
; Copyright 2023- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
;
|
||||
; for asm-11 prior rev 1350
|
||||
;
|
||||
; ISSUE: faulty @(R) handling
|
||||
; - asm-11 refused with a 'Q' error
|
||||
; - macro-11 accepts as equivalent to @0(R)
|
||||
;
|
||||
; REASON: parser error
|
||||
;
|
||||
.asect
|
||||
. = 400
|
||||
|
||||
mov r0,@(r1) ;;!! 000400: 010071 000000
|
||||
cmp @(r2),r0 ;;!! 000404: 027200 000000
|
||||
cmp @(r2),@(r3) ;;!! 000410: 027273 000000 000000
|
||||
|
||||
.end
|
||||
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/perl -w
|
||||
# $Id: asm-11 1351 2023-01-13 08:38:27Z mueller $
|
||||
# $Id: asm-11 1352 2023-01-22 08:29:50Z mueller $
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Copyright 2013-2023 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2023-01-13 1352 1.1.5 BUGFIX: misused # and @ don't cause BUGCHECKs anymore
|
||||
# 2023-01-12 1351 1.1.4 BUGFIX: support @(R) modifier with omitted offset
|
||||
# 2022-07-28 1264 1.1.3 add -E and -M options
|
||||
# 2022-07-23 1262 1.1.2 BUGFIX: '100(pc)' was compiled as '100'
|
||||
@@ -1735,8 +1736,8 @@ sub get_token1 {
|
||||
if ($c =~ m/^(\*|\/|\&|\!)$/ ) { # binary operators
|
||||
return finish_token(\%t, tag=> 'OP', typ=> 'b', val=> shift @$rcl);
|
||||
}
|
||||
if ($c =~ m/^(\#|\@)$/ ) { # unary operators
|
||||
return finish_token(\%t, tag=> 'OP', typ=> 'u', val=> shift @$rcl);
|
||||
if ($c =~ m/^(\#|\@)$/ ) { # prefix operators
|
||||
return finish_token(\%t, tag=> 'OP', typ=> 'p', val=> shift @$rcl);
|
||||
}
|
||||
|
||||
# ' and " operator
|
||||
@@ -2547,8 +2548,8 @@ sub dump_rl {
|
||||
$$rl{psect}, $$rl{dot};
|
||||
my $i = 0;
|
||||
foreach my $rt (@{$$rl{tl}}) {
|
||||
printf " tl[%2d]: tag=%-4s, om=%-2s, em=%-2s, val='%s'",
|
||||
$i, $$rt{tag}, savestr1($$rt{om}), savestr1($$rt{em}),
|
||||
printf " tl[%2d]: tag=%-4s, typ=%-2s, om=%-2s, em=%-2s, val='%s'",
|
||||
$i, $$rt{tag}, savestr1($$rt{typ}), savestr1($$rt{om}), savestr1($$rt{em}),
|
||||
savestr($$rt{val});
|
||||
printf ", nval=%6.6o",$$rt{nval} if defined $$rt{nval};
|
||||
printf ", pend=%d",$$rt{pend} if defined $$rt{pend};
|
||||
|
||||
Reference in New Issue
Block a user