;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.6.1 #4330 (Oct 18 2006)
; This file generated Wed Oct 18 23:31:18 2006
;--------------------------------------------------------
	.module _strcspn
	.optsdcc -mhc08
	
	.area HOME (CODE)
	.area GSINIT0 (CODE)
	.area GSINIT (CODE)
	.area GSFINAL (CODE)
	.area CSEG (CODE)
	.area XINIT
	.area CONST   (CODE)
	.area DSEG
	.area OSEG    (OVR)
	.area BSEG
	.area XSEG
	.area XISEG
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _strcspn_PARM_2
	.globl _strcspn
;--------------------------------------------------------
;  ram data
;--------------------------------------------------------
	.area DSEG
_strcspn_count_1_1:
	.ds 2
_strcspn_ch_1_1:
	.ds 1
_strcspn_sloc0_1_0:
	.ds 1
;--------------------------------------------------------
; overlayable items in  ram 
;--------------------------------------------------------
	.area OSEG    (OVR)
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
	.area XISEG
;--------------------------------------------------------
; extended address mode data
;--------------------------------------------------------
	.area XSEG
_strcspn_PARM_2:
	.ds 2
_strcspn_string_1_1:
	.ds 2
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area HOME (CODE)
	.area GSINIT (CODE)
	.area GSFINAL (CODE)
	.area GSINIT (CODE)
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME (CODE)
	.area CSEG (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function 'strcspn'
;------------------------------------------------------------
;count                     Allocated with name '_strcspn_count_1_1'
;ch                        Allocated with name '_strcspn_ch_1_1'
;sloc0                     Allocated with name '_strcspn_sloc0_1_0'
;control                   Allocated with name '_strcspn_PARM_2'
;string                    Allocated with name '_strcspn_string_1_1'
;------------------------------------------------------------
;_strcspn.c:26: int strcspn ( 
;	-----------------------------------------
;	 function strcspn
;	-----------------------------------------
_strcspn:
;     genReceive
;     loadRegFromAop (a, REG(-,-,-,a), 0)
; transferRegReg(a,a)
;     storeRegToAop (a, EXT(_strcspn_string_1_1), 0), stacked=0, isaddr=0
	sta	(_strcspn_string_1_1 + 1)
;     loadRegFromAop (x, REG(-,-,-,x), 0)
; transferRegReg(x,x)
;     storeRegToAop (x, EXT(_strcspn_string_1_1), 1), stacked=0, isaddr=0
	stx	_strcspn_string_1_1
;_strcspn.c:34: while (ch = *string) {
;     genAssign
	clr	*_strcspn_count_1_1
	clr	*(_strcspn_count_1_1 + 1)
00104$:
;     genPointerGet
;     loadRegFromAop (hx, EXT(_strcspn_string_1_1), 0)
;     loadRegFromAop (a, EXT(_strcspn_string_1_1), 1)
	lda	_strcspn_string_1_1
;     loadRegFromAop (x, EXT(_strcspn_string_1_1), 0)
	ldx	(_strcspn_string_1_1 + 1)
; transferRegReg(a,h)
	psha
	pulh
	lda	,x
;     storeRegToAop (a, DIR(_strcspn_ch_1_1), 0), stacked=0, isaddr=0
	sta	*_strcspn_ch_1_1
;     genAssign
	mov	*_strcspn_ch_1_1,*_strcspn_sloc0_1_0
;     genIfx
	tst	*_strcspn_ch_1_1
;     genIfxJump
; Peephole 2d	- eliminated jmp
	beq	00106$
00113$:
;_strcspn.c:35: if (strchr(control,ch))
;     genAssign
;     loadRegFromAop (a, DIR(_strcspn_sloc0_1_0), 0)
	lda	*_strcspn_sloc0_1_0
;     storeRegToAop (a, EXT(_strchr_PARM_2), 0), stacked=0, isaddr=1
	sta	_strchr_PARM_2
;     genCall
;     loadRegFromAop (x, EXT(_strcspn_PARM_2), 1)
	ldx	_strcspn_PARM_2
;     storeRegToAop (x, REG(-,-,-,x), 0), stacked=0, isaddr=0
; transferRegReg(x,x)
;     loadRegFromAop (a, EXT(_strcspn_PARM_2), 0)
	lda	(_strcspn_PARM_2 + 1)
;     storeRegToAop (a, REG(-,-,-,a), 0), stacked=0, isaddr=0
; transferRegReg(a,a)
	jsr	_strchr
;     loadRegFromAop (a, REG(-,-,-,a), 0)
; transferRegReg(a,a)
;     storeRegToAop (a, REG(-,-,x,a), 0), stacked=0, isaddr=0
; transferRegReg(a,a)
;     loadRegFromAop (x, REG(-,-,-,x), 0)
; transferRegReg(x,x)
;     storeRegToAop (x, REG(-,-,x,a), 1), stacked=0, isaddr=0
; transferRegReg(x,x)
;     genIfx
	tsta
	bne	00114$
	tstx
00114$:
;     genIfxJump
; Peephole 2c	- eliminated jmp
	bne	00106$
00115$:
; forgot to free a
;_strcspn.c:38: count++ ;
; checking lic
; checking IS_ITEMP
; pset=0, pget=0
;     genPlus
; IS_AOP_HX = 0
;     loadRegFromAop (hx, DIR(_strcspn_count_1_1), 0)
	ldhx	*_strcspn_count_1_1
	aix	#1
;     storeRegToAop (hx, DIR(_strcspn_count_1_1), 0), stacked=0, isaddr=0
	sthx	*_strcspn_count_1_1
; Peephole 3	- shortened jmp to bra
	bra	00104$
00106$:
;_strcspn.c:41: return count ;
;     genRet
;     loadRegFromAop (x, DIR(_strcspn_count_1_1), 1)
	ldx	*_strcspn_count_1_1
;     storeRegToAop (x, REG(-,-,-,x), 0), stacked=0, isaddr=0
; transferRegReg(x,x)
;     loadRegFromAop (a, DIR(_strcspn_count_1_1), 0)
	lda	*(_strcspn_count_1_1 + 1)
;     storeRegToAop (a, REG(-,-,-,a), 0), stacked=0, isaddr=0
; transferRegReg(a,a)
00107$:
	rts
	.area CSEG (CODE)
	.area CONST   (CODE)
	.area XINIT
