From: cuz Date: Mon, 3 Apr 2006 19:31:31 +0000 (+0000) Subject: Added lots of runtime function info. X-Git-Tag: V2.12.0~139 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f507124733276c6c935c6a16729c054ee6ebf6b9;p=cc65 Added lots of runtime function info. Fixed a problem with wrong info for the incaxn functions. git-svn-id: svn://svn.cc65.org/cc65/trunk@3715 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/codeinfo.c b/src/cc65/codeinfo.c index a3ce6e6ca..deace1a3b 100644 --- a/src/cc65/codeinfo.c +++ b/src/cc65/codeinfo.c @@ -81,6 +81,10 @@ static const FuncInfo FuncInfoTable[] = { { "aslax2", REG_AX, REG_AX | REG_TMP1 }, { "aslax3", REG_AX, REG_AX | REG_TMP1 }, { "aslax4", REG_AX, REG_AX | REG_TMP1 }, + { "asrax1", REG_AX, REG_AX | REG_TMP1 }, + { "asrax2", REG_AX, REG_AX | REG_TMP1 }, + { "asrax3", REG_AX, REG_AX | REG_TMP1 }, + { "asrax4", REG_AX, REG_AX | REG_TMP1 }, { "bnega", REG_A, REG_AX }, { "bnegax", REG_AX, REG_AX }, { "bnegeax", REG_EAX, REG_EAX }, @@ -94,6 +98,7 @@ static const FuncInfo FuncInfoTable[] = { { "boolugt", REG_NONE, REG_AX }, { "boolule", REG_NONE, REG_AX }, { "boolult", REG_NONE, REG_AX }, + { "callax", REG_AX, REG_ALL }, { "complax", REG_AX, REG_AX }, { "decax1", REG_AX, REG_AX }, { "decax2", REG_AX, REG_AX }, @@ -113,14 +118,15 @@ static const FuncInfo FuncInfoTable[] = { { "decsp6", REG_NONE, REG_A }, { "decsp7", REG_NONE, REG_A }, { "decsp8", REG_NONE, REG_A }, - { "incax1", REG_AX, REG_AX }, - { "incax2", REG_AX, REG_AX }, - { "incax3", REG_AX, REG_AX }, - { "incax4", REG_AX, REG_AX }, - { "incax5", REG_AX, REG_AX }, - { "incax6", REG_AX, REG_AX }, - { "incax7", REG_AX, REG_AX }, - { "incax8", REG_AX, REG_AX }, + { "incax1", REG_AX, REG_AXY }, + { "incax2", REG_AX, REG_AXY }, + { "incax3", REG_AX, REG_AXY }, + { "incax4", REG_AX, REG_AXY }, + { "incax5", REG_AX, REG_AXY }, + { "incax6", REG_AX, REG_AXY }, + { "incax7", REG_AX, REG_AXY }, + { "incax8", REG_AX, REG_AXY }, + { "incaxy", REG_AX, REG_AXY }, { "incsp1", REG_NONE, REG_NONE }, { "incsp2", REG_NONE, REG_Y }, { "incsp3", REG_NONE, REG_Y }, @@ -150,6 +156,12 @@ static const FuncInfo FuncInfoTable[] = { { "lsubeq1", REG_Y | REG_PTR1_LO, REG_EAXY | REG_PTR1_HI }, { "lsubeqa", REG_AY | REG_PTR1_LO, REG_EAXY | REG_PTR1_HI }, { "lsubeqysp", REG_EAXY, REG_EAXY }, + { "mulax10", REG_AX, REG_AX | REG_PTR1 }, + { "mulax3", REG_AX, REG_AX | REG_PTR1 }, + { "mulax5", REG_AX, REG_AX | REG_PTR1 }, + { "mulax6", REG_AX, REG_AX | REG_PTR1 }, + { "mulax7", REG_AX, REG_AX | REG_PTR1 }, + { "mulax9", REG_AX, REG_AX | REG_PTR1 }, { "negax", REG_AX, REG_AX }, { "push0", REG_NONE, REG_AXY }, { "push1", REG_NONE, REG_AXY }, @@ -162,7 +174,8 @@ static const FuncInfo FuncInfoTable[] = { { "pusha", REG_A, REG_Y }, { "pusha0", REG_A, REG_XY }, { "pusha0sp", REG_NONE, REG_AY }, - { "pushax", REG_AX, REG_Y }, + { "pushaff", REG_AX, REG_Y }, + { "pushax", REG_AX, REG_Y }, { "pushaysp", REG_Y, REG_AY }, { "pushc0", REG_NONE, REG_A | REG_Y }, { "pushc1", REG_NONE, REG_A | REG_Y }, @@ -206,17 +219,37 @@ static const FuncInfo FuncInfoTable[] = { { "tosdiva0", REG_AY, REG_ALL }, { "tosdivax", REG_AXY, REG_ALL }, { "tosdiveax", REG_EAXY, REG_ALL }, + { "toseq00", REG_NONE, REG_AXY | REG_SREG }, + { "toseqa0", REG_A, REG_AXY | REG_SREG }, + { "toseqax", REG_AX, REG_AXY | REG_SREG }, { "toseqeax", REG_EAX, REG_AXY | REG_PTR1 }, + { "tosge00", REG_NONE, REG_AXY | REG_SREG }, + { "tosgea0", REG_A, REG_AXY | REG_SREG }, + { "tosgeax", REG_AX, REG_AXY | REG_SREG }, { "tosgeeax", REG_EAX, REG_AXY | REG_PTR1 }, + { "tosgt00", REG_NONE, REG_AXY | REG_SREG }, + { "tosgta0", REG_A, REG_AXY | REG_SREG }, + { "tosgtax", REG_AX, REG_AXY | REG_SREG }, { "tosgteax", REG_EAX, REG_AXY | REG_PTR1 }, { "tosicmp", REG_AX, REG_AXY | REG_SREG }, { "toslcmp", REG_EAX, REG_A | REG_Y | REG_PTR1 }, + { "tosle00", REG_NONE, REG_AXY | REG_SREG }, + { "toslea0", REG_A, REG_AXY | REG_SREG }, + { "tosleax", REG_AX, REG_AXY | REG_SREG }, { "tosleeax", REG_EAX, REG_AXY | REG_PTR1 }, + { "toslt00", REG_NONE, REG_AXY | REG_SREG }, + { "toslta0", REG_A, REG_AXY | REG_SREG }, + { "tosltax", REG_AX, REG_AXY | REG_SREG }, { "toslteax", REG_EAX, REG_AXY | REG_PTR1 }, { "tosmula0", REG_AX, REG_ALL }, { "tosmulax", REG_AX, REG_ALL }, { "tosmuleax", REG_EAX, REG_ALL }, + { "tosne00", REG_NONE, REG_AXY | REG_SREG }, + { "tosnea0", REG_A, REG_AXY | REG_SREG }, + { "tosneax", REG_AX, REG_AXY | REG_SREG }, { "tosneeax", REG_EAX, REG_AXY | REG_PTR1 }, + { "tosora0", REG_A, REG_AXY | REG_TMP1 }, + { "tosorax", REG_AX, REG_AXY | REG_TMP1 }, { "tosshlax", REG_A, REG_AXY | REG_TMP1 }, { "tosshleax", REG_A, REG_EAXY | REG_TMP1 }, { "tosshrax", REG_A, REG_AXY | REG_TMP1 }, @@ -352,7 +385,7 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg) * use and change all registers. */ if (Debug) { - fprintf (stderr, "No info about internal function `%s'", Name); + fprintf (stderr, "No info about internal function `%s'\n", Name); } *Use = REG_ALL; *Chg = REG_ALL;