( arpi_esp | 2023. 12. 10., v – 21:59 )

igy nez ki asm-ben:

https://pastebin.com/dzBvXR3j

az elso 2 'call phex' kozotti resz az erdekes, ott cseszodik el a mat tartalma.

xmm regiszterekkel mokol valamit, de ezt a gnu asm-et sose vagtam, meg az sse utasitasokat se, szoval passz.

	movl	$0, -168(%rbp)
	jmp	.L184
.L185:
	movl	-168(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$60, %rax
	movss	(%rax), %xmm0
	movss	%xmm0, -156(%rbp)
	movl	-168(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$56, %rax
	movss	(%rax), %xmm0
	movl	-168(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$60, %rax
	movss	%xmm0, (%rax)
	movl	-168(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$56, %rax
	movss	-156(%rbp), %xmm0
	movss	%xmm0, (%rax)
	addl	$1, -168(%rbp)
.L184:
	cmpl	$2, -168(%rbp)
	jle	.L185

 

ez mar tenyleg ilyen wtf... ha a jol mukodo verziot nezem asm-ben, a fenti resz (a 2 phex kozotti ciklus) pont ugyanigy nez ki. de megis mas lesz az eredmeny...

szerk: nem jo, -O4 nelkul futott a -S, -O4-el tok mas de ott kioptimalizalta meg a phex-et is belole ;)