mirror of
https://github.com/cc65/cc65.git
synced 2024-07-05 21:29:03 +00:00
Removed the shift runtime functions because there calling semantics have been
changed and size optimizations are no longer possible and needed. Use the UNKNOWN_REGVAL constant instead of -1. git-svn-id: svn://svn.cc65.org/cc65/trunk@3202 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
4019b71481
commit
e43054905b
@ -6,7 +6,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 2002-2003 Ullrich von Bassewitz */
|
/* (C) 2002-2004 Ullrich von Bassewitz */
|
||||||
/* Römerstraße 52 */
|
/* Römerstraße 52 */
|
||||||
/* D-70794 Filderstadt */
|
/* D-70794 Filderstadt */
|
||||||
/* EMail: uz@cc65.org */
|
/* EMail: uz@cc65.org */
|
||||||
@ -42,6 +42,7 @@
|
|||||||
#include "codeent.h"
|
#include "codeent.h"
|
||||||
#include "codeinfo.h"
|
#include "codeinfo.h"
|
||||||
#include "coptsize.h"
|
#include "coptsize.h"
|
||||||
|
#include "reginfo.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -64,58 +65,55 @@ struct CallDesc {
|
|||||||
* at least none of the following ones are better).
|
* at least none of the following ones are better).
|
||||||
*/
|
*/
|
||||||
static const CallDesc CallTable [] = {
|
static const CallDesc CallTable [] = {
|
||||||
{ "addeqysp", -1, -1, 0, "addeq0sp" },
|
/* Name A register X register Y register replacement */
|
||||||
{ "laddeqysp", -1, -1, 0, "laddeq0sp" },
|
{ "addeqysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "addeq0sp" },
|
||||||
{ "ldaxidx", -1, -1, 1, "ldaxi" },
|
{ "laddeqysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "laddeq0sp" },
|
||||||
{ "ldaxysp", -1, -1, 1, "ldax0sp" },
|
{ "ldaxidx", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 1, "ldaxi" },
|
||||||
{ "ldeaxidx", -1, -1, 3, "ldeaxi" },
|
{ "ldaxysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 1, "ldax0sp" },
|
||||||
{ "ldeaxysp", -1, -1, 3, "ldeax0sp" },
|
{ "ldeaxidx", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 3, "ldeaxi" },
|
||||||
{ "pusha", 0, -1, -1, "pushc0" },
|
{ "ldeaxysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 3, "ldeax0sp" },
|
||||||
{ "pusha", 1, -1, -1, "pushc1" },
|
{ "pusha", 0, UNKNOWN_REGVAL, UNKNOWN_REGVAL, "pushc0" },
|
||||||
{ "pusha", 2, -1, -1, "pushc2" },
|
{ "pusha", 1, UNKNOWN_REGVAL, UNKNOWN_REGVAL, "pushc1" },
|
||||||
{ "pushax", 0, 0, -1, "push0" },
|
{ "pusha", 2, UNKNOWN_REGVAL, UNKNOWN_REGVAL, "pushc2" },
|
||||||
{ "pushax", 1, 0, -1, "push1" },
|
{ "pushax", 0, 0, UNKNOWN_REGVAL, "push0" },
|
||||||
{ "pushax", 2, 0, -1, "push2" },
|
{ "pushax", 1, 0, UNKNOWN_REGVAL, "push1" },
|
||||||
{ "pushax", 3, 0, -1, "push3" },
|
{ "pushax", 2, 0, UNKNOWN_REGVAL, "push2" },
|
||||||
{ "pushax", 4, 0, -1, "push4" },
|
{ "pushax", 3, 0, UNKNOWN_REGVAL, "push3" },
|
||||||
{ "pushax", 5, 0, -1, "push5" },
|
{ "pushax", 4, 0, UNKNOWN_REGVAL, "push4" },
|
||||||
{ "pushax", 6, 0, -1, "push6" },
|
{ "pushax", 5, 0, UNKNOWN_REGVAL, "push5" },
|
||||||
{ "pushax", 7, 0, -1, "push7" },
|
{ "pushax", 6, 0, UNKNOWN_REGVAL, "push6" },
|
||||||
{ "pushax", -1, 0, -1, "pusha0" },
|
{ "pushax", 7, 0, UNKNOWN_REGVAL, "push7" },
|
||||||
{ "pushax", -1, 0xFF, -1, "pushaFF" },
|
{ "pushax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "pusha0" },
|
||||||
{ "pushaysp", -1, -1, 0, "pusha0sp" },
|
{ "pushax", UNKNOWN_REGVAL, 0xFF, UNKNOWN_REGVAL, "pushaFF" },
|
||||||
{ "pushwidx", -1, -1, 1, "pushw" },
|
{ "pushaysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "pusha0sp" },
|
||||||
{ "pushwysp", -1, -1, 3, "pushw0sp" },
|
{ "pushwidx", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 1, "pushw" },
|
||||||
{ "staxysp", -1, -1, 0, "stax0sp" },
|
{ "pushwysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 3, "pushw0sp" },
|
||||||
{ "tosaddax", -1, 0, -1, "tosadda0" },
|
{ "staxysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "stax0sp" },
|
||||||
{ "tosandax", -1, 0, -1, "tosanda0" },
|
{ "tosaddax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosadda0" },
|
||||||
{ "tosdivax", -1, 0, -1, "tosdiva0" },
|
{ "tosandax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosanda0" },
|
||||||
{ "toseqax", -1, 0, -1, "toseqa0" },
|
{ "tosdivax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosdiva0" },
|
||||||
{ "tosgeax", -1, 0, -1, "tosgea0" },
|
{ "toseqax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "toseqa0" },
|
||||||
{ "tosgtax", -1, 0, -1, "tosgta0" },
|
{ "tosgeax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosgea0" },
|
||||||
{ "tosleax", -1, 0, -1, "toslea0" },
|
{ "tosgtax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosgta0" },
|
||||||
{ "tosorax", -1, 0, -1, "tosora0" },
|
{ "tosleax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "toslea0" },
|
||||||
{ "lsubeqysp", -1, -1, 0, "lsubeq0sp" },
|
{ "tosorax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosora0" },
|
||||||
{ "steaxysp", -1, -1, 0, "steax0sp" },
|
{ "lsubeqysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "lsubeq0sp" },
|
||||||
{ "subeqysp", -1, -1, 0, "subeq0sp" },
|
{ "steaxysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "steax0sp" },
|
||||||
{ "tosaslax", -1, 0, -1, "tosasla0" },
|
{ "subeqysp", UNKNOWN_REGVAL, UNKNOWN_REGVAL, 0, "subeq0sp" },
|
||||||
{ "tosasrax", -1, 0, -1, "tosasra0" },
|
{ "tosltax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "toslta0" },
|
||||||
{ "tosltax", -1, 0, -1, "toslta0" },
|
{ "tosmodax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosmoda0" },
|
||||||
{ "tosmodax", -1, 0, -1, "tosmoda0" },
|
{ "tosmulax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosmula0" },
|
||||||
{ "tosmulax", -1, 0, -1, "tosmula0" },
|
{ "tosneax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosnea0" },
|
||||||
{ "tosneax", -1, 0, -1, "tosnea0" },
|
{ "tosrsubax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosrsuba0" },
|
||||||
{ "tosrsubax", -1, 0, -1, "tosrsuba0" },
|
{ "tossubax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tossuba0" },
|
||||||
{ "tosshlax", -1, 0, -1, "tosshla0" },
|
{ "tosudivax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosudiva0" },
|
||||||
{ "tosshrax", -1, 0, -1, "tosshra0" },
|
{ "tosugeax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosugea0" },
|
||||||
{ "tossubax", -1, 0, -1, "tossuba0" },
|
{ "tosugtax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosugta0" },
|
||||||
{ "tosudivax", -1, 0, -1, "tosudiva0" },
|
{ "tosuleax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosulea0" },
|
||||||
{ "tosugeax", -1, 0, -1, "tosugea0" },
|
{ "tosultax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosulta0" },
|
||||||
{ "tosugtax", -1, 0, -1, "tosugta0" },
|
{ "tosumodax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosumoda0" },
|
||||||
{ "tosuleax", -1, 0, -1, "tosulea0" },
|
{ "tosumulax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosumula0" },
|
||||||
{ "tosultax", -1, 0, -1, "tosulta0" },
|
{ "tosxorax", UNKNOWN_REGVAL, 0, UNKNOWN_REGVAL, "tosxora0" },
|
||||||
{ "tosumodax", -1, 0, -1, "tosumoda0" },
|
|
||||||
{ "tosumulax", -1, 0, -1, "tosumula0" },
|
|
||||||
{ "tosxorax", -1, 0, -1, "tosxora0" },
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
"tosadd0ax", /* tosaddeax, sreg = 0 */
|
"tosadd0ax", /* tosaddeax, sreg = 0 */
|
||||||
|
Loading…
Reference in New Issue
Block a user