Skip to content

Instantly share code, notes, and snippets.

@nokotan
Created February 28, 2022 06:53
Show Gist options
  • Save nokotan/39ee6bf5a052f59767ab9181c1fce096 to your computer and use it in GitHub Desktop.
Save nokotan/39ee6bf5a052f59767ab9181c1fce096 to your computer and use it in GitHub Desktop.
JavaScript vs WebAssembly of v8 jit'ed code
#include <math.h>
struct position {
double x;
double y;
double z;
};
int collisionDetection(struct position *positions,
double *radiuses,
unsigned char *res, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
struct position p = positions[i];
double r = radiuses[i];
unsigned char collision = 0;
for (int j = i+1; j < n; j++) {
struct position p2 = positions[j];
double r2 = radiuses[j];
double dx = p.x - p2.x;
double dy = p.y - p2.y;
double dz = p.z - p2.z;
double d = sqrt(dx*dx + dy*dy + dz*dz);
if (r > d) {
collision = 1;
count++;
break;
}
}
int index = (i / 8) | 0;
unsigned char pos = 7 - (i % 8);
if (collision == 0) {
res[index] &= ~(1 << pos);
} else {
res[index] |= (1 << pos);
}
}
return count;
}
function jsCollisionDetection(positions, radiuses, res, n) {
var count = 0;
for (var i = 0; i < n; i++) {
var p = positions[i];
var r = radiuses[i];
var collision = 0;
for (var j = i+1; j < n; j++) {
var p2 = positions[j];
var r2 = radiuses[j];
var dx = p.x - p2.x;
var dy = p.y - p2.y;
var dz = p.z - p2.z;
var d = Math.sqrt(dx*dx + dy*dy + dz*dz);
if (r > d) {
collision = 1;
count++;
break;
}
}
var index = (i / 8) | 0;
var pos = 7 - (i % 8);
if (collision === 0) {
res[index] &= ~(1 << pos);
} else {
res[index] |= (1 << pos);
}
}
return count;
}
----- Optimized code ---
optimization_id = 6
source_position = 29
kind = TURBOFAN
name = jsCollisionDetection
stack_slots = 20
compiler = turbofan
address = 0x7f7f126cc041
Instructions (size = 1636)
0x7f7f126cc0c0 0 488b59a0 REX.W movq rbx,[rcx-0x60]
0x7f7f126cc0c4 4 f6430f01 testb [rbx+0xf],0x1
0x7f7f126cc0c8 8 740d jz 0x7f7f126cc0d7 <+0x17>
0x7f7f126cc0ca a 49ba8048ac07ee550000 REX.W movq r10,0x55ee07ac4880 (CompileLazyDeoptimizedCode)
0x7f7f126cc0d4 14 41ffe2 jmp r10
0x7f7f126cc0d7 17 55 push rbp
0x7f7f126cc0d8 18 4889e5 REX.W movq rbp,rsp
0x7f7f126cc0db 1b 56 push rsi
0x7f7f126cc0dc 1c 57 push rdi
0x7f7f126cc0dd 1d 50 push rax
0x7f7f126cc0de 1e 4883ec78 REX.W subq rsp,0x78
0x7f7f126cc0e2 22 488975d8 REX.W movq [rbp-0x28],rsi
0x7f7f126cc0e6 26 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f7f126cc0ea 2a 0f8604040000 jna 0x7f7f126cc4f4 <+0x434>
0x7f7f126cc0f0 30 488b5530 REX.W movq rdx,[rbp+0x30]
0x7f7f126cc0f4 34 f6c201 testb rdx,0x1
0x7f7f126cc0f7 37 400f94c7 setzl dil
0x7f7f126cc0fb 3b 400fb6ff movzxbl rdi,rdi
0x7f7f126cc0ff 3f 4c8bc2 REX.W movq r8,rdx
0x7f7f126cc102 42 49c1f820 REX.W sarq r8, 32
0x7f7f126cc106 46 4889bd70ffffff REX.W movq [rbp-0x90],rdi
0x7f7f126cc10d 4d 33c0 xorl rax,rax
0x7f7f126cc10f 4f 4c894580 REX.W movq [rbp-0x80],r8
0x7f7f126cc113 53 4c8b7d20 REX.W movq r15,[rbp+0x20]
0x7f7f126cc117 57 4c8b6518 REX.W movq r12,[rbp+0x18]
0x7f7f126cc11b 5b 4c8bd8 REX.W movq r11,rax
0x7f7f126cc11e 5e 488945e0 REX.W movq [rbp-0x20],rax
0x7f7f126cc122 62 e920000000 jmp 0x7f7f126cc147 <+0x87>
0x7f7f126cc127 67 660f1f840000000000 nop
0x7f7f126cc130 70 660f1f840000000000 nop
0x7f7f126cc139 79 0f1f8000000000 nop
0x7f7f126cc140 80 4c894de0 REX.W movq [rbp-0x20],r9
0x7f7f126cc144 84 4c8bdf REX.W movq r11,rdi
0x7f7f126cc147 87 83bd70ffffff00 cmpl [rbp-0x90],0x0
0x7f7f126cc14e 8e 0f8486050000 jz 0x7f7f126cc6da <+0x61a>
0x7f7f126cc154 94 443b5d80 cmpl r11,[rbp-0x80]
0x7f7f126cc158 98 0f8d71030000 jge 0x7f7f126cc4cf <+0x40f>
0x7f7f126cc15e 9e 41f6c401 testb r12,0x1
0x7f7f126cc162 a2 0f8432050000 jz 0x7f7f126cc69a <+0x5da>
0x7f7f126cc168 a8 48bb01830c95e0260000 REX.W movq rbx,0x26e0950c8301 ;; object: 0x26e0950c8301 <Map(PACKED_ELEMENTS)>
0x7f7f126cc172 b2 49395c24ff REX.W cmpq [r12-0x1],rbx
0x7f7f126cc177 b7 0f8561050000 jnz 0x7f7f126cc6de <+0x61e>
0x7f7f126cc17d bd 498b5c240f REX.W movq rbx,[r12+0xf]
0x7f7f126cc182 c2 49634c241b REX.W movsxlq rcx,[r12+0x1b]
0x7f7f126cc187 c7 443bd9 cmpl r11,rcx
0x7f7f126cc18a ca 0f8352050000 jnc 0x7f7f126cc6e2 <+0x622>
0x7f7f126cc190 d0 4a8b74db0f REX.W movq rsi,[rbx+r11*8+0xf]
0x7f7f126cc195 d5 41f6c701 testb r15,0x1
0x7f7f126cc199 d9 0f8447050000 jz 0x7f7f126cc6e6 <+0x626>
0x7f7f126cc19f df 48bad1220c95e0260000 REX.W movq rdx,0x26e0950c22d1 ;; object: 0x26e0950c22d1 <Map(FLOAT64ELEMENTS)>
0x7f7f126cc1a9 e9 493957ff REX.W cmpq [r15-0x1],rdx
0x7f7f126cc1ad ed 0f8537050000 jnz 0x7f7f126cc6ea <+0x62a>
0x7f7f126cc1b3 f3 498b5737 REX.W movq rdx,[r15+0x37]
0x7f7f126cc1b7 f7 498b7f47 REX.W movq rdi,[r15+0x47]
0x7f7f126cc1bb fb 4d8b4f3f REX.W movq r9,[r15+0x3f]
0x7f7f126cc1bf ff 4c3bda REX.W cmpq r11,rdx
0x7f7f126cc1c2 102 0f8326050000 jnc 0x7f7f126cc6ee <+0x62e>
0x7f7f126cc1c8 108 4903f9 REX.W addq rdi,r9
0x7f7f126cc1cb 10b c4a17b1004df vmovsd xmm0,[rdi+r11*8]
0x7f7f126cc1d1 111 418bfb movl rdi,r11
0x7f7f126cc1d4 114 83c701 addl rdi,0x1
0x7f7f126cc1d7 117 0f8015050000 jo 0x7f7f126cc6f2 <+0x632>
0x7f7f126cc1dd 11d 488975c0 REX.W movq [rbp-0x40],rsi
0x7f7f126cc1e1 121 3b7d80 cmpl rdi,[rbp-0x80]
0x7f7f126cc1e4 124 0f8db6010000 jge 0x7f7f126cc3a0 <+0x2e0>
0x7f7f126cc1ea 12a 3bf9 cmpl rdi,rcx
0x7f7f126cc1ec 12c 0f8304050000 jnc 0x7f7f126cc6f6 <+0x636>
0x7f7f126cc1f2 132 4c8b4cfb0f REX.W movq r9,[rbx+rdi*8+0xf]
0x7f7f126cc1f7 137 483bfa REX.W cmpq rdi,rdx
0x7f7f126cc1fa 13a 0f83fa040000 jnc 0x7f7f126cc6fa <+0x63a>
0x7f7f126cc200 140 40f6c601 testb rsi,0x1
0x7f7f126cc204 144 0f84f4040000 jz 0x7f7f126cc6fe <+0x63e>
0x7f7f126cc20a 14a 49bc09a20f95e0260000 REX.W movq r12,0x26e0950fa209 ;; object: 0x26e0950fa209 <Map(HOLEY_ELEMENTS)>
0x7f7f126cc214 154 4c3966ff REX.W cmpq [rsi-0x1],r12
0x7f7f126cc218 158 0f85e4040000 jnz 0x7f7f126cc702 <+0x642>
0x7f7f126cc21e 15e 4c8b7e17 REX.W movq r15,[rsi+0x17]
0x7f7f126cc222 162 c4c17b104f07 vmovsd xmm1,[r15+0x7]
0x7f7f126cc228 168 41f6c101 testb r9,0x1
0x7f7f126cc22c 16c 0f84d4040000 jz 0x7f7f126cc706 <+0x646>
0x7f7f126cc232 172 4d3961ff REX.W cmpq [r9-0x1],r12
0x7f7f126cc236 176 0f85ce040000 jnz 0x7f7f126cc70a <+0x64a>
0x7f7f126cc23c 17c 4d8b7917 REX.W movq r15,[r9+0x17]
0x7f7f126cc240 180 4c8b761f REX.W movq r14,[rsi+0x1f]
0x7f7f126cc244 184 c4c17b105607 vmovsd xmm2,[r14+0x7]
0x7f7f126cc24a 18a 4d8b711f REX.W movq r14,[r9+0x1f]
0x7f7f126cc24e 18e 4c895dc8 REX.W movq [rbp-0x38],r11
0x7f7f126cc252 192 4c8b5e27 REX.W movq r11,[rsi+0x27]
0x7f7f126cc256 196 c4c17b105b07 vmovsd xmm3,[r11+0x7]
0x7f7f126cc25c 19c 4d8b4927 REX.W movq r9,[r9+0x27]
0x7f7f126cc260 1a0 49bbc13baba3471d0000 REX.W movq r11,0x1d47a3ab3bc1 ;; object: 0x1d47a3ab3bc1 <Object map = 0x26e0950cd8c9>
0x7f7f126cc26a 1aa 4d8b5b07 REX.W movq r11,[r11+0x7]
0x7f7f126cc26e 1ae 48be41ace1fc90370000 REX.W movq rsi,0x3790fce1ac41 ;; object: 0x3790fce1ac41 <JSFunction sqrt (sfi = 0x22219393cc69)>
0x7f7f126cc278 1b8 4939b3e7000000 REX.W cmpq [r11+0xe7],rsi
0x7f7f126cc27f 1bf 0f8551040000 jnz 0x7f7f126cc6d6 <+0x616>
0x7f7f126cc285 1c5 c4c16b5c6607 vsubsd xmm4,xmm2,[r14+0x7]
0x7f7f126cc28b 1cb c4c1735c6f07 vsubsd xmm5,xmm1,[r15+0x7]
0x7f7f126cc291 1d1 c4c1635c7107 vsubsd xmm6,xmm3,[r9+0x7]
0x7f7f126cc297 1d7 c5db59e4 vmulsd xmm4,xmm4,xmm4
0x7f7f126cc29b 1db c5d359ed vmulsd xmm5,xmm5,xmm5
0x7f7f126cc29f 1df c5cb59f6 vmulsd xmm6,xmm6,xmm6
0x7f7f126cc2a3 1e3 c5db58e5 vaddsd xmm4,xmm4,xmm5
0x7f7f126cc2a7 1e7 c5cb58e4 vaddsd xmm4,xmm6,xmm4
0x7f7f126cc2ab 1eb c5db51e4 vsqrtsd xmm4,xmm4,xmm4
0x7f7f126cc2af 1ef c5f92ec4 vucomisd xmm0,xmm4
0x7f7f126cc2b3 1f3 0f8705010000 ja 0x7f7f126cc3be <+0x2fe>
0x7f7f126cc2b9 1f9 448bcf movl r9,rdi
0x7f7f126cc2bc 1fc 4183c101 addl r9,0x1
0x7f7f126cc2c0 200 0f8048040000 jo 0x7f7f126cc70e <+0x64e>
0x7f7f126cc2c6 206 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f7f126cc2ca 20a 0f8733000000 ja 0x7f7f126cc303 <+0x243>
0x7f7f126cc2d0 210 e955020000 jmp 0x7f7f126cc52a <+0x46a>
0x7f7f126cc2d5 215 660f1f840000000000 nop
0x7f7f126cc2de 21e 660f1f840000000000 nop
0x7f7f126cc2e7 227 660f1f840000000000 nop
0x7f7f126cc2f0 230 660f1f840000000000 nop
0x7f7f126cc2f9 239 0f1f8000000000 nop
0x7f7f126cc300 240 4d8bcb REX.W movq r9,r11
0x7f7f126cc303 243 443b4d80 cmpl r9,[rbp-0x80]
0x7f7f126cc307 247 0f8d87000000 jge 0x7f7f126cc394 <+0x2d4>
0x7f7f126cc30d 24d 443bc9 cmpl r9,rcx
0x7f7f126cc310 250 0f83bc030000 jnc 0x7f7f126cc6d2 <+0x612>
0x7f7f126cc316 256 4e8b5ccb0f REX.W movq r11,[rbx+r9*8+0xf]
0x7f7f126cc31b 25b 4c3bca REX.W cmpq r9,rdx
0x7f7f126cc31e 25e 0f83aa030000 jnc 0x7f7f126cc6ce <+0x60e>
0x7f7f126cc324 264 41f6c301 testb r11,0x1
0x7f7f126cc328 268 0f849c030000 jz 0x7f7f126cc6ca <+0x60a>
0x7f7f126cc32e 26e 4d3963ff REX.W cmpq [r11-0x1],r12
0x7f7f126cc332 272 0f858e030000 jnz 0x7f7f126cc6c6 <+0x606>
0x7f7f126cc338 278 4d8b7b17 REX.W movq r15,[r11+0x17]
0x7f7f126cc33c 27c 4d8b731f REX.W movq r14,[r11+0x1f]
0x7f7f126cc340 280 4d8b5b27 REX.W movq r11,[r11+0x27]
0x7f7f126cc344 284 c4c16b5c6607 vsubsd xmm4,xmm2,[r14+0x7]
0x7f7f126cc34a 28a c4c1735c6f07 vsubsd xmm5,xmm1,[r15+0x7]
0x7f7f126cc350 290 c4c1635c7307 vsubsd xmm6,xmm3,[r11+0x7]
0x7f7f126cc356 296 c5db59e4 vmulsd xmm4,xmm4,xmm4
0x7f7f126cc35a 29a c5d359ed vmulsd xmm5,xmm5,xmm5
0x7f7f126cc35e 29e c5cb59f6 vmulsd xmm6,xmm6,xmm6
0x7f7f126cc362 2a2 c5db58e5 vaddsd xmm4,xmm4,xmm5
0x7f7f126cc366 2a6 c5cb58e4 vaddsd xmm4,xmm6,xmm4
0x7f7f126cc36a 2aa c5db51e4 vsqrtsd xmm4,xmm4,xmm4
0x7f7f126cc36e 2ae c5f92ec4 vucomisd xmm0,xmm4
0x7f7f126cc372 2b2 0f8734000000 ja 0x7f7f126cc3ac <+0x2ec>
0x7f7f126cc378 2b8 458bd9 movl r11,r9
0x7f7f126cc37b 2bb 4183c301 addl r11,0x1
0x7f7f126cc37f 2bf 0f803d030000 jo 0x7f7f126cc6c2 <+0x602>
0x7f7f126cc385 2c5 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f7f126cc389 2c9 0f8771ffffff ja 0x7f7f126cc300 <+0x240>
0x7f7f126cc38f 2cf e91e020000 jmp 0x7f7f126cc5b2 <+0x4f2>
0x7f7f126cc394 2d4 4c8b6518 REX.W movq r12,[rbp+0x18]
0x7f7f126cc398 2d8 4c8b7d20 REX.W movq r15,[rbp+0x20]
0x7f7f126cc39c 2dc 4c8b5dc8 REX.W movq r11,[rbp-0x38]
0x7f7f126cc3a0 2e0 488bd0 REX.W movq rdx,rax
0x7f7f126cc3a3 2e3 4c8b4de0 REX.W movq r9,[rbp-0x20]
0x7f7f126cc3a7 2e7 e937000000 jmp 0x7f7f126cc3e3 <+0x323>
0x7f7f126cc3ac 2ec 488b55e0 REX.W movq rdx,[rbp-0x20]
0x7f7f126cc3b0 2f0 83c201 addl rdx,0x1
0x7f7f126cc3b3 2f3 0f8005030000 jo 0x7f7f126cc6be <+0x5fe>
0x7f7f126cc3b9 2f9 e911000000 jmp 0x7f7f126cc3cf <+0x30f>
0x7f7f126cc3be 2fe 4c8b4de0 REX.W movq r9,[rbp-0x20]
0x7f7f126cc3c2 302 4183c101 addl r9,0x1
0x7f7f126cc3c6 306 0f80ee020000 jo 0x7f7f126cc6ba <+0x5fa>
0x7f7f126cc3cc 30c 498bd1 REX.W movq rdx,r9
0x7f7f126cc3cf 30f 4c8bca REX.W movq r9,rdx
0x7f7f126cc3d2 312 ba01000000 movl rdx,0x1
0x7f7f126cc3d7 317 4c8b6518 REX.W movq r12,[rbp+0x18]
0x7f7f126cc3db 31b 4c8b7d20 REX.W movq r15,[rbp+0x20]
0x7f7f126cc3df 31f 4c8b5dc8 REX.W movq r11,[rbp-0x38]
0x7f7f126cc3e3 323 4183fb00 cmpl r11,0x0
0x7f7f126cc3e7 327 0f8c4a020000 jl 0x7f7f126cc637 <+0x577>
0x7f7f126cc3ed 32d 4d8bf3 REX.W movq r14,r11
0x7f7f126cc3f0 330 4183e607 andl r14,0x7
0x7f7f126cc3f4 334 f6452801 testb [rbp+0x28],0x1
0x7f7f126cc3f8 338 0f94c3 setzl bl
0x7f7f126cc3fb 33b 0fb6db movzxbl rbx,rbx
0x7f7f126cc3fe 33e 498bcb REX.W movq rcx,r11
0x7f7f126cc401 341 c1f91f sarl rcx, 31
0x7f7f126cc404 344 c1e91d shrl rcx, 29
0x7f7f126cc407 347 4103cb addl rcx,r11
0x7f7f126cc40a 34a c1f903 sarl rcx, 3
0x7f7f126cc40d 34d 4863f1 REX.W movsxlq rsi,rcx
0x7f7f126cc410 350 b907000000 movl rcx,0x7
0x7f7f126cc415 355 412bce subl rcx,r14
0x7f7f126cc418 358 41be01000000 movl r14,0x1
0x7f7f126cc41e 35e 41d3e6 shll r14, cl
0x7f7f126cc421 361 83fa00 cmpl rdx,0x0
0x7f7f126cc424 364 0f844a000000 jz 0x7f7f126cc474 <+0x3b4>
0x7f7f126cc42a 36a 83fb00 cmpl rbx,0x0
0x7f7f126cc42d 36d 0f8583020000 jnz 0x7f7f126cc6b6 <+0x5f6>
0x7f7f126cc433 373 48b981750c95e0260000 REX.W movq rcx,0x26e0950c7581 ;; object: 0x26e0950c7581 <Map(UINT8ELEMENTS)>
0x7f7f126cc43d 37d 488b5d28 REX.W movq rbx,[rbp+0x28]
0x7f7f126cc441 381 48394bff REX.W cmpq [rbx-0x1],rcx
0x7f7f126cc445 385 0f8567020000 jnz 0x7f7f126cc6b2 <+0x5f2>
0x7f7f126cc44b 38b 488b4b47 REX.W movq rcx,[rbx+0x47]
0x7f7f126cc44f 38f 4c8b433f REX.W movq r8,[rbx+0x3f]
0x7f7f126cc453 393 48397337 REX.W cmpq [rbx+0x37],rsi
0x7f7f126cc457 397 0f8651020000 jna 0x7f7f126cc6ae <+0x5ee>
0x7f7f126cc45d 39d 4a8d1401 REX.W leaq rdx,[rcx+r8*1]
0x7f7f126cc461 3a1 0fb61432 movzxbl rdx,[rdx+rsi*1]
0x7f7f126cc465 3a5 4c03c1 REX.W addq r8,rcx
0x7f7f126cc468 3a8 410bd6 orl rdx,r14
0x7f7f126cc46b 3ab 41881430 movb [r8+rsi*1],dl
0x7f7f126cc46f 3af e94c000000 jmp 0x7f7f126cc4c0 <+0x400>
0x7f7f126cc474 3b4 4c8b4528 REX.W movq r8,[rbp+0x28]
0x7f7f126cc478 3b8 83fb00 cmpl rbx,0x0
0x7f7f126cc47b 3bb 0f8529020000 jnz 0x7f7f126cc6aa <+0x5ea>
0x7f7f126cc481 3c1 48b981750c95e0260000 REX.W movq rcx,0x26e0950c7581 ;; object: 0x26e0950c7581 <Map(UINT8ELEMENTS)>
0x7f7f126cc48b 3cb 493948ff REX.W cmpq [r8-0x1],rcx
0x7f7f126cc48f 3cf 0f8511020000 jnz 0x7f7f126cc6a6 <+0x5e6>
0x7f7f126cc495 3d5 498b5847 REX.W movq rbx,[r8+0x47]
0x7f7f126cc499 3d9 498b483f REX.W movq rcx,[r8+0x3f]
0x7f7f126cc49d 3dd 49397037 REX.W cmpq [r8+0x37],rsi
0x7f7f126cc4a1 3e1 0f86fb010000 jna 0x7f7f126cc6a2 <+0x5e2>
0x7f7f126cc4a7 3e7 488d140b REX.W leaq rdx,[rbx+rcx*1]
0x7f7f126cc4ab 3eb 0fb61432 movzxbl rdx,[rdx+rsi*1]
0x7f7f126cc4af 3ef 41f7d6 notl r14
0x7f7f126cc4b2 3f2 4c8d1c0b REX.W leaq r11,[rbx+rcx*1]
0x7f7f126cc4b6 3f6 4423f2 andl r14,rdx
0x7f7f126cc4b9 3f9 45883433 movb [r11+rsi*1],r14l
0x7f7f126cc4bd 3fd 498bd8 REX.W movq rbx,r8
0x7f7f126cc4c0 400 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f7f126cc4c4 404 0f8776fcffff ja 0x7f7f126cc140 <+0x80>
0x7f7f126cc4ca 40a e989010000 jmp 0x7f7f126cc658 <+0x598>
0x7f7f126cc4cf 40f 4c8b4de0 REX.W movq r9,[rbp-0x20]
0x7f7f126cc4d3 413 49c1e120 REX.W shlq r9, 32
0x7f7f126cc4d7 417 498bc1 REX.W movq rax,r9
0x7f7f126cc4da 41a 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f7f126cc4de 41e 488be5 REX.W movq rsp,rbp
0x7f7f126cc4e1 421 5d pop rbp
0x7f7f126cc4e2 422 4883f905 REX.W cmpq rcx,0x5
0x7f7f126cc4e6 426 7f03 jg 0x7f7f126cc4eb <+0x42b>
0x7f7f126cc4e8 428 c22800 ret 0x28
0x7f7f126cc4eb 42b 415a pop r10
0x7f7f126cc4ed 42d 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f7f126cc4f1 431 4152 push r10
0x7f7f126cc4f3 433 c3 retl
0x7f7f126cc4f4 434 48ba0000000058000000 REX.W movq rdx,0x5800000000
0x7f7f126cc4fe 43e 52 push rdx
0x7f7f126cc4ff 43f b801000000 movl rax,0x1
0x7f7f126cc504 444 48bbd0ab6a07ee550000 REX.W movq rbx,0x55ee076aabd0
0x7f7f126cc50e 44e 48be3911a8a3471d0000 REX.W movq rsi,0x1d47a3a81139 ;; object: 0x1d47a3a81139 <NativeContext[263]>
0x7f7f126cc518 458 49ba40cbb307ee550000 REX.W movq r10,0x55ee07b3cb40 (CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit)
0x7f7f126cc522 462 41ffd2 call r10
0x7f7f126cc525 465 e9c6fbffff jmp 0x7f7f126cc0f0 <+0x30>
0x7f7f126cc52a 46a 48897dd0 REX.W movq [rbp-0x30],rdi
0x7f7f126cc52e 46e c5fb1145b8 vmovsd [rbp-0x48],xmm0
0x7f7f126cc533 473 c5fb115db0 vmovsd [rbp-0x50],xmm3
0x7f7f126cc538 478 c5fb114da8 vmovsd [rbp-0x58],xmm1
0x7f7f126cc53d 47d c5fb1155a0 vmovsd [rbp-0x60],xmm2
0x7f7f126cc542 482 48895598 REX.W movq [rbp-0x68],rdx
0x7f7f126cc546 486 48895d90 REX.W movq [rbp-0x70],rbx
0x7f7f126cc54a 48a 48894d88 REX.W movq [rbp-0x78],rcx
0x7f7f126cc54e 48e 4c898d78ffffff REX.W movq [rbp-0x88],r9
0x7f7f126cc555 495 48bb30aa6a07ee550000 REX.W movq rbx,0x55ee076aaa30
0x7f7f126cc55f 49f 48be3911a8a3471d0000 REX.W movq rsi,0x1d47a3a81139 ;; object: 0x1d47a3a81139 <NativeContext[263]>
0x7f7f126cc569 4a9 4c8bdb REX.W movq r11,rbx
0x7f7f126cc56c 4ac 4c8b15a7ffffff REX.W movq r10,[rip+0xffffffa7]
0x7f7f126cc573 4b3 41ffd2 call r10
0x7f7f126cc576 4b6 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x7f7f126cc57a 4ba 33c0 xorl rax,rax
0x7f7f126cc57c 4bc c5fb1045b8 vmovsd xmm0,[rbp-0x48]
0x7f7f126cc581 4c1 c5fb105db0 vmovsd xmm3,[rbp-0x50]
0x7f7f126cc586 4c6 c5fb104da8 vmovsd xmm1,[rbp-0x58]
0x7f7f126cc58b 4cb c5fb1055a0 vmovsd xmm2,[rbp-0x60]
0x7f7f126cc590 4d0 49bc09a20f95e0260000 REX.W movq r12,0x26e0950fa209 ;; object: 0x26e0950fa209 <Map(HOLEY_ELEMENTS)>
0x7f7f126cc59a 4da 488b5598 REX.W movq rdx,[rbp-0x68]
0x7f7f126cc59e 4de 488b5d90 REX.W movq rbx,[rbp-0x70]
0x7f7f126cc5a2 4e2 488b4d88 REX.W movq rcx,[rbp-0x78]
0x7f7f126cc5a6 4e6 4c8b8d78ffffff REX.W movq r9,[rbp-0x88]
0x7f7f126cc5ad 4ed e951fdffff jmp 0x7f7f126cc303 <+0x243>
0x7f7f126cc5b2 4f2 48897dd0 REX.W movq [rbp-0x30],rdi
0x7f7f126cc5b6 4f6 c5fb1145b8 vmovsd [rbp-0x48],xmm0
0x7f7f126cc5bb 4fb 4c899d78ffffff REX.W movq [rbp-0x88],r11
0x7f7f126cc5c2 502 c5fb115db0 vmovsd [rbp-0x50],xmm3
0x7f7f126cc5c7 507 c5fb114da8 vmovsd [rbp-0x58],xmm1
0x7f7f126cc5cc 50c c5fb1155a0 vmovsd [rbp-0x60],xmm2
0x7f7f126cc5d1 511 48895598 REX.W movq [rbp-0x68],rdx
0x7f7f126cc5d5 515 48895d90 REX.W movq [rbp-0x70],rbx
0x7f7f126cc5d9 519 48894d88 REX.W movq [rbp-0x78],rcx
0x7f7f126cc5dd 51d 488b1d73ffffff REX.W movq rbx,[rip+0xffffff73]
0x7f7f126cc5e4 524 48be3911a8a3471d0000 REX.W movq rsi,0x1d47a3a81139 ;; object: 0x1d47a3a81139 <NativeContext[263]>
0x7f7f126cc5ee 52e 4c8bcb REX.W movq r9,rbx
0x7f7f126cc5f1 531 4c8b1522ffffff REX.W movq r10,[rip+0xffffff22]
0x7f7f126cc5f8 538 41ffd2 call r10
0x7f7f126cc5fb 53b 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x7f7f126cc5ff 53f 33c0 xorl rax,rax
0x7f7f126cc601 541 c5fb1045b8 vmovsd xmm0,[rbp-0x48]
0x7f7f126cc606 546 4c8b9d78ffffff REX.W movq r11,[rbp-0x88]
0x7f7f126cc60d 54d c5fb105db0 vmovsd xmm3,[rbp-0x50]
0x7f7f126cc612 552 c5fb104da8 vmovsd xmm1,[rbp-0x58]
0x7f7f126cc617 557 c5fb1055a0 vmovsd xmm2,[rbp-0x60]
0x7f7f126cc61c 55c 49bc09a20f95e0260000 REX.W movq r12,0x26e0950fa209 ;; object: 0x26e0950fa209 <Map(HOLEY_ELEMENTS)>
0x7f7f126cc626 566 488b5598 REX.W movq rdx,[rbp-0x68]
0x7f7f126cc62a 56a 488b5d90 REX.W movq rbx,[rbp-0x70]
0x7f7f126cc62e 56e 488b4d88 REX.W movq rcx,[rbp-0x78]
0x7f7f126cc632 572 e9c9fcffff jmp 0x7f7f126cc300 <+0x240>
0x7f7f126cc637 577 4d8bf3 REX.W movq r14,r11
0x7f7f126cc63a 57a 41f7de negl r14
0x7f7f126cc63d 57d 4183e607 andl r14,0x7
0x7f7f126cc641 581 498bde REX.W movq rbx,r14
0x7f7f126cc644 584 f7db negl rbx
0x7f7f126cc646 586 4183fe00 cmpl r14,0x0
0x7f7f126cc64a 58a 0f844e000000 jz 0x7f7f126cc69e <+0x5de>
0x7f7f126cc650 590 4c8bf3 REX.W movq r14,rbx
0x7f7f126cc653 593 e99cfdffff jmp 0x7f7f126cc3f4 <+0x334>
0x7f7f126cc658 598 4c894de0 REX.W movq [rbp-0x20],r9
0x7f7f126cc65c 59c 48897dd0 REX.W movq [rbp-0x30],rdi
0x7f7f126cc660 5a0 488b15f0feffff REX.W movq rdx,[rip+0xfffffef0]
0x7f7f126cc667 5a7 48be3911a8a3471d0000 REX.W movq rsi,0x1d47a3a81139 ;; object: 0x1d47a3a81139 <NativeContext[263]>
0x7f7f126cc671 5b1 488bda REX.W movq rbx,rdx
0x7f7f126cc674 5b4 4c8b159ffeffff REX.W movq r10,[rip+0xfffffe9f]
0x7f7f126cc67b 5bb 41ffd2 call r10
0x7f7f126cc67e 5be 4c8b6518 REX.W movq r12,[rbp+0x18]
0x7f7f126cc682 5c2 4c8b7d20 REX.W movq r15,[rbp+0x20]
0x7f7f126cc686 5c6 488b5d28 REX.W movq rbx,[rbp+0x28]
0x7f7f126cc68a 5ca 4c8b4de0 REX.W movq r9,[rbp-0x20]
0x7f7f126cc68e 5ce 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x7f7f126cc692 5d2 33c0 xorl rax,rax
0x7f7f126cc694 5d4 e9a7faffff jmp 0x7f7f126cc140 <+0x80>
0x7f7f126cc699 5d9 90 nop
0x7f7f126cc69a 5da 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '89'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 0
0x7f7f126cc69e 5de 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '248'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'minus zero'
;; debug: deopt index 1
0x7f7f126cc6a2 5e2 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '277'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 2
0x7f7f126cc6a6 5e6 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '277'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 3
0x7f7f126cc6aa 5ea 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '277'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 4
0x7f7f126cc6ae 5ee 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '2a9'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 5
0x7f7f126cc6b2 5f2 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '2a9'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 6
0x7f7f126cc6b6 5f6 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '2a9'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 7
0x7f7f126cc6ba 5fa 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '1e6'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'overflow'
;; debug: deopt index 8
0x7f7f126cc6be 5fe 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '1e6'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'overflow'
;; debug: deopt index 9
0x7f7f126cc6c2 602 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'e2'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'overflow'
;; debug: deopt index a
0x7f7f126cc6c6 606 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '13f'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index b
0x7f7f126cc6ca 60a 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '13f'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index c
0x7f7f126cc6ce 60e 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '120'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index d
0x7f7f126cc6d2 612 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '102'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index e
0x7f7f126cc6d6 616 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '191'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong call target'
;; debug: deopt index f
0x7f7f126cc6da 61a 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '66'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'not a Smi'
;; debug: deopt index 10
0x7f7f126cc6de 61e 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '89'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 11
0x7f7f126cc6e2 622 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '89'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 12
0x7f7f126cc6e6 626 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'a4'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 13
0x7f7f126cc6ea 62a 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'a4'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 14
0x7f7f126cc6ee 62e 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'a4'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 15
0x7f7f126cc6f2 632 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'd6'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'overflow'
;; debug: deopt index 16
0x7f7f126cc6f6 636 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '102'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 17
0x7f7f126cc6fa 63a 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '120'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 18
0x7f7f126cc6fe 63e 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '138'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 19
0x7f7f126cc702 642 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '138'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 1a
0x7f7f126cc706 646 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '13f'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'Smi'
;; debug: deopt index 1b
0x7f7f126cc70a 64a 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset '13f'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 1c
0x7f7f126cc70e 64e 41ff55c0 call [r13-0x40] ;; debug: deopt position, script offset 'e2'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason 'overflow'
;; debug: deopt index 1d
0x7f7f126cc712 652 41ff55d8 call [r13-0x28] ;; debug: deopt position, script offset '1d'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason '(unknown)'
;; debug: deopt index 1e
0x7f7f126cc716 656 41ff55d8 call [r13-0x28] ;; debug: deopt position, script offset 'c8'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason '(unknown)'
;; debug: deopt index 1f
0x7f7f126cc71a 65a 41ff55d8 call [r13-0x28] ;; debug: deopt position, script offset 'c8'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason '(unknown)'
;; debug: deopt index 20
0x7f7f126cc71e 65e 41ff55d8 call [r13-0x28] ;; debug: deopt position, script offset '54'
;; debug: deopt position, inlining id 'ffffffff'
;; debug: deopt reason '(unknown)'
;; debug: deopt index 21
0x7f7f126cc722 662 6690 nop
(func $collisionDetection (type $t5) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i32) (result i32)
(local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 f64) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 f64) (local $l12 f64) (local $l13 f64) (local $l14 f64)
local.get $p3
i32.const 0
i32.gt_s
if $I0
loop $L1
block $B2
block $B3 (result i32)
block $B4
local.get $p3
local.get $l5
i32.const 1
i32.add
local.tee $l9
i32.gt_s
if $I5
local.get $p1
local.get $l5
i32.const 3
i32.shl
i32.add
f64.load
local.set $l11
local.get $p0
local.get $l5
i32.const 24
i32.mul
i32.add
local.tee $l4
f64.load offset=16
local.set $l12
local.get $l4
f64.load offset=8
local.set $l13
local.get $l4
f64.load
local.set $l14
i32.const 1
local.set $l10
local.get $l9
local.set $l4
br $B4
end
local.get $l5
i32.const -1
i32.xor
i32.const 7
i32.and
local.set $l6
local.get $l5
i32.const 3
i32.shr_u
br $B3
end
block $B6
loop $L7
local.get $l11
local.get $l12
local.get $p0
local.get $l4
i32.const 24
i32.mul
i32.add
local.tee $l6
f64.load offset=16
f64.sub
local.tee $l7
local.get $l7
f64.mul
local.get $l14
local.get $l6
f64.load
f64.sub
local.tee $l7
local.get $l7
f64.mul
local.get $l13
local.get $l6
f64.load offset=8
f64.sub
local.tee $l7
local.get $l7
f64.mul
f64.add
f64.add
f64.sqrt
f64.gt
i32.eqz
if $I8
local.get $l4
i32.const 1
i32.add
local.tee $l4
local.get $p3
i32.lt_s
local.set $l10
local.get $p3
local.get $l4
i32.ne
br_if $L7
br $B6
end
end
local.get $l8
i32.const 1
i32.add
local.set $l8
local.get $l5
i32.const -1
i32.xor
i32.const 7
i32.and
local.set $l6
local.get $l5
i32.const 3
i32.shr_u
local.tee $l4
local.get $l10
i32.eqz
br_if $B3
drop
local.get $p2
local.get $l4
i32.add
local.tee $l4
local.get $l4
i32.load8_u
i32.const 1
local.get $l6
i32.shl
i32.or
i32.store8
br $B2
end
local.get $l5
i32.const -1
i32.xor
i32.const 7
i32.and
local.set $l6
local.get $l5
i32.const 3
i32.shr_u
end
local.tee $l4
local.get $p2
i32.add
local.tee $l4
local.get $l4
i32.load8_u
i32.const -2
local.get $l6
i32.rotl
i32.and
i32.store8
end
local.get $l9
local.tee $l5
local.get $p3
i32.ne
br_if $L1
end
end
local.get $l8)
--- WebAssembly code ---
name: collisionDetection
index: 4
kind: wasm function
compiler: TurboFan
Body (size = 832 = 800 + 32 padding)
Instructions (size = 788)
0x2b796a04a4c0 0 55 push rbp
0x2b796a04a4c1 1 4889e5 REX.W movq rbp,rsp
0x2b796a04a4c4 4 6a08 push 0x8
0x2b796a04a4c6 6 56 push rsi
0x2b796a04a4c7 7 4883ec78 REX.W subq rsp,0x78
0x2b796a04a4cb b 4c8b462f REX.W movq r8,[rsi+0x2f]
0x2b796a04a4cf f 48899578ffffff REX.W movq [rbp-0x88],rdx
0x2b796a04a4d6 16 488bf9 REX.W movq rdi,rcx
0x2b796a04a4d9 19 83fb00 cmpl rbx,0x0
0x2b796a04a4dc 1c 0f8f07000000 jg 0x2b796a04a4e9 <+0x29>
0x2b796a04a4e2 22 33c0 xorl rax,rax
0x2b796a04a4e4 24 488be5 REX.W movq rsp,rbp
0x2b796a04a4e7 27 5d pop rbp
0x2b796a04a4e8 28 c3 retl
0x2b796a04a4e9 29 488b763f REX.W movq rsi,[rsi+0x3f]
0x2b796a04a4ed 2d 41bc01000000 movl r12,0x1
0x2b796a04a4f3 33 4533c9 xorl r9,r9
0x2b796a04a4f6 36 4d8bd9 REX.W movq r11,r9
0x2b796a04a4f9 39 e90c000000 jmp 0x2b796a04a50a <+0x4a>
0x2b796a04a4fe 3e 6690 nop
0x2b796a04a500 40 488b9578ffffff REX.W movq rdx,[rbp-0x88]
0x2b796a04a507 47 4d8bcf REX.W movq r9,r15
0x2b796a04a50a 4a 483b26 REX.W cmpq rsp,[rsi]
0x2b796a04a50d 4d 0f86a3010000 jna 0x2b796a04a6b6 <+0x1f6>
0x2b796a04a513 53 458d7901 leal r15,[r9+0x1]
0x2b796a04a517 57 443bfb cmpl r15,rbx
0x2b796a04a51a 5a 0f8d5e010000 jge 0x2b796a04a67e <+0x1be>
0x2b796a04a520 60 468d34ca leal r14,[rdx+r9*8]
0x2b796a04a524 64 416bc918 imull rcx,r9,0x18
0x2b796a04a528 68 03c8 addl rcx,rax
0x2b796a04a52a 6a c4817b100430 vmovsd xmm0,[r8+r14*1]
0x2b796a04a530 70 c4a17b104c0110 vmovsd xmm1,[rcx+r8*1+0x10]
0x2b796a04a537 77 c4a17b10540108 vmovsd xmm2,[rcx+r8*1+0x8]
0x2b796a04a53e 7e c4c17b101c08 vmovsd xmm3,[r8+rcx*1]
0x2b796a04a544 84 4d89e6 REX.W movq r14,r12
0x2b796a04a547 87 498bcf REX.W movq rcx,r15
0x2b796a04a54a 8a e93b000000 jmp 0x2b796a04a58a <+0xca>
0x2b796a04a54f 8f 660f1f840000000000 nop
0x2b796a04a558 98 660f1f840000000000 nop
0x2b796a04a561 a1 660f1f840000000000 nop
0x2b796a04a56a aa 660f1f840000000000 nop
0x2b796a04a573 b3 660f1f840000000000 nop
0x2b796a04a57c bc 0f1f4000 nop
0x2b796a04a580 c0 3bcb cmpl rcx,rbx
0x2b796a04a582 c2 410f9cc6 setll r14l
0x2b796a04a586 c6 450fb6f6 movzxbl r14,r14
0x2b796a04a58a ca 483b26 REX.W cmpq rsp,[rsi]
0x2b796a04a58d cd 0f8672010000 jna 0x2b796a04a705 <+0x245>
0x2b796a04a593 d3 6bd118 imull rdx,rcx,0x18
0x2b796a04a596 d6 03d0 addl rdx,rax
0x2b796a04a598 d8 c4a17b10640210 vmovsd xmm4,[rdx+r8*1+0x10]
0x2b796a04a59f df c4c17b102c10 vmovsd xmm5,[r8+rdx*1]
0x2b796a04a5a5 e5 c4a17b10740208 vmovsd xmm6,[rdx+r8*1+0x8]
0x2b796a04a5ac ec c5eb5cf6 vsubsd xmm6,xmm2,xmm6
0x2b796a04a5b0 f0 c5e35ced vsubsd xmm5,xmm3,xmm5
0x2b796a04a5b4 f4 c5cb59f6 vmulsd xmm6,xmm6,xmm6
0x2b796a04a5b8 f8 c5d359ed vmulsd xmm5,xmm5,xmm5
0x2b796a04a5bc fc c5f35ce4 vsubsd xmm4,xmm1,xmm4
0x2b796a04a5c0 100 c5cb58ed vaddsd xmm5,xmm6,xmm5
0x2b796a04a5c4 104 c5db59e4 vmulsd xmm4,xmm4,xmm4
0x2b796a04a5c8 108 c5d358e4 vaddsd xmm4,xmm5,xmm4
0x2b796a04a5cc 10c c5db51e4 vsqrtsd xmm4,xmm4,xmm4
0x2b796a04a5d0 110 c5f92ec4 vucomisd xmm0,xmm4
0x2b796a04a5d4 114 0f876e000000 ja 0x2b796a04a648 <+0x188>
0x2b796a04a5da 11a 8d5101 leal rdx,[rcx+0x1]
0x2b796a04a5dd 11d 3bda cmpl rbx,rdx
0x2b796a04a5df 11f 0f8499000000 jz 0x2b796a04a67e <+0x1be>
0x2b796a04a5e5 125 446bf218 imull r14,rdx,0x18
0x2b796a04a5e9 129 4403f0 addl r14,rax
0x2b796a04a5ec 12c c4817b10640610 vmovsd xmm4,[r14+r8*1+0x10]
0x2b796a04a5f3 133 c4817b102c30 vmovsd xmm5,[r8+r14*1]
0x2b796a04a5f9 139 c4817b10740608 vmovsd xmm6,[r14+r8*1+0x8]
0x2b796a04a600 140 c5eb5cf6 vsubsd xmm6,xmm2,xmm6
0x2b796a04a604 144 c5e35ced vsubsd xmm5,xmm3,xmm5
0x2b796a04a608 148 c5cb59f6 vmulsd xmm6,xmm6,xmm6
0x2b796a04a60c 14c c5d359ed vmulsd xmm5,xmm5,xmm5
0x2b796a04a610 150 c5f35ce4 vsubsd xmm4,xmm1,xmm4
0x2b796a04a614 154 c5cb58ed vaddsd xmm5,xmm6,xmm5
0x2b796a04a618 158 c5db59e4 vmulsd xmm4,xmm4,xmm4
0x2b796a04a61c 15c c5d358e4 vaddsd xmm4,xmm5,xmm4
0x2b796a04a620 160 c5db51e4 vsqrtsd xmm4,xmm4,xmm4
0x2b796a04a624 164 c5f92ec4 vucomisd xmm0,xmm4
0x2b796a04a628 168 0f8710000000 ja 0x2b796a04a63e <+0x17e>
0x2b796a04a62e 16e 8d4a01 leal rcx,[rdx+0x1]
0x2b796a04a631 171 3bd9 cmpl rbx,rcx
0x2b796a04a633 173 0f8547ffffff jnz 0x2b796a04a580 <+0xc0>
0x2b796a04a639 179 e940000000 jmp 0x2b796a04a67e <+0x1be>
0x2b796a04a63e 17e 3bd3 cmpl rdx,rbx
0x2b796a04a640 180 410f9cc6 setll r14l
0x2b796a04a644 184 450fb6f6 movzxbl r14,r14
0x2b796a04a648 188 498bd1 REX.W movq rdx,r9
0x2b796a04a64b 18b f7d2 notl rdx
0x2b796a04a64d 18d 4183c301 addl r11,0x1
0x2b796a04a651 191 4183fe00 cmpl r14,0x0
0x2b796a04a655 195 0f8423000000 jz 0x2b796a04a67e <+0x1be>
0x2b796a04a65b 19b 41c1e903 shrl r9, 3
0x2b796a04a65f 19f 83e207 andl rdx,0x7
0x2b796a04a662 1a2 4403cf addl r9,rdi
0x2b796a04a665 1a5 488bca REX.W movq rcx,rdx
0x2b796a04a668 1a8 4c89e2 REX.W movq rdx,r12
0x2b796a04a66b 1ab d3e2 shll rdx, cl
0x2b796a04a66d 1ad 470fb63408 movzxbl r14,[r8+r9*1]
0x2b796a04a672 1b2 410bd6 orl rdx,r14
0x2b796a04a675 1b5 43881408 movb [r8+r9*1],dl
0x2b796a04a679 1b9 e927000000 jmp 0x2b796a04a6a5 <+0x1e5>
0x2b796a04a67e 1be 498bd1 REX.W movq rdx,r9
0x2b796a04a681 1c1 f7d2 notl rdx
0x2b796a04a683 1c3 41c1e903 shrl r9, 3
0x2b796a04a687 1c7 4403cf addl r9,rdi
0x2b796a04a68a 1ca 83e207 andl rdx,0x7
0x2b796a04a68d 1cd 41befeffffff movl r14,0xfffffffe
0x2b796a04a693 1d3 488bca REX.W movq rcx,rdx
0x2b796a04a696 1d6 41d3c6 roll r14, cl
0x2b796a04a699 1d9 430fb61408 movzxbl rdx,[r8+r9*1]
0x2b796a04a69e 1de 4423f2 andl r14,rdx
0x2b796a04a6a1 1e1 47883408 movb [r8+r9*1],r14l
0x2b796a04a6a5 1e5 413bdf cmpl rbx,r15
0x2b796a04a6a8 1e8 0f8552feffff jnz 0x2b796a04a500 <+0x40>
0x2b796a04a6ae 1ee 498bc3 REX.W movq rax,r11
0x2b796a04a6b1 1f1 e92efeffff jmp 0x2b796a04a4e4 <+0x24>
0x2b796a04a6b6 1f6 48895de0 REX.W movq [rbp-0x20],rbx
0x2b796a04a6ba 1fa 4c8945d8 REX.W movq [rbp-0x28],r8
0x2b796a04a6be 1fe 48897dd0 REX.W movq [rbp-0x30],rdi
0x2b796a04a6c2 202 4c894dc8 REX.W movq [rbp-0x38],r9
0x2b796a04a6c6 206 4c895dc0 REX.W movq [rbp-0x40],r11
0x2b796a04a6ca 20a 48894590 REX.W movq [rbp-0x70],rax
0x2b796a04a6ce 20e 48897580 REX.W movq [rbp-0x80],rsi
0x2b796a04a6d2 212 e8597df7ff call 0x2b7969fc2430 (jump table) ;; wasm stub: WasmStackGuard
0x2b796a04a6d7 217 488b5de0 REX.W movq rbx,[rbp-0x20]
0x2b796a04a6db 21b 4c8b45d8 REX.W movq r8,[rbp-0x28]
0x2b796a04a6df 21f 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x2b796a04a6e3 223 4c8b4dc8 REX.W movq r9,[rbp-0x38]
0x2b796a04a6e7 227 4c8b5dc0 REX.W movq r11,[rbp-0x40]
0x2b796a04a6eb 22b 41bc01000000 movl r12,0x1
0x2b796a04a6f1 231 488b4590 REX.W movq rax,[rbp-0x70]
0x2b796a04a6f5 235 488b7580 REX.W movq rsi,[rbp-0x80]
0x2b796a04a6f9 239 488b9578ffffff REX.W movq rdx,[rbp-0x88]
0x2b796a04a700 240 e90efeffff jmp 0x2b796a04a513 <+0x53>
0x2b796a04a705 245 4c897de8 REX.W movq [rbp-0x18],r15
0x2b796a04a709 249 48895de0 REX.W movq [rbp-0x20],rbx
0x2b796a04a70d 24d 4c8945d8 REX.W movq [rbp-0x28],r8
0x2b796a04a711 251 48897dd0 REX.W movq [rbp-0x30],rdi
0x2b796a04a715 255 4c894dc8 REX.W movq [rbp-0x38],r9
0x2b796a04a719 259 4c895dc0 REX.W movq [rbp-0x40],r11
0x2b796a04a71d 25d 4c8975b8 REX.W movq [rbp-0x48],r14
0x2b796a04a721 261 c5fb1145b0 vmovsd [rbp-0x50],xmm0
0x2b796a04a726 266 c5fb114da8 vmovsd [rbp-0x58],xmm1
0x2b796a04a72b 26b c5fb115da0 vmovsd [rbp-0x60],xmm3
0x2b796a04a730 270 c5fb115598 vmovsd [rbp-0x68],xmm2
0x2b796a04a735 275 48894590 REX.W movq [rbp-0x70],rax
0x2b796a04a739 279 48894d88 REX.W movq [rbp-0x78],rcx
0x2b796a04a73d 27d 48897580 REX.W movq [rbp-0x80],rsi
0x2b796a04a741 281 e8ea7cf7ff call 0x2b7969fc2430 (jump table) ;; wasm stub: WasmStackGuard
0x2b796a04a746 286 4c8b7de8 REX.W movq r15,[rbp-0x18]
0x2b796a04a74a 28a 488b5de0 REX.W movq rbx,[rbp-0x20]
0x2b796a04a74e 28e 4c8b45d8 REX.W movq r8,[rbp-0x28]
0x2b796a04a752 292 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x2b796a04a756 296 4c8b4dc8 REX.W movq r9,[rbp-0x38]
0x2b796a04a75a 29a 4c8b5dc0 REX.W movq r11,[rbp-0x40]
0x2b796a04a75e 29e 41bc01000000 movl r12,0x1
0x2b796a04a764 2a4 4c8b75b8 REX.W movq r14,[rbp-0x48]
0x2b796a04a768 2a8 c5fb1045b0 vmovsd xmm0,[rbp-0x50]
0x2b796a04a76d 2ad c5fb104da8 vmovsd xmm1,[rbp-0x58]
0x2b796a04a772 2b2 c5fb105da0 vmovsd xmm3,[rbp-0x60]
0x2b796a04a777 2b7 c5fb105598 vmovsd xmm2,[rbp-0x68]
0x2b796a04a77c 2bc 488b4590 REX.W movq rax,[rbp-0x70]
0x2b796a04a780 2c0 488b4d88 REX.W movq rcx,[rbp-0x78]
0x2b796a04a784 2c4 488b7580 REX.W movq rsi,[rbp-0x80]
0x2b796a04a788 2c8 e906feffff jmp 0x2b796a04a593 <+0xd3>
0x2b796a04a78d 2cd e83e7af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a792 2d2 e8397af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a797 2d7 e8347af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a79c 2dc e82f7af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7a1 2e1 e82a7af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7a6 2e6 e8257af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7ab 2eb e8207af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7b0 2f0 e81b7af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7b5 2f5 e8167af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7ba 2fa e8117af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7bf 2ff e80c7af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7c4 304 e8077af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7c9 309 e8027af7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7ce 30e e8fd79f7ff call 0x2b7969fc21d0 (jump table) ;; wasm stub: ThrowWasmTrapMemOutOfBounds
0x2b796a04a7d3 313 90 nop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment