Код: Выделить всё
int main() {
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);
__float128 foo = a;
foo += b; foo += c;
printf("%f\n", (double)foo);
}
< /code>
mainКод: Выделить всё
400630: 48 83 ec 38 sub $0x38,%rsp
400634: bf 34 08 40 00 mov $0x400834,%edi
400639: 31 c0 xor %eax,%eax
40063b: 48 8d 4c 24 28 lea 0x28(%rsp),%rcx
400640: 48 8d 54 24 20 lea 0x20(%rsp),%rdx
400645: 48 8d 74 24 18 lea 0x18(%rsp),%rsi
40064a: e8 c1 ff ff ff callq 400610
40064f: f2 0f 10 44 24 18 movsd 0x18(%rsp),%xmm0
400655: e8 a6 ff ff ff callq 400600
40065a: 0f 29 04 24 movaps %xmm0,(%rsp)
40065e: f2 0f 10 44 24 20 movsd 0x20(%rsp),%xmm0
400664: e8 97 ff ff ff callq 400600
400669: 66 0f 6f 0c 24 movdqa (%rsp),%xmm1
40066e: e8 5d ff ff ff callq 4005d0
400673: 0f 29 04 24 movaps %xmm0,(%rsp)
400677: f2 0f 10 44 24 28 movsd 0x28(%rsp),%xmm0
40067d: e8 7e ff ff ff callq 400600
400682: 66 0f 6f 0c 24 movdqa (%rsp),%xmm1
400687: e8 44 ff ff ff callq 4005d0
40068c: e8 8f ff ff ff callq 400620
400691: bf 3a 08 40 00 mov $0x40083a,%edi
400696: b8 01 00 00 00 mov $0x1,%eax
40069b: e8 20 ff ff ff callq 4005c0
4006a0: 31 c0 xor %eax,%eax
4006a2: 48 83 c4 38 add $0x38,%rsp
4006a6: c3 retq
< /code>
When I look at the disassembly of __addtf3Подробнее здесь: https://stackoverflow.com/questions/266 ... -on-x86-64
Мобильная версия