|
|
1.1 root 1: //////////
2: / n1/i386/tables/shift.t
3: //////////
4:
5: /////////
6: /
7: / Shift left (<<) and shift right (>>).
8: / Short shifts are done inline.
9: / Longer shifts use 'shift by CL'.
10: / [OP0] is ZSAL or ZSAR.
11: / [TL OP0] maps to a signed or unsigned shift of the appropriate length.
12: / The result of a shift by more than 32 bits is undefined behavior.
13: / This table simply generates a shift by the arg,
14: / and the i386 uses the shift counts modulo 32.
15: /
16: /////////
17:
18: SHL:
19: SHR:
20:
21: / Long op immediate.
22: % PEFFECT|PVALUE|PREL|P_SLT
23: DWORD ANYR ANYR * TEMP
24: TREG DWORD
25: SHCNT|MMX LONG
26: [TL OP0] [R],[AR]
27: [IFR] [REL0] [LAB]
28:
29: / Long op long.
30: / This uses node temp EAX rather than ANYR to avoid using ECX.
31: % PEFFECT|PVALUE|P_SLT
32: DWORD EAX EAX ECX EAX
33: TREG DWORD
34: ADR LONG
35: [ZMOV] [REGNO ECX],[AR]
36: [TL OP0] [R],[REGNO CL]
37:
38: //////////
39: / end of n1/i386/tables/shift.t
40: //////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.