X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=eagen0.c;h=bcddb193f64f51e76ceaaab1e0b6e3da158d0655;hp=2df5eceea09d11eb470232e8796d48c950bca594;hb=HEAD;hpb=fbbe9b115f949735421485513154ce8abb8453eb diff --git a/eagen0.c b/eagen0.c index 2df5ece..48355f9 100644 --- a/eagen0.c +++ b/eagen0.c @@ -1,8 +1,8 @@ // -// RMAC - Reboot's Macro Assembler for all Atari computers +// RMAC - Renamed Macro Assembler for all Atari computers // EAGEN0.C - Effective Address Code Generation // Generated Code for eaN (Included twice by "eagen.c") -// Copyright (C) 199x Landon Dyer, 2011-2020 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2021 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -40,7 +40,7 @@ int eaNgen(WORD siz) if (tdb) MarkRelocatable(cursect, sloc, tdb, MWORD, NULL); - if ((v == 0) && CHECK_OPTS(OPT_INDIRECT_DISP) && !movep) + if ((v == 0) && CHECK_OPTS(OPT_OUTER_DISP) && !movep) { // If expr is 0, size optimise the opcode. Generally the lower // 6 bits of the opcode for expr(ax) are 101rrr where rrr=the @@ -64,8 +64,8 @@ int eaNgen(WORD siz) chptr_opcode[1] |= 0x0080 & 255; // slap in 010 bits } - if (sbra_flag) - warn("0(An) converted to (An)"); + if (optim_warn_flag) + warn("o3: 0(An) converted to (An)"); return OK; } @@ -326,9 +326,11 @@ int eaNgen(WORD siz) case ABSL: if (w) // Defined { - if (optim_pc) - if (aNexattr&(DEFINED | REFERENCED | EQUATED) == DEFINED | REFERENCED) - return error("relocation not allowed"); + if (CHECK_OPTS(OPT_PC_RELATIVE)) + { + if ((aNexattr & (DEFINED | REFERENCED | EQUATED)) == (DEFINED | REFERENCED)) + return error("relocation not allowed when o10 is enabled"); + } if (tdb) MarkRelocatable(cursect, sloc, tdb, MLONG, NULL);