|
|
1.1 root 1: //////////
2: / n1/i386/tables/relop.t
3: //////////
4:
5: /////////
6: /
7: / Relations (== != > >= < <=).
8: / Handles only test contexts.
9: / The compiler transforms all other contexts (like value) into "?:" operations.
10: /
11: /////////
12:
13: EQ:
14: NE:
15: GT:
16: GE:
17: LT:
18: LE:
19: ULT:
20: ULE:
21: UGT:
22: UGE:
23:
24: /////////
25: /
26: / Simple stuff.
27: / Longs, words and bytes.
28: / An immediate can be compared to any addressible thing.
29: /
30: /////////
31:
32: / Dword register :: immediate.
33: % PREL
34: * NONE * * NONE
35: REG|MMX DWORD
36: ADR|IMM DWORD
37: [ZCMP] [AL],[AR]
38: [REL0] [LAB]
39:
40: / Dword :: immediate.
41: % PREL|P_SLT
42: * ANYR ANYR * NONE
43: TREG DWORD
44: IMM|MMX DWORD
45: [ZCMP] [RL],[AR]
46: [REL0] [LAB]
47:
48: / Signed word :: word constant.
49: % PREL
50: * NONE * * NONE
51: ADR FS16
52: SWORD|MMX LONG
53: / Signed byte :: byte constant.
54: % PREL
55: * NONE * * NONE
56: ADR FS8
57: SBYTE|MMX LONG
58: / Unsigned word :: word constant.
59: % PREL
60: * NONE * * NONE
61: ADR FU16
62: UWORD|MMX LONG
63: / Unsigned byte :: byte constant.
64: % PREL
65: * NONE * * NONE
66: ADR FU8
67: UBYTE|MMX LONG
68: [TL ZCMP] [AL],[AR]
69: [REL0] [LAB]
70:
71: / Dword :: dword.
72: % PREL|P_SLT
73: * ANYR ANYR * NONE
74: TREG DWORD
75: ADR|IMM DWORD
76: / Word :: word.
77: % PREL|P_SLT
78: * ANYR ANYR * NONE
79: TREG WORD
80: ADR|IMM WORD
81: / Byte :: byte.
82: % PREL|P_SLT|PBYTE
83: * ANYR ANYR * NONE
84: TREG BYTE
85: ADR|IMM BYTE
86: [TL ZCMP] [TL R],[AR]
87: [REL0] [LAB]
88:
89: //////////
90: / Floating point.
91: //////////
92:
93: / DECVAX or IEEE software floating point.
94: / Double :: double.
95: / _dcmp(d) pops its argument before returning, so it need not be done here.
96: % PREL|PDECVAX|PIEEE
97: * EDXEAX EDXEAX * NONE
98: TREG FF64
99: ADR|IMM FF64
100: [ZPUSH] [HI AR]
101: [ZPUSH] [LO AR]
102: [ZCALL] [GID _dcmp]
103: [REL0] [LAB]
104:
105: / Hardware coprocessor (NDP) floating point.
106: % PREL|P_SLT|PNDP
107: * * FPAC * NONE
108: TREG FF64
109: ADR NDPARG
110: [TR ZFCOMPD] [AR]
111: [ZCALL] [GID _cfcc]
112: [REL0] [LAB]
113:
114: //////////
115: / end of n1/i386/tables/relop.t
116: //////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.