Line | |
---|
1 | .sect .text; .sect .rom; .sect .data; .sect .bss
|
---|
2 | .extern .b64_sft
|
---|
3 | .sect .text
|
---|
4 | .b64_sft:
|
---|
5 | push ebp
|
---|
6 | mov ebp,esp
|
---|
7 | push esi
|
---|
8 | push edi
|
---|
9 | mov esi,8(ebp)
|
---|
10 | mov edi,12(ebp)
|
---|
11 | ! kill cc
|
---|
12 | test edi,edi
|
---|
13 | jle I1_4
|
---|
14 | cmp edi,63
|
---|
15 | jle I1_7
|
---|
16 | mov 4(esi),0
|
---|
17 | mov (esi),0
|
---|
18 | jmp I1_1
|
---|
19 | I1_7:
|
---|
20 | cmp edi,32
|
---|
21 | jl I1_10
|
---|
22 | mov edx,(esi)
|
---|
23 | mov 4(esi),edx
|
---|
24 | mov (esi),0
|
---|
25 | sub edi,32
|
---|
26 | I1_10:
|
---|
27 | ! kill cc
|
---|
28 | test edi,edi
|
---|
29 | jle I1_1
|
---|
30 | mov ecx,edi
|
---|
31 | mov edx,4(esi)
|
---|
32 | shr edx,cl
|
---|
33 | mov 4(esi),edx
|
---|
34 | cmp (esi),0
|
---|
35 | je I1_1
|
---|
36 | mov edx,32
|
---|
37 | sub edx,edi
|
---|
38 | mov ecx,edx
|
---|
39 | mov edx,(esi)
|
---|
40 | sal edx,cl
|
---|
41 | or 4(esi),edx
|
---|
42 | mov ecx,edi
|
---|
43 | mov edx,(esi)
|
---|
44 | shr edx,cl
|
---|
45 | mov (esi),edx
|
---|
46 | jmp I1_1
|
---|
47 | I1_4:
|
---|
48 | neg edi
|
---|
49 | ! kill cc
|
---|
50 | test edi,edi
|
---|
51 | jle I1_1
|
---|
52 | cmp edi,63
|
---|
53 | jle I1_22
|
---|
54 | mov 4(esi),0
|
---|
55 | mov (esi),0
|
---|
56 | jmp I1_1
|
---|
57 | I1_22:
|
---|
58 | cmp edi,32
|
---|
59 | jl I1_25
|
---|
60 | mov edx,4(esi)
|
---|
61 | mov (esi),edx
|
---|
62 | mov 4(esi),0
|
---|
63 | sub edi,32
|
---|
64 | I1_25:
|
---|
65 | ! kill cc
|
---|
66 | test edi,edi
|
---|
67 | jle I1_1
|
---|
68 | mov ecx,edi
|
---|
69 | mov edx,(esi)
|
---|
70 | sal edx,cl
|
---|
71 | mov (esi),edx
|
---|
72 | cmp 4(esi),0
|
---|
73 | je I1_1
|
---|
74 | mov edx,32
|
---|
75 | sub edx,edi
|
---|
76 | mov ecx,edx
|
---|
77 | mov edx,4(esi)
|
---|
78 | shr edx,cl
|
---|
79 | or (esi),edx
|
---|
80 | mov ecx,edi
|
---|
81 | mov edx,4(esi)
|
---|
82 | sal edx,cl
|
---|
83 | mov 4(esi),edx
|
---|
84 | I1_1:
|
---|
85 | pop edi
|
---|
86 | pop esi
|
---|
87 | leave
|
---|
88 | ret
|
---|
89 | .extern .b64_lsft
|
---|
90 | .b64_lsft:
|
---|
91 | push ebp
|
---|
92 | mov ebp,esp
|
---|
93 | push esi
|
---|
94 | mov esi,8(ebp)
|
---|
95 | sal (esi),1
|
---|
96 | test 4(esi),-2147483648
|
---|
97 | je I2_4
|
---|
98 | or (esi),1
|
---|
99 | I2_4:
|
---|
100 | mov edx,4(esi)
|
---|
101 | sal edx,1
|
---|
102 | mov 4(esi),edx
|
---|
103 | pop esi
|
---|
104 | leave
|
---|
105 | ret
|
---|
106 | .extern .b64_rsft
|
---|
107 | .b64_rsft:
|
---|
108 | push ebp
|
---|
109 | mov ebp,esp
|
---|
110 | push esi
|
---|
111 | mov esi,8(ebp)
|
---|
112 | mov edx,4(esi)
|
---|
113 | shr edx,1
|
---|
114 | mov 4(esi),edx
|
---|
115 | mov edx,(esi)
|
---|
116 | testb dl,1
|
---|
117 | je I3_4
|
---|
118 | or 4(esi),-2147483648
|
---|
119 | I3_4:
|
---|
120 | shr (esi),1
|
---|
121 | pop esi
|
---|
122 | leave
|
---|
123 | ret
|
---|
Note:
See
TracBrowser
for help on using the repository browser.