--- stack.asm 2012-07-01 12:57:44.224441163 +0100
+++ new.asm 2012-07-01 12:58:00.245440067 +0100
@@ -9,19 +9,21 @@
.type main, @function
main:
.LFB3038:
- sub rsp, 640008
+ push rbx
.LCFI0:
+ mov edi, 640000
+ call operator new(unsigned long)
mov edx, 1
+ mov rbx, rax
xor eax, eax
.L2:
- lea rsi, [rsp]
- mov rcx, rax
- sal rcx, 5
- add rcx, rsi
lea rsi, [0+rax*4]
+ mov rcx, rax
add rax, 1
cvtsi2sd xmm0, rsi
+ sal rcx, 5
lea rsi, [rdx+1]
+ add rcx, rbx
movsd QWORD PTR [rcx], xmm0
cvtsi2sd xmm0, rdx
movsd QWORD PTR [rcx+8], xmm0
@@ -39,14 +41,13 @@
mov rdi, rax
call std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
xorpd xmm3, xmm3
- xor ecx, ecx
+ xor esi, esi
movapd xmm0, xmm3
.L3:
- lea rdx, [rsp]
- mov rax, rcx
+ mov rax, rsi
+ xor ecx, ecx
sal rax, 5
- add rax, rdx
- xor edx, edx
+ add rax, rbx
movsd xmm7, QWORD PTR [rax]
movsd xmm6, QWORD PTR [rax+8]
movsd xmm5, QWORD PTR [rax+16]
@@ -54,39 +55,38 @@
.p2align 4,,10
.p2align 3
.L4:
- mov rax, rdx
+ mov rdx, rcx
movapd xmm1, xmm7
movapd xmm2, xmm6
- lea rsi, [rsp]
- sal rax, 5
- add rdx, 1
- add rax, rsi
- cmp rdx, 20000
- subsd xmm1, QWORD PTR [rax]
- subsd xmm2, QWORD PTR [rax+8]
+ sal rdx, 5
+ add rcx, 1
+ add rdx, rbx
+ cmp rcx, 20000
+ subsd xmm1, QWORD PTR [rdx]
+ subsd xmm2, QWORD PTR [rdx+8]
mulsd xmm1, xmm1
mulsd xmm2, xmm2
addsd xmm1, xmm3
addsd xmm1, xmm2
movapd xmm2, xmm5
- subsd xmm2, QWORD PTR [rax+16]
+ subsd xmm2, QWORD PTR [rdx+16]
mulsd xmm2, xmm2
addsd xmm1, xmm2
movapd xmm2, xmm4
- subsd xmm2, QWORD PTR [rax+24]
+ subsd xmm2, QWORD PTR [rdx+24]
mulsd xmm2, xmm2
addsd xmm1, xmm2
addsd xmm0, xmm1
jne .L4
- add rcx, 1
- cmp rcx, 20000
+ add rsi, 1
+ cmp rsi, 20000
jne .L3
mov edi, OFFSET FLAT:std::cout
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)
mov rdi, rax
call std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
xor eax, eax
- add rsp, 640008
+ pop rbx
.LCFI1:
ret
.LFE3038:
@@ -141,7 +141,9 @@
.byte 0x4
.long .LCFI0-.LFB3038
.byte 0xe
- .uleb128 0x9c410
+ .uleb128 0x10
+ .byte 0x83
+ .uleb128 0x2
.byte 0x4
.long .LCFI1-.LCFI0
.byte 0xe
LS0tIHN0YWNrLmFzbQkyMDEyLTA3LTAxIDEyOjU3OjQ0LjIyNDQ0MTE2MyArMDEwMAorKysgbmV3LmFzbQkyMDEyLTA3LTAxIDEyOjU4OjAwLjI0NTQ0MDA2NyArMDEwMApAQCAtOSwxOSArOSwyMSBAQAogCS50eXBlCW1haW4sIEBmdW5jdGlvbgogbWFpbjoKIC5MRkIzMDM4OgotCXN1Yglyc3AsIDY0MDAwOAorCXB1c2gJcmJ4CiAuTENGSTA6CisJbW92CWVkaSwgNjQwMDAwCisJY2FsbAlvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykKIAltb3YJZWR4LCAxCisJbW92CXJieCwgcmF4CiAJeG9yCWVheCwgZWF4CiAuTDI6Ci0JbGVhCXJzaSwgW3JzcF0KLQltb3YJcmN4LCByYXgKLQlzYWwJcmN4LCA1Ci0JYWRkCXJjeCwgcnNpCiAJbGVhCXJzaSwgWzArcmF4KjRdCisJbW92CXJjeCwgcmF4CiAJYWRkCXJheCwgMQogCWN2dHNpMnNkCXhtbTAsIHJzaQorCXNhbAlyY3gsIDUKIAlsZWEJcnNpLCBbcmR4KzFdCisJYWRkCXJjeCwgcmJ4CiAJbW92c2QJUVdPUkQgUFRSIFtyY3hdLCB4bW0wCiAJY3Z0c2kyc2QJeG1tMCwgcmR4CiAJbW92c2QJUVdPUkQgUFRSIFtyY3grOF0sIHhtbTAKQEAgLTM5LDE0ICs0MSwxMyBAQAogCW1vdglyZGksIHJheAogCWNhbGwJc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiYgc3RkOjplbmRsPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+JikKIAl4b3JwZAl4bW0zLCB4bW0zCi0JeG9yCWVjeCwgZWN4CisJeG9yCWVzaSwgZXNpCiAJbW92YXBkCXhtbTAsIHhtbTMKIC5MMzoKLQlsZWEJcmR4LCBbcnNwXQotCW1vdglyYXgsIHJjeAorCW1vdglyYXgsIHJzaQorCXhvcgllY3gsIGVjeAogCXNhbAlyYXgsIDUKLQlhZGQJcmF4LCByZHgKLQl4b3IJZWR4LCBlZHgKKwlhZGQJcmF4LCByYngKIAltb3ZzZAl4bW03LCBRV09SRCBQVFIgW3JheF0KIAltb3ZzZAl4bW02LCBRV09SRCBQVFIgW3JheCs4XQogCW1vdnNkCXhtbTUsIFFXT1JEIFBUUiBbcmF4KzE2XQpAQCAtNTQsMzkgKzU1LDM4IEBACiAJLnAyYWxpZ24gNCwsMTAKIAkucDJhbGlnbiAzCiAuTDQ6Ci0JbW92CXJheCwgcmR4CisJbW92CXJkeCwgcmN4CiAJbW92YXBkCXhtbTEsIHhtbTcKIAltb3ZhcGQJeG1tMiwgeG1tNgotCWxlYQlyc2ksIFtyc3BdCi0Jc2FsCXJheCwgNQotCWFkZAlyZHgsIDEKLQlhZGQJcmF4LCByc2kKLQljbXAJcmR4LCAyMDAwMAotCXN1YnNkCXhtbTEsIFFXT1JEIFBUUiBbcmF4XQotCXN1YnNkCXhtbTIsIFFXT1JEIFBUUiBbcmF4KzhdCisJc2FsCXJkeCwgNQorCWFkZAlyY3gsIDEKKwlhZGQJcmR4LCByYngKKwljbXAJcmN4LCAyMDAwMAorCXN1YnNkCXhtbTEsIFFXT1JEIFBUUiBbcmR4XQorCXN1YnNkCXhtbTIsIFFXT1JEIFBUUiBbcmR4KzhdCiAJbXVsc2QJeG1tMSwgeG1tMQogCW11bHNkCXhtbTIsIHhtbTIKIAlhZGRzZAl4bW0xLCB4bW0zCiAJYWRkc2QJeG1tMSwgeG1tMgogCW1vdmFwZAl4bW0yLCB4bW01Ci0Jc3Vic2QJeG1tMiwgUVdPUkQgUFRSIFtyYXgrMTZdCisJc3Vic2QJeG1tMiwgUVdPUkQgUFRSIFtyZHgrMTZdCiAJbXVsc2QJeG1tMiwgeG1tMgogCWFkZHNkCXhtbTEsIHhtbTIKIAltb3ZhcGQJeG1tMiwgeG1tNAotCXN1YnNkCXhtbTIsIFFXT1JEIFBUUiBbcmF4KzI0XQorCXN1YnNkCXhtbTIsIFFXT1JEIFBUUiBbcmR4KzI0XQogCW11bHNkCXhtbTIsIHhtbTIKIAlhZGRzZAl4bW0xLCB4bW0yCiAJYWRkc2QJeG1tMCwgeG1tMQogCWpuZQkuTDQKLQlhZGQJcmN4LCAxCi0JY21wCXJjeCwgMjAwMDAKKwlhZGQJcnNpLCAxCisJY21wCXJzaSwgMjAwMDAKIAlqbmUJLkwzCiAJbW92CWVkaSwgT0ZGU0VUIEZMQVQ6c3RkOjpjb3V0CiAJY2FsbAlzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+JiBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfTV9pbnNlcnQ8ZG91YmxlPihkb3VibGUpCiAJbW92CXJkaSwgcmF4CiAJY2FsbAlzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+JiBzdGQ6OmVuZGw8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4mKQogCXhvcgllYXgsIGVheAotCWFkZAlyc3AsIDY0MDAwOAorCXBvcAlyYngKIC5MQ0ZJMToKIAlyZXQKIC5MRkUzMDM4OgpAQCAtMTQxLDcgKzE0MSw5IEBACiAJLmJ5dGUJMHg0CiAJLmxvbmcJLkxDRkkwLS5MRkIzMDM4CiAJLmJ5dGUJMHhlCi0JLnVsZWIxMjggMHg5YzQxMAorCS51bGViMTI4IDB4MTAKKwkuYnl0ZQkweDgzCisJLnVsZWIxMjggMHgyCiAJLmJ5dGUJMHg0CiAJLmxvbmcJLkxDRkkxLS5MQ0ZJMAogCS5ieXRlCTB4ZQo=