1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-22 17:29:34 +00:00

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
This commit is contained in:
cuz 2006-04-03 19:31:31 +00:00
parent c73c31c496
commit f507124733

View File

@ -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;