Fixed register info for several runtime functions. Info for the Y register was

wrong, so the optimizer assumed it wouldn't change across a call.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4836 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2010-11-02 18:05:19 +00:00
parent 60e5c885e8
commit f1ce44edfe

View File

@@ -232,10 +232,10 @@ static const FuncInfo FuncInfoTable[] = {
{ "tosadda0", REG_A, REG_AXY }, { "tosadda0", REG_A, REG_AXY },
{ "tosaddax", REG_AX, REG_AXY }, { "tosaddax", REG_AX, REG_AXY },
{ "tosaddeax", REG_EAX, REG_EAXY | REG_TMP1 }, { "tosaddeax", REG_EAX, REG_EAXY | REG_TMP1 },
{ "tosand0ax", REG_AX, REG_EAX | REG_TMP1 }, { "tosand0ax", REG_AX, REG_EAXY | REG_TMP1 },
{ "tosanda0", REG_A, REG_AXY }, { "tosanda0", REG_A, REG_AXY },
{ "tosandax", REG_AX, REG_AXY }, { "tosandax", REG_AX, REG_AXY },
{ "tosandeax", REG_EAX, REG_EAX | REG_TMP1 }, { "tosandeax", REG_EAX, REG_EAXY | REG_TMP1 },
{ "tosaslax", REG_A, REG_AXY | REG_TMP1 }, { "tosaslax", REG_A, REG_AXY | REG_TMP1 },
{ "tosasleax", REG_A, REG_EAXY | REG_TMP1 }, { "tosasleax", REG_A, REG_EAXY | REG_TMP1 },
{ "tosasrax", REG_A, REG_AXY | REG_TMP1 }, { "tosasrax", REG_A, REG_AXY | REG_TMP1 },
@@ -277,14 +277,14 @@ static const FuncInfo FuncInfoTable[] = {
{ "tosnea0", REG_A, REG_AXY | REG_SREG }, { "tosnea0", REG_A, REG_AXY | REG_SREG },
{ "tosneax", REG_AX, REG_AXY | REG_SREG }, { "tosneax", REG_AX, REG_AXY | REG_SREG },
{ "tosneeax", REG_EAX, REG_AXY | REG_PTR1 }, { "tosneeax", REG_EAX, REG_AXY | REG_PTR1 },
{ "tosor0ax", REG_AX, REG_EAX | REG_TMP1 }, { "tosor0ax", REG_AX, REG_EAXY | REG_TMP1 },
{ "tosora0", REG_A, REG_AXY | REG_TMP1 }, { "tosora0", REG_A, REG_AXY | REG_TMP1 },
{ "tosorax", REG_AX, REG_AXY | REG_TMP1 }, { "tosorax", REG_AX, REG_AXY | REG_TMP1 },
{ "tosoreax", REG_EAX, REG_EAX | REG_TMP1 }, { "tosoreax", REG_EAX, REG_EAXY | REG_TMP1 },
{ "tosrsub0ax", REG_AX, REG_EAX | REG_TMP1 }, { "tosrsub0ax", REG_AX, REG_EAXY | REG_TMP1 },
{ "tosrsuba0", REG_A, REG_AX | REG_TMP1 }, { "tosrsuba0", REG_A, REG_AXY | REG_TMP1 },
{ "tosrsubax", REG_AX, REG_AX | REG_TMP1 }, { "tosrsubax", REG_AX, REG_AXY | REG_TMP1 },
{ "tosrsubeax", REG_EAX, REG_EAX | REG_TMP1 }, { "tosrsubeax", REG_EAX, REG_EAXY | REG_TMP1 },
{ "tosshlax", REG_A, REG_AXY | REG_TMP1 }, { "tosshlax", REG_A, REG_AXY | REG_TMP1 },
{ "tosshleax", REG_A, REG_EAXY | REG_TMP1 }, { "tosshleax", REG_A, REG_EAXY | REG_TMP1 },
{ "tosshrax", REG_A, REG_AXY | REG_TMP1 }, { "tosshrax", REG_A, REG_AXY | REG_TMP1 },
@@ -321,10 +321,10 @@ static const FuncInfo FuncInfoTable[] = {
{ "tosumula0", REG_A, REG_ALL }, { "tosumula0", REG_A, REG_ALL },
{ "tosumulax", REG_AX, REG_ALL }, { "tosumulax", REG_AX, REG_ALL },
{ "tosumuleax", REG_EAX, REG_ALL }, { "tosumuleax", REG_EAX, REG_ALL },
{ "tosxor0ax", REG_AX, REG_EAX | REG_TMP1 }, { "tosxor0ax", REG_AX, REG_EAXY | REG_TMP1 },
{ "tosxora0", REG_A, REG_AX | REG_TMP1 }, { "tosxora0", REG_A, REG_AXY | REG_TMP1 },
{ "tosxorax", REG_AX, REG_AX | REG_TMP1 }, { "tosxorax", REG_AX, REG_AXY | REG_TMP1 },
{ "tosxoreax", REG_EAX, REG_EAX | REG_TMP1 }, { "tosxoreax", REG_EAX, REG_EAXY | REG_TMP1 },
{ "tsteax", REG_EAX, REG_Y }, { "tsteax", REG_EAX, REG_Y },
{ "utsteax", REG_EAX, REG_Y }, { "utsteax", REG_EAX, REG_Y },
}; };