1
0
mirror of https://github.com/cc65/cc65.git synced 2024-09-28 10:55:43 +00:00

jmp (abs) page wrapping should be an error, not a warning, also only applies to 6502 CPU

This commit is contained in:
bbbradsmith 2023-02-21 17:06:21 -05:00
parent 45d0d60349
commit ba038e921f

View File

@ -1605,11 +1605,12 @@ static void PutJMP (const InsDesc* Ins)
if (EvalEA (Ins, &A)) {
/* Check for indirect addressing */
if (A.AddrModeBit & AM65_ABS_IND) {
if (A.AddrModeBit & AM65_ABS_IND && CPU < CPU_65SC02) {
/* Compare the low byte of the expression to 0xFF to check for
** a page cross. Be sure to use a copy of the expression otherwise
** things will go weird later.
** things will go weird later. This only affects the 6502 CPU,
** and was corrected in 65C02 and later CPUs in this family.
*/
ExprNode* E = GenNE (GenByteExpr (CloneExpr (A.Expr)), 0xFF);
@ -1617,7 +1618,7 @@ static void PutJMP (const InsDesc* Ins)
unsigned Msg = GetStringId ("\"jmp (abs)\" across page border");
/* Generate the assertion */
AddAssertion (E, ASSERT_ACT_WARN, Msg);
AddAssertion (E, ASSERT_ACT_ERROR, Msg);
}
/* No error, output code */