Add bounded expressions for immediate addressing and list the new feature in
the docs. git-svn-id: svn://svn.cc65.org/cc65/trunk@5406 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 1998-2011, Ullrich von Bassewitz */
|
||||
/* (C) 1998-2012, Ullrich von Bassewitz */
|
||||
/* Roemerstrasse 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
@@ -1007,6 +1007,16 @@ static int EvalEA (const InsDesc* Ins, EffAddr* A)
|
||||
/* Build the opcode */
|
||||
A->Opcode = Ins->BaseCode | EATab[Ins->ExtCode][A->AddrMode];
|
||||
|
||||
/* If feature force_range is active, and we have immediate addressing mode,
|
||||
* limit the expression to the maximum possible value.
|
||||
*/
|
||||
if (A->AddrMode == AM65I_IMM_ACCU || A->AddrMode == AM65I_IMM_INDEX ||
|
||||
A->AddrMode == AM65I_IMM_IMPLICIT) {
|
||||
if (ForceRange && A->Expr) {
|
||||
A->Expr = MakeBoundedExpr (A->Expr, ExtBytes[A->AddrMode]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Success */
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user