c91c16777f480bda75a0903931e8bf1655ef1dd6
[fw/sdcc] / device / lib / _strchr.lst
1                               1 ;--------------------------------------------------------
2                               2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3                               3 ; Version 2.1.9Ga Sun Jan 16 17:31:33 2000
4                               4 
5                               5 ;--------------------------------------------------------
6                               6         .module _strchr
7                               7 ;--------------------------------------------------------
8                               8 ; publics variables in this module
9                               9 ;--------------------------------------------------------
10                              10         .globl _strchr_PARM_2
11                              11         .globl _strchr
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                              22 ;--------------------------------------------------------
23                              23 ; overlayable items in internal ram 
24                              24 ;--------------------------------------------------------
25                              25         .area   OSEG    (OVR,DATA)
26                              26 ;--------------------------------------------------------
27                              27 ; indirectly addressable internal ram data
28                              28 ;--------------------------------------------------------
29                              29         .area   ISEG    (DATA)
30                              30 ;--------------------------------------------------------
31                              31 ; bit data
32                              32 ;--------------------------------------------------------
33                              33         .area   BSEG    (BIT)
34                              34 ;--------------------------------------------------------
35                              35 ; external ram data
36                              36 ;--------------------------------------------------------
37                              37         .area   XSEG    (XDATA)
38    0000                      38 _strchr_PARM_2:
39    0000                      39         .ds     0x0001
40    0001                      40 _strchr_string_1_1:
41    0001                      41         .ds     0x0003
42                              42 ;--------------------------------------------------------
43                              43 ; global & static initialisations
44                              44 ;--------------------------------------------------------
45                              45         .area GSINIT (CODE)
46                              46 ;--------------------------------------------------------
47                              47 ; code
48                              48 ;--------------------------------------------------------
49                              49         .area CSEG (CODE)
50                     0000     50         G$strchr$0$0 ==.
51                              51 ;       _strchr.c 27
52                              52 ;       -----------------------------------------
53                              53 ;        function strchr
54                              54 ;       -----------------------------------------
55    0000                      55 _strchr:
56                     0002     56         ar2 = 0x02
57                     0003     57         ar3 = 0x03
58                     0004     58         ar4 = 0x04
59                     0005     59         ar5 = 0x05
60                     0006     60         ar6 = 0x06
61                     0007     61         ar7 = 0x07
62                     0000     62         ar0 = 0x00
63                     0001     63         ar1 = 0x01
64                              64 ;       _strchr.c 0
65    0000 C0 F0                65         push    b
66    0002 C0 83                66         push    dph
67    0004 C0 82                67         push    dpl
68    0006 90s00r01             68         mov     dptr,#_strchr_string_1_1
69    0009 D0 E0                69         pop     acc
70    000B F0                   70         movx    @dptr,a
71    000C D0 E0                71         pop     acc
72    000E A3                   72         inc     dptr
73    000F F0                   73         movx    @dptr,a
74    0010 D0 E0                74         pop     acc
75    0012 A3                   75         inc     dptr
76    0013 F0                   76         movx    @dptr,a
77                              77 ;       _strchr.c 32
78    0014 90s00r00             78         mov     dptr,#_strchr_PARM_2
79    0017 E0                   79         movx    a,@dptr
80    0018 FA                   80         mov     r2,a
81    0019 90s00r01             81         mov     dptr,#_strchr_string_1_1
82    001C E0                   82         movx    a,@dptr
83    001D FB                   83         mov     r3,a
84    001E A3                   84         inc     dptr
85    001F E0                   85         movx    a,@dptr
86    0020 FC                   86         mov     r4,a
87    0021 A3                   87         inc     dptr
88    0022 E0                   88         movx    a,@dptr
89    0023 FD                   89         mov     r5,a
90    0024                      90 00102$:
91    0024 8B 82                91         mov     dpl,r3
92    0026 8C 83                92         mov     dph,r4
93    0028 8D F0                93         mov     b,r5
94    002A 12s00r00             94         lcall   __gptrget
95                              95 ; Peephole 105   removed redundant mov
96    002D FE                   96         mov  r6,a
97                              97 ; Peephole 110   removed ljmp by inverse jump logic
98    002E 60 18                98         jz  00104$
99    0030                      99 00113$:
100    0030 EE                  100         mov     a,r6
101    0031 B5 02 02            101         cjne    a,ar2,00114$
102                             102 ; Peephole 132   changed ljmp to sjmp
103    0034 80 12               103         sjmp 00104$
104    0036                     104 00114$:
105                             105 ;       _strchr.c 33
106    0036 0B                  106         inc     r3
107    0037 BB 00 01            107         cjne    r3,#0x00,00115$
108    003A 0C                  108         inc     r4
109    003B                     109 00115$:
110    003B 90s00r01            110         mov     dptr,#_strchr_string_1_1
111    003E EB                  111         mov     a,r3
112    003F F0                  112         movx    @dptr,a
113    0040 A3                  113         inc     dptr
114    0041 EC                  114         mov     a,r4
115    0042 F0                  115         movx    @dptr,a
116    0043 A3                  116         inc     dptr
117    0044 ED                  117         mov     a,r5
118    0045 F0                  118         movx    @dptr,a
119                             119 ; Peephole 132   changed ljmp to sjmp
120    0046 80 DC               120         sjmp 00102$
121    0048                     121 00104$:
122                             122 ;       _strchr.c 35
123    0048 90s00r01            123         mov     dptr,#_strchr_string_1_1
124    004B EB                  124         mov     a,r3
125    004C F0                  125         movx    @dptr,a
126    004D A3                  126         inc     dptr
127    004E EC                  127         mov     a,r4
128    004F F0                  128         movx    @dptr,a
129    0050 A3                  129         inc     dptr
130    0051 ED                  130         mov     a,r5
131    0052 F0                  131         movx    @dptr,a
132    0053 8B 82               132         mov     dpl,r3
133    0055 8C 83               133         mov     dph,r4
134    0057 8D F0               134         mov     b,r5
135    0059 12s00r00            135         lcall   __gptrget
136                             136 ; Peephole 105   removed redundant mov
137    005C FE                  137         mov  r6,a
138                             138 ; Peephole 132   changed ljmp to sjmp
139                             139 ; Peephole 199   optimized misc jump sequence
140    005D B5 02 08            140         cjne a,ar2,00106$
141                             141 ; Peephole 201   removed redundant sjmp
142    0060                     142 00116$:
143    0060                     143 00117$:
144                             144 ;       _strchr.c 36
145    0060 8B 82               145         mov     dpl,r3
146    0062 8C 83               146         mov     dph,r4
147    0064 8D F0               147         mov     b,r5
148                             148 ; Peephole 132   changed ljmp to sjmp
149    0066 80 06               149         sjmp 00107$
150    0068                     150 00106$:
151                             151 ;       _strchr.c 37
152                             152 ; Peephole 181   used 16 bit load of dptr
153    0068 90 00 00            153         mov  dptr,#0x0000
154    006B 75 F0 00            154         mov     b,#0x00
155    006E                     155 00107$:
156                     006E    156         C$_strchr.c$38$1$1 ==.
157                     006E    157         XG$strchr$0$0 ==.
158    006E 22                  158         ret
159                             159         .area   CSEG    (CODE)