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

1.1       root        1: /////////
                      2: /
                      3: / Relationals.
                      4: / Handles only test contexts, since other parts of the compiler transform
                      5: / all other contexts (like value) into the required '?' and ':' operations.
                      6: / Some special things handle bytes in a slightly better way than the default
                      7: / (saving the 'cbw') and other special things handle pointers.
                      8: / Pointers are compared for equality by comparing both segment and offset.
                      9: / Pointers are compared for inequality by comparing only the offset;
                     10: / the C code always assumes OPTIMIZE(3).
                     11: /
                     12: /////////
                     13: 
                     14: EQ:
                     15: NE:
                     16: GT:
                     17: GE:
                     18: LT:
                     19: LE:
                     20: ULT:
                     21: ULE:
                     22: UGT:
                     23: UGE:
                     24: 
                     25: /////////
                     26: /
                     27: / Simple stuff.
                     28: / Words and bytes.
                     29: / An immediate can be compared to any addressable thing.
                     30: / Special things for the byte compare to avoid the CBW.
                     31: /
                     32: /////////
                     33: 
                     34: %      PREL
                     35:        *               NONE    *       *       NONE
                     36:                ADR             BYTE
                     37:                BYTE|MMX        WORD
                     38:                        [ZCMPB] [AL],[AR]
                     39:                        [REL0]  [LAB]
                     40: 
                     41: %      PREL
                     42:        *               NONE    *       *       NONE
                     43:                ADR|MMX         WORD
                     44:                IMM|MMX         WORD
                     45: %      PREL
                     46:        *               NONE    *       *       NONE
                     47:                RREG|LREG|MMX   WORD
                     48:                ADR|IMM         WORD
                     49:                        [ZCMP]  [AL],[AR]
                     50:                        [REL0]  [LAB]
                     51: 
                     52: %      PREL|P_SLT
                     53:        *               ANYR    ANYR    *       NONE
                     54:                TREG            BYTE
                     55:                ADR|IMM         BYTE
                     56:                        [ZCMPB] [LO R],[AR]
                     57:                        [REL0]  [LAB]
                     58: 
                     59: %      PREL
                     60:        *               AX      *       *       NONE
                     61:                ADR             BYTE
                     62:                ADR|IMM         BYTE
                     63:                        [ZMOVB] [LO R],[AL]
                     64:                        [ZCMPB] [LO R],[AR]
                     65:                        [REL0]  [LAB]
                     66: 
                     67: %      PREL|P_SLT
                     68:        *               ANYR    ANYR    *       NONE
                     69:                TREG            WORD
                     70:                ADR|IMM         WORD
                     71:                        [ZCMP]  [R],[AR]
                     72:                        [REL0]  [LAB]
                     73: 
                     74: /////////
                     75: /
                     76: / Longs and pointers.
                     77: / Equality.
                     78: /
                     79: /////////
                     80: 
                     81: %      PEQ
                     82:        WORD            NONE    *       *       NONE
                     83:                ADR     LONG
                     84:                IMM|MMX LONG
                     85:                        [ZCMP]  [HI AL],[HI AR]
                     86:                        [ZJNE]  [LAB1]
                     87:                        [ZCMP]  [LO AL],[LO AR]
                     88:                        [ZJE]   [LAB]
                     89:                [DLAB1]:
                     90: 
                     91: %      PEQ
                     92:        *               NONE    ANYR    *       NONE
                     93:                TREG            LONG
                     94:                UHC|MMX         LONG
                     95:                        [ZOR]   [HI RL],[HI RL]
                     96:                        [ZJNE]  [LAB1]
                     97:                        [ZCMP]  [LO RL],[LO AR]
                     98:                        [ZJE]   [LAB]
                     99:                [DLAB1]:
                    100: 
                    101: %      PEQ
                    102:        *               NONE    ANYR    *       NONE
                    103:                TREG            LONG
                    104:                LHC|MMX         LONG
                    105:                        [ZCMP]  [HI RL],[HI AR]
                    106:                        [ZJNE]  [LAB1]
                    107:                        [ZOR]   [LO RL],[LO RL]
                    108:                        [ZJE]   [LAB]
                    109:                [DLAB1]:
                    110: 
                    111: %      PEQ
                    112:        *               NONE    ANYR    *       NONE
                    113:                TREG            LONG
                    114:                ADR|IMM         LONG
                    115: #ifndef ONLYSMALL
                    116: %      PEQ
                    117:        *               NONE    ANYR    *       NONE
                    118:                TREG            LPTX
                    119:                ADR             LPTX
                    120: #endif
                    121:                        [ZCMP]  [HI RL],[HI AR]
                    122:                        [ZJNE]  [LAB1]
                    123:                        [ZCMP]  [LO RL],[LO AR]
                    124:                        [ZJE]   [LAB]
                    125:                [DLAB1]:
                    126: 
                    127: #ifndef ONLYSMALL
                    128: %      PEQ
                    129:        *               NONE    ANYR    *       NONE
                    130:                TREG            LPTX
                    131:                ADR|IMM         WORD
                    132:                        [ZOR]   [HI RL],[HI RL]
                    133:                        [ZJNE]  [LAB1]
                    134:                        [ZCMP]  [LO RL],[AR]
                    135:                        [ZJE]   [LAB]
                    136:                [DLAB1]:
                    137: 
                    138: %      PEQ
                    139:        WORD            ANYR    ANYR    *       TEMP
                    140:                TREG            WORD
                    141:                ADR|IMM         LPTX
                    142:                        [ZMOV]  [R],[HI AR]
                    143:                        [ZOR]   [R],[R]
                    144:                        [ZJNE]  [LAB1]
                    145:                        [ZCMP]  [RL],[LO AR]
                    146:                        [ZJE]   [LAB]
                    147:                [DLAB1]:
                    148: #endif
                    149: 
                    150: /////////
                    151: /
                    152: / Inequality. Slightly different code for longs.
                    153: /
                    154: /////////
                    155: 
                    156: %      PNE
                    157:        *               NONE    *       *       NONE
                    158:                ADR             LONG
                    159:                IMM|MMX         LONG
                    160:                        [ZCMP]  [HI AL],[HI AR]
                    161:                        [ZJNE]  [LAB]
                    162:                        [ZCMP]  [LO AL],[LO AR]
                    163:                        [ZJNE]  [LAB]
                    164: 
                    165: %      PNE
                    166:        *               NONE    ANYR    *       NONE
                    167:                TREG            LONG
                    168:                UHC|MMX         LONG
                    169:                        [ZOR]   [HI RL],[HI RL]
                    170:                        [ZJNE]  [LAB]
                    171:                        [ZCMP]  [LO RL],[LO AR]
                    172:                        [ZJNE]  [LAB]
                    173: 
                    174: %      PNE
                    175:        *               NONE    ANYR    *       NONE
                    176:                TREG            LONG
                    177:                LHC|MMX         LONG
                    178:                        [ZCMP]  [HI RL],[HI AR]
                    179:                        [ZJNE]  [LAB]
                    180:                        [ZOR]   [LO RL],[LO RL]
                    181:                        [ZJNE]  [LAB]
                    182: 
                    183: %      PNE
                    184:        *               NONE    ANYR    *       NONE
                    185:                TREG            LONG
                    186:                ADR|IMM         LONG
                    187: #ifndef ONLYSMALL
                    188: %      PNE
                    189:        *               NONE    ANYR    *       NONE
                    190:                TREG            LPTX
                    191:                ADR             LPTX
                    192: #endif
                    193:                        [ZCMP]  [HI RL],[HI AR]
                    194:                        [ZJNE]  [LAB]
                    195:                        [ZCMP]  [LO RL],[LO AR]
                    196:                        [ZJNE]  [LAB]
                    197: 
                    198: #ifndef ONLYSMALL
                    199: %      PNE
                    200:        *               NONE    ANYR    *       NONE
                    201:                TREG            LPTX
                    202:                ADR|IMM         WORD
                    203:                        [ZOR]   [HI RL],[HI RL]
                    204:                        [ZJNE]  [LAB]
                    205:                        [ZCMP]  [LO RL],[AR]
                    206:                        [ZJNE]  [LAB]
                    207: 
                    208: %      PNE
                    209:        WORD            ANYR    ANYR    *       TEMP
                    210:                TREG            WORD
                    211:                ADR|IMM         LPTX
                    212:                        [ZMOV]  [R],[HI AR]
                    213:                        [ZOR]   [R],[R]
                    214:                        [ZJNE]  [LAB]
                    215:                        [ZCMP]  [RL],[LO AR]
                    216:                        [ZJNE]  [LAB]
                    217: #endif
                    218: 
                    219: /////////
                    220: /
                    221: / All the rest.
                    222: /
                    223: /////////
                    224: 
                    225: #ifndef ONLYSMALL
                    226: %      PNEREL
                    227:        *               NONE    *       *       NONE
                    228:                ADR             LPTX
                    229:                IMM|MMX         LPTX
                    230:                        [ZCMP]  [LO AL],[LO AR]
                    231:                        [REL0]  [LAB]
                    232: 
                    233: %      PNEREL
                    234:        *               NONE    ANYR    *       NONE
                    235:                TREG            LPTX
                    236:                ADR             LPTX
                    237:                        [ZCMP]  [LO RL],[LO AR]
                    238:                        [REL0]  [LAB]
                    239: 
                    240: %      PNEREL
                    241:        *               NONE    *       *       NONE
                    242:                ADR             LPTX
                    243:                IMM|MMX         WORD
                    244:                        [ZCMP]  [LO AL],[AR]
                    245:                        [REL0]  [LAB]
                    246: 
                    247: %      PNEREL
                    248:        *               NONE    ANYR    *       NONE
                    249:                TREG            LPTX
                    250:                ADR|IMM         WORD
                    251:                        [ZCMP]  [LO RL],[AR]
                    252:                        [REL0]  [LAB]
                    253: 
                    254: %      PNEREL
                    255:        *               NONE    *       *       NONE
                    256:                ADR             WORD
                    257:                IMM|MMX         LPTX
                    258:                        [ZCMP]  [AL],[LO AR]
                    259:                        [REL0]  [LAB]
                    260: 
                    261: %      PNEREL
                    262:        *               NONE    ANYR    *       NONE
                    263:                TREG            WORD
                    264:                ADR|IMM         LPTX
                    265:                        [ZCMP]  [RL],[LO AR]
                    266:                        [REL0]  [LAB]
                    267: #endif
                    268: 
                    269: %      PNEREL
                    270:        *               NONE    *       *       NONE
                    271:                ADR             LONG
                    272:                IMM|MMX         LONG
                    273:                        [ZCMP]  [HI AL],[HI AR]
                    274:                        [LREL1] [LAB1]
                    275:                        [LREL0] [LAB]
                    276:                        [ZCMP]  [LO AL],[LO AR]
                    277:                        [LREL2] [LAB]
                    278:                [DLAB1]:
                    279: 
                    280: %      PNEREL
                    281:        *               NONE    ANYR    *       NONE
                    282:                TREG            LONG
                    283:                UHC|MMX         LONG
                    284:                        [ZOR]   [HI RL],[HI RL]
                    285:                        [LREL1] [LAB1]
                    286:                        [LREL0] [LAB]
                    287:                        [ZCMP]  [LO RL],[LO AR]
                    288:                        [LREL2] [LAB]
                    289:                [DLAB1]:
                    290: 
                    291: %      PNEREL
                    292:        *               NONE    ANYR    *       NONE
                    293:                TREG            LONG
                    294:                ADR|IMM         LONG
                    295:                        [ZCMP]  [HI RL],[HI AR]
                    296:                        [LREL1] [LAB1]
                    297:                        [LREL0] [LAB]
                    298:                        [ZCMP]  [LO RL],[LO AR]
                    299:                        [LREL2] [LAB]
                    300:                [DLAB1]:
                    301: 
                    302: ////////
                    303: /
                    304: / Floating point, using the numeric data coprocessor (8087).
                    305: /
                    306: ////////
                    307: 
                    308: #ifdef NDPDEF
                    309: %      PREL
                    310:        *               *       FPAC    *       NONE
                    311:                TREG            FF64
                    312:                ADR             FS16
                    313:                        [ZFCOMPI] [AR]
                    314:                        [CALL] [GID cfcc]
                    315:                        [REL0] [LAB]
                    316: 
                    317: %      PREL|P_SLT
                    318:        *               *       FPAC    *       NONE
                    319:                TREG            FF64
                    320:                ADR             FS32
                    321:                        [ZFCOMPL] [AR]
                    322:                        [CALL] [GID cfcc]
                    323:                        [REL0] [LAB]
                    324: 
                    325: %      PREL|P_SLT
                    326:        *               *       FPAC    *       NONE
                    327:                TREG            FF64
                    328:                ADR             FF32
                    329:                        [ZFCOMPF] [AR]
                    330:                        [CALL] [GID cfcc]
                    331:                        [REL0] [LAB]
                    332: 
                    333: %      PREL|P_SLT
                    334:        *               *       FPAC    *       NONE
                    335:                TREG            FF64
                    336:                ADR             FF64
                    337:                        [ZFCOMPD] [AR]
                    338:                        [CALL] [GID cfcc]
                    339:                        [REL0] [LAB]
                    340: #endif

unix.superglobalmegacorp.com

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