Browse Source

moving on

Artur K 12 years ago
parent
commit
ed6f24a79a

+ 3 - 1
include/Procedure.h

@@ -83,7 +83,9 @@ public:
 public:
     static Function *Create(void *ty=0,int Linkage=0,const std::string &nm="",void *module=0)
     {
-        return new Function(ty);
+        Function *r=new Function(ty);
+        strncpy(r->name,nm.c_str(),SYMLEN);
+        return r;
     }
     void compoundCond();
     void writeProcComments();

+ 0 - 6
include/dcc.h

@@ -194,13 +194,7 @@ Int       hlTypeSize (const COND_EXPR *, Function *);
 hlType	  expType (const COND_EXPR *, Function *);
 boolT	  insertSubTreeReg (COND_EXPR *, COND_EXPR **, byte, LOCAL_ID *);
 boolT	  insertSubTreeLongReg (COND_EXPR *, COND_EXPR **, Int);
-//COND_EXPR *concatExps (SEQ_COND_EXPR *, COND_EXPR *, condNodeType);
 
-void	  initExpStk();
-void	  pushExpStk (COND_EXPR *);
-COND_EXPR *popExpStk();
-Int       numElemExpStk();
-boolT	  emptyExpStk();
 
 /* Exported functions from hlicode.c */
 std::string writeCall (Function *, STKFRAME *, Function *, Int *);

+ 4 - 20
include/hlicode.h

@@ -1,4 +1,4 @@
-/* 
+/*
  * File:    hlIcode.h
  * Purpose: module definitions for high-level icodes
  * Date:    September 1993
@@ -6,16 +6,8 @@
 
 
 /* High level icodes opcodes - def in file icode.h */
-/*typedef enum {
-    HLI_ASSIGN,
-    INC,
-    DEC,
-    HLI_JCOND,
-
-} hlIcode; */
-
-
-typedef struct {
+struct HLICODE
+{
     hlIcode             opcode;     /* hlIcode opcode           */
     union {                         /* different operands       */
         struct {
@@ -25,12 +17,4 @@ typedef struct {
         COND_EXPR       *exp;       /* for HLI_JCOND, INC, DEC      */
     }                   oper;       /* operand                  */
     boolT               valid;      /* has a valid hlIcode      */
-} HLICODE;
-
-
-//typedef struct {
-//    Int         numIcodes;      /* No. of hlIcode reocrds written   */
-//    Int         numAlloc;       /* No. of hlIcode records allocated */
-//    HLICODE     *hlIcode;       /* Array of high-level icodes       */
-//} HLICODEREC;
-
+};

+ 9 - 8
include/icode.h

@@ -293,8 +293,8 @@ struct LLTYPE
     union {                     /* Source operand if (flg & I)  */
         dword   op;             /*   idx of immed src op        */
         struct {				/* Call & # actual arg bytes	*/
-            Function *proc;   /*   ^ target proc (for CALL(F))*/
-            Int		   cb;		/*   # actual arg bytes			*/
+            Function *proc;     /*   pointer to target proc (for CALL(F))*/
+            int		   cb;		/*   # actual arg bytes			*/
         }		proc;
     }           immed;
     DU          flagDU;         /* def/use of flags				*/
@@ -312,12 +312,12 @@ struct LLTYPE
 /* Icode definition: LOW_LEVEL and HIGH_LEVEL */
 struct ICODE
 {
-struct DU1
-{
-    Int		numRegsDef;			/* # registers defined by this inst		*/
-    byte	regi[MAX_REGS_DEF];	/* registers defined by this inst		*/
-    Int		idx[MAX_REGS_DEF][MAX_USES];	/* inst that uses this def  */
-};
+    struct DU1
+    {
+        Int		numRegsDef;			/* # registers defined by this inst		*/
+        byte	regi[MAX_REGS_DEF];	/* registers defined by this inst		*/
+        Int		idx[MAX_REGS_DEF][MAX_USES];	/* inst that uses this def  */
+    };
     icodeType           type;           /* Icode type                   */
     boolT               invalid;        /* Has no HIGH_LEVEL equivalent */
     BB			*inBB;      	/* BB to which this icode belongs */
@@ -351,6 +351,7 @@ struct DU1
     void copyDU(const ICODE &duIcode, operDu _du, operDu duDu);
 public:
     boolT removeDefRegi(byte regi, Int thisDefIdx, LOCAL_ID *locId);
+    void checkHlCall();
 };
 
 // This is the icode array object.

+ 0 - 47
src/ast.cpp

@@ -29,9 +29,6 @@ static const char *condOpSym[] = { " <= ", " < ", " == ", " != ", " > ", " >= ",
 //    COND_EXPR       *exp;
 //    struct _EXP_STK *next;
 //} EXP_STK;
-typedef std::list<COND_EXPR *> EXP_STK;
-static EXP_STK expStk;      /* local expression stack */
-
 
 /* Returns the integer i in C hexadecimal format */
 static char *hexStr (uint16_t i)
@@ -950,47 +947,3 @@ void COND_EXPR::release()
     }
     delete (this);
 }
-
-
-/***************************************************************************
- * Expression stack functions
- **************************************************************************/
-
-/* Reinitalizes the expression stack (expStk) to NULL, by freeing all the
- * space allocated (if any).        */
-void initExpStk()
-{
-    expStk.clear();
-}
-
-
-/* Pushes the given expression onto the local stack (expStk). */
-void pushExpStk (COND_EXPR *expr)
-{
-    expStk.push_back(expr);
-}
-
-
-/* Returns the element on the top of the local expression stack (expStk),
- * and deallocates the space allocated by this node.
- * If there are no elements on the stack, returns NULL. */
-COND_EXPR *popExpStk()
-{
-    if(expStk.empty())
-        return 0;
-    COND_EXPR *topExp = expStk.back();
-    expStk.pop_back();
-    return topExp;
-}
-
-/* Returns the number of elements available in the expression stack */
-Int numElemExpStk()
-{
-    return expStk.size();
-}
-
-/* Returns whether the expression stack is empty or not */
-boolT emptyExpStk()
-{
-    return expStk.empty();
-}

+ 1 - 4
src/chklib.cpp

@@ -426,9 +426,6 @@ void
 CleanupLibCheck(void)
 {
     /* Deallocate all the stuff allocated in SetupLibCheck() */
-    if (T1base) free(T1base);
-    if (T1base) free(T2base);
-    if (g)      free(g);
     if (ht)     free(ht);
     if (pFunc)free(pFunc);
 }
@@ -456,7 +453,7 @@ boolT LibCheck(Function & pProc)
     {
         /* Easy - this function is called main! */
         strcpy(pProc.name, "main");
-        return FALSE;
+        return false;
     }
 
     memmove(pat, &prog.Image[fileOffset], PATLEN);

+ 66 - 10
src/dataflow.cpp

@@ -7,8 +7,65 @@
 
 #include "dcc.h"
 #include <string.h>
+#include <iostream>
+#include <iomanip>
 #include <stdio.h>
+struct ExpStack
+{
+    typedef std::list<COND_EXPR *> EXP_STK;
+    EXP_STK expStk;      /* local expression stack */
+
+    void	  init();
+    void	  push(COND_EXPR *);
+    COND_EXPR *pop();
+    Int       numElem();
+    boolT	  empty();
+};
+/***************************************************************************
+ * Expression stack functions
+ **************************************************************************/
+
+/* Reinitalizes the expression stack (expStk) to NULL, by freeing all the
+ * space allocated (if any).        */
+void ExpStack::init()
+{
+    expStk.clear();
+}
+
+
+/* Pushes the given expression onto the local stack (expStk). */
+void ExpStack::push(COND_EXPR *expr)
+{
+    expStk.push_back(expr);
+}
+
+
+/* Returns the element on the top of the local expression stack (expStk),
+ * and deallocates the space allocated by this node.
+ * If there are no elements on the stack, returns NULL. */
+COND_EXPR *ExpStack::pop()
+{
+    if(expStk.empty())
+        return 0;
+    COND_EXPR *topExp = expStk.back();
+    expStk.pop_back();
+    return topExp;
+}
 
+/* Returns the number of elements available in the expression stack */
+Int ExpStack::numElem()
+{
+    return expStk.size();
+}
+
+/* Returns whether the expression stack is empty or not */
+boolT ExpStack::empty()
+{
+    return expStk.empty();
+}
+
+using namespace std;
+ExpStack g_exp_stk;
 
 /* Returns the index of the local variable or parameter at offset off, if it
  * is in the stack frame provided.  */
@@ -114,13 +171,13 @@ void Function::elimCondCodes ()
 
                                 default:
                                     notSup = TRUE;
+                                    std::cout << hex<<defAt->loc_ip;
                                     reportError (JX_NOT_DEF, defAt->GetLlOpcode());
                                     flg |= PROC_ASM;		/* generate asm */
                             }
                             if (! notSup)
                             {
-                                exp = COND_EXPR::boolOp (lhs, rhs,
-                                                         condOpJCond[useAt->GetLlOpcode()-iJB]);
+                                exp = COND_EXPR::boolOp (lhs, rhs,condOpJCond[useAt->GetLlOpcode()-iJB]);
                                 useAt->setJCond(exp);
                             }
                         }
@@ -602,7 +659,7 @@ static void processCArg (Function * pp, Function * pProc, ICODE * picode, Int nu
     /* if (numArgs == 0)
                 return; */
 
-    exp = popExpStk();
+    exp = g_exp_stk.pop();
     if (pp->flg & PROC_ISLIB) /* library function */
     {
         if (pp->args.numArgs > 0)
@@ -628,7 +685,6 @@ static void processCArg (Function * pp, Function * pProc, ICODE * picode, Int nu
         *k += hlTypeSize (exp, pProc);
 }
 
-
 /* Eliminates extraneous intermediate icode instructions when finding
  * expressions.  Generates new hlIcodes in the form of expression trees.
  * For HLI_CALL hlIcodes, places the arguments in the argument list.    */
@@ -647,7 +703,7 @@ void Function::findExps()
     ID *retVal;			/* function return value 					*/
 
     /* Initialize expression stack */
-    initExpStk();
+    g_exp_stk.init();
 
     /* Traverse tree in dfsLast order */
     for (i = 0; i < numBBs; i++)
@@ -726,7 +782,7 @@ void Function::findExps()
                                      (ticode->ic.hl.opcode != HLI_RET)))
                                     continue;
 
-                                exp = popExpStk();  /* pop last exp pushed */
+                                exp = g_exp_stk.pop();  /* pop last exp pushed */
                                 switch (ticode->ic.hl.opcode) {
                                     case HLI_ASSIGN:
                                         forwardSubs (picode->ic.hl.oper.exp, exp,
@@ -866,7 +922,7 @@ void Function::findExps()
                                          (ticode->ic.hl.opcode != HLI_RET)))
                                         continue;
 
