Assembler output of string parameters without and with const (modify content)
39 Zeilen
P$CONSTPARAMETERSTR_$$_BYVALUE$ANSISTRING:
.globl	P$CONSTPARAMETERSTR_$$_BYREFERENCE$ANSISTRING
P$CONSTPARAMETERSTR_$$_BYREFERENCE$ANSISTRING:
# Temps allocated between ebp-44 and ebp-4
# Temps allocated between ebp-44 and ebp-4
# [16] begin
# [24] begin
	pushl	%ebp
	pushl	%ebp
	movl	%esp,%ebp
	movl	%esp,%ebp
	leal	-44(%esp),%esp
	leal	-44(%esp),%esp
# Var V located at ebp-4, size=OS_32
	pushl	%ebx
	movl	%eax,-4(%ebp)
# Var V located in register ebx
	call	fpc_ansistr_incr_ref
# Var S located at ebp-4, size=OS_32
	movl	%eax,%ebx
# [27] end;
	movl	$0,-4(%ebp)
	movl	$1,%eax
	movl	$1,%eax
	leal	-40(%ebp),%edx
	leal	-40(%ebp),%edx
	leal	-16(%ebp),%ecx
	leal	-16(%ebp),%ecx
	call	fpc_pushexceptaddr
	call	fpc_pushexceptaddr
	call	fpc_setjmp
	call	fpc_setjmp
	pushl	%eax
	pushl	%eax
	testl	%eax,%eax
	testl	%eax,%eax
	jne	.Lj7
	jne	.Lj11
# [17] V := V + 'x';
# [25] S := V + 'x';
	pushl	$0
	pushl	$0
	movl	-4(%ebp),%edx
	movl	%ebx,%edx
	leal	-4(%ebp),%eax
	leal	-4(%ebp),%eax
	movl	$.Ld1,%ecx
	movl	$.Ld1,%ecx
	call	fpc_ansistr_concat
	call	fpc_ansistr_concat
# [18] DoIt(V);
# [26] DoIt(S);
	movl	-4(%ebp),%eax
	movl	-4(%ebp),%eax
	call	P$CONSTPARAMETERSTR_$$_DOIT$ANSISTRING
	call	P$CONSTPARAMETERSTR_$$_DOIT$ANSISTRING
.Lj7:
.Lj11:
	call	fpc_popaddrstack
	call	fpc_popaddrstack
# [19] end;
	leal	-4(%ebp),%eax
	leal	-4(%ebp),%eax
	call	fpc_ansistr_decr_ref
	call	fpc_ansistr_decr_ref
	popl	%eax
	popl	%eax
	testl	%eax,%eax
	testl	%eax,%eax
	je	.Lj8
	je	.Lj12
	call	fpc_reraise
	call	fpc_reraise
.Lj8:
.Lj12:
	popl	%ebx
	movl	%ebp,%esp
	movl	%ebp,%esp
	popl	%ebp
	popl	%ebp
	ret
	ret