mailing list of musl libc
 help / color / mirror / code / Atom feed
0fcf46dcd86e813afa31e8432d5c7b47a544d056 blob 839 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
.text
.global _start
_start:
	mov (%rsp),%rdi  /* move argc into 1st argument slot */
	lea 4(%rsp),%rsi /* move argv into 2nd argument slot */
	call __dynlink
	/* in case the dynlinker was called directly, it sets the "consumed"
	   argv values to -1. so we must loop over the array as long as -1
	   is in the top argv slot, decrement argc, and then set the stackpointer
	   to the new argc as well as argc's new value.
	   as the x32 abi has longs in the argv array, we cannot use push/pop.*/
	movl (%rsp),%edi /* copy argc into edi */
	xor %rdx,%rdx /* we use rdx as an offset to the current argv member */
1:	dec %edi
	addl $4, %edx
	movl (%rsp, %rdx), %esi
	cmp $-1,%esi
	jz 1b
	inc %edi
	subl $4, %edx
	lea (%rsp, %rdx), %rsp /* set rsp to new argv[-1] */
	movl %edi, (%rsp)      /* write new argc there */
	xor %edx,%edx
	jmp *%rax
debug log:

solving 0fcf46d ...
found 0fcf46d in https://git.vuxu.org/mirror/musl/

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).