Comparing sensitive data, confidential files or internal emails?

Most legal and privacy policies prohibit uploading sensitive data online. Diffchecker Desktop ensures your confidential information never leaves your computer. Work offline and compare documents securely.

Assembler output of string parameters without and with const (modify content)

Created Diff never expires
12 removals
39 lines
18 additions
43 lines
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