-                                    exp = popExpStk(); /* pop last exp pushed */
+                                    exp = g_exp_stk.pop(); /* pop last exp pushed */
                                     switch (ticode->ic.hl.opcode) {
                                         case HLI_ASSIGN:
                                             forwardSubsLong (picode->ic.hl.oper.exp->expr.ident.idNode.longIdx,
@@ -945,7 +1001,7 @@ void Function::findExps()
                  * expression stack */
                 else if (picode->ic.hl.opcode == HLI_PUSH)
                 {
-                    pushExpStk (picode->ic.hl.oper.exp);
+                    g_exp_stk.push(picode->ic.hl.oper.exp);
                     picode->invalidate();
                     numHlIcodes--;
                 }
@@ -965,7 +1021,7 @@ void Function::findExps()
                         cb = pp->cbParam;	/* fixed # arguments */
                         for (k = 0, numArgs = 0; k < cb; numArgs++)
                         {
-                            exp = popExpStk();
+                            exp = g_exp_stk.pop();
                             if (pp->flg & PROC_ISLIB)	/* library function */
                             {
                                 if (pp->args.numArgs > 0)
@@ -990,7 +1046,7 @@ void Function::findExps()
                             for (k = 0; k < cb; numArgs++)
                                 processCArg (pp, this, &(*picode), numArgs, &k);
                         else if ((cb == 0) && (picode->ic.ll.flg & REST_STK))
-                            while (! emptyExpStk())
+                            while (! g_exp_stk.empty())
                             {
                                 processCArg (pp, this, &(*picode), numArgs, &k);
                                 numArgs++;

+ 20 - 5
src/hlicode.cpp

@@ -37,6 +37,10 @@ void ICODE::setAsgn(COND_EXPR *lhs, COND_EXPR *rhs)
     ic.hl.oper.asgn.lhs = lhs;
     ic.hl.oper.asgn.rhs = rhs;
 }
+void ICODE::checkHlCall()
+{
+    //assert((ic.ll.immed.proc.cb != 0)||ic.ll.immed.proc.proc!=0);
+}
 /* Places the new HLI_CALL high-level operand in the high-level icode array */
 void ICODE::newCallHl()
 {
@@ -44,10 +48,16 @@ void ICODE::newCallHl()
     ic.hl.opcode = HLI_CALL;
     ic.hl.oper.call.proc = ic.ll.immed.proc.proc;
     ic.hl.oper.call.args = new STKFRAME;
+
     if (ic.ll.immed.proc.cb != 0)
         ic.hl.oper.call.args->cb = ic.ll.immed.proc.cb;
-    else
+    else if(ic.hl.oper.call.proc)
         ic.hl.oper.call.args->cb =ic.hl.oper.call.proc->cbParam;
+    else
+    {
+        printf("Function with no cb set, and no valid oper.call.proc , probaby indirect call\n");
+        ic.hl.oper.call.args->cb = 0;
+    }
 }
 
 
@@ -148,16 +158,20 @@ void Function::highLevelGen()
                 }
 
             switch (pIcode->ic.ll.opcode) {
-                case iADD:    rhs = COND_EXPR::boolOp (lhs, rhs, ADD);
+                case iADD:
+                    rhs = COND_EXPR::boolOp (lhs, rhs, ADD);
                     pIcode->setAsgn(lhs, rhs);
                     break;
 
-                case iAND:    rhs = COND_EXPR::boolOp (lhs, rhs, AND);
+                case iAND:
+                    rhs = COND_EXPR::boolOp (lhs, rhs, AND);
                     pIcode->setAsgn(lhs, rhs);
                     break;
 
                 case iCALL:
-                case iCALLF:  pIcode->newCallHl();
+                case iCALLF:
+                    pIcode->checkHlCall();
+                    pIcode->newCallHl();
                     break;
 
                 case iDEC:
@@ -259,7 +273,8 @@ void Function::highLevelGen()
                 case iXCHG:
                     break;
 
-                case iXOR:    rhs = COND_EXPR::boolOp (lhs, rhs, XOR);
+                case iXOR:
+                    rhs = COND_EXPR::boolOp (lhs, rhs, XOR);
                     pIcode->setAsgn(lhs, rhs);
                     break;
             }

+ 11 - 8
src/parser.cpp

@@ -64,6 +64,7 @@ void parse (CALL_GRAPH * *pcallGraph)
     else
     {
         /* Create initial procedure at program start address */
+        strcpy(pProcList.front().name, "start");
         pProcList.front().procEntry = (dword)state.IP;
     }
     /* The state info is for the first procedure */
@@ -109,7 +110,7 @@ Int strSize (byte *sym, char delim)
     for (i = 0; *sym++ != delim; i++)  ;
     return (i+1);
 }
-
+Function *fakeproc=Function::Create(0,0,"fake");
 
 /* FollowCtrl - Given an initial procedure, state information and symbol table
  *      builds a list of procedures reachable from the initial procedure
@@ -513,6 +514,7 @@ boolT Function::process_JMP (ICODE * pIcode, STATE *pstate, CALL_GRAPH * pcallGr
  *       be assumed that if an assembler program contains a CALL that the
  *       programmer expected it to come back - otherwise surely a JMP would
  *       have been used.  */
+
 boolT Function::process_CALL (ICODE * pIcode, CALL_GRAPH * pcallGraph, STATE *pstate)
 {
     Int   ip = Icode.GetNumIcodes() - 1;
@@ -522,16 +524,17 @@ boolT Function::process_CALL (ICODE * pIcode, CALL_GRAPH * pcallGraph, STATE *ps
 
     /* For Indirect Calls, find the function address */
     indirect = FALSE;
-    if (! (pIcode->ic.ll.flg & I))
+    //pIcode->ic.ll.immed.proc.proc=fakeproc;
+    if ( not pIcode->isLlFlag(I) )
     {
         /* Not immediate, i.e. indirect call */
 
         if (pIcode->ic.ll.dst.regi && (!option.Calls))
         {
             /* We have not set the brave option to attempt to follow
-                                the execution path through register indirect calls.
-                                So we just exit this function, and ignore the call.
-                                We probably should not have parsed this deep, anyway.
+                the execution path through register indirect calls.
+                So we just exit this function, and ignore the call.
+                We probably should not have parsed this deep, anyway.
                         */
             return FALSE;
         }
@@ -616,7 +619,8 @@ boolT Function::process_CALL (ICODE * pIcode, CALL_GRAPH * pcallGraph, STATE *ps
         else
             pcallGraph->insertCallGraph (this, iter);
 
-        Icode.GetIcode(ip)->ic.ll.immed.proc.proc = &(*iter); // ^ target proc
+        Icode[ip].ic.ll.immed.proc.proc = &(*iter); // ^ target proc
+
         /* return ((p->flg & TERMINATES) != 0); */
         return FALSE;
     }
@@ -905,8 +909,7 @@ dword duReg[] = { 0x00,
  *            pstate: ptr to current procedure state
  *            size  : size of the operand
  *            ix    : current index into icode array    */
-static void use (opLoc d, ICODE * pIcode, Function * pProc, STATE * pstate, Int size,
-                 Int ix)
+static void use (opLoc d, ICODE * pIcode, Function * pProc, STATE * pstate, Int size, Int ix)
 {
     ICODEMEM * pm   = (d == SRC)? &pIcode->ic.ll.src: &pIcode->ic.ll.dst;
     SYM *  psym;

+ 91 - 90
src/proplong.cpp

@@ -380,109 +380,110 @@ void Function::propLongReg (Int i, ID *pLocId)
         }
 
         /* If no definition backwards, check forward for a use of this long reg */
-        if (idx <= 0)
-            for (idx = pLocId->idx[j] + 1; idx < this->Icode.GetNumIcodes() - 1; idx++)
-            {
-                pIcode = Icode.begin()+(idx);
-                if ((pIcode->type == HIGH_LEVEL) || (pIcode->invalid == TRUE))
-                    continue;
-
-                if (pIcode->ic.ll.opcode == (pIcode+1)->ic.ll.opcode)
-                    switch (pIcode->ic.ll.opcode) {
-                        case iMOV:
-                            if ((pLocId->id.longId.h == pIcode->ic.ll.src.regi) &&
-                                    (pLocId->id.longId.l == (pIcode+1)->ic.ll.src.regi))
-                            {
-                                rhs = COND_EXPR::idLongIdx (i);
-                                pIcode->setRegDU( (pIcode+1)->ic.ll.src.regi, eUSE);
-                                lhs = COND_EXPR::idLong (&this->localId, DST, pIcode,
+        if (idx > 0)
+            continue;
+        for (idx = pLocId->idx[j] + 1; idx < Icode.size() - 1; idx++)
+        {
+            pIcode = Icode.begin()+(idx);
+            if ((pIcode->type == HIGH_LEVEL) || (pIcode->invalid == TRUE))
+                continue;
+
+            if (pIcode->ic.ll.opcode == (pIcode+1)->ic.ll.opcode)
+                switch (pIcode->ic.ll.opcode) {
+                    case iMOV:
+                        if ((pLocId->id.longId.h == pIcode->ic.ll.src.regi) &&
+                                (pLocId->id.longId.l == (pIcode+1)->ic.ll.src.regi))
+                        {
+                            rhs = COND_EXPR::idLongIdx (i);
+                            pIcode->setRegDU( (pIcode+1)->ic.ll.src.regi, eUSE);
+                            lhs = COND_EXPR::idLong (&this->localId, DST, pIcode,
                                                      HIGH_FIRST, idx, eDEF, 1);
-                                pIcode->setAsgn(lhs, rhs);
-                                (pIcode+1)->invalidate();
-                                idx = this->Icode.GetNumIcodes();    /* to exit the loop */
-                            }
-                            break;
-
-                        case iPUSH:
-                            if ((pLocId->id.longId.h == pIcode->ic.ll.src.regi) &&
-                                    (pLocId->id.longId.l == (pIcode+1)->ic.ll.src.regi))
-                            {
-                                rhs = COND_EXPR::idLongIdx (i);
-                                pIcode->setRegDU( (pIcode+1)->ic.ll.src.regi, eUSE);
-                                pIcode->setUnary(HLI_PUSH, lhs);
-                                (pIcode+1)->invalidate();
-                            }
-                            idx = this->Icode.GetNumIcodes();    /* to exit the loop  */
-                            break;
-
-                            /*** others missing ****/
-
-                        case iAND: case iOR: case iXOR:
-                            pmL = &pIcode->ic.ll.dst;
-                            pmH = &(pIcode+1)->ic.ll.dst;
-                            if ((pLocId->id.longId.h == pmH->regi) &&
-                                    (pLocId->id.longId.l == pmL->regi))
-                            {
-                                lhs = COND_EXPR::idLongIdx (i);
-                                pIcode->setRegDU( pmH->regi, USE_DEF);
-                                rhs = COND_EXPR::idLong (&this->localId, SRC, pIcode,
+                            pIcode->setAsgn(lhs, rhs);
+                            (pIcode+1)->invalidate();
+                            idx = this->Icode.GetNumIcodes();    /* to exit the loop */
+                        }
+                        break;
+
+                    case iPUSH:
+                        if ((pLocId->id.longId.h == pIcode->ic.ll.src.regi) &&
+                                (pLocId->id.longId.l == (pIcode+1)->ic.ll.src.regi))
+                        {
+                            rhs = COND_EXPR::idLongIdx (i);
+                            pIcode->setRegDU( (pIcode+1)->ic.ll.src.regi, eUSE);
+                            pIcode->setUnary(HLI_PUSH, lhs);
+                            (pIcode+1)->invalidate();
+                        }
+                        idx = this->Icode.GetNumIcodes();    /* to exit the loop  */
+                        break;
+
+                        /*** others missing ****/
+
+                    case iAND: case iOR: case iXOR:
+                        pmL = &pIcode->ic.ll.dst;
+                        pmH = &(pIcode+1)->ic.ll.dst;
+                        if ((pLocId->id.longId.h == pmH->regi) &&
+                                (pLocId->id.longId.l == pmL->regi))
+                        {
+                            lhs = COND_EXPR::idLongIdx (i);
+                            pIcode->setRegDU( pmH->regi, USE_DEF);
+                            rhs = COND_EXPR::idLong (&this->localId, SRC, pIcode,
                                                      LOW_FIRST, idx, eUSE, 1);
-                                switch (pIcode->ic.ll.opcode) {
-                                    case iAND: rhs = COND_EXPR::boolOp (lhs, rhs, AND);
-                                        break;
-                                    case iOR:  rhs = COND_EXPR::boolOp (lhs, rhs, OR);
-                                        break;
-                                    case iXOR: rhs = COND_EXPR::boolOp (lhs, rhs, XOR);
-                                        break;
-                                }
-                                pIcode->setAsgn(lhs, rhs);
-                                (pIcode+1)->invalidate();
-                                idx = 0;
+                            switch (pIcode->ic.ll.opcode) {
+                                case iAND: rhs = COND_EXPR::boolOp (lhs, rhs, AND);
+                                    break;
+                                case iOR:  rhs = COND_EXPR::boolOp (lhs, rhs, OR);
+                                    break;
+                                case iXOR: rhs = COND_EXPR::boolOp (lhs, rhs, XOR);
+                                    break;
                             }
-                            break;
-                    } /* eos */
+                            pIcode->setAsgn(lhs, rhs);
+                            (pIcode+1)->invalidate();
+                            idx = 0;
+                        }
+                        break;
+                } /* eos */
 
-                /* Check long conditional (i.e. 2 CMPs and 3 branches */
-                else if ((pIcode->ic.ll.opcode == iCMP) &&
-                         (isLong23 (idx, pIcode->inBB, &off, &arc)))
-                {
-                    if (checkLongRegEq (pLocId->id.longId, pIcode, i, idx, this,
-                                        &rhs, &lhs, off) == TRUE)
-                        longJCond23 (rhs, lhs, pIcode, &idx, this, arc, off);
-                }
+            /* Check long conditional (i.e. 2 CMPs and 3 branches */
+            else if ((pIcode->ic.ll.opcode == iCMP) &&
+                     (isLong23 (idx, pIcode->inBB, &off, &arc)))
+            {
+                if (checkLongRegEq (pLocId->id.longId, pIcode, i, idx, this,
+                                    &rhs, &lhs, off) == TRUE)
+                    longJCond23 (rhs, lhs, pIcode, &idx, this, arc, off);
+            }
 
-                /* Check for long conditional equality or inequality.  This requires
+            /* Check for long conditional equality or inequality.  This requires
                  * 2 CMPs and 2 branches */
-                else if ((pIcode->ic.ll.opcode == iCMP) &&
-                         (isLong22 (pIcode, pEnd, &off)))
-                {
-                    if (checkLongRegEq (pLocId->id.longId, pIcode, i, idx, this,
-                                        &rhs, &lhs, off) == TRUE)
-                        longJCond22 (rhs, lhs, pIcode, &idx);
-                }
+            else if ((pIcode->ic.ll.opcode == iCMP) &&
+                     (isLong22 (pIcode, pEnd, &off)))
+            {
+                if (checkLongRegEq (pLocId->id.longId, pIcode, i, idx, this,
+                                    &rhs, &lhs, off) == TRUE)
+                    longJCond22 (rhs, lhs, pIcode, &idx);
+            }
 
-                /* Check for OR regH, regL
+            /* Check for OR regH, regL
                  *			 JX lab
                  *		=> HLI_JCOND (regH:regL X 0) lab
                  * This is better code than HLI_JCOND (HI(regH:regL) | LO(regH:regL)) */
-                else if ((pIcode->ic.ll.opcode == iOR) && ((pIcode+1) < pEnd) &&
-                         (isJCond ((pIcode+1)->ic.ll.opcode)))
+            else if ((pIcode->ic.ll.opcode == iOR) && ((pIcode+1) < pEnd) &&
+                     (isJCond ((pIcode+1)->ic.ll.opcode)))
+            {
+                if ((pIcode->ic.ll.dst.regi == pLocId->id.longId.h) &&
+                        (pIcode->ic.ll.src.regi == pLocId->id.longId.l))
                 {
-                    if ((pIcode->ic.ll.dst.regi == pLocId->id.longId.h) &&
-                            (pIcode->ic.ll.src.regi == pLocId->id.longId.l))
-                    {
-                        lhs = COND_EXPR::idLongIdx (i);
-
-                        rhs = COND_EXPR::idKte (0, 4);	/* long 0 */
-                        lhs = COND_EXPR::boolOp (lhs, rhs,
-                                           condOpJCond[(pIcode+1)->ic.ll.opcode - iJB]);
-                        (pIcode+1)->setJCond(lhs);
-                        (pIcode+1)->copyDU(*pIcode, eUSE, eUSE);
-                        pIcode->invalidate();
-                    }
+                    lhs = COND_EXPR::idLongIdx (i);
+
+                    rhs = COND_EXPR::idKte (0, 4);	/* long 0 */
+                    lhs = COND_EXPR::boolOp (lhs, rhs,
+                                             condOpJCond[(pIcode+1)->ic.ll.opcode - iJB]);
+                    (pIcode+1)->setJCond(lhs);
+                    (pIcode+1)->copyDU(*pIcode, eUSE, eUSE);
+                    pIcode->invalidate();
                 }
+            }
 
-            } /* end for */
+        } /* end for */
     } /* end for */
 }
 

BIN
tests/inputs/ZORK2.COM


+ 85 - 85
tests/prev/BENCHFN.EXE.a1

@@ -1,109 +1,109 @@
 		main  PROC  NEAR
-000 000365 55                  PUSH           bp
-001 000366 8BEC                MOV            bp, sp
-002 000368 83EC08              SUB            sp, 8
-003 00036B B89401              MOV            ax, 194h
-004 00036E 50                  PUSH           ax
-005 00036F E8D90B              CALL  near ptr printf
-006 000372 59                  POP            cx
-007 000373 8D46FC              LEA            ax, [bp-4]
-008 000376 50                  PUSH           ax
-009 000377 B8B001              MOV            ax, 1B0h
-010 00037A 50                  PUSH           ax
-011 00037B E85614              CALL  near ptr scanf
-012 00037E 59                  POP            cx
-013 00037F 59                  POP            cx
-014 000380 FF76FE              PUSH  word ptr [bp-2]
-015 000383 FF76FC              PUSH  word ptr [bp-4]
-016 000386 B8B401              MOV            ax, 1B4h
-017 000389 50                  PUSH           ax
-018 00038A E8BE0B              CALL  near ptr printf
-019 00038D 83C406              ADD            sp, 6
-020 000390 C746FA0000          MOV   word ptr [bp-6], 0
-021 000395 C746F80100          MOV   word ptr [bp-8], 1
-022 00039A EB0B                JMP            L1
+000 000365 55                  PUSH           bp                 
+001 000366 8BEC                MOV            bp, sp             
+002 000368 83EC08              SUB            sp, 8              
+003 00036B B89401              MOV            ax, 194h           
+004 00036E 50                  PUSH           ax                 
+005 00036F E8D90B              CALL           near ptr printf    
+006 000372 59                  POP            cx                 
+007 000373 8D46FC              LEA            ax, [bp-4]         
+008 000376 50                  PUSH           ax                 
+009 000377 B8B001              MOV            ax, 1B0h           
+010 00037A 50                  PUSH           ax                 
+011 00037B E85614              CALL           near ptr scanf     
+012 00037E 59                  POP            cx                 
+013 00037F 59                  POP            cx                 
+014 000380 FF76FE              PUSH           word ptr [bp-2]    
+015 000383 FF76FC              PUSH           word ptr [bp-4]    
+016 000386 B8B401              MOV            ax, 1B4h           
+017 000389 50                  PUSH           ax                 
+018 00038A E8BE0B              CALL           near ptr printf    
+019 00038D 83C406              ADD            sp, 6              
+020 000390 C746FA0000          MOV            word ptr [bp-6], 0 
+021 000395 C746F80100          MOV            word ptr [bp-8], 1 
+022 00039A EB0B                JMP            L1                 
 
-023 0003A7 8B56FA         L1:  MOV            dx, [bp-6]
-024 0003AA 8B46F8              MOV            ax, [bp-8]
-025 0003AD 3B56FE              CMP            dx, [bp-2]
-026 0003B0 7CEA                JL             L2
-027 0003B2 7F05                JG             L3
-028 0003B4 3B46FC              CMP            ax, [bp-4]
-029 0003B7 76E3                JBE            L2
+023 0003A7 8B56FA         L1:  MOV            dx, [bp-6]         
+024 0003AA 8B46F8              MOV            ax, [bp-8]         
+025 0003AD 3B56FE              CMP            dx, [bp-2]         
+026 0003B0 7CEA                JL             L2                 
+027 0003B2 7F05                JG             L3                 
+028 0003B4 3B46FC              CMP            ax, [bp-4]         
+029 0003B7 76E3                JBE            L2                 
 
-030 0003B9 B8CE01         L3:  MOV            ax, 1CEh
-031 0003BC 50                  PUSH           ax
-032 0003BD E88B0B              CALL  near ptr printf
-033 0003C0 59                  POP            cx
-034 0003C1 8BE5                MOV            sp, bp
-035 0003C3 5D                  POP            bp
-036 0003C4 C3                  RET
+030 0003B9 B8CE01         L3:  MOV            ax, 1CEh           
+031 0003BC 50                  PUSH           ax                 
+032 0003BD E88B0B              CALL           near ptr printf    
+033 0003C0 59                  POP            cx                 
+034 0003C1 8BE5                MOV            sp, bp             
+035 0003C3 5D                  POP            bp                 
+036 0003C4 C3                  RET                               
 
-037 00039C E8A6FF         L2:  CALL  near ptr proc_1
-038 00039F 8346F801            ADD   word ptr [bp-8], 1
-039 0003A3 8356FA00            ADC   word ptr [bp-6], 0
+037 00039C E8A6FF         L2:  CALL           near ptr proc_1    
+038 00039F 8346F801            ADD            word ptr [bp-8], 1 
+039 0003A3 8356FA00            ADC            word ptr [bp-6], 0 
 040                            JMP            L1                 ;Synthetic inst
 
 		main  ENDP
 
 		proc_1  PROC  NEAR
-000 000345 55                  PUSH           bp
-001 000346 8BEC                MOV            bp, sp
-002 000348 E8D7FF              CALL  near ptr proc_2
-003 00034B E8D4FF              CALL  near ptr proc_2
-004 00034E E8D1FF              CALL  near ptr proc_2
-005 000351 E8CEFF              CALL  near ptr proc_2
-006 000354 E8CBFF              CALL  near ptr proc_2
-007 000357 E8C8FF              CALL  near ptr proc_2
-008 00035A E8C5FF              CALL  near ptr proc_2
-009 00035D E8C2FF              CALL  near ptr proc_2
-010 000360 E8BFFF              CALL  near ptr proc_2
-011 000363 5D                  POP            bp
-012 000364 C3                  RET
+000 000345 55                  PUSH           bp                 
+001 000346 8BEC                MOV            bp, sp             
+002 000348 E8D7FF              CALL           near ptr proc_2    
+003 00034B E8D4FF              CALL           near ptr proc_2    
+004 00034E E8D1FF              CALL           near ptr proc_2    
+005 000351 E8CEFF              CALL           near ptr proc_2    
+006 000354 E8CBFF              CALL           near ptr proc_2    
+007 000357 E8C8FF              CALL           near ptr proc_2    
+008 00035A E8C5FF              CALL           near ptr proc_2    
+009 00035D E8C2FF              CALL           near ptr proc_2    
+010 000360 E8BFFF              CALL           near ptr proc_2    
+011 000363 5D                  POP            bp                 
+012 000364 C3                  RET                               
 
 		proc_1  ENDP
 
 		proc_2  PROC  NEAR
-000 000322 55                  PUSH           bp
-001 000323 8BEC                MOV            bp, sp
-002 000325 E8D7FF              CALL  near ptr proc_3
-003 000328 E8D4FF              CALL  near ptr proc_3
-004 00032B E8D1FF              CALL  near ptr proc_3
-005 00032E E8CEFF              CALL  near ptr proc_3
-006 000331 E8CBFF              CALL  near ptr proc_3
-007 000334 E8C8FF              CALL  near ptr proc_3
-008 000337 E8C5FF              CALL  near ptr proc_3
-009 00033A E8C2FF              CALL  near ptr proc_3
-010 00033D E8BFFF              CALL  near ptr proc_3
-011 000340 E8BCFF              CALL  near ptr proc_3
-012 000343 5D                  POP            bp
-013 000344 C3                  RET
+000 000322 55                  PUSH           bp                 
+001 000323 8BEC                MOV            bp, sp             
+002 000325 E8D7FF              CALL           near ptr proc_3    
+003 000328 E8D4FF              CALL           near ptr proc_3    
+004 00032B E8D1FF              CALL           near ptr proc_3    
+005 00032E E8CEFF              CALL           near ptr proc_3    
+006 000331 E8CBFF              CALL           near ptr proc_3    
+007 000334 E8C8FF              CALL           near ptr proc_3    
+008 000337 E8C5FF              CALL           near ptr proc_3    
+009 00033A E8C2FF              CALL           near ptr proc_3    
+010 00033D E8BFFF              CALL           near ptr proc_3    
+011 000340 E8BCFF              CALL           near ptr proc_3    
+012 000343 5D                  POP            bp                 
+013 000344 C3                  RET                               
 
 		proc_2  ENDP
 
 		proc_3  PROC  NEAR
-000 0002FF 55                  PUSH           bp
-001 000300 8BEC                MOV            bp, sp
-002 000302 E8F5FF              CALL  near ptr proc_4
-003 000305 E8F2FF              CALL  near ptr proc_4
-004 000308 E8EFFF              CALL  near ptr proc_4
-005 00030B E8ECFF              CALL  near ptr proc_4
-006 00030E E8E9FF              CALL  near ptr proc_4
-007 000311 E8E6FF              CALL  near ptr proc_4
-008 000314 E8E3FF              CALL  near ptr proc_4
-009 000317 E8E0FF              CALL  near ptr proc_4
-010 00031A E8DDFF              CALL  near ptr proc_4
-011 00031D E8DAFF              CALL  near ptr proc_4
-012 000320 5D                  POP            bp
-013 000321 C3                  RET
+000 0002FF 55                  PUSH           bp                 
+001 000300 8BEC                MOV            bp, sp             
+002 000302 E8F5FF              CALL           near ptr proc_4    
+003 000305 E8F2FF              CALL           near ptr proc_4    
+004 000308 E8EFFF              CALL           near ptr proc_4    
+005 00030B E8ECFF              CALL           near ptr proc_4    
+006 00030E E8E9FF              CALL           near ptr proc_4    
+007 000311 E8E6FF              CALL           near ptr proc_4    
+008 000314 E8E3FF              CALL           near ptr proc_4    
+009 000317 E8E0FF              CALL           near ptr proc_4    
+010 00031A E8DDFF              CALL           near ptr proc_4    
+011 00031D E8DAFF              CALL           near ptr proc_4    
+012 000320 5D                  POP            bp                 
+013 000321 C3                  RET                               
 
 		proc_3  ENDP
 
 		proc_4  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 5D                  POP            bp
-003 0002FE C3                  RET
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 5D                  POP            bp                 
+003 0002FE C3                  RET                               
 
 		proc_4  ENDP
 

+ 84 - 84
tests/prev/BENCHFN.EXE.a2

@@ -1,107 +1,107 @@
 		proc_4  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 5D                  POP            bp
-003 0002FE C3                  RET
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 5D                  POP            bp                 
+003 0002FE C3                  RET                               
 
 		proc_4  ENDP
 
 		proc_3  PROC  NEAR
-000 0002FF 55                  PUSH           bp
-001 000300 8BEC                MOV            bp, sp
-002 000302 E8F5FF              CALL  near ptr proc_4
-003 000305 E8F2FF              CALL  near ptr proc_4
-004 000308 E8EFFF              CALL  near ptr proc_4
-005 00030B E8ECFF              CALL  near ptr proc_4
-006 00030E E8E9FF              CALL  near ptr proc_4
-007 000311 E8E6FF              CALL  near ptr proc_4
-008 000314 E8E3FF              CALL  near ptr proc_4
-009 000317 E8E0FF              CALL  near ptr proc_4
-010 00031A E8DDFF              CALL  near ptr proc_4
-011 00031D E8DAFF              CALL  near ptr proc_4
-012 000320 5D                  POP            bp
-013 000321 C3                  RET
+000 0002FF 55                  PUSH           bp                 
+001 000300 8BEC                MOV            bp, sp             
+002 000302 E8F5FF              CALL           near ptr proc_4    
+003 000305 E8F2FF              CALL           near ptr proc_4    
+004 000308 E8EFFF              CALL           near ptr proc_4    
+005 00030B E8ECFF              CALL           near ptr proc_4    
+006 00030E E8E9FF              CALL           near ptr proc_4    
+007 000311 E8E6FF              CALL           near ptr proc_4    
+008 000314 E8E3FF              CALL           near ptr proc_4    
+009 000317 E8E0FF              CALL           near ptr proc_4    
+010 00031A E8DDFF              CALL           near ptr proc_4    
+011 00031D E8DAFF              CALL           near ptr proc_4    
+012 000320 5D                  POP            bp                 
+013 000321 C3                  RET                               
 
 		proc_3  ENDP
 
 		proc_2  PROC  NEAR
-000 000322 55                  PUSH           bp
-001 000323 8BEC                MOV            bp, sp
-002 000325 E8D7FF              CALL  near ptr proc_3
-003 000328 E8D4FF              CALL  near ptr proc_3
-004 00032B E8D1FF              CALL  near ptr proc_3
-005 00032E E8CEFF              CALL  near ptr proc_3
-006 000331 E8CBFF              CALL  near ptr proc_3
-007 000334 E8C8FF              CALL  near ptr proc_3
-008 000337 E8C5FF              CALL  near ptr proc_3
-009 00033A E8C2FF              CALL  near ptr proc_3
-010 00033D E8BFFF              CALL  near ptr proc_3
-011 000340 E8BCFF              CALL  near ptr proc_3
-012 000343 5D                  POP            bp
-013 000344 C3                  RET
+000 000322 55                  PUSH           bp                 
+001 000323 8BEC                MOV            bp, sp             
+002 000325 E8D7FF              CALL           near ptr proc_3    
+003 000328 E8D4FF              CALL           near ptr proc_3    
+004 00032B E8D1FF              CALL           near ptr proc_3    
+005 00032E E8CEFF              CALL           near ptr proc_3    
+006 000331 E8CBFF              CALL           near ptr proc_3    
+007 000334 E8C8FF              CALL           near ptr proc_3    
+008 000337 E8C5FF              CALL           near ptr proc_3    
+009 00033A E8C2FF              CALL           near ptr proc_3    
+010 00033D E8BFFF              CALL           near ptr proc_3    
+011 000340 E8BCFF              CALL           near ptr proc_3    
+012 000343 5D                  POP            bp                 
+013 000344 C3                  RET                               
 
 		proc_2  ENDP
 
 		proc_1  PROC  NEAR
-000 000345 55                  PUSH           bp
-001 000346 8BEC                MOV            bp, sp
-002 000348 E8D7FF              CALL  near ptr proc_2
-003 00034B E8D4FF              CALL  near ptr proc_2
-004 00034E E8D1FF              CALL  near ptr proc_2
-005 000351 E8CEFF              CALL  near ptr proc_2
-006 000354 E8CBFF              CALL  near ptr proc_2
-007 000357 E8C8FF              CALL  near ptr proc_2
-008 00035A E8C5FF              CALL  near ptr proc_2
-009 00035D E8C2FF              CALL  near ptr proc_2
-010 000360 E8BFFF              CALL  near ptr proc_2
-011 000363 5D                  POP            bp
-012 000364 C3                  RET
+000 000345 55                  PUSH           bp                 
+001 000346 8BEC                MOV            bp, sp             
+002 000348 E8D7FF              CALL           near ptr proc_2    
+003 00034B E8D4FF              CALL           near ptr proc_2    
+004 00034E E8D1FF              CALL           near ptr proc_2    
+005 000351 E8CEFF              CALL           near ptr proc_2    
+006 000354 E8CBFF              CALL           near ptr proc_2    
+007 000357 E8C8FF              CALL           near ptr proc_2    
+008 00035A E8C5FF              CALL           near ptr proc_2    
+009 00035D E8C2FF              CALL           near ptr proc_2    
+010 000360 E8BFFF              CALL           near ptr proc_2    
+011 000363 5D                  POP            bp                 
+012 000364 C3                  RET                               
 
 		proc_1  ENDP
 
 		main  PROC  NEAR
-000 000365 55                  PUSH           bp
-001 000366 8BEC                MOV            bp, sp
-002 000368 83EC08              SUB            sp, 8
-003 00036B B89401              MOV            ax, 194h
-004 00036E 50                  PUSH           ax
-005 00036F E8D90B              CALL  near ptr printf
-006 000372 59                  POP            cx
-007 000373 8D46FC              LEA            ax, [bp-4]
-008 000376 50                  PUSH           ax
-009 000377 B8B001              MOV            ax, 1B0h
-010 00037A 50                  PUSH           ax
-011 00037B E85614              CALL  near ptr scanf
-012 00037E 59                  POP            cx
-013 00037F 59                  POP            cx
-014 000380 FF76FE              PUSH  word ptr [bp-2]
-015 000383 FF76FC              PUSH  word ptr [bp-4]
-016 000386 B8B401              MOV            ax, 1B4h
-017 000389 50                  PUSH           ax
-018 00038A E8BE0B              CALL  near ptr printf
-019 00038D 83C406              ADD            sp, 6
-020 000390 C746FA0000          MOV   word ptr [bp-6], 0
-021 000395 C746F80100          MOV   word ptr [bp-8], 1
+000 000365 55                  PUSH           bp                 
+001 000366 8BEC                MOV            bp, sp             
+002 000368 83EC08              SUB            sp, 8              
+003 00036B B89401              MOV            ax, 194h           
+004 00036E 50                  PUSH           ax                 
+005 00036F E8D90B              CALL           near ptr printf    
+006 000372 59                  POP            cx                 
+007 000373 8D46FC              LEA            ax, [bp-4]         
+008 000376 50                  PUSH           ax                 
+009 000377 B8B001              MOV            ax, 1B0h           
+010 00037A 50                  PUSH           ax                 
+011 00037B E85614              CALL           near ptr scanf     
+012 00037E 59                  POP            cx                 
+013 00037F 59                  POP            cx                 
+014 000380 FF76FE              PUSH           word ptr [bp-2]    
+015 000383 FF76FC              PUSH           word ptr [bp-4]    
+016 000386 B8B401              MOV            ax, 1B4h           
+017 000389 50                  PUSH           ax                 
+018 00038A E8BE0B              CALL           near ptr printf    
+019 00038D 83C406              ADD            sp, 6              
+020 000390 C746FA0000          MOV            word ptr [bp-6], 0 
+021 000395 C746F80100          MOV            word ptr [bp-8], 1 
 
-023 0003A7 8B56FA         L1:  MOV            dx, [bp-6]
-024 0003AA 8B46F8              MOV            ax, [bp-8]
-025 0003AD 3B56FE              CMP            dx, [bp-2]
-026 0003B0 7CEA                JL             L2
-027 0003B2 7F05                JG             L3
-028 0003B4 3B46FC              CMP            ax, [bp-4]
-029 0003B7 76E3                JBE            L2
+023 0003A7 8B56FA         L1:  MOV            dx, [bp-6]         
+024 0003AA 8B46F8              MOV            ax, [bp-8]         
+025 0003AD 3B56FE              CMP            dx, [bp-2]         
+026 0003B0 7CEA                JL             L2                 
+027 0003B2 7F05                JG             L3                 
+028 0003B4 3B46FC              CMP            ax, [bp-4]         
+029 0003B7 76E3                JBE            L2                 
 
-030 0003B9 B8CE01         L3:  MOV            ax, 1CEh
-031 0003BC 50                  PUSH           ax
-032 0003BD E88B0B              CALL  near ptr printf
-033 0003C0 59                  POP            cx
-034 0003C1 8BE5                MOV            sp, bp
-035 0003C3 5D                  POP            bp
-036 0003C4 C3                  RET
+030 0003B9 B8CE01         L3:  MOV            ax, 1CEh           
+031 0003BC 50                  PUSH           ax                 
+032 0003BD E88B0B              CALL           near ptr printf    
+033 0003C0 59                  POP            cx                 
+034 0003C1 8BE5                MOV            sp, bp             
+035 0003C3 5D                  POP            bp                 
+036 0003C4 C3                  RET                               
 
-037 00039C E8A6FF         L2:  CALL  near ptr proc_1
-038 00039F 8346F801            ADD   word ptr [bp-8], 1
-039 0003A3 8356FA00            ADC   word ptr [bp-6], 0
+037 00039C E8A6FF         L2:  CALL           near ptr proc_1    
+038 00039F 8346F801            ADD            word ptr [bp-8], 1 
+039 0003A3 8356FA00            ADC            word ptr [bp-6], 0 
 040                            JMP            L1                 ;Synthetic inst
 
 		main  ENDP

+ 223 - 223
tests/prev/BENCHLNG.EXE.a1

@@ -1,242 +1,242 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC14              SUB            sp, 14h
-003 000300 8D46FC              LEA            ax, [bp-4]
-004 000303 50                  PUSH           ax
-005 000304 B89401              MOV            ax, 194h
-006 000307 50                  PUSH           ax
-007 000308 E85D15              CALL  near ptr scanf
-008 00030B 59                  POP            cx
-009 00030C 59                  POP            cx
-010 00030D FF76FE              PUSH  word ptr [bp-2]
-011 000310 FF76FC              PUSH  word ptr [bp-4]
-012 000313 B89801              MOV            ax, 198h
-013 000316 50                  PUSH           ax
-014 000317 E8C50C              CALL  near ptr printf
-015 00031A 83C406              ADD            sp, 6
-016 00031D 8D46EC              LEA            ax, [bp-14h]
-017 000320 50                  PUSH           ax
-018 000321 B8B201              MOV            ax, 1B2h
-019 000324 50                  PUSH           ax
-020 000325 E84015              CALL  near ptr scanf
-021 000328 59                  POP            cx
-022 000329 59                  POP            cx
-023 00032A 8D46F0              LEA            ax, [bp-10h]
-024 00032D 50                  PUSH           ax
-025 00032E B8B601              MOV            ax, 1B6h
-026 000331 50                  PUSH           ax
-027 000332 E83315              CALL  near ptr scanf
-028 000335 59                  POP            cx
-029 000336 59                  POP            cx
-030 000337 C746FA0000          MOV   word ptr [bp-6], 0
-031 00033C C746F80100          MOV   word ptr [bp-8], 1
-032 000341 E9E900              JMP            L1
-
-033 00042D 8B56FA         L1:  MOV            dx, [bp-6]
-034 000430 8B46F8              MOV            ax, [bp-8]
-035 000433 3B56FE              CMP            dx, [bp-2]
-036 000436 7D03                JGE            L2
-037 000438 E909FF              JMP            L3
-
-038 000344 C746F60000     L3:  MOV   word ptr [bp-0Ah], 0
-039 000349 C746F40100          MOV   word ptr [bp-0Ch], 1
-040 00034E E9C000              JMP            L4
-
-041 000411 837EF600       L4:  CMP   word ptr [bp-0Ah], 0
-042 000415 7D03                JGE            L5
-043 000417 E937FF              JMP            L6
-
-044 000351 8B56EE         L6:  MOV            dx, [bp-12h]
-045 000354 8B46EC              MOV            ax, [bp-14h]
-046 000357 0346F0              ADD            ax, [bp-10h]
-047 00035A 1356F2              ADC            dx, [bp-0Eh]
-048 00035D 0346F4              ADD            ax, [bp-0Ch]
-049 000360 1356F6              ADC            dx, [bp-0Ah]
-050 000363 8956EE              MOV            [bp-12h], dx
-051 000366 8946EC              MOV            [bp-14h], ax
-052 000369 8B56EE              MOV            dx, [bp-12h]
-053 00036C 8B46EC              MOV            ax, [bp-14h]
-054 00036F D1FA                SAR            dx, 1
-055 000371 D1D8                RCR            ax, 1
-056 000373 8956F2              MOV            [bp-0Eh], dx
-057 000376 8946F0              MOV            [bp-10h], ax
-058 000379 33D2                XOR            dx, dx
-059 00037B B80A00              MOV            ax, 0Ah
-060 00037E 52                  PUSH           dx
-061 00037F 50                  PUSH           ax
-062 000380 FF76F2              PUSH  word ptr [bp-0Eh]
-063 000383 FF76F0              PUSH  word ptr [bp-10h]
-064 000386 9AEB1D1000          CALL   far ptr LMOD@
-065 00038B 8956EE              MOV            [bp-12h], dx
-066 00038E 8946EC              MOV            [bp-14h], ax
-067 000391 8B56F2              MOV            dx, [bp-0Eh]
-068 000394 8B46F0              MOV            ax, [bp-10h]
-069 000397 3B56F6              CMP            dx, [bp-0Ah]
-070 00039A 750A                JNE            L7
-071 00039C 3B46F4              CMP            ax, [bp-0Ch]
-072 00039F 7505                JNE            L7
-073 0003A1 B80100              MOV            ax, 1
-074 0003A4 EB02                JMP            L8
-
-075 0003A8 99             L8:  CWD
-076 0003A9 8956EE              MOV            [bp-12h], dx
-077 0003AC 8946EC              MOV            [bp-14h], ax
-078 0003AF 8B56EE              MOV            dx, [bp-12h]
-079 0003B2 8B46EC              MOV            ax, [bp-14h]
-080 0003B5 0B46F4              OR             ax, [bp-0Ch]
-081 0003B8 0B56F6              OR             dx, [bp-0Ah]
-082 0003BB 8956F2              MOV            [bp-0Eh], dx
-083 0003BE 8946F0              MOV            [bp-10h], ax
-084 0003C1 8B46F0              MOV            ax, [bp-10h]
-085 0003C4 0B46F2              OR             ax, [bp-0Eh]
-086 0003C7 7505                JNE            L9
-087 0003C9 B80100              MOV            ax, 1
-088 0003CC EB02                JMP            L10
-
-089 0003D0 99             L10: CWD
-090 0003D1 8956EE              MOV            [bp-12h], dx
-091 0003D4 8946EC              MOV            [bp-14h], ax
-092 0003D7 8B56EE              MOV            dx, [bp-12h]
-093 0003DA 8B46EC              MOV            ax, [bp-14h]
-094 0003DD 0346F4              ADD            ax, [bp-0Ch]
-095 0003E0 1356F6              ADC            dx, [bp-0Ah]
-096 0003E3 8956F2              MOV            [bp-0Eh], dx
-097 0003E6 8946F0              MOV            [bp-10h], ax
-098 0003E9 8B56F2              MOV            dx, [bp-0Eh]
-099 0003EC 8B46F0              MOV            ax, [bp-10h]
-100 0003EF 3B56F6              CMP            dx, [bp-0Ah]
-101 0003F2 7C0C                JL             L11
-102 0003F4 7F05                JG             L12
-103 0003F6 3B46F4              CMP            ax, [bp-0Ch]
-104 0003F9 7605                JBE            L11
-
-105 0003FB B80100         L12: MOV            ax, 1
-106 0003FE EB02                JMP            L13
-
-107 000402 99             L13: CWD
-108 000403 8956EE              MOV            [bp-12h], dx
-109 000406 8946EC              MOV            [bp-14h], ax
-110 000409 8346F401            ADD   word ptr [bp-0Ch], 1
-111 00040D 8356F600            ADC   word ptr [bp-0Ah], 0
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC14              SUB            sp, 14h            
+003 000300 8D46FC              LEA            ax, [bp-4]         
+004 000303 50                  PUSH           ax                 
+005 000304 B89401              MOV            ax, 194h           
+006 000307 50                  PUSH           ax                 
+007 000308 E85D15              CALL           near ptr scanf     
+008 00030B 59                  POP            cx                 
+009 00030C 59                  POP            cx                 
+010 00030D FF76FE              PUSH           word ptr [bp-2]    
+011 000310 FF76FC              PUSH           word ptr [bp-4]    
+012 000313 B89801              MOV            ax, 198h           
+013 000316 50                  PUSH           ax                 
+014 000317 E8C50C              CALL           near ptr printf    
+015 00031A 83C406              ADD            sp, 6              
+016 00031D 8D46EC              LEA            ax, [bp-14h]       
+017 000320 50                  PUSH           ax                 
+018 000321 B8B201              MOV            ax, 1B2h           
+019 000324 50                  PUSH           ax                 
+020 000325 E84015              CALL           near ptr scanf     
+021 000328 59                  POP            cx                 
+022 000329 59                  POP            cx                 
+023 00032A 8D46F0              LEA            ax, [bp-10h]       
+024 00032D 50                  PUSH           ax                 
+025 00032E B8B601              MOV            ax, 1B6h           
+026 000331 50                  PUSH           ax                 
+027 000332 E83315              CALL           near ptr scanf     
+028 000335 59                  POP            cx                 
+029 000336 59                  POP            cx                 
+030 000337 C746FA0000          MOV            word ptr [bp-6], 0 
+031 00033C C746F80100          MOV            word ptr [bp-8], 1 
+032 000341 E9E900              JMP            L1                 
+
+033 00042D 8B56FA         L1:  MOV            dx, [bp-6]         
+034 000430 8B46F8              MOV            ax, [bp-8]         
+035 000433 3B56FE              CMP            dx, [bp-2]         
+036 000436 7D03                JGE            L2                 
+037 000438 E909FF              JMP            L3                 
+
+038 000344 C746F60000     L3:  MOV            word ptr [bp-0Ah], 0
+039 000349 C746F40100          MOV            word ptr [bp-0Ch], 1
+040 00034E E9C000              JMP            L4                 
+
+041 000411 837EF600       L4:  CMP            word ptr [bp-0Ah], 0
+042 000415 7D03                JGE            L5                 
+043 000417 E937FF              JMP            L6                 
+
+044 000351 8B56EE         L6:  MOV            dx, [bp-12h]       
+045 000354 8B46EC              MOV            ax, [bp-14h]       
+046 000357 0346F0              ADD            ax, [bp-10h]       
+047 00035A 1356F2              ADC            dx, [bp-0Eh]       
+048 00035D 0346F4              ADD            ax, [bp-0Ch]       
+049 000360 1356F6              ADC            dx, [bp-0Ah]       
+050 000363 8956EE              MOV            [bp-12h], dx       
+051 000366 8946EC              MOV            [bp-14h], ax       
+052 000369 8B56EE              MOV            dx, [bp-12h]       
+053 00036C 8B46EC              MOV            ax, [bp-14h]       
+054 00036F D1FA                SAR            dx, 1              
+055 000371 D1D8                RCR            ax, 1              
+056 000373 8956F2              MOV            [bp-0Eh], dx       
+057 000376 8946F0              MOV            [bp-10h], ax       
+058 000379 33D2                XOR            dx, dx             
+059 00037B B80A00              MOV            ax, 0Ah            
+060 00037E 52                  PUSH           dx                 
+061 00037F 50                  PUSH           ax                 
+062 000380 FF76F2              PUSH           word ptr [bp-0Eh]  
+063 000383 FF76F0              PUSH           word ptr [bp-10h]  
+064 000386 9AEB1D1000          CALL            far ptr LMOD@     
+065 00038B 8956EE              MOV            [bp-12h], dx       
+066 00038E 8946EC              MOV            [bp-14h], ax       
+067 000391 8B56F2              MOV            dx, [bp-0Eh]       
+068 000394 8B46F0              MOV            ax, [bp-10h]       
+069 000397 3B56F6              CMP            dx, [bp-0Ah]       
+070 00039A 750A                JNE            L7                 
+071 00039C 3B46F4              CMP            ax, [bp-0Ch]       
+072 00039F 7505                JNE            L7                 
+073 0003A1 B80100              MOV            ax, 1              
+074 0003A4 EB02                JMP            L8                 
+
+075 0003A8 99             L8:  CWD                               
+076 0003A9 8956EE              MOV            [bp-12h], dx       
+077 0003AC 8946EC              MOV            [bp-14h], ax       
+078 0003AF 8B56EE              MOV            dx, [bp-12h]       
+079 0003B2 8B46EC              MOV            ax, [bp-14h]       
+080 0003B5 0B46F4              OR             ax, [bp-0Ch]       
+081 0003B8 0B56F6              OR             dx, [bp-0Ah]       
+082 0003BB 8956F2              MOV            [bp-0Eh], dx       
+083 0003BE 8946F0              MOV            [bp-10h], ax       
+084 0003C1 8B46F0              MOV            ax, [bp-10h]       
+085 0003C4 0B46F2              OR             ax, [bp-0Eh]       
+086 0003C7 7505                JNE            L9                 
+087 0003C9 B80100              MOV            ax, 1              
+088 0003CC EB02                JMP            L10                
+
+089 0003D0 99             L10: CWD                               
+090 0003D1 8956EE              MOV            [bp-12h], dx       
+091 0003D4 8946EC              MOV            [bp-14h], ax       
+092 0003D7 8B56EE              MOV            dx, [bp-12h]       
+093 0003DA 8B46EC              MOV            ax, [bp-14h]       
+094 0003DD 0346F4              ADD            ax, [bp-0Ch]       
+095 0003E0 1356F6              ADC            dx, [bp-0Ah]       
+096 0003E3 8956F2              MOV            [bp-0Eh], dx       
+097 0003E6 8946F0              MOV            [bp-10h], ax       
+098 0003E9 8B56F2              MOV            dx, [bp-0Eh]       
+099 0003EC 8B46F0              MOV            ax, [bp-10h]       
+100 0003EF 3B56F6              CMP            dx, [bp-0Ah]       
+101 0003F2 7C0C                JL             L11                
+102 0003F4 7F05                JG             L12                
+103 0003F6 3B46F4              CMP            ax, [bp-0Ch]       
+104 0003F9 7605                JBE            L11                
+
+105 0003FB B80100         L12: MOV            ax, 1              
+106 0003FE EB02                JMP            L13                
+
+107 000402 99             L13: CWD                               
+108 000403 8956EE              MOV            [bp-12h], dx       
+109 000406 8946EC              MOV            [bp-14h], ax       
+110 000409 8346F401            ADD            word ptr [bp-0Ch], 1
+111 00040D 8356F600            ADC            word ptr [bp-0Ah], 0
 112                            JMP            L4                 ;Synthetic inst
 
-113 000400 33C0           L11: XOR            ax, ax
+113 000400 33C0           L11: XOR            ax, ax             
 114                            JMP            L13                ;Synthetic inst
 
-115 0003CE 33C0           L9:  XOR            ax, ax
+115 0003CE 33C0           L9:  XOR            ax, ax             
 116                            JMP            L10                ;Synthetic inst
 
-117 0003A6 33C0           L7:  XOR            ax, ax
+117 0003A6 33C0           L7:  XOR            ax, ax             
 118                            JMP            L8                 ;Synthetic inst
 
-119 00041A 7F09           L5:  JG             L14
-120 00041C 837EF428            CMP   word ptr [bp-0Ch], 28h
-121 000420 7703                JA             L14
-122 000422 E92CFF              JMP            L6
+119 00041A 7F09           L5:  JG             L14                
+120 00041C 837EF428            CMP            word ptr [bp-0Ch], 28h
+121 000420 7703                JA             L14                
+122 000422 E92CFF              JMP            L6                 
 
-123 000425 8346F801       L14: ADD   word ptr [bp-8], 1
-124 000429 8356FA00            ADC   word ptr [bp-6], 0
+123 000425 8346F801       L14: ADD            word ptr [bp-8], 1 
+124 000429 8356FA00            ADC            word ptr [bp-6], 0 
 125                            JMP            L1                 ;Synthetic inst
 
-126 00043B 7F08           L2:  JG             L15
-127 00043D 3B46FC              CMP            ax, [bp-4]
-128 000440 7703                JA             L15
-129 000442 E9FFFE              JMP            L3
-
-130 000445 FF76EE         L15: PUSH  word ptr [bp-12h]
-131 000448 FF76EC              PUSH  word ptr [bp-14h]
-132 00044B B8BA01              MOV            ax, 1BAh
-133 00044E 50                  PUSH           ax
-134 00044F E88D0B              CALL  near ptr printf
-135 000452 83C406              ADD            sp, 6
-136 000455 8BE5                MOV            sp, bp
-137 000457 5D                  POP            bp
-138 000458 C3                  RET
+126 00043B 7F08           L2:  JG             L15                
+127 00043D 3B46FC              CMP            ax, [bp-4]         
+128 000440 7703                JA             L15                
+129 000442 E9FFFE              JMP            L3                 
+
+130 000445 FF76EE         L15: PUSH           word ptr [bp-12h]  
+131 000448 FF76EC              PUSH           word ptr [bp-14h]  
+132 00044B B8BA01              MOV            ax, 1BAh           
+133 00044E 50                  PUSH           ax                 
+134 00044F E88D0B              CALL           near ptr printf    
+135 000452 83C406              ADD            sp, 6              
+136 000455 8BE5                MOV            sp, bp             
+137 000457 5D                  POP            bp                 
+138 000458 C3                  RET                               
 
 		main  ENDP
 
 		LMOD@  PROC  FAR
-000 001EEB B90200              MOV            cx, 2
-001 001EEE EB03                JMP            L16
-
-002 001EF3 55             L16: PUSH           bp
-003 001EF4 56                  PUSH           si
-004 001EF5 57                  PUSH           di
-005 001EF6 8BEC                MOV            bp, sp
-006 001EF8 8BF9                MOV            di, cx
-007 001EFA 8B460A              MOV            ax, [bp+0Ah]
-008 001EFD 8B560C              MOV            dx, [bp+0Ch]
-009 001F00 8B5E0E              MOV            bx, [bp+0Eh]
-010 001F03 8B4E10              MOV            cx, [bp+10h]
-011 001F06 0BC9                OR             cx, cx
-012 001F08 7508                JNE            L17
-013 001F0A 0BD2                OR             dx, dx
-014 001F0C 7469                JE             L18
-015 001F0E 0BDB                OR             bx, bx
-016 001F10 7465                JE             L18
-
-017 001F12 F7C70100       L17: TEST           di, 1
-018 001F16 751C                JNE            L19
-019 001F18 0BD2                OR             dx, dx
-020 001F1A 790A                JNS            L20
-021 001F1C F7DA                NEG            dx
-022 001F1E F7D8                NEG            ax
-023 001F20 83DA00              SBB            dx, 0
-024 001F23 83CF0C              OR             di, 0Ch
-
-025 001F26 0BC9           L20: OR             cx, cx
-026 001F28 790A                JNS            L19
-027 001F2A F7D9                NEG            cx
-028 001F2C F7DB                NEG            bx
-029 001F2E 83D900              SBB            cx, 0
-030 001F31 83F704              XOR            di, 4
-
-031 001F34 8BE9           L19: MOV            bp, cx
-032 001F36 B92000              MOV            cx, 20h
-033 001F39 57                  PUSH           di
-034 001F3A 33FF                XOR            di, di
-035 001F3C 33F6                XOR            si, si
-
-036 001F3E D1E0           L21: SHL            ax, 1
-037 001F40 D1D2                RCL            dx, 1
-038 001F42 D1D6                RCL            si, 1
-039 001F44 D1D7                RCL            di, 1
-040 001F46 3BFD                CMP            di, bp
-041 001F48 720B                JB             L22
-042 001F4A 7704                JA             L23
-043 001F4C 3BF3                CMP            si, bx
-044 001F4E 7205                JB             L22
-
-045 001F50 2BF3           L23: SUB            si, bx
-046 001F52 1BFD                SBB            di, bp
-047 001F54 40                  INC            ax
-
-048 001F55 E2E7           L22: LOOP           L21
-049 001F57 5B                  POP            bx
-050 001F58 F7C30200            TEST           bx, 2
-051 001F5C 7406                JE             L24
-052 001F5E 8BC6                MOV            ax, si
-053 001F60 8BD7                MOV            dx, di
-054 001F62 D1EB                SHR            bx, 1
-
-055 001F64 F7C30400       L24: TEST           bx, 4
-056 001F68 7407                JE             L25
-057 001F6A F7DA                NEG            dx
-058 001F6C F7D8                NEG            ax
-059 001F6E 83DA00              SBB            dx, 0
-
-060 001F71 5F             L25: POP            di
-061 001F72 5E                  POP            si
-062 001F73 5D                  POP            bp
-063 001F74 CA0800              RETF           8
-065 001F77 F7F3                DIV            bx
-067 001F79 F7C70200            TEST           di, 2
-068 001F7D 7402                JE             L26
-069 001F7F 8BC2                MOV            ax, dx
-
-070 001F81 33D2           L26: XOR            dx, dx
-071 001F83 EBEC                JMP            L25
+000 001EEB B90200              MOV            cx, 2              
+001 001EEE EB03                JMP            L16                
+
+002 001EF3 55             L16: PUSH           bp                 
+003 001EF4 56                  PUSH           si                 
+004 001EF5 57                  PUSH           di                 
+005 001EF6 8BEC                MOV            bp, sp             
+006 001EF8 8BF9                MOV            di, cx             
+007 001EFA 8B460A              MOV            ax, [bp+0Ah]       
+008 001EFD 8B560C              MOV            dx, [bp+0Ch]       
+009 001F00 8B5E0E              MOV            bx, [bp+0Eh]       
+010 001F03 8B4E10              MOV            cx, [bp+10h]       
+011 001F06 0BC9                OR             cx, cx             
+012 001F08 7508                JNE            L17                
+013 001F0A 0BD2                OR             dx, dx             
+014 001F0C 7469                JE             L18                
+015 001F0E 0BDB                OR             bx, bx             
+016 001F10 7465                JE             L18                
+
+017 001F12 F7C70100       L17: TEST           di, 1              
+018 001F16 751C                JNE            L19                
+019 001F18 0BD2                OR             dx, dx             
+020 001F1A 790A                JNS            L20                
+021 001F1C F7DA                NEG            dx                 
+022 001F1E F7D8                NEG            ax                 
+023 001F20 83DA00              SBB            dx, 0              
+024 001F23 83CF0C              OR             di, 0Ch            
+
+025 001F26 0BC9           L20: OR             cx, cx             
+026 001F28 790A                JNS            L19                
+027 001F2A F7D9                NEG            cx                 
+028 001F2C F7DB                NEG            bx                 
+029 001F2E 83D900              SBB            cx, 0              
+030 001F31 83F704              XOR            di, 4              
+
+031 001F34 8BE9           L19: MOV            bp, cx             
+032 001F36 B92000              MOV            cx, 20h            
+033 001F39 57                  PUSH           di                 
+034 001F3A 33FF                XOR            di, di             
+035 001F3C 33F6                XOR            si, si             
+
+036 001F3E D1E0           L21: SHL            ax, 1              
+037 001F40 D1D2                RCL            dx, 1              
+038 001F42 D1D6                RCL            si, 1              
+039 001F44 D1D7                RCL            di, 1              
+040 001F46 3BFD                CMP            di, bp             
+041 001F48 720B                JB             L22                
+042 001F4A 7704                JA             L23                
+043 001F4C 3BF3                CMP            si, bx             
+044 001F4E 7205                JB             L22                
+
+045 001F50 2BF3           L23: SUB            si, bx             
+046 001F52 1BFD                SBB            di, bp             
+047 001F54 40                  INC            ax                 
+
+048 001F55 E2E7           L22: LOOP           L21                
+049 001F57 5B                  POP            bx                 
+050 001F58 F7C30200            TEST           bx, 2              
+051 001F5C 7406                JE             L24                
+052 001F5E 8BC6                MOV            ax, si             
+053 001F60 8BD7                MOV            dx, di             
+054 001F62 D1EB                SHR            bx, 1              
+
+055 001F64 F7C30400       L24: TEST           bx, 4              
+056 001F68 7407                JE             L25                
+057 001F6A F7DA                NEG            dx                 
+058 001F6C F7D8                NEG            ax                 
+059 001F6E 83DA00              SBB            dx, 0              
+
+060 001F71 5F             L25: POP            di                 
+061 001F72 5E                  POP            si                 
+062 001F73 5D                  POP            bp                 
+063 001F74 CA0800              RETF           8                  
+065 001F77 F7F3                DIV            bx                 
+067 001F79 F7C70200            TEST           di, 2              
+068 001F7D 7402                JE             L26                
+069 001F7F 8BC2                MOV            ax, dx             
+
+070 001F81 33D2           L26: XOR            dx, dx             
+071 001F83 EBEC                JMP            L25                
 
 		LMOD@  ENDP
 

+ 211 - 211
tests/prev/BENCHLNG.EXE.a2

@@ -1,234 +1,234 @@
 		LMOD@  PROC  FAR
-000 001EEB B90200              MOV            cx, 2
-002 001EF3 55                  PUSH           bp
-003 001EF4 56                  PUSH           si
-004 001EF5 57                  PUSH           di
-005 001EF6 8BEC                MOV            bp, sp
-006 001EF8 8BF9                MOV            di, cx
-007 001EFA 8B460A              MOV            ax, [bp+0Ah]
-008 001EFD 8B560C              MOV            dx, [bp+0Ch]
-009 001F00 8B5E0E              MOV            bx, [bp+0Eh]
-010 001F03 8B4E10              MOV            cx, [bp+10h]
-011 001F06 0BC9                OR             cx, cx
-012 001F08 7508                JNE            L1
-013 001F0A 0BD2                OR             dx, dx
-014 001F0C 7469                JE             L2
-015 001F0E 0BDB                OR             bx, bx
-016 001F10 7465                JE             L2
-
-017 001F12 F7C70100       L1:  TEST           di, 1
-018 001F16 751C                JNE            L3
-019 001F18 0BD2                OR             dx, dx
-020 001F1A 790A                JNS            L4
-021 001F1C F7DA                NEG            dx
-022 001F1E F7D8                NEG            ax
-023 001F20 83DA00              SBB            dx, 0
-024 001F23 83CF0C              OR             di, 0Ch
-
-025 001F26 0BC9           L4:  OR             cx, cx
-026 001F28 790A                JNS            L3
-027 001F2A F7D9                NEG            cx
-028 001F2C F7DB                NEG            bx
-029 001F2E 83D900              SBB            cx, 0
-030 001F31 83F704              XOR            di, 4
-
-031 001F34 8BE9           L3:  MOV            bp, cx
-032 001F36 B92000              MOV            cx, 20h
-033 001F39 57                  PUSH           di
-034 001F3A 33FF                XOR            di, di
-035 001F3C 33F6                XOR            si, si
-
-036 001F3E D1E0           L5:  SHL            ax, 1
-037 001F40 D1D2                RCL            dx, 1
-038 001F42 D1D6                RCL            si, 1
-039 001F44 D1D7                RCL            di, 1
-040 001F46 3BFD                CMP            di, bp
-041 001F48 720B                JB             L6
-042 001F4A 7704                JA             L7
-043 001F4C 3BF3                CMP            si, bx
-044 001F4E 7205                JB             L6
-
-045 001F50 2BF3           L7:  SUB            si, bx
-046 001F52 1BFD                SBB            di, bp
-047 001F54 40                  INC            ax
-
-048 001F55 E2E7           L6:  LOOP           L5
-049 001F57 5B                  POP            bx
-050 001F58 F7C30200            TEST           bx, 2
-051 001F5C 7406                JE             L8
-052 001F5E 8BC6                MOV            ax, si
-053 001F60 8BD7                MOV            dx, di
-054 001F62 D1EB                SHR            bx, 1
-
-055 001F64 F7C30400       L8:  TEST           bx, 4
-056 001F68 7407                JE             L9
-057 001F6A F7DA                NEG            dx
-058 001F6C F7D8                NEG            ax
-059 001F6E 83DA00              SBB            dx, 0
-
-060 001F71 5F             L9:  POP            di
-061 001F72 5E                  POP            si
-062 001F73 5D                  POP            bp
-063 001F74 CA0800              RETF           8
+000 001EEB B90200              MOV            cx, 2              
+002 001EF3 55                  PUSH           bp                 
+003 001EF4 56                  PUSH           si                 
+004 001EF5 57                  PUSH           di                 
+005 001EF6 8BEC                MOV            bp, sp             
+006 001EF8 8BF9                MOV            di, cx             
+007 001EFA 8B460A              MOV            ax, [bp+0Ah]       
+008 001EFD 8B560C              MOV            dx, [bp+0Ch]       
+009 001F00 8B5E0E              MOV            bx, [bp+0Eh]       
+010 001F03 8B4E10              MOV            cx, [bp+10h]       
+011 001F06 0BC9                OR             cx, cx             
+012 001F08 7508                JNE            L1                 
+013 001F0A 0BD2                OR             dx, dx             
+014 001F0C 7469                JE             L2                 
+015 001F0E 0BDB                OR             bx, bx             
+016 001F10 7465                JE             L2                 
+
+017 001F12 F7C70100       L1:  TEST           di, 1              
+018 001F16 751C                JNE            L3                 
+019 001F18 0BD2                OR             dx, dx             
+020 001F1A 790A                JNS            L4                 
+021 001F1C F7DA                NEG            dx                 
+022 001F1E F7D8                NEG            ax                 
+023 001F20 83DA00              SBB            dx, 0              
+024 001F23 83CF0C              OR             di, 0Ch            
+
+025 001F26 0BC9           L4:  OR             cx, cx             
+026 001F28 790A                JNS            L3                 
+027 001F2A F7D9                NEG            cx                 
+028 001F2C F7DB                NEG            bx                 
+029 001F2E 83D900              SBB            cx, 0              
+030 001F31 83F704              XOR            di, 4              
+
+031 001F34 8BE9           L3:  MOV            bp, cx             
+032 001F36 B92000              MOV            cx, 20h            
+033 001F39 57                  PUSH           di                 
+034 001F3A 33FF                XOR            di, di             
+035 001F3C 33F6                XOR            si, si             
+
+036 001F3E D1E0           L5:  SHL            ax, 1              
+037 001F40 D1D2                RCL            dx, 1              
+038 001F42 D1D6                RCL            si, 1              
+039 001F44 D1D7                RCL            di, 1              
+040 001F46 3BFD                CMP            di, bp             
+041 001F48 720B                JB             L6                 
+042 001F4A 7704                JA             L7                 
+043 001F4C 3BF3                CMP            si, bx             
+044 001F4E 7205                JB             L6                 
+
+045 001F50 2BF3           L7:  SUB            si, bx             
+046 001F52 1BFD                SBB            di, bp             
+047 001F54 40                  INC            ax                 
+
+048 001F55 E2E7           L6:  LOOP           L5                 
+049 001F57 5B                  POP            bx                 
+050 001F58 F7C30200            TEST           bx, 2              
+051 001F5C 7406                JE             L8                 
+052 001F5E 8BC6                MOV            ax, si             
+053 001F60 8BD7                MOV            dx, di             
+054 001F62 D1EB                SHR            bx, 1              
+
+055 001F64 F7C30400       L8:  TEST           bx, 4              
+056 001F68 7407                JE             L9                 
+057 001F6A F7DA                NEG            dx                 
+058 001F6C F7D8                NEG            ax                 
+059 001F6E 83DA00              SBB            dx, 0              
+
+060 001F71 5F             L9:  POP            di                 
+061 001F72 5E                  POP            si                 
+062 001F73 5D                  POP            bp                 
+063 001F74 CA0800              RETF           8                  
 
 064                       L2:  MOV            tmp, dx:ax         ;Synthetic inst
-065 001F77 F7F3                DIV            bx
+065 001F77 F7F3                DIV            bx                 
 066                            MOD            bx                 ;Synthetic inst
-067 001F79 F7C70200            TEST           di, 2
-068 001F7D 7402                JE             L10
-069 001F7F 8BC2                MOV            ax, dx
+067 001F79 F7C70200            TEST           di, 2              
+068 001F7D 7402                JE             L10                
+069 001F7F 8BC2                MOV            ax, dx             
 
-070 001F81 33D2           L10: XOR            dx, dx
-071 001F83 EBEC                JMP            L9
+070 001F81 33D2           L10: XOR            dx, dx             
+071 001F83 EBEC                JMP            L9                 
 
 		LMOD@  ENDP
 
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC14              SUB            sp, 14h
-003 000300 8D46FC              LEA            ax, [bp-4]
-004 000303 50                  PUSH           ax
-005 000304 B89401              MOV            ax, 194h
-006 000307 50                  PUSH           ax
-007 000308 E85D15              CALL  near ptr scanf
-008 00030B 59                  POP            cx
-009 00030C 59                  POP            cx
-010 00030D FF76FE              PUSH  word ptr [bp-2]
-011 000310 FF76FC              PUSH  word ptr [bp-4]
-012 000313 B89801              MOV            ax, 198h
-013 000316 50                  PUSH           ax
-014 000317 E8C50C              CALL  near ptr printf
-015 00031A 83C406              ADD            sp, 6
-016 00031D 8D46EC              LEA            ax, [bp-14h]
-017 000320 50                  PUSH           ax
-018 000321 B8B201              MOV            ax, 1B2h
-019 000324 50                  PUSH           ax
-020 000325 E84015              CALL  near ptr scanf
-021 000328 59                  POP            cx
-022 000329 59                  POP            cx
-023 00032A 8D46F0              LEA            ax, [bp-10h]
-024 00032D 50                  PUSH           ax
-025 00032E B8B601              MOV            ax, 1B6h
-026 000331 50                  PUSH           ax
-027 000332 E83315              CALL  near ptr scanf
-028 000335 59                  POP            cx
-029 000336 59                  POP            cx
-030 000337 C746FA0000          MOV   word ptr [bp-6], 0
-031 00033C C746F80100          MOV   word ptr [bp-8], 1
-
-033 00042D 8B56FA         L11: MOV            dx, [bp-6]
-034 000430 8B46F8              MOV            ax, [bp-8]
-035 000433 3B56FE              CMP            dx, [bp-2]
-036 000436 7D03                JGE            L12
-
-038 000344 C746F60000     L13: MOV   word ptr [bp-0Ah], 0
-039 000349 C746F40100          MOV   word ptr [bp-0Ch], 1
-
-041 000411 837EF600       L14: CMP   word ptr [bp-0Ah], 0
-042 000415 7D03                JGE            L15
-
-044 000351 8B56EE         L16: MOV            dx, [bp-12h]
-045 000354 8B46EC              MOV            ax, [bp-14h]
-046 000357 0346F0              ADD            ax, [bp-10h]
-047 00035A 1356F2              ADC            dx, [bp-0Eh]
-048 00035D 0346F4              ADD            ax, [bp-0Ch]
-049 000360 1356F6              ADC            dx, [bp-0Ah]
-050 000363 8956EE              MOV            [bp-12h], dx
-051 000366 8946EC              MOV            [bp-14h], ax
-052 000369 8B56EE              MOV            dx, [bp-12h]
-053 00036C 8B46EC              MOV            ax, [bp-14h]
-054 00036F D1FA                SAR            dx, 1
-055 000371 D1D8                RCR            ax, 1
-056 000373 8956F2              MOV            [bp-0Eh], dx
-057 000376 8946F0              MOV            [bp-10h], ax
-058 000379 33D2                XOR            dx, dx
-059 00037B B80A00              MOV            ax, 0Ah
-060 00037E 52                  PUSH           dx
-061 00037F 50                  PUSH           ax
-062 000380 FF76F2              PUSH  word ptr [bp-0Eh]
-063 000383 FF76F0              PUSH  word ptr [bp-10h]
-064 000386 9AEB1D1000          CALL   far ptr LMOD@
-065 00038B 8956EE              MOV            [bp-12h], dx
-066 00038E 8946EC              MOV            [bp-14h], ax
-067 000391 8B56F2              MOV            dx, [bp-0Eh]
-068 000394 8B46F0              MOV            ax, [bp-10h]
-069 000397 3B56F6              CMP            dx, [bp-0Ah]
-070 00039A 750A                JNE            L17
-071 00039C 3B46F4              CMP            ax, [bp-0Ch]
-072 00039F 7505                JNE            L17
-073 0003A1 B80100              MOV            ax, 1
-
-075 0003A8 99             L18: CWD
-076 0003A9 8956EE              MOV            [bp-12h], dx
-077 0003AC 8946EC              MOV            [bp-14h], ax
-078 0003AF 8B56EE              MOV            dx, [bp-12h]
-079 0003B2 8B46EC              MOV            ax, [bp-14h]
-080 0003B5 0B46F4              OR             ax, [bp-0Ch]
-081 0003B8 0B56F6              OR             dx, [bp-0Ah]
-082 0003BB 8956F2              MOV            [bp-0Eh], dx
-083 0003BE 8946F0              MOV            [bp-10h], ax
-084 0003C1 8B46F0              MOV            ax, [bp-10h]
-085 0003C4 0B46F2              OR             ax, [bp-0Eh]
-086 0003C7 7505                JNE            L19
-087 0003C9 B80100              MOV            ax, 1
-
-089 0003D0 99             L20: CWD
-090 0003D1 8956EE              MOV            [bp-12h], dx
-091 0003D4 8946EC              MOV            [bp-14h], ax
-092 0003D7 8B56EE              MOV            dx, [bp-12h]
-093 0003DA 8B46EC              MOV            ax, [bp-14h]
-094 0003DD 0346F4              ADD            ax, [bp-0Ch]
-095 0003E0 1356F6              ADC            dx, [bp-0Ah]
-096 0003E3 8956F2              MOV            [bp-0Eh], dx
-097 0003E6 8946F0              MOV            [bp-10h], ax
-098 0003E9 8B56F2              MOV            dx, [bp-0Eh]
-099 0003EC 8B46F0              MOV            ax, [bp-10h]
-100 0003EF 3B56F6              CMP            dx, [bp-0Ah]
-101 0003F2 7C0C                JL             L21
-102 0003F4 7F05                JG             L22
-103 0003F6 3B46F4              CMP            ax, [bp-0Ch]
-104 0003F9 7605                JBE            L21
-
-105 0003FB B80100         L22: MOV            ax, 1
-
-107 000402 99             L23: CWD
-108 000403 8956EE              MOV            [bp-12h], dx
-109 000406 8946EC              MOV            [bp-14h], ax
-110 000409 8346F401            ADD   word ptr [bp-0Ch], 1
-111 00040D 8356F600            ADC   word ptr [bp-0Ah], 0
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC14              SUB            sp, 14h            
+003 000300 8D46FC              LEA            ax, [bp-4]         
+004 000303 50                  PUSH           ax                 
+005 000304 B89401              MOV            ax, 194h           
+006 000307 50                  PUSH           ax                 
+007 000308 E85D15              CALL           near ptr scanf     
+008 00030B 59                  POP            cx                 
+009 00030C 59                  POP            cx                 
+010 00030D FF76FE              PUSH           word ptr [bp-2]    
+011 000310 FF76FC              PUSH           word ptr [bp-4]    
+012 000313 B89801              MOV            ax, 198h           
+013 000316 50                  PUSH           ax                 
+014 000317 E8C50C              CALL           near ptr printf    
+015 00031A 83C406              ADD            sp, 6              
+016 00031D 8D46EC              LEA            ax, [bp-14h]       
+017 000320 50                  PUSH           ax                 
+018 000321 B8B201              MOV            ax, 1B2h           
+019 000324 50                  PUSH           ax                 
+020 000325 E84015              CALL           near ptr scanf     
+021 000328 59                  POP            cx                 
+022 000329 59                  POP            cx                 
+023 00032A 8D46F0              LEA            ax, [bp-10h]       
+024 00032D 50                  PUSH           ax                 
+025 00032E B8B601              MOV            ax, 1B6h           
+026 000331 50                  PUSH           ax                 
+027 000332 E83315              CALL           near ptr scanf     
+028 000335 59                  POP            cx                 
+029 000336 59                  POP            cx                 
+030 000337 C746FA0000          MOV            word ptr [bp-6], 0 
+031 00033C C746F80100          MOV            word ptr [bp-8], 1 
+
+033 00042D 8B56FA         L11: MOV            dx, [bp-6]         
+034 000430 8B46F8              MOV            ax, [bp-8]         
+035 000433 3B56FE              CMP            dx, [bp-2]         
+036 000436 7D03                JGE            L12                
+
+038 000344 C746F60000     L13: MOV            word ptr [bp-0Ah], 0
+039 000349 C746F40100          MOV            word ptr [bp-0Ch], 1
+
+041 000411 837EF600       L14: CMP            word ptr [bp-0Ah], 0
+042 000415 7D03                JGE            L15                
+
+044 000351 8B56EE         L16: MOV            dx, [bp-12h]       
+045 000354 8B46EC              MOV            ax, [bp-14h]       
+046 000357 0346F0              ADD            ax, [bp-10h]       
+047 00035A 1356F2              ADC            dx, [bp-0Eh]       
+048 00035D 0346F4              ADD            ax, [bp-0Ch]       
+049 000360 1356F6              ADC            dx, [bp-0Ah]       
+050 000363 8956EE              MOV            [bp-12h], dx       
+051 000366 8946EC              MOV            [bp-14h], ax       
+052 000369 8B56EE              MOV            dx, [bp-12h]       
+053 00036C 8B46EC              MOV            ax, [bp-14h]       
+054 00036F D1FA                SAR            dx, 1              
+055 000371 D1D8                RCR            ax, 1              
+056 000373 8956F2              MOV            [bp-0Eh], dx       
+057 000376 8946F0              MOV            [bp-10h], ax       
+058 000379 33D2                XOR            dx, dx             
+059 00037B B80A00              MOV            ax, 0Ah            
+060 00037E 52                  PUSH           dx                 
+061 00037F 50                  PUSH           ax                 
+062 000380 FF76F2              PUSH           word ptr [bp-0Eh]  
+063 000383 FF76F0              PUSH           word ptr [bp-10h]  
+064 000386 9AEB1D1000          CALL            far ptr LMOD@     
+065 00038B 8956EE              MOV            [bp-12h], dx       
+066 00038E 8946EC              MOV            [bp-14h], ax       
+067 000391 8B56F2              MOV            dx, [bp-0Eh]       
+068 000394 8B46F0              MOV            ax, [bp-10h]       
+069 000397 3B56F6              CMP            dx, [bp-0Ah]       
+070 00039A 750A                JNE            L17                
+071 00039C 3B46F4              CMP            ax, [bp-0Ch]       
+072 00039F 7505                JNE            L17                
+073 0003A1 B80100              MOV            ax, 1              
+
+075 0003A8 99             L18: CWD                               
+076 0003A9 8956EE              MOV            [bp-12h], dx       
+077 0003AC 8946EC              MOV            [bp-14h], ax       
+078 0003AF 8B56EE              MOV            dx, [bp-12h]       
+079 0003B2 8B46EC              MOV            ax, [bp-14h]       
+080 0003B5 0B46F4              OR             ax, [bp-0Ch]       
+081 0003B8 0B56F6              OR             dx, [bp-0Ah]       
+082 0003BB 8956F2              MOV            [bp-0Eh], dx       
+083 0003BE 8946F0              MOV            [bp-10h], ax       
+084 0003C1 8B46F0              MOV            ax, [bp-10h]       
+085 0003C4 0B46F2              OR             ax, [bp-0Eh]       
+086 0003C7 7505                JNE            L19                
+087 0003C9 B80100              MOV            ax, 1              
+
+089 0003D0 99             L20: CWD                               
+090 0003D1 8956EE              MOV            [bp-12h], dx       
+091 0003D4 8946EC              MOV            [bp-14h], ax       
+092 0003D7 8B56EE              MOV            dx, [bp-12h]       
+093 0003DA 8B46EC              MOV            ax, [bp-14h]       
+094 0003DD 0346F4              ADD            ax, [bp-0Ch]       
+095 0003E0 1356F6              ADC            dx, [bp-0Ah]       
+096 0003E3 8956F2              MOV            [bp-0Eh], dx       
+097 0003E6 8946F0              MOV            [bp-10h], ax       
+098 0003E9 8B56F2              MOV            dx, [bp-0Eh]       
+099 0003EC 8B46F0              MOV            ax, [bp-10h]       
+100 0003EF 3B56F6              CMP            dx, [bp-0Ah]       
+101 0003F2 7C0C                JL             L21                
+102 0003F4 7F05                JG             L22                
+103 0003F6 3B46F4              CMP            ax, [bp-0Ch]       
+104 0003F9 7605                JBE            L21                
+
+105 0003FB B80100         L22: MOV            ax, 1              
+
+107 000402 99             L23: CWD                               
+108 000403 8956EE              MOV            [bp-12h], dx       
+109 000406 8946EC              MOV            [bp-14h], ax       
+110 000409 8346F401            ADD            word ptr [bp-0Ch], 1
+111 00040D 8356F600            ADC            word ptr [bp-0Ah], 0
 112                            JMP            L14                ;Synthetic inst
 
-113 000400 33C0           L21: XOR            ax, ax
+113 000400 33C0           L21: XOR            ax, ax             
 114                            JMP            L23                ;Synthetic inst
 
-115 0003CE 33C0           L19: XOR            ax, ax
+115 0003CE 33C0           L19: XOR            ax, ax             
 116                            JMP            L20                ;Synthetic inst
 
-117 0003A6 33C0           L17: XOR            ax, ax
+117 0003A6 33C0           L17: XOR            ax, ax             
 118                            JMP            L18                ;Synthetic inst
 
-119 00041A 7F09           L15: JG             L24
-120 00041C 837EF428            CMP   word ptr [bp-0Ch], 28h
-121 000420 7703                JA             L24
+119 00041A 7F09           L15: JG             L24                
+120 00041C 837EF428            CMP            word ptr [bp-0Ch], 28h
+121 000420 7703                JA             L24                
 
-123 000425 8346F801       L24: ADD   word ptr [bp-8], 1
-124 000429 8356FA00            ADC   word ptr [bp-6], 0
+123 000425 8346F801       L24: ADD            word ptr [bp-8], 1 
+124 000429 8356FA00            ADC            word ptr [bp-6], 0 
 125                            JMP            L11                ;Synthetic inst
 
-126 00043B 7F08           L12: JG             L25
-127 00043D 3B46FC              CMP            ax, [bp-4]
-128 000440 7703                JA             L25
-
-130 000445 FF76EE         L25: PUSH  word ptr [bp-12h]
-131 000448 FF76EC              PUSH  word ptr [bp-14h]
-132 00044B B8BA01              MOV            ax, 1BAh
-133 00044E 50                  PUSH           ax
-134 00044F E88D0B              CALL  near ptr printf
-135 000452 83C406              ADD            sp, 6
-136 000455 8BE5                MOV            sp, bp
-137 000457 5D                  POP            bp
-138 000458 C3                  RET
+126 00043B 7F08           L12: JG             L25                
+127 00043D 3B46FC              CMP            ax, [bp-4]         
+128 000440 7703                JA             L25                
+
+130 000445 FF76EE         L25: PUSH           word ptr [bp-12h]  
+131 000448 FF76EC              PUSH           word ptr [bp-14h]  
+132 00044B B8BA01              MOV            ax, 1BAh           
+133 00044E 50                  PUSH           ax                 
+134 00044F E88D0B              CALL           near ptr printf    
+135 000452 83C406              ADD            sp, 6              
+136 000455 8BE5                MOV            sp, bp             
+137 000457 5D                  POP            bp                 
+138 000458 C3                  RET                               
 
 		main  ENDP
 

+ 81 - 81
tests/prev/BENCHLNG.b

@@ -14,87 +14,87 @@ long LMOD@ (long arg0, int arg2, int arg3)
  * Pascal calling convention.
  */
 {
-        MOV            cx, 2
-        PUSH           bp
-        PUSH           si
-        PUSH           di
-        MOV            bp, sp
-        MOV            di, cx
-        MOV            ax, [bp+0Ah]
-        MOV            dx, [bp+0Ch]
-        MOV            bx, [bp+0Eh]
-        MOV            cx, [bp+10h]
-        CMP            cx, 0
-        JNE            L1
-        OR             dx, dx
-        JE             L2
-        OR             bx, bx
-        JE             L2
-
-L1:     TEST           di, 1
-        JNE            L3
-        OR             dx, dx
-        JNS            L4
-        NEG            dx
-        NEG            ax
-        SBB            dx, 0
-        OR             di, 0Ch
-
-L4:     OR             cx, cx
-        JNS            L3
-        NEG            cx
-        NEG            bx
-        SBB            cx, 0
-        XOR            di, 4
-
-L3:     MOV            bp, cx
-        MOV            cx, 20h
-        PUSH           di
-        XOR            di, 0
-        XOR            si, 0
-
-L5:     SHL            ax, 1
-        RCL            dx, 1
-        RCL            si, 1
-        RCL            di, 1
-        CMP            di, bp
-        JB             L6
-        JA             L7
-        CMP            si, bx
-        JB             L6
-
-L7:     SUB            si, bx
-        SBB            di, bp
-        INC            ax
-
-L6:     LOOP           L5
-        POP            bx
-        TEST           bx, 2
-        JE             L8
-        MOV            ax, si
-        MOV            dx, di
-        SHR            bx, 1
-
-L8:     TEST           bx, 4
-        JE             L9
-        NEG            dx
-        NEG            ax
-        SBB            dx, 0
-
-L9:     POP            di
-        POP            si
-        POP            bp
-        RETF           8
-
-L2:     MOV            tmp, dx:ax                     ;Synthetic inst
-        DIV            bx
-        MOD            bx                             ;Synthetic inst
-        TEST           di, 2
-        JE             L10
-        MOV            ax, dx
-
-L10:    XOR            dx, dx
-        JMP            L9
+                    MOV            cx, 2              
+                    PUSH           bp                 
+                    PUSH           si                 
+                    PUSH           di                 
+                    MOV            bp, sp             
+                    MOV            di, cx             
+                    MOV            ax, [bp+0Ah]       
+                    MOV            dx, [bp+0Ch]       
+                    MOV            bx, [bp+0Eh]       
+                    MOV            cx, [bp+10h]       
+                    CMP            cx, 0              
+                    JNE            L1                 
+                    OR             dx, dx             
+                    JE             L2                 
+                    OR             bx, bx             
+                    JE             L2                 
+
+               L1:  TEST           di, 1              
+                    JNE            L3                 
+                    OR             dx, dx             
+                    JNS            L4                 
+                    NEG            dx                 
+                    NEG            ax                 
+                    SBB            dx, 0              
+                    OR             di, 0Ch            
+
+               L4:  OR             cx, cx             
+                    JNS            L3                 
+                    NEG            cx                 
+                    NEG            bx                 
+                    SBB            cx, 0              
+                    XOR            di, 4              
+
+               L3:  MOV            bp, cx             
+                    MOV            cx, 20h            
+                    PUSH           di                 
+                    XOR            di, 0              
+                    XOR            si, 0              
+
+               L5:  SHL            ax, 1              
+                    RCL            dx, 1              
+                    RCL            si, 1              
+                    RCL            di, 1              
+                    CMP            di, bp             
+                    JB             L6                 
+                    JA             L7                 
+                    CMP            si, bx             
+                    JB             L6                 
+
+               L7:  SUB            si, bx             
+                    SBB            di, bp             
+                    INC            ax                 
+
+               L6:  LOOP           L5                 
+                    POP            bx                 
+                    TEST           bx, 2              
+                    JE             L8                 
+                    MOV            ax, si             
+                    MOV            dx, di             
+                    SHR            bx, 1              
+
+               L8:  TEST           bx, 4              
+                    JE             L9                 
+                    NEG            dx                 
+                    NEG            ax                 
+                    SBB            dx, 0              
+
+               L9:  POP            di                 
+                    POP            si                 
+                    POP            bp                 
+                    RETF           8                  
+
+               L2:  MOV            tmp, dx:ax         ;Synthetic inst
+                    DIV            bx                 
+                    MOD            bx                 ;Synthetic inst
+                    TEST           di, 2              
+                    JE             L10                
+                    MOV            ax, dx             
+
+               L10: XOR            dx, dx             
+                    JMP            L9                 
 }
 
 

+ 90 - 90
tests/prev/BENCHMUL.EXE.a1

@@ -1,100 +1,100 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0C              SUB            sp, 0Ch
-003 000300 56                  PUSH           si
-004 000301 B89401              MOV            ax, 194h
-005 000304 50                  PUSH           ax
-006 000305 E8530C              CALL  near ptr printf
-007 000308 59                  POP            cx
-008 000309 8D46FC              LEA            ax, [bp-4]
-009 00030C 50                  PUSH           ax
-010 00030D B8B001              MOV            ax, 1B0h
-011 000310 50                  PUSH           ax
-012 000311 E8D014              CALL  near ptr scanf
-013 000314 59                  POP            cx
-014 000315 59                  POP            cx
-015 000316 FF76FE              PUSH  word ptr [bp-2]
-016 000319 FF76FC              PUSH  word ptr [bp-4]
-017 00031C B8B401              MOV            ax, 1B4h
-018 00031F 50                  PUSH           ax
-019 000320 E8380C              CALL  near ptr printf
-020 000323 83C406              ADD            sp, 6
-021 000326 8D46F4              LEA            ax, [bp-0Ch]
-022 000329 50                  PUSH           ax
-023 00032A B8CE01              MOV            ax, 1CEh
-024 00032D 50                  PUSH           ax
-025 00032E E8B314              CALL  near ptr scanf
-026 000331 59                  POP            cx
-027 000332 59                  POP            cx
-028 000333 8D46F6              LEA            ax, [bp-0Ah]
-029 000336 50                  PUSH           ax
-030 000337 B8D101              MOV            ax, 1D1h
-031 00033A 50                  PUSH           ax
-032 00033B E8A614              CALL  near ptr scanf
-033 00033E 59                  POP            cx
-034 00033F 59                  POP            cx
-035 000340 C746FA0000          MOV   word ptr [bp-6], 0
-036 000345 C746F80100          MOV   word ptr [bp-8], 1
-037 00034A EB66                JMP            L1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0C              SUB            sp, 0Ch            
+003 000300 56                  PUSH           si                 
+004 000301 B89401              MOV            ax, 194h           
+005 000304 50                  PUSH           ax                 
+006 000305 E8530C              CALL           near ptr printf    
+007 000308 59                  POP            cx                 
+008 000309 8D46FC              LEA            ax, [bp-4]         
+009 00030C 50                  PUSH           ax                 
+010 00030D B8B001              MOV            ax, 1B0h           
+011 000310 50                  PUSH           ax                 
+012 000311 E8D014              CALL           near ptr scanf     
+013 000314 59                  POP            cx                 
+014 000315 59                  POP            cx                 
+015 000316 FF76FE              PUSH           word ptr [bp-2]    
+016 000319 FF76FC              PUSH           word ptr [bp-4]    
+017 00031C B8B401              MOV            ax, 1B4h           
+018 00031F 50                  PUSH           ax                 
+019 000320 E8380C              CALL           near ptr printf    
+020 000323 83C406              ADD            sp, 6              
+021 000326 8D46F4              LEA            ax, [bp-0Ch]       
+022 000329 50                  PUSH           ax                 
+023 00032A B8CE01              MOV            ax, 1CEh           
+024 00032D 50                  PUSH           ax                 
+025 00032E E8B314              CALL           near ptr scanf     
+026 000331 59                  POP            cx                 
+027 000332 59                  POP            cx                 
+028 000333 8D46F6              LEA            ax, [bp-0Ah]       
+029 000336 50                  PUSH           ax                 
+030 000337 B8D101              MOV            ax, 1D1h           
+031 00033A 50                  PUSH           ax                 
+032 00033B E8A614              CALL           near ptr scanf     
+033 00033E 59                  POP            cx                 
+034 00033F 59                  POP            cx                 
+035 000340 C746FA0000          MOV            word ptr [bp-6], 0 
+036 000345 C746F80100          MOV            word ptr [bp-8], 1 
+037 00034A EB66                JMP            L1                 
 
-038 0003B2 8B56FA         L1:  MOV            dx, [bp-6]
-039 0003B5 8B46F8              MOV            ax, [bp-8]
-040 0003B8 3B56FE              CMP            dx, [bp-2]
-041 0003BB 7C8F                JL             L2
-042 0003BD 7F05                JG             L3
-043 0003BF 3B46FC              CMP            ax, [bp-4]
-044 0003C2 7688                JBE            L2
+038 0003B2 8B56FA         L1:  MOV            dx, [bp-6]         
+039 0003B5 8B46F8              MOV            ax, [bp-8]         
+040 0003B8 3B56FE              CMP            dx, [bp-2]         
+041 0003BB 7C8F                JL             L2                 
+042 0003BD 7F05                JG             L3                 
+043 0003BF 3B46FC              CMP            ax, [bp-4]         
+044 0003C2 7688                JBE            L2                 
 
-045 0003C4 FF76F4         L3:  PUSH  word ptr [bp-0Ch]
-046 0003C7 B8D401              MOV            ax, 1D4h
-047 0003CA 50                  PUSH           ax
-048 0003CB E88D0B              CALL  near ptr printf
-049 0003CE 59                  POP            cx
-050 0003CF 59                  POP            cx
-051 0003D0 5E                  POP            si
-052 0003D1 8BE5                MOV            sp, bp
-053 0003D3 5D                  POP            bp
-054 0003D4 C3                  RET
+045 0003C4 FF76F4         L3:  PUSH           word ptr [bp-0Ch]  
+046 0003C7 B8D401              MOV            ax, 1D4h           
+047 0003CA 50                  PUSH           ax                 
+048 0003CB E88D0B              CALL           near ptr printf    
+049 0003CE 59                  POP            cx                 
+050 0003CF 59                  POP            cx                 
+051 0003D0 5E                  POP            si                 
+052 0003D1 8BE5                MOV            sp, bp             
+053 0003D3 5D                  POP            bp                 
+054 0003D4 C3                  RET                               
 
-055 00034C BE0100         L2:  MOV            si, 1
-056 00034F EB54                JMP            L4
+055 00034C BE0100         L2:  MOV            si, 1              
+056 00034F EB54                JMP            L4                 
 
-057 0003A5 83FE28         L4:  CMP            si, 28h
-058 0003A8 7EA7                JLE            L5
-059 0003AA 8346F801            ADD   word ptr [bp-8], 1
-060 0003AE 8356FA00            ADC   word ptr [bp-6], 0
+057 0003A5 83FE28         L4:  CMP            si, 28h            
+058 0003A8 7EA7                JLE            L5                 
+059 0003AA 8346F801            ADD            word ptr [bp-8], 1 
+060 0003AE 8356FA00            ADC            word ptr [bp-6], 0 
 061                            JMP            L1                 ;Synthetic inst
 
-062 000351 8B46F4         L5:  MOV            ax, [bp-0Ch]
-063 000354 F766F4              MUL   word ptr [bp-0Ch]
-064 000357 F766F4              MUL   word ptr [bp-0Ch]
-065 00035A F766F4              MUL   word ptr [bp-0Ch]
-066 00035D F766F4              MUL   word ptr [bp-0Ch]
-067 000360 F766F4              MUL   word ptr [bp-0Ch]
-068 000363 F766F4              MUL   word ptr [bp-0Ch]
-069 000366 F766F4              MUL   word ptr [bp-0Ch]
-070 000369 F766F4              MUL   word ptr [bp-0Ch]
-071 00036C F766F4              MUL   word ptr [bp-0Ch]
-072 00036F F766F4              MUL   word ptr [bp-0Ch]
-073 000372 F766F4              MUL   word ptr [bp-0Ch]
-074 000375 F766F4              MUL   word ptr [bp-0Ch]
-075 000378 F766F4              MUL   word ptr [bp-0Ch]
-076 00037B F766F4              MUL   word ptr [bp-0Ch]
-077 00037E F766F4              MUL   word ptr [bp-0Ch]
-078 000381 F766F4              MUL   word ptr [bp-0Ch]
-079 000384 F766F4              MUL   word ptr [bp-0Ch]
-080 000387 F766F4              MUL   word ptr [bp-0Ch]
-081 00038A F766F4              MUL   word ptr [bp-0Ch]
-082 00038D F766F4              MUL   word ptr [bp-0Ch]
-083 000390 F766F4              MUL   word ptr [bp-0Ch]
-084 000393 F766F4              MUL   word ptr [bp-0Ch]
-085 000396 F766F4              MUL   word ptr [bp-0Ch]
-086 000399 F766F4              MUL   word ptr [bp-0Ch]
-087 00039C BA0300              MOV            dx, 3
-088 00039F F7E2                MUL            dx
-089 0003A1 8946F4              MOV            [bp-0Ch], ax
-090 0003A4 46                  INC            si
+062 000351 8B46F4         L5:  MOV            ax, [bp-0Ch]       
+063 000354 F766F4              MUL            word ptr [bp-0Ch]  
+064 000357 F766F4              MUL            word ptr [bp-0Ch]  
+065 00035A F766F4              MUL            word ptr [bp-0Ch]  
+066 00035D F766F4              MUL            word ptr [bp-0Ch]  
+067 000360 F766F4              MUL            word ptr [bp-0Ch]  
+068 000363 F766F4              MUL            word ptr [bp-0Ch]  
+069 000366 F766F4              MUL            word ptr [bp-0Ch]  
+070 000369 F766F4              MUL            word ptr [bp-0Ch]  
+071 00036C F766F4              MUL            word ptr [bp-0Ch]  
+072 00036F F766F4              MUL            word ptr [bp-0Ch]  
+073 000372 F766F4              MUL            word ptr [bp-0Ch]  
+074 000375 F766F4              MUL            word ptr [bp-0Ch]  
+075 000378 F766F4              MUL            word ptr [bp-0Ch]  
+076 00037B F766F4              MUL            word ptr [bp-0Ch]  
+077 00037E F766F4              MUL            word ptr [bp-0Ch]  
+078 000381 F766F4              MUL            word ptr [bp-0Ch]  
+079 000384 F766F4              MUL            word ptr [bp-0Ch]  
+080 000387 F766F4              MUL            word ptr [bp-0Ch]  
+081 00038A F766F4              MUL            word ptr [bp-0Ch]  
+082 00038D F766F4              MUL            word ptr [bp-0Ch]  
+083 000390 F766F4              MUL            word ptr [bp-0Ch]  
+084 000393 F766F4              MUL            word ptr [bp-0Ch]  
+085 000396 F766F4              MUL            word ptr [bp-0Ch]  
+086 000399 F766F4              MUL            word ptr [bp-0Ch]  
+087 00039C BA0300              MOV            dx, 3              
+088 00039F F7E2                MUL            dx                 
+089 0003A1 8946F4              MOV            [bp-0Ch], ax       
+090 0003A4 46                  INC            si                 
 091                            JMP            L4                 ;Synthetic inst
 
 		main  ENDP

+ 88 - 88
tests/prev/BENCHMUL.EXE.a2

@@ -1,98 +1,98 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0C              SUB            sp, 0Ch
-003 000300 56                  PUSH           si
-004 000301 B89401              MOV            ax, 194h
-005 000304 50                  PUSH           ax
-006 000305 E8530C              CALL  near ptr printf
-007 000308 59                  POP            cx
-008 000309 8D46FC              LEA            ax, [bp-4]
-009 00030C 50                  PUSH           ax
-010 00030D B8B001              MOV            ax, 1B0h
-011 000310 50                  PUSH           ax
-012 000311 E8D014              CALL  near ptr scanf
-013 000314 59                  POP            cx
-014 000315 59                  POP            cx
-015 000316 FF76FE              PUSH  word ptr [bp-2]
-016 000319 FF76FC              PUSH  word ptr [bp-4]
-017 00031C B8B401              MOV            ax, 1B4h
-018 00031F 50                  PUSH           ax
-019 000320 E8380C              CALL  near ptr printf
-020 000323 83C406              ADD            sp, 6
-021 000326 8D46F4              LEA            ax, [bp-0Ch]
-022 000329 50                  PUSH           ax
-023 00032A B8CE01              MOV            ax, 1CEh
-024 00032D 50                  PUSH           ax
-025 00032E E8B314              CALL  near ptr scanf
-026 000331 59                  POP            cx
-027 000332 59                  POP            cx
-028 000333 8D46F6              LEA            ax, [bp-0Ah]
-029 000336 50                  PUSH           ax
-030 000337 B8D101              MOV            ax, 1D1h
-031 00033A 50                  PUSH           ax
-032 00033B E8A614              CALL  near ptr scanf
-033 00033E 59                  POP            cx
-034 00033F 59                  POP            cx
-035 000340 C746FA0000          MOV   word ptr [bp-6], 0
-036 000345 C746F80100          MOV   word ptr [bp-8], 1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0C              SUB            sp, 0Ch            
+003 000300 56                  PUSH           si                 
+004 000301 B89401              MOV            ax, 194h           
+005 000304 50                  PUSH           ax                 
+006 000305 E8530C              CALL           near ptr printf    
+007 000308 59                  POP            cx                 
+008 000309 8D46FC              LEA            ax, [bp-4]         
+009 00030C 50                  PUSH           ax                 
+010 00030D B8B001              MOV            ax, 1B0h           
+011 000310 50                  PUSH           ax                 
+012 000311 E8D014              CALL           near ptr scanf     
+013 000314 59                  POP            cx                 
+014 000315 59                  POP            cx                 
+015 000316 FF76FE              PUSH           word ptr [bp-2]    
+016 000319 FF76FC              PUSH           word ptr [bp-4]    
+017 00031C B8B401              MOV            ax, 1B4h           
+018 00031F 50                  PUSH           ax                 
+019 000320 E8380C              CALL           near ptr printf    
+020 000323 83C406              ADD            sp, 6              
+021 000326 8D46F4              LEA            ax, [bp-0Ch]       
+022 000329 50                  PUSH           ax                 
+023 00032A B8CE01              MOV            ax, 1CEh           
+024 00032D 50                  PUSH           ax                 
+025 00032E E8B314              CALL           near ptr scanf     
+026 000331 59                  POP            cx                 
+027 000332 59                  POP            cx                 
+028 000333 8D46F6              LEA            ax, [bp-0Ah]       
+029 000336 50                  PUSH           ax                 
+030 000337 B8D101              MOV            ax, 1D1h           
+031 00033A 50                  PUSH           ax                 
+032 00033B E8A614              CALL           near ptr scanf     
+033 00033E 59                  POP            cx                 
+034 00033F 59                  POP            cx                 
+035 000340 C746FA0000          MOV            word ptr [bp-6], 0 
+036 000345 C746F80100          MOV            word ptr [bp-8], 1 
 
-038 0003B2 8B56FA         L1:  MOV            dx, [bp-6]
-039 0003B5 8B46F8              MOV            ax, [bp-8]
-040 0003B8 3B56FE              CMP            dx, [bp-2]
-041 0003BB 7C8F                JL             L2
-042 0003BD 7F05                JG             L3
-043 0003BF 3B46FC              CMP            ax, [bp-4]
-044 0003C2 7688                JBE            L2
+038 0003B2 8B56FA         L1:  MOV            dx, [bp-6]         
+039 0003B5 8B46F8              MOV            ax, [bp-8]         
+040 0003B8 3B56FE              CMP            dx, [bp-2]         
+041 0003BB 7C8F                JL             L2                 
+042 0003BD 7F05                JG             L3                 
+043 0003BF 3B46FC              CMP            ax, [bp-4]         
+044 0003C2 7688                JBE            L2                 
 
-045 0003C4 FF76F4         L3:  PUSH  word ptr [bp-0Ch]
-046 0003C7 B8D401              MOV            ax, 1D4h
-047 0003CA 50                  PUSH           ax
-048 0003CB E88D0B              CALL  near ptr printf
-049 0003CE 59                  POP            cx
-050 0003CF 59                  POP            cx
-051 0003D0 5E                  POP            si
-052 0003D1 8BE5                MOV            sp, bp
-053 0003D3 5D                  POP            bp
-054 0003D4 C3                  RET
+045 0003C4 FF76F4         L3:  PUSH           word ptr [bp-0Ch]  
+046 0003C7 B8D401              MOV            ax, 1D4h           
+047 0003CA 50                  PUSH           ax                 
+048 0003CB E88D0B              CALL           near ptr printf    
+049 0003CE 59                  POP            cx                 
+050 0003CF 59                  POP            cx                 
+051 0003D0 5E                  POP            si                 
+052 0003D1 8BE5                MOV            sp, bp             
+053 0003D3 5D                  POP            bp                 
+054 0003D4 C3                  RET                               
 
-055 00034C BE0100         L2:  MOV            si, 1
+055 00034C BE0100         L2:  MOV            si, 1              
 
-057 0003A5 83FE28         L4:  CMP            si, 28h
-058 0003A8 7EA7                JLE            L5
-059 0003AA 8346F801            ADD   word ptr [bp-8], 1
-060 0003AE 8356FA00            ADC   word ptr [bp-6], 0
+057 0003A5 83FE28         L4:  CMP            si, 28h            
+058 0003A8 7EA7                JLE            L5                 
+059 0003AA 8346F801            ADD            word ptr [bp-8], 1 
+060 0003AE 8356FA00            ADC            word ptr [bp-6], 0 
 061                            JMP            L1                 ;Synthetic inst
 
-062 000351 8B46F4         L5:  MOV            ax, [bp-0Ch]
-063 000354 F766F4              MUL   word ptr [bp-0Ch]
-064 000357 F766F4              MUL   word ptr [bp-0Ch]
-065 00035A F766F4              MUL   word ptr [bp-0Ch]
-066 00035D F766F4              MUL   word ptr [bp-0Ch]
-067 000360 F766F4              MUL   word ptr [bp-0Ch]
-068 000363 F766F4              MUL   word ptr [bp-0Ch]
-069 000366 F766F4              MUL   word ptr [bp-0Ch]
-070 000369 F766F4              MUL   word ptr [bp-0Ch]
-071 00036C F766F4              MUL   word ptr [bp-0Ch]
-072 00036F F766F4              MUL   word ptr [bp-0Ch]
-073 000372 F766F4              MUL   word ptr [bp-0Ch]
-074 000375 F766F4              MUL   word ptr [bp-0Ch]
-075 000378 F766F4              MUL   word ptr [bp-0Ch]
-076 00037B F766F4              MUL   word ptr [bp-0Ch]
-077 00037E F766F4              MUL   word ptr [bp-0Ch]
-078 000381 F766F4              MUL   word ptr [bp-0Ch]
-079 000384 F766F4              MUL   word ptr [bp-0Ch]
-080 000387 F766F4              MUL   word ptr [bp-0Ch]
-081 00038A F766F4              MUL   word ptr [bp-0Ch]
-082 00038D F766F4              MUL   word ptr [bp-0Ch]
-083 000390 F766F4              MUL   word ptr [bp-0Ch]
-084 000393 F766F4              MUL   word ptr [bp-0Ch]
-085 000396 F766F4              MUL   word ptr [bp-0Ch]
-086 000399 F766F4              MUL   word ptr [bp-0Ch]
-087 00039C BA0300              MOV            dx, 3
-088 00039F F7E2                MUL            dx
-089 0003A1 8946F4              MOV            [bp-0Ch], ax
-090 0003A4 46                  INC            si
+062 000351 8B46F4         L5:  MOV            ax, [bp-0Ch]       
+063 000354 F766F4              MUL            word ptr [bp-0Ch]  
+064 000357 F766F4              MUL            word ptr [bp-0Ch]  
+065 00035A F766F4              MUL            word ptr [bp-0Ch]  
+066 00035D F766F4              MUL            word ptr [bp-0Ch]  
+067 000360 F766F4              MUL            word ptr [bp-0Ch]  
+068 000363 F766F4              MUL            word ptr [bp-0Ch]  
+069 000366 F766F4              MUL            word ptr [bp-0Ch]  
+070 000369 F766F4              MUL            word ptr [bp-0Ch]  
+071 00036C F766F4              MUL            word ptr [bp-0Ch]  
+072 00036F F766F4              MUL            word ptr [bp-0Ch]  
+073 000372 F766F4              MUL            word ptr [bp-0Ch]  
+074 000375 F766F4              MUL            word ptr [bp-0Ch]  
+075 000378 F766F4              MUL            word ptr [bp-0Ch]  
+076 00037B F766F4              MUL            word ptr [bp-0Ch]  
+077 00037E F766F4              MUL            word ptr [bp-0Ch]  
+078 000381 F766F4              MUL            word ptr [bp-0Ch]  
+079 000384 F766F4              MUL            word ptr [bp-0Ch]  
+080 000387 F766F4              MUL            word ptr [bp-0Ch]  
+081 00038A F766F4              MUL            word ptr [bp-0Ch]  
+082 00038D F766F4              MUL            word ptr [bp-0Ch]  
+083 000390 F766F4              MUL            word ptr [bp-0Ch]  
+084 000393 F766F4              MUL            word ptr [bp-0Ch]  
+085 000396 F766F4              MUL            word ptr [bp-0Ch]  
+086 000399 F766F4              MUL            word ptr [bp-0Ch]  
+087 00039C BA0300              MOV            dx, 3              
+088 00039F F7E2                MUL            dx                 
+089 0003A1 8946F4              MOV            [bp-0Ch], ax       
+090 0003A4 46                  INC            si                 
 091                            JMP            L4                 ;Synthetic inst
 
 		main  ENDP

+ 80 - 80
tests/prev/BENCHMUS.EXE.a1

@@ -1,90 +1,90 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0A              SUB            sp, 0Ah
-003 000300 56                  PUSH           si
-004 000301 57                  PUSH           di
-005 000302 B8A801              MOV            ax, 1A8h
-006 000305 50                  PUSH           ax
-007 000306 E8240C              CALL  near ptr printf
-008 000309 59                  POP            cx
-009 00030A 8D46FC              LEA            ax, [bp-4]
-010 00030D 50                  PUSH           ax
-011 00030E B8C401              MOV            ax, 1C4h
-012 000311 50                  PUSH           ax
-013 000312 E8A114              CALL  near ptr scanf
-014 000315 59                  POP            cx
-015 000316 59                  POP            cx
-016 000317 FF76FE              PUSH  word ptr [bp-2]
-017 00031A FF76FC              PUSH  word ptr [bp-4]
-018 00031D B8C801              MOV            ax, 1C8h
-019 000320 50                  PUSH           ax
-020 000321 E8090C              CALL  near ptr printf
-021 000324 83C406              ADD            sp, 6
-022 000327 BE1400              MOV            si, 14h
-023 00032A 8976F6              MOV            [bp-0Ah], si
-024 00032D C746FA0000          MOV   word ptr [bp-6], 0
-025 000332 C746F80100          MOV   word ptr [bp-8], 1
-026 000337 EB4C                JMP            L1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0A              SUB            sp, 0Ah            
+003 000300 56                  PUSH           si                 
+004 000301 57                  PUSH           di                 
+005 000302 B8A801              MOV            ax, 1A8h           
+006 000305 50                  PUSH           ax                 
+007 000306 E8240C              CALL           near ptr printf    
+008 000309 59                  POP            cx                 
+009 00030A 8D46FC              LEA            ax, [bp-4]         
+010 00030D 50                  PUSH           ax                 
+011 00030E B8C401              MOV            ax, 1C4h           
+012 000311 50                  PUSH           ax                 
+013 000312 E8A114              CALL           near ptr scanf     
+014 000315 59                  POP            cx                 
+015 000316 59                  POP            cx                 
+016 000317 FF76FE              PUSH           word ptr [bp-2]    
+017 00031A FF76FC              PUSH           word ptr [bp-4]    
+018 00031D B8C801              MOV            ax, 1C8h           
+019 000320 50                  PUSH           ax                 
+020 000321 E8090C              CALL           near ptr printf    
+021 000324 83C406              ADD            sp, 6              
+022 000327 BE1400              MOV            si, 14h            
+023 00032A 8976F6              MOV            [bp-0Ah], si       
+024 00032D C746FA0000          MOV            word ptr [bp-6], 0 
+025 000332 C746F80100          MOV            word ptr [bp-8], 1 
+026 000337 EB4C                JMP            L1                 
 
-027 000385 8B56FA         L1:  MOV            dx, [bp-6]
-028 000388 8B46F8              MOV            ax, [bp-8]
-029 00038B 3B56FE              CMP            dx, [bp-2]
-030 00038E 7CA9                JL             L2
-031 000390 7F05                JG             L3
-032 000392 3B46FC              CMP            ax, [bp-4]
-033 000395 76A2                JBE            L2
+027 000385 8B56FA         L1:  MOV            dx, [bp-6]         
+028 000388 8B46F8              MOV            ax, [bp-8]         
+029 00038B 3B56FE              CMP            dx, [bp-2]         
+030 00038E 7CA9                JL             L2                 
+031 000390 7F05                JG             L3                 
+032 000392 3B46FC              CMP            ax, [bp-4]         
+033 000395 76A2                JBE            L2                 
 
-034 000397 56             L3:  PUSH           si
-035 000398 B8E201              MOV            ax, 1E2h
-036 00039B 50                  PUSH           ax
-037 00039C E88E0B              CALL  near ptr printf
-038 00039F 59                  POP            cx
-039 0003A0 59                  POP            cx
-040 0003A1 5F                  POP            di
-041 0003A2 5E                  POP            si
-042 0003A3 8BE5                MOV            sp, bp
-043 0003A5 5D                  POP            bp
-044 0003A6 C3                  RET
+034 000397 56             L3:  PUSH           si                 
+035 000398 B8E201              MOV            ax, 1E2h           
+036 00039B 50                  PUSH           ax                 
+037 00039C E88E0B              CALL           near ptr printf    
+038 00039F 59                  POP            cx                 
+039 0003A0 59                  POP            cx                 
+040 0003A1 5F                  POP            di                 
+041 0003A2 5E                  POP            si                 
+042 0003A3 8BE5                MOV            sp, bp             
+043 0003A5 5D                  POP            bp                 
+044 0003A6 C3                  RET                               
 
-045 000339 BF0100         L2:  MOV            di, 1
-046 00033C EB3A                JMP            L4
+045 000339 BF0100         L2:  MOV            di, 1              
+046 00033C EB3A                JMP            L4                 
 
-047 000378 83FF28         L4:  CMP            di, 28h
-048 00037B 7EC1                JLE            L5
-049 00037D 8346F801            ADD   word ptr [bp-8], 1
-050 000381 8356FA00            ADC   word ptr [bp-6], 0
+047 000378 83FF28         L4:  CMP            di, 28h            
+048 00037B 7EC1                JLE            L5                 
+049 00037D 8346F801            ADD            word ptr [bp-8], 1 
+050 000381 8356FA00            ADC            word ptr [bp-6], 0 
 051                            JMP            L1                 ;Synthetic inst
 
-052 00033E 8BC6           L5:  MOV            ax, si
-053 000340 F7E6                MUL            si
-054 000342 F7E6                MUL            si
-055 000344 F7E6                MUL            si
-056 000346 F7E6                MUL            si
-057 000348 F7E6                MUL            si
-058 00034A F7E6                MUL            si
-059 00034C F7E6                MUL            si
-060 00034E F7E6                MUL            si
-061 000350 F7E6                MUL            si
-062 000352 F7E6                MUL            si
-063 000354 F7E6                MUL            si
-064 000356 F7E6                MUL            si
-065 000358 F7E6                MUL            si
-066 00035A F7E6                MUL            si
-067 00035C F7E6                MUL            si
-068 00035E F7E6                MUL            si
-069 000360 F7E6                MUL            si
-070 000362 F7E6                MUL            si
-071 000364 F7E6                MUL            si
-072 000366 F7E6                MUL            si
-073 000368 F7E6                MUL            si
-074 00036A F7E6                MUL            si
-075 00036C F7E6                MUL            si
-076 00036E F7E6                MUL            si
-077 000370 BA0300              MOV            dx, 3
-078 000373 F7E2                MUL            dx
-079 000375 8BF0                MOV            si, ax
-080 000377 47                  INC            di
+052 00033E 8BC6           L5:  MOV            ax, si             
+053 000340 F7E6                MUL            si                 
+054 000342 F7E6                MUL            si                 
+055 000344 F7E6                MUL            si                 
+056 000346 F7E6                MUL            si                 
+057 000348 F7E6                MUL            si                 
+058 00034A F7E6                MUL            si                 
+059 00034C F7E6                MUL            si                 
+060 00034E F7E6                MUL            si                 
+061 000350 F7E6                MUL            si                 
+062 000352 F7E6                MUL            si                 
+063 000354 F7E6                MUL            si                 
+064 000356 F7E6                MUL            si                 
+065 000358 F7E6                MUL            si                 
+066 00035A F7E6                MUL            si                 
+067 00035C F7E6                MUL            si                 
+068 00035E F7E6                MUL            si                 
+069 000360 F7E6                MUL            si                 
+070 000362 F7E6                MUL            si                 
+071 000364 F7E6                MUL            si                 
+072 000366 F7E6                MUL            si                 
+073 000368 F7E6                MUL            si                 
+074 00036A F7E6                MUL            si                 
+075 00036C F7E6                MUL            si                 
+076 00036E F7E6                MUL            si                 
+077 000370 BA0300              MOV            dx, 3              
+078 000373 F7E2                MUL            dx                 
+079 000375 8BF0                MOV            si, ax             
+080 000377 47                  INC            di                 
 081                            JMP            L4                 ;Synthetic inst
 
 		main  ENDP

+ 78 - 78
tests/prev/BENCHMUS.EXE.a2

@@ -1,88 +1,88 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0A              SUB            sp, 0Ah
-003 000300 56                  PUSH           si
-004 000301 57                  PUSH           di
-005 000302 B8A801              MOV            ax, 1A8h
-006 000305 50                  PUSH           ax
-007 000306 E8240C              CALL  near ptr printf
-008 000309 59                  POP            cx
-009 00030A 8D46FC              LEA            ax, [bp-4]
-010 00030D 50                  PUSH           ax
-011 00030E B8C401              MOV            ax, 1C4h
-012 000311 50                  PUSH           ax
-013 000312 E8A114              CALL  near ptr scanf
-014 000315 59                  POP            cx
-015 000316 59                  POP            cx
-016 000317 FF76FE              PUSH  word ptr [bp-2]
-017 00031A FF76FC              PUSH  word ptr [bp-4]
-018 00031D B8C801              MOV            ax, 1C8h
-019 000320 50                  PUSH           ax
-020 000321 E8090C              CALL  near ptr printf
-021 000324 83C406              ADD            sp, 6
-022 000327 BE1400              MOV            si, 14h
-023 00032A 8976F6              MOV            [bp-0Ah], si
-024 00032D C746FA0000          MOV   word ptr [bp-6], 0
-025 000332 C746F80100          MOV   word ptr [bp-8], 1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0A              SUB            sp, 0Ah            
+003 000300 56                  PUSH           si                 
+004 000301 57                  PUSH           di                 
+005 000302 B8A801              MOV            ax, 1A8h           
+006 000305 50                  PUSH           ax                 
+007 000306 E8240C              CALL           near ptr printf    
+008 000309 59                  POP            cx                 
+009 00030A 8D46FC              LEA            ax, [bp-4]         
+010 00030D 50                  PUSH           ax                 
+011 00030E B8C401              MOV            ax, 1C4h           
+012 000311 50                  PUSH           ax                 
+013 000312 E8A114              CALL           near ptr scanf     
+014 000315 59                  POP            cx                 
+015 000316 59                  POP            cx                 
+016 000317 FF76FE              PUSH           word ptr [bp-2]    
+017 00031A FF76FC              PUSH           word ptr [bp-4]    
+018 00031D B8C801              MOV            ax, 1C8h           
+019 000320 50                  PUSH           ax                 
+020 000321 E8090C              CALL           near ptr printf    
+021 000324 83C406              ADD            sp, 6              
+022 000327 BE1400              MOV            si, 14h            
+023 00032A 8976F6              MOV            [bp-0Ah], si       
+024 00032D C746FA0000          MOV            word ptr [bp-6], 0 
+025 000332 C746F80100          MOV            word ptr [bp-8], 1 
 
-027 000385 8B56FA         L1:  MOV            dx, [bp-6]
-028 000388 8B46F8              MOV            ax, [bp-8]
-029 00038B 3B56FE              CMP            dx, [bp-2]
-030 00038E 7CA9                JL             L2
-031 000390 7F05                JG             L3
-032 000392 3B46FC              CMP            ax, [bp-4]
-033 000395 76A2                JBE            L2
+027 000385 8B56FA         L1:  MOV            dx, [bp-6]         
+028 000388 8B46F8              MOV            ax, [bp-8]         
+029 00038B 3B56FE              CMP            dx, [bp-2]         
+030 00038E 7CA9                JL             L2                 
+031 000390 7F05                JG             L3                 
+032 000392 3B46FC              CMP            ax, [bp-4]         
+033 000395 76A2                JBE            L2                 
 
-034 000397 56             L3:  PUSH           si
-035 000398 B8E201              MOV            ax, 1E2h
-036 00039B 50                  PUSH           ax
-037 00039C E88E0B              CALL  near ptr printf
-038 00039F 59                  POP            cx
-039 0003A0 59                  POP            cx
-040 0003A1 5F                  POP            di
-041 0003A2 5E                  POP            si
-042 0003A3 8BE5                MOV            sp, bp
-043 0003A5 5D                  POP            bp
-044 0003A6 C3                  RET
+034 000397 56             L3:  PUSH           si                 
+035 000398 B8E201              MOV            ax, 1E2h           
+036 00039B 50                  PUSH           ax                 
+037 00039C E88E0B              CALL           near ptr printf    
+038 00039F 59                  POP            cx                 
+039 0003A0 59                  POP            cx                 
+040 0003A1 5F                  POP            di                 
+041 0003A2 5E                  POP            si                 
+042 0003A3 8BE5                MOV            sp, bp             
+043 0003A5 5D                  POP            bp                 
+044 0003A6 C3                  RET                               
 
-045 000339 BF0100         L2:  MOV            di, 1
+045 000339 BF0100         L2:  MOV            di, 1              
 
-047 000378 83FF28         L4:  CMP            di, 28h
-048 00037B 7EC1                JLE            L5
-049 00037D 8346F801            ADD   word ptr [bp-8], 1
-050 000381 8356FA00            ADC   word ptr [bp-6], 0
+047 000378 83FF28         L4:  CMP            di, 28h            
+048 00037B 7EC1                JLE            L5                 
+049 00037D 8346F801            ADD            word ptr [bp-8], 1 
+050 000381 8356FA00            ADC            word ptr [bp-6], 0 
 051                            JMP            L1                 ;Synthetic inst
 
-052 00033E 8BC6           L5:  MOV            ax, si
-053 000340 F7E6                MUL            si
-054 000342 F7E6                MUL            si
-055 000344 F7E6                MUL            si
-056 000346 F7E6                MUL            si
-057 000348 F7E6                MUL            si
-058 00034A F7E6                MUL            si
-059 00034C F7E6                MUL            si
-060 00034E F7E6                MUL            si
-061 000350 F7E6                MUL            si
-062 000352 F7E6                MUL            si
-063 000354 F7E6                MUL            si
-064 000356 F7E6                MUL            si
-065 000358 F7E6                MUL            si
-066 00035A F7E6                MUL            si
-067 00035C F7E6                MUL            si
-068 00035E F7E6                MUL            si
-069 000360 F7E6                MUL            si
-070 000362 F7E6                MUL            si
-071 000364 F7E6                MUL            si
-072 000366 F7E6                MUL            si
-073 000368 F7E6                MUL            si
-074 00036A F7E6                MUL            si
-075 00036C F7E6                MUL            si
-076 00036E F7E6                MUL            si
-077 000370 BA0300              MOV            dx, 3
-078 000373 F7E2                MUL            dx
-079 000375 8BF0                MOV            si, ax
-080 000377 47                  INC            di
+052 00033E 8BC6           L5:  MOV            ax, si             
+053 000340 F7E6                MUL            si                 
+054 000342 F7E6                MUL            si                 
+055 000344 F7E6                MUL            si                 
+056 000346 F7E6                MUL            si                 
+057 000348 F7E6                MUL            si                 
+058 00034A F7E6                MUL            si                 
+059 00034C F7E6                MUL            si                 
+060 00034E F7E6                MUL            si                 
+061 000350 F7E6                MUL            si                 
+062 000352 F7E6                MUL            si                 
+063 000354 F7E6                MUL            si                 
+064 000356 F7E6                MUL            si                 
+065 000358 F7E6                MUL            si                 
+066 00035A F7E6                MUL            si                 
+067 00035C F7E6                MUL            si                 
+068 00035E F7E6                MUL            si                 
+069 000360 F7E6                MUL            si                 
+070 000362 F7E6                MUL            si                 
+071 000364 F7E6                MUL            si                 
+072 000366 F7E6                MUL            si                 
+073 000368 F7E6                MUL            si                 
+074 00036A F7E6                MUL            si                 
+075 00036C F7E6                MUL            si                 
+076 00036E F7E6                MUL            si                 
+077 000370 BA0300              MOV            dx, 3              
+078 000373 F7E2                MUL            dx                 
+079 000375 8BF0                MOV            si, ax             
+080 000377 47                  INC            di                 
 081                            JMP            L4                 ;Synthetic inst
 
 		main  ENDP

+ 95 - 95
tests/prev/BENCHSHO.EXE.a1

@@ -1,113 +1,113 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0E              SUB            sp, 0Eh
-003 000300 8D46FC              LEA            ax, [bp-4]
-004 000303 50                  PUSH           ax
-005 000304 B89401              MOV            ax, 194h
-006 000307 50                  PUSH           ax
-007 000308 E8E914              CALL  near ptr scanf
-008 00030B 59                  POP            cx
-009 00030C 59                  POP            cx
-010 00030D FF76FE              PUSH  word ptr [bp-2]
-011 000310 FF76FC              PUSH  word ptr [bp-4]
-012 000313 B89801              MOV            ax, 198h
-013 000316 50                  PUSH           ax
-014 000317 E8510C              CALL  near ptr printf
-015 00031A 83C406              ADD            sp, 6
-016 00031D 8D46F2              LEA            ax, [bp-0Eh]
-017 000320 50                  PUSH           ax
-018 000321 B8B201              MOV            ax, 1B2h
-019 000324 50                  PUSH           ax
-020 000325 E8CC14              CALL  near ptr scanf
-021 000328 59                  POP            cx
-022 000329 59                  POP            cx
-023 00032A 8D46F4              LEA            ax, [bp-0Ch]
-024 00032D 50                  PUSH           ax
-025 00032E B8B601              MOV            ax, 1B6h
-026 000331 50                  PUSH           ax
-027 000332 E8BF14              CALL  near ptr scanf
-028 000335 59                  POP            cx
-029 000336 59                  POP            cx
-030 000337 C746FA0000          MOV   word ptr [bp-6], 0
-031 00033C C746F80100          MOV   word ptr [bp-8], 1
-032 000341 E97900              JMP            L1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0E              SUB            sp, 0Eh            
+003 000300 8D46FC              LEA            ax, [bp-4]         
+004 000303 50                  PUSH           ax                 
+005 000304 B89401              MOV            ax, 194h           
+006 000307 50                  PUSH           ax                 
+007 000308 E8E914              CALL           near ptr scanf     
+008 00030B 59                  POP            cx                 
+009 00030C 59                  POP            cx                 
+010 00030D FF76FE              PUSH           word ptr [bp-2]    
+011 000310 FF76FC              PUSH           word ptr [bp-4]    
+012 000313 B89801              MOV            ax, 198h           
+013 000316 50                  PUSH           ax                 
+014 000317 E8510C              CALL           near ptr printf    
+015 00031A 83C406              ADD            sp, 6              
+016 00031D 8D46F2              LEA            ax, [bp-0Eh]       
+017 000320 50                  PUSH           ax                 
+018 000321 B8B201              MOV            ax, 1B2h           
+019 000324 50                  PUSH           ax                 
+020 000325 E8CC14              CALL           near ptr scanf     
+021 000328 59                  POP            cx                 
+022 000329 59                  POP            cx                 
+023 00032A 8D46F4              LEA            ax, [bp-0Ch]       
+024 00032D 50                  PUSH           ax                 
+025 00032E B8B601              MOV            ax, 1B6h           
+026 000331 50                  PUSH           ax                 
+027 000332 E8BF14              CALL           near ptr scanf     
+028 000335 59                  POP            cx                 
+029 000336 59                  POP            cx                 
+030 000337 C746FA0000          MOV            word ptr [bp-6], 0 
+031 00033C C746F80100          MOV            word ptr [bp-8], 1 
+032 000341 E97900              JMP            L1                 
 
-033 0003BD 8B56FA         L1:  MOV            dx, [bp-6]
-034 0003C0 8B46F8              MOV            ax, [bp-8]
-035 0003C3 3B56FE              CMP            dx, [bp-2]
-036 0003C6 7D03                JGE            L2
-037 0003C8 E979FF              JMP            L3
+033 0003BD 8B56FA         L1:  MOV            dx, [bp-6]         
+034 0003C0 8B46F8              MOV            ax, [bp-8]         
+035 0003C3 3B56FE              CMP            dx, [bp-2]         
+036 0003C6 7D03                JGE            L2                 
+037 0003C8 E979FF              JMP            L3                 
 
-038 000344 C746F60100     L3:  MOV   word ptr [bp-0Ah], 1
-039 000349 EB64                JMP            L4
+038 000344 C746F60100     L3:  MOV            word ptr [bp-0Ah], 1
+039 000349 EB64                JMP            L4                 
 
-040 0003AF 837EF628       L4:  CMP   word ptr [bp-0Ah], 28h
-041 0003B3 7E96                JLE            L5
-042 0003B5 8346F801            ADD   word ptr [bp-8], 1
-043 0003B9 8356FA00            ADC   word ptr [bp-6], 0
+040 0003AF 837EF628       L4:  CMP            word ptr [bp-0Ah], 28h
+041 0003B3 7E96                JLE            L5                 
+042 0003B5 8346F801            ADD            word ptr [bp-8], 1 
+043 0003B9 8356FA00            ADC            word ptr [bp-6], 0 
 044                            JMP            L1                 ;Synthetic inst
 
-045 00034B 8B46F2         L5:  MOV            ax, [bp-0Eh]
-046 00034E 0346F4              ADD            ax, [bp-0Ch]
-047 000351 0346F6              ADD            ax, [bp-0Ah]
-048 000354 8946F2              MOV            [bp-0Eh], ax
-049 000357 8B46F2              MOV            ax, [bp-0Eh]
-050 00035A D1F8                SAR            ax, 1
-051 00035C 8946F4              MOV            [bp-0Ch], ax
-052 00035F 8B46F4              MOV            ax, [bp-0Ch]
-053 000362 BB0A00              MOV            bx, 0Ah
-054 000365 99                  CWD
-056 000366 F7FB                IDIV           bx
-058 000368 8956F2              MOV            [bp-0Eh], dx
-059 00036B 8B46F4              MOV            ax, [bp-0Ch]
-060 00036E 3B46F6              CMP            ax, [bp-0Ah]
-061 000371 7505                JNE            L6
-062 000373 B80100              MOV            ax, 1
-063 000376 EB02                JMP            L7
+045 00034B 8B46F2         L5:  MOV            ax, [bp-0Eh]       
+046 00034E 0346F4              ADD            ax, [bp-0Ch]       
+047 000351 0346F6              ADD            ax, [bp-0Ah]       
+048 000354 8946F2              MOV            [bp-0Eh], ax       
+049 000357 8B46F2              MOV            ax, [bp-0Eh]       
+050 00035A D1F8                SAR            ax, 1              
+051 00035C 8946F4              MOV            [bp-0Ch], ax       
+052 00035F 8B46F4              MOV            ax, [bp-0Ch]       
+053 000362 BB0A00              MOV            bx, 0Ah            
+054 000365 99                  CWD                               
+056 000366 F7FB                IDIV           bx                 
+058 000368 8956F2              MOV            [bp-0Eh], dx       
+059 00036B 8B46F4              MOV            ax, [bp-0Ch]       
+060 00036E 3B46F6              CMP            ax, [bp-0Ah]       
+061 000371 7505                JNE            L6                 
+062 000373 B80100              MOV            ax, 1              
+063 000376 EB02                JMP            L7                 
 
-064 00037A 8946F2         L7:  MOV            [bp-0Eh], ax
-065 00037D 8B46F2              MOV            ax, [bp-0Eh]
-066 000380 0B46F6              OR             ax, [bp-0Ah]
-067 000383 8946F4              MOV            [bp-0Ch], ax
-068 000386 8B46F4              MOV            ax, [bp-0Ch]
-069 000389 F7D8                NEG            ax
-070 00038B 1BC0                SBB            ax, ax
-071 00038D 40                  INC            ax
-072 00038E 8946F2              MOV            [bp-0Eh], ax
-073 000391 8B46F2              MOV            ax, [bp-0Eh]
-074 000394 0346F6              ADD            ax, [bp-0Ah]
-075 000397 8946F4              MOV            [bp-0Ch], ax
-076 00039A 8B46F4              MOV            ax, [bp-0Ch]
-077 00039D 3B46F6              CMP            ax, [bp-0Ah]
-078 0003A0 7E05                JLE            L8
-079 0003A2 B80100              MOV            ax, 1
-080 0003A5 EB02                JMP            L9
+064 00037A 8946F2         L7:  MOV            [bp-0Eh], ax       
+065 00037D 8B46F2              MOV            ax, [bp-0Eh]       
+066 000380 0B46F6              OR             ax, [bp-0Ah]       
+067 000383 8946F4              MOV            [bp-0Ch], ax       
+068 000386 8B46F4              MOV            ax, [bp-0Ch]       
+069 000389 F7D8                NEG            ax                 
+070 00038B 1BC0                SBB            ax, ax             
+071 00038D 40                  INC            ax                 
+072 00038E 8946F2              MOV            [bp-0Eh], ax       
+073 000391 8B46F2              MOV            ax, [bp-0Eh]       
+074 000394 0346F6              ADD            ax, [bp-0Ah]       
+075 000397 8946F4              MOV            [bp-0Ch], ax       
+076 00039A 8B46F4              MOV            ax, [bp-0Ch]       
+077 00039D 3B46F6              CMP            ax, [bp-0Ah]       
+078 0003A0 7E05                JLE            L8                 
+079 0003A2 B80100              MOV            ax, 1              
+080 0003A5 EB02                JMP            L9                 
 
-081 0003A9 8946F2         L9:  MOV            [bp-0Eh], ax
-082 0003AC FF46F6              INC   word ptr [bp-0Ah]
+081 0003A9 8946F2         L9:  MOV            [bp-0Eh], ax       
+082 0003AC FF46F6              INC            word ptr [bp-0Ah]  
 083                            JMP            L4                 ;Synthetic inst
 
-084 0003A7 33C0           L8:  XOR            ax, ax
+084 0003A7 33C0           L8:  XOR            ax, ax             
 085                            JMP            L9                 ;Synthetic inst
 
-086 000378 33C0           L6:  XOR            ax, ax
+086 000378 33C0           L6:  XOR            ax, ax             
 087                            JMP            L7                 ;Synthetic inst
 
-088 0003CB 7F08           L2:  JG             L10
-089 0003CD 3B46FC              CMP            ax, [bp-4]
-090 0003D0 7703                JA             L10
-091 0003D2 E96FFF              JMP            L3
+088 0003CB 7F08           L2:  JG             L10                
+089 0003CD 3B46FC              CMP            ax, [bp-4]         
+090 0003D0 7703                JA             L10                
+091 0003D2 E96FFF              JMP            L3                 
 
-092 0003D5 FF76F2         L10: PUSH  word ptr [bp-0Eh]
-093 0003D8 B8BA01              MOV            ax, 1BAh
-094 0003DB 50                  PUSH           ax
-095 0003DC E88C0B              CALL  near ptr printf
-096 0003DF 59                  POP            cx
-097 0003E0 59                  POP            cx
-098 0003E1 8BE5                MOV            sp, bp
-099 0003E3 5D                  POP            bp
-100 0003E4 C3                  RET
+092 0003D5 FF76F2         L10: PUSH           word ptr [bp-0Eh]  
+093 0003D8 B8BA01              MOV            ax, 1BAh           
+094 0003DB 50                  PUSH           ax                 
+095 0003DC E88C0B              CALL           near ptr printf    
+096 0003DF 59                  POP            cx                 
+097 0003E0 59                  POP            cx                 
+098 0003E1 8BE5                MOV            sp, bp             
+099 0003E3 5D                  POP            bp                 
+100 0003E4 C3                  RET                               
 
 		main  ENDP
 

+ 89 - 89
tests/prev/BENCHSHO.EXE.a2

@@ -1,109 +1,109 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC0E              SUB            sp, 0Eh
-003 000300 8D46FC              LEA            ax, [bp-4]
-004 000303 50                  PUSH           ax
-005 000304 B89401              MOV            ax, 194h
-006 000307 50                  PUSH           ax
-007 000308 E8E914              CALL  near ptr scanf
-008 00030B 59                  POP            cx
-009 00030C 59                  POP            cx
-010 00030D FF76FE              PUSH  word ptr [bp-2]
-011 000310 FF76FC              PUSH  word ptr [bp-4]
-012 000313 B89801              MOV            ax, 198h
-013 000316 50                  PUSH           ax
-014 000317 E8510C              CALL  near ptr printf
-015 00031A 83C406              ADD            sp, 6
-016 00031D 8D46F2              LEA            ax, [bp-0Eh]
-017 000320 50                  PUSH           ax
-018 000321 B8B201              MOV            ax, 1B2h
-019 000324 50                  PUSH           ax
-020 000325 E8CC14              CALL  near ptr scanf
-021 000328 59                  POP            cx
-022 000329 59                  POP            cx
-023 00032A 8D46F4              LEA            ax, [bp-0Ch]
-024 00032D 50                  PUSH           ax
-025 00032E B8B601              MOV            ax, 1B6h
-026 000331 50                  PUSH           ax
-027 000332 E8BF14              CALL  near ptr scanf
-028 000335 59                  POP            cx
-029 000336 59                  POP            cx
-030 000337 C746FA0000          MOV   word ptr [bp-6], 0
-031 00033C C746F80100          MOV   word ptr [bp-8], 1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC0E              SUB            sp, 0Eh            
+003 000300 8D46FC              LEA            ax, [bp-4]         
+004 000303 50                  PUSH           ax                 
+005 000304 B89401              MOV            ax, 194h           
+006 000307 50                  PUSH           ax                 
+007 000308 E8E914              CALL           near ptr scanf     
+008 00030B 59                  POP            cx                 
+009 00030C 59                  POP            cx                 
+010 00030D FF76FE              PUSH           word ptr [bp-2]    
+011 000310 FF76FC              PUSH           word ptr [bp-4]    
+012 000313 B89801              MOV            ax, 198h           
+013 000316 50                  PUSH           ax                 
+014 000317 E8510C              CALL           near ptr printf    
+015 00031A 83C406              ADD            sp, 6              
+016 00031D 8D46F2              LEA            ax, [bp-0Eh]       
+017 000320 50                  PUSH           ax                 
+018 000321 B8B201              MOV            ax, 1B2h           
+019 000324 50                  PUSH           ax                 
+020 000325 E8CC14              CALL           near ptr scanf     
+021 000328 59                  POP            cx                 
+022 000329 59                  POP            cx                 
+023 00032A 8D46F4              LEA            ax, [bp-0Ch]       
+024 00032D 50                  PUSH           ax                 
+025 00032E B8B601              MOV            ax, 1B6h           
+026 000331 50                  PUSH           ax                 
+027 000332 E8BF14              CALL           near ptr scanf     
+028 000335 59                  POP            cx                 
+029 000336 59                  POP            cx                 
+030 000337 C746FA0000          MOV            word ptr [bp-6], 0 
+031 00033C C746F80100          MOV            word ptr [bp-8], 1 
 
-033 0003BD 8B56FA         L1:  MOV            dx, [bp-6]
-034 0003C0 8B46F8              MOV            ax, [bp-8]
-035 0003C3 3B56FE              CMP            dx, [bp-2]
-036 0003C6 7D03                JGE            L2
+033 0003BD 8B56FA         L1:  MOV            dx, [bp-6]         
+034 0003C0 8B46F8              MOV            ax, [bp-8]         
+035 0003C3 3B56FE              CMP            dx, [bp-2]         
+036 0003C6 7D03                JGE            L2                 
 
-038 000344 C746F60100     L3:  MOV   word ptr [bp-0Ah], 1
+038 000344 C746F60100     L3:  MOV            word ptr [bp-0Ah], 1
 
-040 0003AF 837EF628       L4:  CMP   word ptr [bp-0Ah], 28h
-041 0003B3 7E96                JLE            L5
-042 0003B5 8346F801            ADD   word ptr [bp-8], 1
-043 0003B9 8356FA00            ADC   word ptr [bp-6], 0
+040 0003AF 837EF628       L4:  CMP            word ptr [bp-0Ah], 28h
+041 0003B3 7E96                JLE            L5                 
+042 0003B5 8346F801            ADD            word ptr [bp-8], 1 
+043 0003B9 8356FA00            ADC            word ptr [bp-6], 0 
 044                            JMP            L1                 ;Synthetic inst
 
-045 00034B 8B46F2         L5:  MOV            ax, [bp-0Eh]
-046 00034E 0346F4              ADD            ax, [bp-0Ch]
-047 000351 0346F6              ADD            ax, [bp-0Ah]
-048 000354 8946F2              MOV            [bp-0Eh], ax
-049 000357 8B46F2              MOV            ax, [bp-0Eh]
-050 00035A D1F8                SAR            ax, 1
-051 00035C 8946F4              MOV            [bp-0Ch], ax
-052 00035F 8B46F4              MOV            ax, [bp-0Ch]
-053 000362 BB0A00              MOV            bx, 0Ah
-054 000365 99                  CWD
+045 00034B 8B46F2         L5:  MOV            ax, [bp-0Eh]       
+046 00034E 0346F4              ADD            ax, [bp-0Ch]       
+047 000351 0346F6              ADD            ax, [bp-0Ah]       
+048 000354 8946F2              MOV            [bp-0Eh], ax       
+049 000357 8B46F2              MOV            ax, [bp-0Eh]       
+050 00035A D1F8                SAR            ax, 1              
+051 00035C 8946F4              MOV            [bp-0Ch], ax       
+052 00035F 8B46F4              MOV            ax, [bp-0Ch]       
+053 000362 BB0A00              MOV            bx, 0Ah            
+054 000365 99                  CWD                               
 055                            MOV            tmp, dx:ax         ;Synthetic inst
-056 000366 F7FB                IDIV           bx
+056 000366 F7FB                IDIV           bx                 
 057                            MOD            bx                 ;Synthetic inst
-058 000368 8956F2              MOV            [bp-0Eh], dx
-059 00036B 8B46F4              MOV            ax, [bp-0Ch]
-060 00036E 3B46F6              CMP            ax, [bp-0Ah]
-061 000371 7505                JNE            L6
-062 000373 B80100              MOV            ax, 1
+058 000368 8956F2              MOV            [bp-0Eh], dx       
+059 00036B 8B46F4              MOV            ax, [bp-0Ch]       
+060 00036E 3B46F6              CMP            ax, [bp-0Ah]       
+061 000371 7505                JNE            L6                 
+062 000373 B80100              MOV            ax, 1              
 
-064 00037A 8946F2         L7:  MOV            [bp-0Eh], ax
-065 00037D 8B46F2              MOV            ax, [bp-0Eh]
-066 000380 0B46F6              OR             ax, [bp-0Ah]
-067 000383 8946F4              MOV            [bp-0Ch], ax
-068 000386 8B46F4              MOV            ax, [bp-0Ch]
-069 000389 F7D8                NEG            ax
-070 00038B 1BC0                SBB            ax, ax
-071 00038D 40                  INC            ax
-072 00038E 8946F2              MOV            [bp-0Eh], ax
-073 000391 8B46F2              MOV            ax, [bp-0Eh]
-074 000394 0346F6              ADD            ax, [bp-0Ah]
-075 000397 8946F4              MOV            [bp-0Ch], ax
-076 00039A 8B46F4              MOV            ax, [bp-0Ch]
-077 00039D 3B46F6              CMP            ax, [bp-0Ah]
-078 0003A0 7E05                JLE            L8
-079 0003A2 B80100              MOV            ax, 1
+064 00037A 8946F2         L7:  MOV            [bp-0Eh], ax       
+065 00037D 8B46F2              MOV            ax, [bp-0Eh]       
+066 000380 0B46F6              OR             ax, [bp-0Ah]       
+067 000383 8946F4              MOV            [bp-0Ch], ax       
+068 000386 8B46F4              MOV            ax, [bp-0Ch]       
+069 000389 F7D8                NEG            ax                 
+070 00038B 1BC0                SBB            ax, ax             
+071 00038D 40                  INC            ax                 
+072 00038E 8946F2              MOV            [bp-0Eh], ax       
+073 000391 8B46F2              MOV            ax, [bp-0Eh]       
+074 000394 0346F6              ADD            ax, [bp-0Ah]       
+075 000397 8946F4              MOV            [bp-0Ch], ax       
+076 00039A 8B46F4              MOV            ax, [bp-0Ch]       
+077 00039D 3B46F6              CMP            ax, [bp-0Ah]       
+078 0003A0 7E05                JLE            L8                 
+079 0003A2 B80100              MOV            ax, 1              
 
-081 0003A9 8946F2         L9:  MOV            [bp-0Eh], ax
-082 0003AC FF46F6              INC   word ptr [bp-0Ah]
+081 0003A9 8946F2         L9:  MOV            [bp-0Eh], ax       
+082 0003AC FF46F6              INC            word ptr [bp-0Ah]  
 083                            JMP            L4                 ;Synthetic inst
 
-084 0003A7 33C0           L8:  XOR            ax, ax
+084 0003A7 33C0           L8:  XOR            ax, ax             
 085                            JMP            L9                 ;Synthetic inst
 
-086 000378 33C0           L6:  XOR            ax, ax
+086 000378 33C0           L6:  XOR            ax, ax             
 087                            JMP            L7                 ;Synthetic inst
 
-088 0003CB 7F08           L2:  JG             L10
-089 0003CD 3B46FC              CMP            ax, [bp-4]
-090 0003D0 7703                JA             L10
+088 0003CB 7F08           L2:  JG             L10                
+089 0003CD 3B46FC              CMP            ax, [bp-4]         
+090 0003D0 7703                JA             L10                
 
-092 0003D5 FF76F2         L10: PUSH  word ptr [bp-0Eh]
-093 0003D8 B8BA01              MOV            ax, 1BAh
-094 0003DB 50                  PUSH           ax
-095 0003DC E88C0B              CALL  near ptr printf
-096 0003DF 59                  POP            cx
-097 0003E0 59                  POP            cx
-098 0003E1 8BE5                MOV            sp, bp
-099 0003E3 5D                  POP            bp
-100 0003E4 C3                  RET
+092 0003D5 FF76F2         L10: PUSH           word ptr [bp-0Eh]  
+093 0003D8 B8BA01              MOV            ax, 1BAh           
+094 0003DB 50                  PUSH           ax                 
+095 0003DC E88C0B              CALL           near ptr printf    
+096 0003DF 59                  POP            cx                 
+097 0003E0 59                  POP            cx                 
+098 0003E1 8BE5                MOV            sp, bp             
+099 0003E3 5D                  POP            bp                 
+100 0003E4 C3                  RET                               
 
 		main  ENDP
 

+ 54 - 54
tests/prev/BYTEOPS.EXE.a1

@@ -1,58 +1,58 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC02              SUB            sp, 2
-003 000300 C646FEFF            MOV   byte ptr [bp-2], 0FFh
-004 000304 C646FF8F            MOV   byte ptr [bp-1], 8Fh
-005 000308 8A46FE              MOV            al, [bp-2]
-006 00030B 0246FF              ADD            al, [bp-1]
-007 00030E 8846FF              MOV            [bp-1], al
-008 000311 8A46FE              MOV            al, [bp-2]
-009 000314 2A46FF              SUB            al, [bp-1]
-010 000317 8846FE              MOV            [bp-2], al
-011 00031A 8A46FE              MOV            al, [bp-2]
-012 00031D B400                MOV            ah, 0
-013 00031F 8A56FF              MOV            dl, [bp-1]
-014 000322 B600                MOV            dh, 0
-015 000324 F7E2                MUL            dx
-016 000326 8846FE              MOV            [bp-2], al
-017 000329 8A46FF              MOV            al, [bp-1]
-018 00032C B400                MOV            ah, 0
-019 00032E 8A56FE              MOV            dl, [bp-2]
-020 000331 B600                MOV            dh, 0
-021 000333 8BDA                MOV            bx, dx
-022 000335 99                  CWD
-024 000336 F7FB                IDIV           bx
-026 000338 8846FF              MOV            [bp-1], al
-027 00033B 8A46FF              MOV            al, [bp-1]
-028 00033E B400                MOV            ah, 0
-029 000340 8A56FE              MOV            dl, [bp-2]
-030 000343 B600                MOV            dh, 0
-031 000345 8BDA                MOV            bx, dx
-032 000347 99                  CWD
-034 000348 F7FB                IDIV           bx
-036 00034A 8856FF              MOV            [bp-1], dl
-037 00034D 8A46FE              MOV            al, [bp-2]
-038 000350 B105                MOV            cl, 5
-039 000352 D2E0                SHL            al, cl
-040 000354 8846FE              MOV            [bp-2], al
-041 000357 8A46FF              MOV            al, [bp-1]
-042 00035A 8A4EFE              MOV            cl, [bp-2]
-043 00035D D2E8                SHR            al, cl
-044 00035F 8846FF              MOV            [bp-1], al
-045 000362 8A46FF              MOV            al, [bp-1]
-046 000365 B400                MOV            ah, 0
-047 000367 50                  PUSH           ax
-048 000368 8A46FE              MOV            al, [bp-2]
-049 00036B B400                MOV            ah, 0
-050 00036D 50                  PUSH           ax
-051 00036E B89401              MOV            ax, 194h
-052 000371 50                  PUSH           ax
-053 000372 E8AB06              CALL  near ptr printf
-054 000375 83C406              ADD            sp, 6
-055 000378 8BE5                MOV            sp, bp
-056 00037A 5D                  POP            bp
-057 00037B C3                  RET
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC02              SUB            sp, 2              
+003 000300 C646FEFF            MOV            byte ptr [bp-2], 0FFh
+004 000304 C646FF8F            MOV            byte ptr [bp-1], 8Fh
+005 000308 8A46FE              MOV            al, [bp-2]         
+006 00030B 0246FF              ADD            al, [bp-1]         
+007 00030E 8846FF              MOV            [bp-1], al         
+008 000311 8A46FE              MOV            al, [bp-2]         
+009 000314 2A46FF              SUB            al, [bp-1]         
+010 000317 8846FE              MOV            [bp-2], al         
+011 00031A 8A46FE              MOV            al, [bp-2]         
+012 00031D B400                MOV            ah, 0              
+013 00031F 8A56FF              MOV            dl, [bp-1]         
+014 000322 B600                MOV            dh, 0              
+015 000324 F7E2                MUL            dx                 
+016 000326 8846FE              MOV            [bp-2], al         
+017 000329 8A46FF              MOV            al, [bp-1]         
+018 00032C B400                MOV            ah, 0              
+019 00032E 8A56FE              MOV            dl, [bp-2]         
+020 000331 B600                MOV            dh, 0              
+021 000333 8BDA                MOV            bx, dx             
+022 000335 99                  CWD                               
+024 000336 F7FB                IDIV           bx                 
+026 000338 8846FF              MOV            [bp-1], al         
+027 00033B 8A46FF              MOV            al, [bp-1]         
+028 00033E B400                MOV            ah, 0              
+029 000340 8A56FE              MOV            dl, [bp-2]         
+030 000343 B600                MOV            dh, 0              
+031 000345 8BDA                MOV            bx, dx             
+032 000347 99                  CWD                               
+034 000348 F7FB                IDIV           bx                 
+036 00034A 8856FF              MOV            [bp-1], dl         
+037 00034D 8A46FE              MOV            al, [bp-2]         
+038 000350 B105                MOV            cl, 5              
+039 000352 D2E0                SHL            al, cl             
+040 000354 8846FE              MOV            [bp-2], al         
+041 000357 8A46FF              MOV            al, [bp-1]         
+042 00035A 8A4EFE              MOV            cl, [bp-2]         
+043 00035D D2E8                SHR            al, cl             
+044 00035F 8846FF              MOV            [bp-1], al         
+045 000362 8A46FF              MOV            al, [bp-1]         
+046 000365 B400                MOV            ah, 0              
+047 000367 50                  PUSH           ax                 
+048 000368 8A46FE              MOV            al, [bp-2]         
+049 00036B B400                MOV            ah, 0              
+050 00036D 50                  PUSH           ax                 
+051 00036E B89401              MOV            ax, 194h           
+052 000371 50                  PUSH           ax                 
+053 000372 E8AB06              CALL           near ptr printf    
+054 000375 83C406              ADD            sp, 6              
+055 000378 8BE5                MOV            sp, bp             
+056 00037A 5D                  POP            bp                 
+057 00037B C3                  RET                               
 
 		main  ENDP
 

+ 54 - 54
tests/prev/BYTEOPS.EXE.a2

@@ -1,62 +1,62 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC02              SUB            sp, 2
-003 000300 C646FEFF            MOV   byte ptr [bp-2], 0FFh
-004 000304 C646FF8F            MOV   byte ptr [bp-1], 8Fh
-005 000308 8A46FE              MOV            al, [bp-2]
-006 00030B 0246FF              ADD            al, [bp-1]
-007 00030E 8846FF              MOV            [bp-1], al
-008 000311 8A46FE              MOV            al, [bp-2]
-009 000314 2A46FF              SUB            al, [bp-1]
-010 000317 8846FE              MOV            [bp-2], al
-011 00031A 8A46FE              MOV            al, [bp-2]
-012 00031D B400                MOV            ah, 0
-013 00031F 8A56FF              MOV            dl, [bp-1]
-014 000322 B600                MOV            dh, 0
-015 000324 F7E2                MUL            dx
-016 000326 8846FE              MOV            [bp-2], al
-017 000329 8A46FF              MOV            al, [bp-1]
-018 00032C B400                MOV            ah, 0
-019 00032E 8A56FE              MOV            dl, [bp-2]
-020 000331 B600                MOV            dh, 0
-021 000333 8BDA                MOV            bx, dx
-022 000335 99                  CWD
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC02              SUB            sp, 2              
+003 000300 C646FEFF            MOV            byte ptr [bp-2], 0FFh
+004 000304 C646FF8F            MOV            byte ptr [bp-1], 8Fh
+005 000308 8A46FE              MOV            al, [bp-2]         
+006 00030B 0246FF              ADD            al, [bp-1]         
+007 00030E 8846FF              MOV            [bp-1], al         
+008 000311 8A46FE              MOV            al, [bp-2]         
+009 000314 2A46FF              SUB            al, [bp-1]         
+010 000317 8846FE              MOV            [bp-2], al         
+011 00031A 8A46FE              MOV            al, [bp-2]         
+012 00031D B400                MOV            ah, 0              
+013 00031F 8A56FF              MOV            dl, [bp-1]         
+014 000322 B600                MOV            dh, 0              
+015 000324 F7E2                MUL            dx                 
+016 000326 8846FE              MOV            [bp-2], al         
+017 000329 8A46FF              MOV            al, [bp-1]         
+018 00032C B400                MOV            ah, 0              
+019 00032E 8A56FE              MOV            dl, [bp-2]         
+020 000331 B600                MOV            dh, 0              
+021 000333 8BDA                MOV            bx, dx             
+022 000335 99                  CWD                               
 023                            MOV            tmp, dx:ax         ;Synthetic inst
-024 000336 F7FB                IDIV           bx
+024 000336 F7FB                IDIV           bx                 
 025                            MOD            bx                 ;Synthetic inst
-026 000338 8846FF              MOV            [bp-1], al
-027 00033B 8A46FF              MOV            al, [bp-1]
-028 00033E B400                MOV            ah, 0
-029 000340 8A56FE              MOV            dl, [bp-2]
-030 000343 B600                MOV            dh, 0
-031 000345 8BDA                MOV            bx, dx
-032 000347 99                  CWD
+026 000338 8846FF              MOV            [bp-1], al         
+027 00033B 8A46FF              MOV            al, [bp-1]         
+028 00033E B400                MOV            ah, 0              
+029 000340 8A56FE              MOV            dl, [bp-2]         
+030 000343 B600                MOV            dh, 0              
+031 000345 8BDA                MOV            bx, dx             
+032 000347 99                  CWD                               
 033                            MOV            tmp, dx:ax         ;Synthetic inst
-034 000348 F7FB                IDIV           bx
+034 000348 F7FB                IDIV           bx                 
 035                            MOD            bx                 ;Synthetic inst
-036 00034A 8856FF              MOV            [bp-1], dl
-037 00034D 8A46FE              MOV            al, [bp-2]
-038 000350 B105                MOV            cl, 5
-039 000352 D2E0                SHL            al, cl
-040 000354 8846FE              MOV            [bp-2], al
-041 000357 8A46FF              MOV            al, [bp-1]
-042 00035A 8A4EFE              MOV            cl, [bp-2]
-043 00035D D2E8                SHR            al, cl
-044 00035F 8846FF              MOV            [bp-1], al
-045 000362 8A46FF              MOV            al, [bp-1]
-046 000365 B400                MOV            ah, 0
-047 000367 50                  PUSH           ax
-048 000368 8A46FE              MOV            al, [bp-2]
-049 00036B B400                MOV            ah, 0
-050 00036D 50                  PUSH           ax
-051 00036E B89401              MOV            ax, 194h
-052 000371 50                  PUSH           ax
-053 000372 E8AB06              CALL  near ptr printf
-054 000375 83C406              ADD            sp, 6
-055 000378 8BE5                MOV            sp, bp
-056 00037A 5D                  POP            bp
-057 00037B C3                  RET
+036 00034A 8856FF              MOV            [bp-1], dl         
+037 00034D 8A46FE              MOV            al, [bp-2]         
+038 000350 B105                MOV            cl, 5              
+039 000352 D2E0                SHL            al, cl             
+040 000354 8846FE              MOV            [bp-2], al         
+041 000357 8A46FF              MOV            al, [bp-1]         
+042 00035A 8A4EFE              MOV            cl, [bp-2]         
+043 00035D D2E8                SHR            al, cl             
+044 00035F 8846FF              MOV            [bp-1], al         
+045 000362 8A46FF              MOV            al, [bp-1]         
+046 000365 B400                MOV            ah, 0              
+047 000367 50                  PUSH           ax                 
+048 000368 8A46FE              MOV            al, [bp-2]         
+049 00036B B400                MOV            ah, 0              
+050 00036D 50                  PUSH           ax                 
+051 00036E B89401              MOV            ax, 194h           
+052 000371 50                  PUSH           ax                 
+053 000372 E8AB06              CALL           near ptr printf    
+054 000375 83C406              ADD            sp, 6              
+055 000378 8BE5                MOV            sp, bp             
+056 00037A 5D                  POP            bp                 
+057 00037B C3                  RET                               
 
 		main  ENDP
 

+ 77 - 77
tests/prev/FIBOS.EXE.a1

@@ -1,90 +1,90 @@
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC04              SUB            sp, 4
-003 000300 56                  PUSH           si
-004 000301 57                  PUSH           di
-005 000302 B89401              MOV            ax, 194h
-006 000305 50                  PUSH           ax
-007 000306 E8080C              CALL  near ptr printf
-008 000309 59                  POP            cx
-009 00030A 8D46FC              LEA            ax, [bp-4]
-010 00030D 50                  PUSH           ax
-011 00030E B8B101              MOV            ax, 1B1h
-012 000311 50                  PUSH           ax
-013 000312 E88514              CALL  near ptr scanf
-014 000315 59                  POP            cx
-015 000316 59                  POP            cx
-016 000317 BE0100              MOV            si, 1
-017 00031A EB2D                JMP            L1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC04              SUB            sp, 4              
+003 000300 56                  PUSH           si                 
+004 000301 57                  PUSH           di                 
+005 000302 B89401              MOV            ax, 194h           
+006 000305 50                  PUSH           ax                 
+007 000306 E8080C              CALL           near ptr printf    
+008 000309 59                  POP            cx                 
+009 00030A 8D46FC              LEA            ax, [bp-4]         
+010 00030D 50                  PUSH           ax                 
+011 00030E B8B101              MOV            ax, 1B1h           
+012 000311 50                  PUSH           ax                 
+013 000312 E88514              CALL           near ptr scanf     
+014 000315 59                  POP            cx                 
+015 000316 59                  POP            cx                 
+016 000317 BE0100              MOV            si, 1              
+017 00031A EB2D                JMP            L1                 
 
-018 000349 3B76FC         L1:  CMP            si, [bp-4]
-019 00034C 7ECE                JLE            L2
-020 00034E 33C0                XOR            ax, ax
-021 000350 50                  PUSH           ax
-022 000351 E87300              CALL  near ptr exit
-023 000354 59                  POP            cx
-024 000355 5F                  POP            di
-025 000356 5E                  POP            si
-026 000357 8BE5                MOV            sp, bp
-027 000359 5D                  POP            bp
-028 00035A C3                  RET
+018 000349 3B76FC         L1:  CMP            si, [bp-4]         
+019 00034C 7ECE                JLE            L2                 
+020 00034E 33C0                XOR            ax, ax             
+021 000350 50                  PUSH           ax                 
+022 000351 E87300              CALL           near ptr exit      
+023 000354 59                  POP            cx                 
+024 000355 5F                  POP            di                 
+025 000356 5E                  POP            si                 
+026 000357 8BE5                MOV            sp, bp             
+027 000359 5D                  POP            bp                 
+028 00035A C3                  RET                               
 
-029 00031C B8B401         L2:  MOV            ax, 1B4h
-030 00031F 50                  PUSH           ax
-031 000320 E8EE0B              CALL  near ptr printf
-032 000323 59                  POP            cx
-033 000324 8D46FE              LEA            ax, [bp-2]
-034 000327 50                  PUSH           ax
-035 000328 B8C301              MOV            ax, 1C3h
-036 00032B 50                  PUSH           ax
-037 00032C E86B14              CALL  near ptr scanf
-038 00032F 59                  POP            cx
-039 000330 59                  POP            cx
-040 000331 FF76FE              PUSH  word ptr [bp-2]
-041 000334 E82400              CALL  near ptr proc_1
-042 000337 59                  POP            cx
-043 000338 8BF8                MOV            di, ax
-044 00033A 57                  PUSH           di
-045 00033B FF76FE              PUSH  word ptr [bp-2]
-046 00033E B8C601              MOV            ax, 1C6h
-047 000341 50                  PUSH           ax
-048 000342 E8CC0B              CALL  near ptr printf
-049 000345 83C406              ADD            sp, 6
-050 000348 46                  INC            si
+029 00031C B8B401         L2:  MOV            ax, 1B4h           
+030 00031F 50                  PUSH           ax                 
+031 000320 E8EE0B              CALL           near ptr printf    
+032 000323 59                  POP            cx                 
+033 000324 8D46FE              LEA            ax, [bp-2]         
+034 000327 50                  PUSH           ax                 
+035 000328 B8C301              MOV            ax, 1C3h           
+036 00032B 50                  PUSH           ax                 
+037 00032C E86B14              CALL           near ptr scanf     
+038 00032F 59                  POP            cx                 
+039 000330 59                  POP            cx                 
+040 000331 FF76FE              PUSH           word ptr [bp-2]    
+041 000334 E82400              CALL           near ptr proc_1    
+042 000337 59                  POP            cx                 
+043 000338 8BF8                MOV            di, ax             
+044 00033A 57                  PUSH           di                 
+045 00033B FF76FE              PUSH           word ptr [bp-2]    
+046 00033E B8C601              MOV            ax, 1C6h           
+047 000341 50                  PUSH           ax                 
+048 000342 E8CC0B              CALL           near ptr printf    
+049 000345 83C406              ADD            sp, 6              
+050 000348 46                  INC            si                 
 051                            JMP            L1                 ;Synthetic inst
 
 		main  ENDP
 
 		proc_1  PROC  NEAR
-000 00035B 55                  PUSH           bp
-001 00035C 8BEC                MOV            bp, sp
-002 00035E 56                  PUSH           si
-003 00035F 8B7604              MOV            si, [bp+4]
-004 000362 83FE02              CMP            si, 2
-005 000365 7E1C                JLE            L3
-006 000367 8BC6                MOV            ax, si
-007 000369 48                  DEC            ax
-008 00036A 50                  PUSH           ax
-009 00036B E8EDFF              CALL  near ptr proc_1
-010 00036E 59                  POP            cx
-011 00036F 50                  PUSH           ax
-012 000370 8BC6                MOV            ax, si
-013 000372 05FEFF              ADD            ax, 0FFFEh
-014 000375 50                  PUSH           ax
-015 000376 E8E2FF              CALL  near ptr proc_1
-016 000379 59                  POP            cx
-017 00037A 8BD0                MOV            dx, ax
-018 00037C 58                  POP            ax
-019 00037D 03C2                ADD            ax, dx
-020 00037F EB07                JMP            L4
+000 00035B 55                  PUSH           bp                 
+001 00035C 8BEC                MOV            bp, sp             
+002 00035E 56                  PUSH           si                 
+003 00035F 8B7604              MOV            si, [bp+4]         
+004 000362 83FE02              CMP            si, 2              
+005 000365 7E1C                JLE            L3                 
+006 000367 8BC6                MOV            ax, si             
+007 000369 48                  DEC            ax                 
+008 00036A 50                  PUSH           ax                 
+009 00036B E8EDFF              CALL           near ptr proc_1    
+010 00036E 59                  POP            cx                 
+011 00036F 50                  PUSH           ax                 
+012 000370 8BC6                MOV            ax, si             
+013 000372 05FEFF              ADD            ax, 0FFFEh         
+014 000375 50                  PUSH           ax                 
+015 000376 E8E2FF              CALL           near ptr proc_1    
+016 000379 59                  POP            cx                 
+017 00037A 8BD0                MOV            dx, ax             
+018 00037C 58                  POP            ax                 
+019 00037D 03C2                ADD            ax, dx             
+020 00037F EB07                JMP            L4                 
 
-021 000388 5E             L4:  POP            si
-022 000389 5D                  POP            bp
-023 00038A C3                  RET
+021 000388 5E             L4:  POP            si                 
+022 000389 5D                  POP            bp                 
+023 00038A C3                  RET                               
 
-024 000383 B80100         L3:  MOV            ax, 1
-025 000386 EB00                JMP            L4
+024 000383 B80100         L3:  MOV            ax, 1              
+025 000386 EB00                JMP            L4                 
 
 		proc_1  ENDP
 

+ 75 - 75
tests/prev/FIBOS.EXE.a2

@@ -1,87 +1,87 @@
 		proc_1  PROC  NEAR
-000 00035B 55                  PUSH           bp
-001 00035C 8BEC                MOV            bp, sp
-002 00035E 56                  PUSH           si
-003 00035F 8B7604              MOV            si, [bp+4]
-004 000362 83FE02              CMP            si, 2
-005 000365 7E1C                JLE            L1
-006 000367 8BC6                MOV            ax, si
-007 000369 48                  DEC            ax
-008 00036A 50                  PUSH           ax
-009 00036B E8EDFF              CALL  near ptr proc_1
-010 00036E 59                  POP            cx
-011 00036F 50                  PUSH           ax
-012 000370 8BC6                MOV            ax, si
-013 000372 05FEFF              ADD            ax, 0FFFEh
-014 000375 50                  PUSH           ax
-015 000376 E8E2FF              CALL  near ptr proc_1
-016 000379 59                  POP            cx
-017 00037A 8BD0                MOV            dx, ax
-018 00037C 58                  POP            ax
-019 00037D 03C2                ADD            ax, dx
+000 00035B 55                  PUSH           bp                 
+001 00035C 8BEC                MOV            bp, sp             
+002 00035E 56                  PUSH           si                 
+003 00035F 8B7604              MOV            si, [bp+4]         
+004 000362 83FE02              CMP            si, 2              
+005 000365 7E1C                JLE            L1                 
+006 000367 8BC6                MOV            ax, si             
+007 000369 48                  DEC            ax                 
+008 00036A 50                  PUSH           ax                 
+009 00036B E8EDFF              CALL           near ptr proc_1    
+010 00036E 59                  POP            cx                 
+011 00036F 50                  PUSH           ax                 
+012 000370 8BC6                MOV            ax, si             
+013 000372 05FEFF              ADD            ax, 0FFFEh         
+014 000375 50                  PUSH           ax                 
+015 000376 E8E2FF              CALL           near ptr proc_1    
+016 000379 59                  POP            cx                 
+017 00037A 8BD0                MOV            dx, ax             
+018 00037C 58                  POP            ax                 
+019 00037D 03C2                ADD            ax, dx             
 
-021 000388 5E             L2:  POP            si
-022 000389 5D                  POP            bp
-023 00038A C3                  RET
+021 000388 5E             L2:  POP            si                 
+022 000389 5D                  POP            bp                 
+023 00038A C3                  RET                               
 
-024 000383 B80100         L1:  MOV            ax, 1
-025 000386 EB00                JMP            L2
+024 000383 B80100         L1:  MOV            ax, 1              
+025 000386 EB00                JMP            L2                 
 
 		proc_1  ENDP
 
 		main  PROC  NEAR
-000 0002FA 55                  PUSH           bp
-001 0002FB 8BEC                MOV            bp, sp
-002 0002FD 83EC04              SUB            sp, 4
-003 000300 56                  PUSH           si
-004 000301 57                  PUSH           di
-005 000302 B89401              MOV            ax, 194h
-006 000305 50                  PUSH           ax
-007 000306 E8080C              CALL  near ptr printf
-008 000309 59                  POP            cx
-009 00030A 8D46FC              LEA            ax, [bp-4]
-010 00030D 50                  PUSH           ax
-011 00030E B8B101              MOV            ax, 1B1h
-012 000311 50                  PUSH           ax
-013 000312 E88514              CALL  near ptr scanf
-014 000315 59                  POP            cx
-015 000316 59                  POP            cx
-016 000317 BE0100              MOV            si, 1
+000 0002FA 55                  PUSH           bp                 
+001 0002FB 8BEC                MOV            bp, sp             
+002 0002FD 83EC04              SUB            sp, 4              
+003 000300 56                  PUSH           si                 
+004 000301 57                  PUSH           di                 
+005 000302 B89401              MOV            ax, 194h           
+006 000305 50                  PUSH           ax                 
+007 000306 E8080C              CALL           near ptr printf    
+008 000309 59                  POP            cx                 
+009 00030A 8D46FC              LEA            ax, [bp-4]         
+010 00030D 50                  PUSH           ax                 
+011 00030E B8B101              MOV            ax, 1B1h           
+012 000311 50                  PUSH           ax                 
+013 000312 E88514              CALL           near ptr scanf     
+014 000315 59                  POP            cx                 
+015 000316 59                  POP            cx                 
+016 000317 BE0100              MOV            si, 1              
 
-018 000349 3B76FC         L3:  CMP            si, [bp-4]
-019 00034C 7ECE                JLE            L4
-020 00034E 33C0                XOR            ax, ax
-021 000350 50                  PUSH           ax
-022 000351 E87300              CALL  near ptr exit
-023 000354 59                  POP            cx
-024 000355 5F                  POP            di
-025 000356 5E                  POP            si
-026 000357 8BE5                MOV            sp, bp
-027 000359 5D                  POP            bp
-028 00035A C3                  RET
+018 000349 3B76FC         L3:  CMP            si, [bp-4]         
+019 00034C 7ECE                JLE            L4                 
+020 00034E 33C0                XOR            ax, ax             
+021 000350 50                  PUSH           ax                 
+022 000351 E87300              CALL           near ptr exit      
+023 000354 59                  POP            cx                 
+024 000355 5F                  POP            di                 
+025 000356 5E                  POP            si                 
+026 000357 8BE5                MOV            sp, bp             
+027 000359 5D                  POP            bp                 
+028 00035A C3                  RET                               
 
-029 00031C B8B401         L4:  MOV            ax, 1B4h
-030 00031F 50                  PUSH           ax
-031 000320 E8EE0B              CALL  near ptr printf
-032 000323 59                  POP            cx
-033 000324 8D46FE              LEA            ax, [bp-2]
-034 000327 50                  PUSH           ax
-035 000328 B8C301              MOV            ax, 1C3h
-036 00032B 50                  PUSH           ax
-037 00032C E86B14              CALL  near ptr scanf
-038 00032F 59                  POP            cx
-039 000330 59                  POP            cx
-040 000331 FF76FE              PUSH  word ptr [bp-2]
-041 000334 E82400              CALL  near ptr proc_1
-042 000337 59                  POP            cx
-043 000338 8BF8                MOV            di, ax
-044 00033A 57                  PUSH           di
-045 00033B FF76FE              PUSH  word ptr [bp-2]
-046 00033E B8C601              MOV            ax, 1C6h
-047 000341 50                  PUSH           ax
-048 000342 E8CC0B              CALL  near ptr printf
-049 000345 83C406              ADD            sp, 6
-050 000348 46                  INC            si
+029 00031C B8B401         L4:  MOV            ax, 1B4h           
+030 00031F 50                  PUSH           ax                 
+031 000320 E8EE0B              CALL           near ptr printf    
+032 000323 59                  POP            cx                 
+033 000324 8D46FE              LEA            ax, [bp-2]         
+034 000327 50                  PUSH           ax                 
+035 000328 B8C301              MOV            ax, 1C3h           
+036 00032B 50                  PUSH           ax                 
+037 00032C E86B14              CALL           near ptr scanf     
+038 00032F 59                  POP            cx                 
+039 000330 59                  POP            cx                 
+040 000331 FF76FE              PUSH           word ptr [bp-2]    
+041 000334 E82400              CALL           near ptr proc_1    
+042 000337 59                  POP            cx                 
+043 000338 8BF8                MOV            di, ax             
+044 00033A 57                  PUSH           di                 
+045 00033B FF76FE              PUSH           word ptr [bp-2]    
+046 00033E B8C601              MOV            ax, 1C6h           
+047 000341 50                  PUSH           ax                 
+048 000342 E8CC0B              CALL           near ptr printf    
+049 000345 83C406              ADD            sp, 6              
+050 000348 46                  INC            si                 
 051                            JMP            L3                 ;Synthetic inst
 
 		main  ENDP

+ 22 - 22
tests/prev/MIN.EXE.a1

@@ -1,39 +1,39 @@
-		  PROC  NEAR
-000 000100 55                  PUSH           bp
-001 000101 8BEC                MOV            bp, sp
-002 000103 83EC02              SUB            sp, 2
-003 000106 C746FE0000          MOV   word ptr [bp-2], 0
-004 00010B 8B46FE              MOV            ax, [bp-2]
-005 00010E 3D0600              CMP            ax, 6
-006 000111 7735                JA             L1
-007 000113 8BD8                MOV            bx, ax
-008 000115 D1E3                SHL            bx, 1
-009 000117 2EFFA71C00          JMP   word ptr cs:[bx+1Ch]        ;Switch 
+		start  PROC  NEAR
+000 000100 55                  PUSH           bp                 
+001 000101 8BEC                MOV            bp, sp             
+002 000103 83EC02              SUB            sp, 2              
+003 000106 C746FE0000          MOV            word ptr [bp-2], 0 
+004 00010B 8B46FE              MOV            ax, [bp-2]         
+005 00010E 3D0600              CMP            ax, 6              
+006 000111 7735                JA             L1                 
+007 000113 8BD8                MOV            bx, ax             
+008 000115 D1E3                SHL            bx, 1              
+009 000117 2EFFA71C00          JMP            word ptr cs:[bx+1Ch];Switch 
 
 010 00012A B80200              MOV            ax, 2              ;Case l0
-011 00012D EB1E                JMP            L2
+011 00012D EB1E                JMP            L2                 
 
-012 00014D 8BE5           L2:  MOV            sp, bp
-013 00014F 5D                  POP            bp
-014 000150 C3                  RET
+012 00014D 8BE5           L2:  MOV            sp, bp             
+013 00014F 5D                  POP            bp                 
+014 000150 C3                  RET                               
 
 015 00012F B80300              MOV            ax, 3              ;Case l1
-016 000132 EB19                JMP            L2
+016 000132 EB19                JMP            L2                 
 
 017 000134 B80700              MOV            ax, 7              ;Case l2
-018 000137 EB14                JMP            L2
+018 000137 EB14                JMP            L2                 
 
 019 000139 B80D00              MOV            ax, 0Dh            ;Case l3
-020 00013C EB0F                JMP            L2
+020 00013C EB0F                JMP            L2                 
 
 021 000148 B82C00         L1:  MOV            ax, 2Ch            ;Case l4
-022 00014B EB00                JMP            L2
+022 00014B EB00                JMP            L2                 
 
 023 00013E B81700              MOV            ax, 17h            ;Case l5
-024 000141 EB0A                JMP            L2
+024 000141 EB0A                JMP            L2                 
 
 025 000143 B80D00              MOV            ax, 0Dh            ;Case l6
-026 000146 EB05                JMP            L2
+026 000146 EB05                JMP            L2                 
 
-		  ENDP
+		start  ENDP
 

+ 21 - 21
tests/prev/MIN.EXE.a2

@@ -1,38 +1,38 @@
-		  PROC  NEAR
-000 000100 55                  PUSH           bp
-001 000101 8BEC                MOV            bp, sp
-002 000103 83EC02              SUB            sp, 2
-003 000106 C746FE0000          MOV   word ptr [bp-2], 0
-004 00010B 8B46FE              MOV            ax, [bp-2]
-005 00010E 3D0600              CMP            ax, 6
-006 000111 7735                JA             L1
-007 000113 8BD8                MOV            bx, ax
-008 000115 D1E3                SHL            bx, 1
-009 000117 2EFFA71C00          JMP   word ptr cs:[bx+1Ch]        ;Switch 
+		start  PROC  NEAR
+000 000100 55                  PUSH           bp                 
+001 000101 8BEC                MOV            bp, sp             
+002 000103 83EC02              SUB            sp, 2              
+003 000106 C746FE0000          MOV            word ptr [bp-2], 0 
+004 00010B 8B46FE              MOV            ax, [bp-2]         
+005 00010E 3D0600              CMP            ax, 6              
+006 000111 7735                JA             L1                 
+007 000113 8BD8                MOV            bx, ax             
+008 000115 D1E3                SHL            bx, 1              
+009 000117 2EFFA71C00          JMP            word ptr cs:[bx+1Ch];Switch 
 
 010 00012A B80200              MOV            ax, 2              ;Case l0
 
-012 00014D 8BE5           L2:  MOV            sp, bp
-013 00014F 5D                  POP            bp
-014 000150 C3                  RET
+012 00014D 8BE5           L2:  MOV            sp, bp             
+013 00014F 5D                  POP            bp                 
+014 000150 C3                  RET                               
 
 015 00012F B80300              MOV            ax, 3              ;Case l1
-016 000132 EB19                JMP            L2
+016 000132 EB19                JMP            L2                 
 
 017 000134 B80700              MOV            ax, 7              ;Case l2
-018 000137 EB14                JMP            L2
+018 000137 EB14                JMP            L2                 
 
 019 000139 B80D00              MOV            ax, 0Dh            ;Case l3
-020 00013C EB0F                JMP            L2
+020 00013C EB0F                JMP            L2                 
 
 021 000148 B82C00         L1:  MOV            ax, 2Ch            ;Case l4
-022 00014B EB00                JMP            L2
+022 00014B EB00                JMP            L2                 
 
 023 00013E B81700              MOV            ax, 17h            ;Case l5
-024 000141 EB0A                JMP            L2
+024 000141 EB0A                JMP            L2                 
 
 025 000143 B80D00              MOV            ax, 0Dh            ;Case l6
-026 000146 EB05                JMP            L2
+026 000146 EB05                JMP            L2                 
 
-		  ENDP
+		start  ENDP
 

+ 1 - 1
tests/prev/MIN.b

@@ -6,7 +6,7 @@
 #include "dcc.h"
 
 
-void  ()
+void start ()
 /* Takes no parameters.
  * High-level language prologue code.
  */