Annotation of coherent/b/bin/c/n1/i8086/tables/add.t, revision 1.1.1.1

1.1       root        1: /////////
                      2: /
                      3: / Addition.
                      4: / Check for +1 (inc) and +2 (inc, inc; thanks to Mac).
                      5: / Handle LARGE model addition of integers and pointers,
                      6: / which are OFFSET adjustments only.
                      7: /
                      8: /////////
                      9: 
                     10: ADD:
                     11: %      PEFFECT|PRVALUE|PSREL|P_SLT
                     12:        WORD            ANYR    ANYR    *       TEMP
                     13:                TREG            WORD
                     14:                1|MMX           *
                     15: %      PLVALUE|P_SLT
                     16:        WORD            ANYL    ANYL    *       TEMP
                     17:                TREG            WORD
                     18:                1|MMX           *
                     19:                        [ZINC]  [R]
                     20:                [IFR]   [REL0]  [LAB]
                     21: 
                     22: #ifndef ONLYSMALL
                     23: %      PEFFECT|PRVALUE|P_SLT
                     24:        LPTX            ANYR    ANYR    *       TEMP
                     25:                TREG            LPTX
                     26:                1|MMX           *
                     27: %      PLVALUE|P_SLT
                     28:        LPTX            ANYL    ANYL    *       TEMP
                     29:                TREG            LPTX
                     30:                1|MMX           *
                     31:                        [ZINC]  [LO R]
                     32: #endif
                     33: 
                     34: %      PEFFECT|PRVALUE|PSREL|P_SLT
                     35:        WORD            ANYR    ANYR    *       TEMP
                     36:                TREG            WORD
                     37:                2|MMX           *
                     38: %      PLVALUE|P_SLT
                     39:        WORD            ANYL    ANYL    *       TEMP
                     40:                TREG            WORD
                     41:                2|MMX           *
                     42:                        [ZINC]  [R]
                     43:                        [ZINC]  [R]
                     44:                [IFR]   [REL0]  [LAB]
                     45: 
                     46: #ifndef ONLYSMALL
                     47: %      PEFFECT|PRVALUE|P_SLT
                     48:        LPTX            ANYR    ANYR    *       TEMP
                     49:                TREG            LPTX
                     50:                2|MMX           *
                     51: %      PLVALUE|P_SLT
                     52:        LPTX            ANYL    ANYL    *       TEMP
                     53:                TREG            LPTX
                     54:                2|MMX           *
                     55:                        [ZINC]  [LO R]
                     56:                        [ZINC]  [LO R]
                     57: #endif
                     58: 
                     59: %      PEFFECT|PRVALUE|PSREL|P_SLT
                     60:        WORD            ANYR    ANYR    *       TEMP
                     61:                TREG            WORD
                     62:                ADR|IMM         WORD
                     63: %      PLVALUE|P_SLT
                     64:        WORD            ANYL    ANYL    *       TEMP
                     65:                TREG            WORD
                     66:                ADR|IMM         WORD
                     67:                        [ZADD]  [R],[AR]
                     68:                [IFR]   [REL0]  [LAB]
                     69: 
                     70: #ifndef ONLYSMALL
                     71: %      PEFFECT|PRVALUE|P_SLT
                     72:        LPTX            ANYR    ANYR    *       TEMP
                     73:                TREG            LPTX
                     74:                ADR|IMM         WORD
                     75: %      PLVALUE|P_SLT
                     76:        LPTX            ANYL    ANYL    *       TEMP
                     77:                TREG            LPTX
                     78:                ADR|IMM         WORD
                     79:                        [ZADD]  [LO R],[AR]
                     80: #endif
                     81: 
                     82: /////////
                     83: /
                     84: / Index like contexts.
                     85: / The hard tree is an integer and the
                     86: / result is a pointer. There are a lot of
                     87: / cases here, mainly to make sure the
                     88: / correct segment base gets moved over to
                     89: / the result.
                     90: /
                     91: /////////
                     92: 
                     93: #ifndef ONLYSMALL
                     94: %      PEFFECT|PRVALUE
                     95:        LPTX            DXAX    AX      *       TEMP
                     96:                TREG            WORD
                     97:                ICN|MMX         LPTX
                     98:                        [ZADD]  [LO R],[AR]
                     99:                        [ZSUB]  [HI R],[HI R]
                    100: 
                    101: %      PLVALUE
                    102:        LPTX            ANYL    LOTEMP  AX      TEMP
                    103:                TREG            WORD
                    104:                ICN|MMX         LPTX
                    105:                        [ZADD]  [LO R],[AR]
                    106:                        [ZSUB]  [REGNO AX],[REGNO AX]
                    107:                        [ZMOV]  [HI R],[REGNO AX]
                    108: 
                    109: %      PEFFECT|PRVALUE
                    110:        LPTX            DXAX    AX      *       TEMP
                    111:                TREG            WORD
                    112:                LCN|MMX         LPTX
                    113:                        [ZADD]  [LO R],[LO AR]
                    114:                        [ZSUB]  [HI R],[HI R]
                    115: 
                    116: %      PLVALUE
                    117:        LPTX            ANYL    LOTEMP  AX      TEMP
                    118:                TREG            WORD
                    119:                LCN|MMX         LPTX
                    120:                        [ZADD]  [LO R],[LO AR]
                    121:                        [ZMOV]  [REGNO AX],[HI AR]
                    122:                        [ZMOV]  [HI R],[REGNO AX]
                    123: 
                    124: %      PEFFECT|PRVALUE
                    125:        LPTX            DXAX    AX      *       TEMP
                    126:                TREG            WORD
                    127:                ACS|MMX         LPTX
                    128:                        [ZADD]  [LO R],[AR]
                    129:                        [ZMOV]  [HI R],[REGNO CS]
                    130: 
                    131: %      PEFFECT|PRVALUE
                    132:        LPTX            DXAX    AX      *       TEMP
                    133:                TREG            WORD
                    134:                ADS|MMX         LPTX
                    135:                        [ZADD]  [LO R],[AR]
                    136:                        [ZMOV]  [HI R],[REGNO DS]
                    137: 
                    138: %      PLVALUE
                    139:        LPTX            ANYL    LOTEMP  *       TEMP
                    140:                TREG            WORD
                    141:                ACS|MMX         LPTX
                    142:                        [ZADD]  [LO R],[AR]
                    143:                        [ZPUSH] [REGNO CS]
                    144:                        [ZPOP]  [HI R]
                    145: 
                    146: %      PLVALUE
                    147:        LPTX            ANYL    LOTEMP  *       TEMP
                    148:                TREG            WORD
                    149:                ADS|MMX         LPTX
                    150:                        [ZADD]  [LO R],[AR]
                    151:                        [ZPUSH] [REGNO DS]
                    152:                        [ZPOP]  [HI R]
                    153: 
                    154: %      PEFFECT|PRVALUE
                    155:        LPTX            DXAX    AX      *       DXAX
                    156:                TREG            WORD
                    157:                REG|MMX         LPTX
                    158:                        [ZADD]  [LO R],[LO AR]
                    159:                        [ZMOV]  [HI R],[HI AR]
                    160: 
                    161: %      PLVALUE
                    162:        LPTX            ANYL    LOTEMP  *       TEMP
                    163:                TREG            WORD
                    164:                REG|MMX         LPTX
                    165:                        [ZADD]  [LO R],[LO AR]
                    166:                        [ZPUSH] [HI AR]
                    167:                        [ZPOP]  [HI R]
                    168: 
                    169: %      PEFFECT|PRVALUE
                    170:        LPTX            DXAX    AX      *       DXAX
                    171:                TREG            WORD
                    172:                ADR             LPTX
                    173: %      PLVALUE
                    174:        LPTX            ANYL    LOTEMP  *       TEMP
                    175:                TREG            WORD
                    176:                ADR             LPTX
                    177:                        [ZADD]  [LO R],[LO AR]
                    178:                        [ZMOV]  [HI R],[HI AR]
                    179: #endif
                    180: 
                    181: %      PEFFECT|PRVALUE|PGE|PLT|P_SLT
                    182:        LONG            DXAX    DXAX    *       DXAX
                    183:                TREG            LONG
                    184:                ADR|IMM         LONG
                    185:                        [ZADD]  [LO R],[LO AR]
                    186:                        [ZADC]  [HI R],[HI AR]
                    187:                [IFR]   [REL1]  [LAB]
                    188: 
                    189: #ifndef ONLYSMALL
                    190: %      PEFFECT|PRVALUE|P_SLT
                    191:        LPTX            ANYR    ANYR    *       TEMP
                    192:                TREG            LPTX
                    193:                ADR|IMM         LONG
                    194: %      PLVALUE|P_SLT
                    195:        LPTX            ANYL    ANYL    *       TEMP
                    196:                TREG            LPTX
                    197:                ADR|IMM         LONG
                    198:                        [ZADD]  [LO R],[LO AR]
                    199: 
                    200: %      PEFFECT|PRVALUE
                    201:        LPTX            DXAX    DXAX    *       DXAX
                    202:                TREG            LONG
                    203:                ADR|IMM         LPTX
                    204: %      PLVALUE
                    205:        LPTX            ESAX    DXAX    *       DXAX
                    206:                TREG            LONG
                    207:                ADR|IMM         LPTX
                    208:                        [ZADD]  [LO R],[LO AR]
                    209:                        [ZMOV]  [HI R],[HI AR]
                    210: #endif
                    211: 
                    212: /////////
                    213: /
                    214: / These special table entries make pushing offsts into structures and
                    215: / arrays more efficient. In particular, they improve the code for some of
                    216: / the standard I/O macros, when aimed at constant streams (like the stdin,
                    217: / stdout and stder streams).
                    218: /
                    219: /////////
                    220: 
                    221: #ifndef ONLYSMALL
                    222: %      PFNARG
                    223:        LPTX            AX      *       *       NONE
                    224:                ADR             LPTX
                    225:                IMM|MMX         WORD
                    226:                        [ZPUSH] [HI AL]
                    227:                        [ZMOV]  [R],[LO AL]
                    228:                        [ZADD]  [R],[AR]
                    229:                        [ZPUSH] [R]
                    230: 
                    231: %      PFNARG
                    232:        LPTX            AX      *       *       NONE
                    233:                IMM|MMX         WORD
                    234:                ADR             LPTX
                    235:                        [ZPUSH] [HI AR]
                    236:                        [ZMOV]  [R],[LO AR]
                    237:                        [ZADD]  [R],[AL]
                    238:                        [ZPUSH] [R]
                    239: #endif
                    240: 
                    241: ////////
                    242: /
                    243: / Floating point, using the numeric
                    244: / data coprocessor (8087).
                    245: /
                    246: ////////
                    247: 
                    248: #ifdef NDPDEF
                    249: %      PRVALUE|P_SLT
                    250:        FF32|FF64       FPAC    FPAC    *       FPAC
                    251:                TREG            FF64
                    252:                ADR             FS16
                    253:                        [ZFADDI] [AR]
                    254: 
                    255: %      PRVALUE|P_SLT
                    256:        FF32|FF64       FPAC    FPAC    *       FPAC
                    257:                TREG            FF64
                    258:                ADR             FS32
                    259:                        [ZFADDL] [AR]
                    260: 
                    261: %      PRVALUE|P_SLT
                    262:        FF32|FF64               FPAC    FPAC    *       FPAC
                    263:                TREG            FF64
                    264:                ADR             FF32
                    265:                        [ZFADDF] [AR]
                    266: 
                    267: %      PRVALUE|P_SLT
                    268:        FF32|FF64       FPAC    FPAC    *       FPAC
                    269:                TREG            FF64
                    270:                ADR             FF64
                    271:                        [ZFADDD] [AR]
                    272: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.