1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:34 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
10 10 .globl _strstr_PARM_2
12 12 ;--------------------------------------------------------
13 13 ; special function registers
14 14 ;--------------------------------------------------------
15 15 ;--------------------------------------------------------
16 16 ; special function bits
17 17 ;--------------------------------------------------------
18 18 ;--------------------------------------------------------
19 19 ; internal ram data
20 20 ;--------------------------------------------------------
22 0000 22 _strstr_sloc0_1_0:
24 0003 24 _strstr_sloc1_1_0:
26 26 ;--------------------------------------------------------
27 27 ; overlayable items in internal ram
28 28 ;--------------------------------------------------------
29 29 .area OSEG (OVR,DATA)
30 30 ;--------------------------------------------------------
31 31 ; indirectly addressable internal ram data
32 32 ;--------------------------------------------------------
34 34 ;--------------------------------------------------------
36 36 ;--------------------------------------------------------
38 38 ;--------------------------------------------------------
39 39 ; external ram data
40 40 ;--------------------------------------------------------
42 0000 42 _strstr_PARM_2:
44 0003 44 _strstr_str1_1_1:
46 0006 46 _strstr_cp_1_1:
48 48 ;--------------------------------------------------------
49 49 ; global & static initialisations
50 50 ;--------------------------------------------------------
51 51 .area GSINIT (CODE)
52 52 ;--------------------------------------------------------
54 54 ;--------------------------------------------------------
56 0000 56 G$strstr$0$0 ==.
58 58 ; -----------------------------------------
60 60 ; -----------------------------------------
72 0002 C0 83 72 push dph
73 0004 C0 82 73 push dpl
74 0006 90s00r03 74 mov dptr,#_strstr_str1_1_1
76 000B F0 76 movx @dptr,a
79 000F F0 79 movx @dptr,a
82 0013 F0 82 movx @dptr,a
84 0014 90s00r03 84 mov dptr,#_strstr_str1_1_1
85 0017 E0 85 movx a,@dptr
88 001A E0 88 movx a,@dptr
91 001D E0 91 movx a,@dptr
93 001F 90s00r06 93 mov dptr,#_strstr_cp_1_1
95 0023 F0 95 movx @dptr,a
98 0026 F0 98 movx @dptr,a
101 0029 F0 101 movx @dptr,a
103 002A 90s00r00 103 mov dptr,#_strstr_PARM_2
104 002D E0 104 movx a,@dptr
105 002E F5*00 105 mov _strstr_sloc0_1_0,a
107 0031 E0 107 movx a,@dptr
108 0032 F5*01 108 mov (_strstr_sloc0_1_0 + 1),a
110 0035 E0 110 movx a,@dptr
111 0036 F5*02 111 mov (_strstr_sloc0_1_0 + 2),a
112 0038 85*00 82 112 mov dpl,_strstr_sloc0_1_0
113 003B 85*01 83 113 mov dph,(_strstr_sloc0_1_0 + 1)
114 003E 85*02 F0 114 mov b,(_strstr_sloc0_1_0 + 2)
115 0041 12s00r00 115 lcall __gptrget
116 116 ; Peephole 105 removed redundant mov
118 118 ; Peephole 109 removed ljmp by inverse jump logic
119 0045 70 09 119 jnz 00122$
122 0047 8A 82 122 mov dpl,r2
123 0049 8B 83 123 mov dph,r3
124 004B 8C F0 124 mov b,r4
125 004D 02s00rD2 125 ljmp 00113$
129 0050 8A 82 129 mov dpl,r2
130 0052 8B 83 130 mov dph,r3
131 0054 8C F0 131 mov b,r4
132 0056 12s00r00 132 lcall __gptrget
133 133 ; Peephole 105 removed redundant mov
135 005A 70 03 135 jnz 00124$
136 005C 02s00rCC 136 ljmp 00112$
139 005F 8A*03 139 mov _strstr_sloc1_1_0,r2
140 0061 8B*04 140 mov (_strstr_sloc1_1_0 + 1),r3
141 0063 8C*05 141 mov (_strstr_sloc1_1_0 + 2),r4
142 0065 AE*00 142 mov r6,_strstr_sloc0_1_0
143 0067 AF*01 143 mov r7,(_strstr_sloc0_1_0 + 1)
144 0069 AD*02 144 mov r5,(_strstr_sloc0_1_0 + 2)
146 006B 85*03 82 146 mov dpl,_strstr_sloc1_1_0
147 006E 85*04 83 147 mov dph,(_strstr_sloc1_1_0 + 1)
148 0071 85*05 F0 148 mov b,(_strstr_sloc1_1_0 + 2)
149 0074 12s00r00 149 lcall __gptrget
150 150 ; Peephole 105 removed redundant mov
152 152 ; Peephole 110 removed ljmp by inverse jump logic
153 0078 60 20 153 jz 00107$
155 007A 8E 82 155 mov dpl,r6
156 007C 8F 83 156 mov dph,r7
157 007E 8D F0 157 mov b,r5
158 0080 12s00r00 158 lcall __gptrget
159 159 ; Peephole 105 removed redundant mov
161 161 ; Peephole 110 removed ljmp by inverse jump logic
162 0084 60 14 162 jz 00107$
166 0088 99 166 subb a,r1
167 167 ; Peephole 109 removed ljmp by inverse jump logic
168 0089 70 0F 168 jnz 00107$
171 008B 05*03 171 inc _strstr_sloc1_1_0
173 008E B5*03 02 173 cjne a,_strstr_sloc1_1_0,00128$
174 0091 05*04 174 inc (_strstr_sloc1_1_0 + 1)
177 0094 BE 00 01 177 cjne r6,#0x00,00129$
180 180 ; Peephole 132 changed ljmp to sjmp
181 0098 80 D1 181 sjmp 00105$
184 009A 8E 82 184 mov dpl,r6
185 009C 8F 83 185 mov dph,r7
186 009E 8D F0 186 mov b,r5
187 00A0 12s00r00 187 lcall __gptrget
188 188 ; Peephole 105 removed redundant mov
190 190 ; Peephole 109 removed ljmp by inverse jump logic
191 00A4 70 13 191 jnz 00109$
194 00A6 90s00r06 194 mov dptr,#_strstr_cp_1_1
195 00A9 E0 195 movx a,@dptr
198 00AC E0 198 movx a,@dptr
201 00AF E0 201 movx a,@dptr
203 00B1 8E 82 203 mov dpl,r6
204 00B3 88 83 204 mov dph,r0
205 00B5 89 F0 205 mov b,r1
206 206 ; Peephole 132 changed ljmp to sjmp
207 00B7 80 19 207 sjmp 00113$
211 00BA BA 00 01 211 cjne r2,#0x00,00131$
214 00BE 90s00r06 214 mov dptr,#_strstr_cp_1_1
216 00C2 F0 216 movx @dptr,a
219 00C5 F0 219 movx @dptr,a
222 00C8 F0 222 movx @dptr,a
223 00C9 02s00r50 223 ljmp 00110$
226 226 ; Peephole 181 used 16 bit load of dptr
227 00CC 90 00 00 227 mov dptr,#0x0000
228 00CF 75 F0 00 228 mov b,#0x00
230 00D2 230 C$_strstr.c$54$1$1 ==.
231 00D2 231 XG$strstr$0$0 ==.
233 233 .area CSEG (CODE)