and inappropriate peephole optimization in jump tables
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3303
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
+ and inappropriate peephole optimization in jump tables
+
2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
* as/hc08/m08pst.c,
2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
* as/hc08/m08pst.c,
int stackPushes;
short regsinuse;
set *sendSet;
int stackPushes;
short regsinuse;
set *sendSet;
(lineHead = newLineNode (lb)));
lineCurr->isInline = _G.inLine;
lineCurr->isDebug = _G.debugLine;
(lineHead = newLineNode (lb)));
lineCurr->isInline = _G.inLine;
lineCurr->isDebug = _G.debugLine;
+ lineCurr->ic = _G.current_iCode;
//printf("%s\n", lb);
va_end (ap);
//printf("%s\n", lb);
va_end (ap);
emitcode ("add","1,s");
transferRegReg (hc08_reg_a, hc08_reg_x, TRUE);
loadRegFromConst (hc08_reg_h, zero);
emitcode ("add","1,s");
transferRegReg (hc08_reg_a, hc08_reg_x, TRUE);
loadRegFromConst (hc08_reg_h, zero);
jtab = newiTempLabel (NULL);
emitcode ("jmp", "%05d$,x", jtab->key + 100);
jtab = newiTempLabel (NULL);
emitcode ("jmp", "%05d$,x", jtab->key + 100);
for (ic = lic; ic; ic = ic->next)
{
for (ic = lic; ic; ic = ic->next)
{
+ _G.current_iCode = ic;
+
if (ic->lineno && cln != ic->lineno)
{
if (options.debug)
if (ic->lineno && cln != ic->lineno)
{
if (options.debug)