Annotation of coherent/b/bin/c/n1/i386/tables/aft.t, revision 1.1

1.1     ! root        1: //////////
        !             2: / n1/i386/tables/aft.t
        !             3: //////////
        !             4: 
        !             5: /////////
        !             6: /
        !             7: / Postfix increment and decrement (@++, @--).
        !             8: / The PTX case, which does these operations on pointers,
        !             9: / must handle anything on the right hand side.
        !            10: / The other cases must only handle a 1.
        !            11: / OP0 is ADD or SUB, OP1 is INC or DEC; cf. n1/i386/table1.c/optab[].
        !            12: / For the TL OP1 implementation, cf. n1/i386/outmch.c/maptype().
        !            13: /
        !            14: /////////
        !            15: 
        !            16: INCAFT:
        !            17: DECAFT:
        !            18: 
        !            19: / Integer or pointer.
        !            20: / Increment integer or pointer by 1.
        !            21: %      PEFFECT|PVALUE
        !            22:        DWORD           ANYR    *       *       TEMP
        !            23:                ADR             DWORD|SHORT
        !            24:                1|MMX           *
        !            25:                [IFV]   [TL ZMOVSX]     [R],[AL]
        !            26:                        [TL OP1]        [AL]
        !            27: 
        !            28: / Increment pointer by constant.
        !            29: %      PEFFECT|PVALUE
        !            30:        DWORD           ANYR    *       *       TEMP
        !            31:                ADR             DWORD
        !            32:                IMM|MMX         LONG
        !            33:                [IFV]   [ZMOV]  [R],[AL]
        !            34:                        [OP0]   [AL],[AR]
        !            35: 
        !            36: //////////
        !            37: /
        !            38: / Fields.
        !            39: / My heart says there is a better way to do the field versions
        !            40: / of this operator with a clever sequence of XCHG and XOR;
        !            41: / however, I cannot think of it and neither can Trevor.
        !            42: /
        !            43: //////////
        !            44: 
        !            45: / Field.
        !            46: %      PEFFECT|PVALUE|PBYTE
        !            47:        LONG            ANYR    *       *       TEMP
        !            48:                ADR|LV          FLD
        !            49:                IMM|MMX         LONG
        !            50:                        [TL ZMOVZX]     [R],[AL]        / fetch
        !            51:                [IFV]   [ZAND]          [R],[EMASK]     / extract
        !            52:                [IFV]   [ZPUSH]         [R]             / save old value
        !            53:                        [OP0]           [R],[AR]        / bump
        !            54:                        [ZAND]          [R],[EMASK]     / mask
        !            55:                        [TL ZAND]       [AL],[TL CMASK] / clear
        !            56:                        [TL ZOR]        [AL],[TL R]     / store
        !            57:                [IFV]   [ZPOP]          [R]             / restore old value
        !            58: 
        !            59: //////////
        !            60: / end of n1/i386/tables/aft.t
        !            61: //////////

unix.superglobalmegacorp.com

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