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

1.1     ! root        1: //////////
        !             2: / n1/i386/tables/aadd.t
        !             3: //////////
        !             4: 
        !             5: /////////
        !             6: /
        !             7: / Assigned add (+=).
        !             8: / [OP0] is ZADD, [OP1] is ZINC.
        !             9: / Identical to asub.t except for the _dadd and _fadd calls,
        !            10: / I would like them to be one file again but don't see how to do it.
        !            11: /
        !            12: /////////
        !            13: 
        !            14: AADD:
        !            15: 
        !            16: / Integer or pointer op= 1.
        !            17: %      PEFFECT|PVALUE|PREL
        !            18:        DWORD           ANYR    *       *       TEMP
        !            19:                ADR|LV          DWORD|SHORT
        !            20:                1|MMX           *
        !            21:                        [TL OP1]        [AL]
        !            22:                [IFV]   [TL ZMOVSX]     [R],[AL]
        !            23:                [IFR]   [REL0]          [LAB]
        !            24: 
        !            25: / Integer or pointer op= immediate long.
        !            26: %      PEFFECT|PVALUE|PREL
        !            27:        DWORD           ANYR    *       *       TEMP
        !            28:                ADR|LV          DWORD|SHORT
        !            29:                IMM|MMX         LONG
        !            30: / Dword op= register long.
        !            31: %      PEFFECT|PVALUE|PREL
        !            32:        DWORD           ANYR    *       *       TEMP
        !            33:                ADR|LV          DWORD
        !            34:                REG|MMX         DWORD
        !            35:                        [TL OP0]        [AL],[AR]
        !            36:                [IFV]   [TL ZMOVSX]     [R],[AL]
        !            37:                [IFR]   [REL0]          [LAB]
        !            38: 
        !            39: / Integer or pointer op= long.
        !            40: %      PEFFECT|PVALUE|PREL|P_SRT|PBYTE
        !            41:        DWORD           ANYR    *       ANYR    TEMP
        !            42:                ADR|LV          DWORD|SHORT
        !            43:                TREG            DWORD
        !            44:                        [TL OP0]        [AL],[TL R]
        !            45:                [IFV]   [TL ZMOVSX]     [R],[AL]
        !            46:                [IFR]   [REL0]          [LAB]
        !            47: 
        !            48: /////////
        !            49: / Fields.
        !            50: / The left hand operand is an lvalue bit field.
        !            51: / The right operand has been preshifted to the appropriate place.
        !            52: / If the value is required, there is a shift on top of the 'op=' node.
        !            53: / Grab the machine object that holds the field,
        !            54: / add the right operand to it,
        !            55: / extract the result and replace the value in the machine object.
        !            56: /////////
        !            57: 
        !            58: %      PVALUE|PBYTE
        !            59:        LONG            ANYR    *       *       TEMP
        !            60:                ADR|LV          FLD
        !            61:                ADR|IMM         LONG
        !            62:                        [TL ZMOVZX]     [R],[AL]                / fetch
        !            63:                        [OP0]           [R],[AR]                / op
        !            64:                        [ZAND]          [R],[EMASK]             / extract
        !            65:                        [TL ZAND]       [AL],[TL CMASK]         / clear
        !            66:                        [TL ZOR]        [AL],[TL R]             / store
        !            67: 
        !            68: //////////
        !            69: / Floating point.
        !            70: //////////
        !            71: 
        !            72: / IEEE or DECVAX software floating point.
        !            73: / Double op= double.
        !            74: %      PEFFECT|PVALUE|P_SRT|PDECVAX|PIEEE
        !            75:        FF64            EDXEAX  *       EDXEAX  TEMP
        !            76:                ADR|LV          FF64
        !            77:                TREG            FF64
        !            78:                        [ZPUSH] [HI AL]
        !            79:                        [ZPUSH] [LO AL]
        !            80:                        [ZCALL] [GID _dadd]
        !            81:                        [ZADD]  [REGNO ESP],[CONST 8]
        !            82:                        [ZMOV]  [HI AL],[HI R]
        !            83:                        [ZMOV]  [LO AL],[LO R]
        !            84: 
        !            85: / Float op= double.
        !            86: %      PEFFECT|PVALUE|P_SRT|PDECVAX|PIEEE
        !            87:        FF64            EDXEAX  *       EDXEAX  TEMP
        !            88:                ADR|LV          FF32
        !            89:                TREG            FF64
        !            90:                        [ZPUSH] [AL]
        !            91:                        [ZCALL] [GID _fadd]
        !            92:                        [ZADD]  [REGNO ESP],[CONST 4]
        !            93:                        [ZCALL] [GID _fdcvt]
        !            94:                        [ZMOV]  [AL], [LO R]
        !            95:                [IFV]   [ZCALL] [GID _dfcvt]
        !            96: 
        !            97: / Hardware coprocessor (NDP) floating point.
        !            98: %      PEFFECT|PVALUE|PNDP
        !            99:        FLOAT           FPAC    *       FPAC    FPAC
        !           100:                ADR|LV          FLOAT
        !           101:                TREG            FF64
        !           102:                        [TL ZFADDD]     [AL]
        !           103:                [IFV]   [TL ZFSTD]      [AL]
        !           104:                [IFE]   [TL ZFSTPD]     [AL]
        !           105: 
        !           106: //////////
        !           107: / end of n1/i386/tables/aadd.t
        !           108: //////////

unix.superglobalmegacorp.com

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