/
/

/ f35 -- assignment statement

.globl	sasgn
.globl	sassi

.globl	error
.globl	e2
.globl	lvalue
.globl	rvalue
.globl	code
.globl	convrt
.globl	geti
.globl	getsym
.globl	getlab
.globl	genop
.globl	newline
.globl	name

sasgn:
	jsr	r5,e2
	cmp	r0,$38.		/ =
	bne	9f
	mov	r2,-(sp)
	jsr	r5,e2
	cmp	r0,$40.		/ =|
	bne	8f
	tst	*(sp)
	bne	1f			/ too hard for simple as
	jsr	r5,rvalue
	mov	(sp)+,r2
	mov	2(r2),r2
	mov	r2,-(sp)
	mov	symtab(r2),r2
	jsr	r5,convrt
	mov	r2,r3
	bis	$7,r3
	mov	$"mv,r0
	jsr	r5,genop
	mov	(sp)+,r3
	jsr	r5,name
	rts	r5
1:
	mov	r2,r3
	mov	(sp)+,r2
	mov	r3,-(sp)
	jsr	r5,lvalue
	mov	(sp)+,r2
	mov	r3,-(sp)
	jsr	r5,rvalue
1:
	mov	(sp)+,r2
	jsr	r5,convrt
	mov	r2,r3
	bis	$7,r3		/ type 'g'
	mov	$"as,r0
	jsr	r5,genop
	jsr	r5,newline
	rts	r5

sassi:
	jsr	r5,getlab
		br 9f
	mov	r0,-(sp)
	cmpb	(r1)+,$'t
	bne	8f
	cmpb	(r1)+,$'o
	bne	8f
	jsr	r5,e2
	cmp	r0,$40.			/ =|
	bne	8f
	jsr	r5,lvalue
	mov	(sp)+,r0
	mov	r3,-(sp)
	jsr	r5,code
		<	lval; .%d\n\0>; .even
		r0
	mov	$int2con,r3
	br	1b
8:
	tst	(sp)+
9:
	jsr	r5,error; 39.
	rts	r5

