|
|
1.1 root 1: //////////
2: / n1/i386/tables/arem.t
3: //////////
4:
5: /////////
6: /
7: / Assigned remainder (%=).
8: / Just like /=, except the result is in EDX instead of EAX.
9: / Use unsigned divide if either left or right operand is unsigned.
10: / No doubles, since the operation is not defined on doubles.
11: /
12: /////////
13:
14: AREM:
15:
16: / Unsigned integer by unsigned.
17: / The result word or byte does not have to be sign- or zero-extended
18: / in value context, the result is already correct.
19: % PEFFECT|PVALUE
20: LONG EDXEAX * * EDX
21: ADR|LV UINT
22: ADR LONG
23: / Signed long by unsigned.
24: % PEFFECT|PVALUE
25: LONG EDXEAX * * EDX
26: ADR|LV FS32
27: ADR FU32
28: [TL ZMOVSX] [REGNO EAX], [AL]
29: [ZSUB] [REGNO EDX], [REGNO EDX]
30: [ZDIV] [AR]
31: [TL ZMOV] [AL], [TL REGNO EDX]
32:
33: / Signed word or byte by unsigned.
34: / The result must be sign- or zero-extended in value context.
35: % PEFFECT|PVALUE
36: LONG EDXEAX * * EDX
37: ADR|LV FS16|FS8
38: ADR FU32
39: [TL ZMOVSX] [REGNO EAX], [AL]
40: [ZSUB] [REGNO EDX], [REGNO EDX]
41: [ZDIV] [AR]
42: [TL ZMOV] [AL], [TL REGNO EDX]
43: [IFV] [TL ZMOVSX] [REGNO EDX], [TL REGNO EDX]
44:
45: / Signed integer by signed.
46: / The result word or byte does not have to be sign- or zero-extended
47: / in value context, the result is already correct.
48: % PEFFECT|PVALUE
49: LONG EDXEAX * * EDX
50: ADR|LV SINT
51: ADR FS32
52: [TL ZMOVSX] [REGNO EAX], [AL]
53: [ZCDQ]
54: [ZIDIV] [AR]
55: [TL ZMOV] [AL], [TL REGNO EDX]
56:
57: //////////
58: / Fields.
59: / The right hand operand of the field is not preshifted
60: / like it is for add, subtract and the increment/decrement ops.
61: //////////
62:
63: / Field.
64: % PEFFECT|PVALUE
65: LONG EDXEAX * * EDX
66: ADR|LV FLD
67: ADR LONG
68: [TL ZMOVZX] [REGNO EAX],[AL] / fetch
69: [ZAND] [REGNO EAX],[EMASK] / extract
70: [ZSUB] [REGNO EDX],[REGNO EDX] / widen
71: [ZDIV] [AR] / divide
72: [ZAND] [REGNO EAX],[EMASK] / mask
73: [TL ZAND] [AL],[TL CMASK] / clear
74: [TL ZOR] [AL],[TL REGNO EDX] / store
75:
76: //////////
77: / end of n1/i386/tables/arem.t
78: //////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.