|
|
1.1 root 1: //////////
2: / n1/i386/tables/alogic.t
3: //////////
4:
5: /////////
6: /
7: / Assigned AND (&=), assigned OR (|=), assigned XOR (^=).
8: / [OP0] is ZAND, ZOR or ZXOR.
9: / The [TL OP0] macro maps e.g. ZOR into ZORB or ZORW; see n1/i386/outmch.c.
10: /
11: /////////
12:
13: AAND:
14: AOR:
15: AXOR:
16:
17: //////////
18: / Longs.
19: //////////
20:
21: / Long register op= easy.
22: % PEFFECT|PVALUE|PREL
23: LONG ANYR * * TEMP
24: REG|MMX LONG
25: EASY|MMX LONG
26: / Integer op= immediate.
27: % PEFFECT|PVALUE|PREL
28: LONG ANYR * * TEMP
29: ADR|LV SINT|UINT
30: IMM|MMX LONG
31: [TL OP0] [AL],[TL AR]
32: [IFV] [TL ZMOVSX] [R],[AL]
33: [IFR] [REL0] [LAB]
34:
35: / Integer op= long.
36: % PEFFECT|PVALUE|PREL|P_SRT|PBYTE
37: LONG ANYR * ANYR TEMP
38: ADR|LV SINT|UINT
39: TREG LONG
40: [TL OP0] [AL],[TL R]
41: [IFV] [TL ZMOVSX] [R],[AL]
42: [IFR] [REL0] [LAB]
43:
44: /////////
45: /
46: / Fields.
47: / The modifier masks and shifts the right subtree appropriately.
48: / The right therefore may be simply OPed into the left.
49: / Distinguish between signed and unsigned fields.
50: / If the value is needed, unsigned result must be masked;
51: / the sign extend shifts make the mask unnecessary, so it gets optimized out.
52: /
53: /////////
54:
55: / Signed field op= immediate.
56: % PEFFECT|PVALUE
57: FS32 ANYR * * TEMP
58: ADR|LV FLD
59: IMM|MMX LONG
60: [TL OP0] [AL],[TL AR]
61: [IFV] [TL ZMOVZX] [R],[AL]
62:
63: / Signed field op= long.
64: % PEFFECT|PVALUE|P_SRT|PBYTE
65: FS32 ANYR * ANYR TEMP
66: ADR|LV FLD
67: TREG LONG
68: [TL OP0] [AL],[TL R]
69: [IFV] [TL ZMOVZX] [R],[AL]
70:
71: / Unsigned field op= immediate.
72: % PEFFECT|PVALUE
73: FU32 ANYR * * TEMP
74: ADR|LV FLD
75: IMM|MMX LONG
76: [TL OP0] [AL],[TL AR]
77: [IFV] [TL ZMOVZX] [R],[AL]
78: [IFV] [ZAND] [R],[EMASK]
79:
80: / Unsigned long field op= long.
81: % PEFFECT|PVALUE|P_SRT|PBYTE
82: FU32 ANYR * ANYR TEMP
83: ADR|LV FLD
84: TREG LONG
85: [TL OP0] [AL],[TL R]
86: [IFV] [TL ZMOVZX] [R],[AL]
87: [IFV] [ZAND] [R],[EMASK]
88:
89: //////////
90: / end of n1/i386/tables/alogic.t
91: //////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.