From bac14a58c850e4b3b7fad4e145952c6fd0725015 Mon Sep 17 00:00:00 2001 From: Oxore Date: Sat, 12 Aug 2023 23:50:12 +0300 Subject: Fix (d8,An,Xi) parsing, just a bit --- main.c | 3 +++ test.sh | 1 + tests/test4.S | 2 ++ 3 files changed, 6 insertions(+) create mode 100644 tests/test4.S diff --git a/main.c b/main.c index 3cac095..f718149 100644 --- a/main.c +++ b/main.c @@ -2401,6 +2401,9 @@ static int pars_parse_arg_inside_parens( // It is (d8,An,Xn) assert((state.an2_found && !state.dn_found) || (!state.an2_found && state.dn_found)); arg->type = ARG_AN_ADDR_8_XI; + // FIXME an1 can be just an index register if it has size specifier, in + // that case an2 should be used here + arg->xn = state.an1; arg->xi = state.an2_found ? (state.an2 | 0x8) : state.dn; arg->num_tokens = self->cur_tok_id - arg->first_token; arg->briefext_size = state.size; diff --git a/test.sh b/test.sh index acc8151..5fe9d5c 100755 --- a/test.sh +++ b/test.sh @@ -13,4 +13,5 @@ END echo "asm68 -l -Q -o test1.o test1.S" >>"$dosbuild_dir/build.bat" echo "asm68 -l -Q -o test2.o test2.S" >>"$dosbuild_dir/build.bat" echo "asm68 -l -Q -o test3.o test3.S" >>"$dosbuild_dir/build.bat" +echo "asm68 -l -Q -o test4.o test4.S" >>"$dosbuild_dir/build.bat" dosemu -quiet -K "$dosbuild_dir" -E'build.bat' diff --git a/tests/test4.S b/tests/test4.S new file mode 100644 index 0000000..cadc9c2 --- /dev/null +++ b/tests/test4.S @@ -0,0 +1,2 @@ + move.b 0(a3,d0.w),-(a2) + move.b 0(a4.w,a3),-(a2) -- cgit v1.2.3