Initial revision
[fw/sdcc] / device / lib / _strstr.lst
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
4                               4 
5                               5 ;--------------------------------------------------------
6                               6         .module _strstr
7                               7 ;--------------------------------------------------------
8                               8 ; publics variables in this module
9                               9 ;--------------------------------------------------------
10                              10         .globl _strstr_PARM_2
11                              11         .globl _strstr
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 ;--------------------------------------------------------
21                              21         .area   DSEG    (DATA)
22    0000                      22 _strstr_sloc0_1_0:
23    0000                      23         .ds     0x0003
24    0003                      24 _strstr_sloc1_1_0:
25    0003                      25         .ds     0x0003
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 ;--------------------------------------------------------
33                              33         .area   ISEG    (DATA)
34                              34 ;--------------------------------------------------------
35                              35 ; bit data
36                              36 ;--------------------------------------------------------
37                              37         .area   BSEG    (BIT)
38                              38 ;--------------------------------------------------------
39                              39 ; external ram data
40                              40 ;--------------------------------------------------------
41                              41         .area   XSEG    (XDATA)
42    0000                      42 _strstr_PARM_2:
43    0000                      43         .ds     0x0003
44    0003                      44 _strstr_str1_1_1:
45    0003                      45         .ds     0x0003
46    0006                      46 _strstr_cp_1_1:
47    0006                      47         .ds     0x0003
48                              48 ;--------------------------------------------------------
49                              49 ; global & static initialisations
50                              50 ;--------------------------------------------------------
51                              51         .area GSINIT (CODE)
52                              52 ;--------------------------------------------------------
53                              53 ; code
54                              54 ;--------------------------------------------------------
55                              55         .area CSEG (CODE)
56                     0000     56         G$strstr$0$0 ==.
57                              57 ;       _strstr.c 27
58                              58 ;       -----------------------------------------
59                              59 ;        function strstr
60                              60 ;       -----------------------------------------
61    0000                      61 _strstr:
62                     0002     62         ar2 = 0x02
63                     0003     63         ar3 = 0x03
64                     0004     64         ar4 = 0x04
65                     0005     65         ar5 = 0x05
66                     0006     66         ar6 = 0x06
67                     0007     67         ar7 = 0x07
68                     0000     68         ar0 = 0x00
69                     0001     69         ar1 = 0x01
70                              70 ;       _strstr.c 0
71    0000 C0 F0                71         push    b
72    0002 C0 83                72         push    dph
73    0004 C0 82                73         push    dpl
74    0006 90s00r03             74         mov     dptr,#_strstr_str1_1_1
75    0009 D0 E0                75         pop     acc
76    000B F0                   76         movx    @dptr,a
77    000C D0 E0                77         pop     acc
78    000E A3                   78         inc     dptr
79    000F F0                   79         movx    @dptr,a
80    0010 D0 E0                80         pop     acc
81    0012 A3                   81         inc     dptr
82    0013 F0                   82         movx    @dptr,a
83                              83 ;       _strstr.c 32
84    0014 90s00r03             84         mov     dptr,#_strstr_str1_1_1
85    0017 E0                   85         movx    a,@dptr
86    0018 FA                   86         mov     r2,a
87    0019 A3                   87         inc     dptr
88    001A E0                   88         movx    a,@dptr
89    001B FB                   89         mov     r3,a
90    001C A3                   90         inc     dptr
91    001D E0                   91         movx    a,@dptr
92    001E FC                   92         mov     r4,a
93    001F 90s00r06             93         mov     dptr,#_strstr_cp_1_1
94    0022 EA                   94         mov     a,r2
95    0023 F0                   95         movx    @dptr,a
96    0024 A3                   96         inc     dptr
97    0025 EB                   97         mov     a,r3
98    0026 F0                   98         movx    @dptr,a
99    0027 A3                   99         inc     dptr
100    0028 EC                  100         mov     a,r4
101    0029 F0                  101         movx    @dptr,a
102                             102 ;       _strstr.c 36
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
106    0030 A3                  106         inc     dptr
107    0031 E0                  107         movx    a,@dptr
108    0032 F5*01               108         mov     (_strstr_sloc0_1_0 + 1),a
109    0034 A3                  109         inc     dptr
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
117    0044 F8                  117         mov  r0,a
118                             118 ; Peephole 109   removed ljmp by inverse jump logic
119    0045 70 09               119         jnz  00122$
120    0047                     120 00123$:
121                             121 ;       _strstr.c 37
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$
126                             126 ;       _strstr.c 39
127    0050                     127 00122$:
128    0050                     128 00110$:
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
134    0059 F8                  134         mov  r0,a
135    005A 70 03               135         jnz     00124$
136    005C 02s00rCC            136         ljmp    00112$
137    005F                     137 00124$:
138                             138 ;       _strstr.c 44
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)
145    006B                     145 00105$:
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
151    0077 F8                  151         mov  r0,a
152                             152 ; Peephole 110   removed ljmp by inverse jump logic
153    0078 60 20               153         jz  00107$
154    007A                     154 00125$:
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
160    0083 F9                  160         mov  r1,a
161                             161 ; Peephole 110   removed ljmp by inverse jump logic
162    0084 60 14               162         jz  00107$
163    0086                     163 00126$:
164    0086 C3                  164         clr     c
165    0087 E8                  165         mov     a,r0
166    0088 99                  166         subb    a,r1
167                             167 ; Peephole 109   removed ljmp by inverse jump logic
168    0089 70 0F               168         jnz  00107$
169    008B                     169 00127$:
170                             170 ;       _strstr.c 45
171    008B 05*03               171         inc     _strstr_sloc1_1_0
172    008D E4                  172         clr     a
173    008E B5*03 02            173         cjne    a,_strstr_sloc1_1_0,00128$
174    0091 05*04               174         inc     (_strstr_sloc1_1_0 + 1)
175    0093                     175 00128$:
176    0093 0E                  176         inc     r6
177    0094 BE 00 01            177         cjne    r6,#0x00,00129$
178    0097 0F                  178         inc     r7
179    0098                     179 00129$:
180                             180 ; Peephole 132   changed ljmp to sjmp
181    0098 80 D1               181         sjmp 00105$
182    009A                     182 00107$:
183                             183 ;       _strstr.c 47
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
189    00A3 FE                  189         mov  r6,a
190                             190 ; Peephole 109   removed ljmp by inverse jump logic
191    00A4 70 13               191         jnz  00109$
192    00A6                     192 00130$:
193                             193 ;       _strstr.c 48
194    00A6 90s00r06            194         mov     dptr,#_strstr_cp_1_1
195    00A9 E0                  195         movx    a,@dptr
196    00AA FE                  196         mov     r6,a
197    00AB A3                  197         inc     dptr
198    00AC E0                  198         movx    a,@dptr
199    00AD F8                  199         mov     r0,a
200    00AE A3                  200         inc     dptr
201    00AF E0                  201         movx    a,@dptr
202    00B0 F9                  202         mov     r1,a
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$
208    00B9                     208 00109$:
209                             209 ;       _strstr.c 50
210    00B9 0A                  210         inc     r2
211    00BA BA 00 01            211         cjne    r2,#0x00,00131$
212    00BD 0B                  212         inc     r3
213    00BE                     213 00131$:
214    00BE 90s00r06            214         mov     dptr,#_strstr_cp_1_1
215    00C1 EA                  215         mov     a,r2
216    00C2 F0                  216         movx    @dptr,a
217    00C3 A3                  217         inc     dptr
218    00C4 EB                  218         mov     a,r3
219    00C5 F0                  219         movx    @dptr,a
220    00C6 A3                  220         inc     dptr
221    00C7 EC                  221         mov     a,r4
222    00C8 F0                  222         movx    @dptr,a
223    00C9 02s00r50            223         ljmp    00110$
224    00CC                     224 00112$:
225                             225 ;       _strstr.c 53
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
229    00D2                     229 00113$:
230                     00D2    230         C$_strstr.c$54$1$1 ==.
231                     00D2    231         XG$strstr$0$0 ==.
232    00D2 22                  232         ret
233                             233         .area   CSEG    (CODE)