|
|
1.1 ! root 1: ////////// ! 2: / n1/i386/tables/amul.t ! 3: ////////// ! 4: ! 5: ///////// ! 6: / ! 7: / Assigned multiplication (*=). ! 8: / Immediate byte operands use the three-operand multiply immediate form. ! 9: / Otherwise, the multiply is done in EDX:EAX. ! 10: / [TL ZIMUL] is ZIMUL if signed, ZMUL if unsigned; cf. n1/i386/outmch.c. ! 11: / Signed multiply should use the i386 two-operand MUL but currently does not. ! 12: / ! 13: ///////// ! 14: ! 15: AMUL: ! 16: ! 17: ////////// ! 18: / Long. ! 19: ////////// ! 20: ! 21: / Long *= byte constant. ! 22: % PEFFECT|PVALUE ! 23: LONG ANYR * * TEMP ! 24: ADR|LV LONG ! 25: SBYTE|MMX LONG ! 26: [ZIMULI] [R],[AL],[AR] ! 27: [ZMOV] [AL],[R] ! 28: ! 29: / Long *= long. ! 30: % PEFFECT|PVALUE ! 31: LONG EDXEAX * * EAX ! 32: ADR|LV LONG ! 33: ADR LONG ! 34: [ZMOV] [REGNO EAX],[AL] ! 35: [TL ZIMUL] [AR] ! 36: [ZMOV] [AL],[REGNO EAX] ! 37: ! 38: ////////// ! 39: / Short. ! 40: / Sign- or zero-extend the result in value context. ! 41: ////////// ! 42: ! 43: / Short *= long. ! 44: % PEFFECT|PVALUE ! 45: LONG EDXEAX * * EAX ! 46: ADR|LV WORD|BYTE ! 47: ADR LONG ! 48: [TL ZMOVSX] [REGNO EAX],[AL] ! 49: [TL ZIMUL] [AR] ! 50: [TL ZMOV] [AL],[TL REGNO EAX] ! 51: [IFV] [TL ZMOVSX] [REGNO EAX],[TL REGNO EAX] ! 52: ! 53: ////////// ! 54: / Fields. ! 55: ////////// ! 56: ! 57: / Field. ! 58: % PEFFECT|PVALUE ! 59: LONG EDXEAX * * EAX ! 60: ADR|LV FLD ! 61: ADR LONG ! 62: [TL ZMOVZX] [REGNO EAX],[AL] / fetch ! 63: [ZAND] [REGNO EAX],[EMASK] / extract ! 64: [ZMUL] [AR] / multiply ! 65: [ZAND] [REGNO EAX],[EMASK] / mask ! 66: [TL ZAND] [AL],[TL CMASK] / clear ! 67: [TL ZOR] [AL],[TL REGNO EAX] / store ! 68: ! 69: ////////// ! 70: / Floating point. ! 71: ////////// ! 72: ! 73: / IEEE or DECVAX software floating point. ! 74: / Double *= double. ! 75: % PEFFECT|PVALUE|P_SRT|PDECVAX|PIEEE ! 76: FF64 EDXEAX * EDXEAX TEMP ! 77: ADR|LV FF64 ! 78: TREG FF64 ! 79: [ZPUSH] [HI AL] ! 80: [ZPUSH] [LO AL] ! 81: [ZCALL] [GID _dmul] ! 82: [ZADD] [REGNO ESP],[CONST 8] ! 83: [ZMOV] [HI AL],[HI R] ! 84: [ZMOV] [LO AL],[LO R] ! 85: ! 86: / Float *= double. ! 87: % PEFFECT|PVALUE|P_SRT|PDECVAX|PIEEE ! 88: FF64 EDXEAX * EDXEAX TEMP ! 89: ADR|LV FF32 ! 90: TREG FF64 ! 91: [ZPUSH] [AL] ! 92: [ZCALL] [GID _fmul] ! 93: [ZADD] [REGNO ESP],[CONST 4] ! 94: [ZCALL] [GID _fdcvt] ! 95: [ZMOV] [AL], [LO R] ! 96: [IFV] [ZCALL] [GID _dfcvt] ! 97: ! 98: / Hardware coprocessor (NDP) floating point. ! 99: % PEFFECT|PVALUE|PNDP ! 100: FLOAT FPAC * FPAC FPAC ! 101: ADR|LV FLOAT ! 102: TREG FF64 ! 103: [TL ZFMULD] [AL] ! 104: [IFV] [TL ZFSTD] [AL] ! 105: [IFE] [TL ZFSTPD] [AL] ! 106: ! 107: ////////// ! 108: / end of n1/i386/tables/amul.t ! 109: //////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.