Skip to content

Instantly share code, notes, and snippets.

@pcwalton
Created August 8, 2016 22:48
Show Gist options
  • Save pcwalton/2ca2e9755eb75f7e61ccd252ff87ec9d to your computer and use it in GitHub Desktop.
Save pcwalton/2ca2e9755eb75f7e61ccd252ff87ec9d to your computer and use it in GitHub Desktop.
.section __TEXT,__text,regular,pure_instructions
.intel_syntax noprefix
.private_extern __ZN9webrender6tiling12AlphaBatcher16add_layer_to_ubo17hf49e06183f51c095E
.globl __ZN9webrender6tiling12AlphaBatcher16add_layer_to_ubo17hf49e06183f51c095E
.p2align 4, 0x90
__ZN9webrender6tiling12AlphaBatcher16add_layer_to_ubo17hf49e06183f51c095E: ## @_ZN9webrender6tiling12AlphaBatcher16add_layer_to_ubo17hf49e06183f51c095E
.cfi_startproc
## BB#0: ## %entry-block
push rbp
Ltmp0:
.cfi_def_cfa_offset 16
Ltmp1:
.cfi_offset rbp, -16
mov rbp, rsp
Ltmp2:
.cfi_def_cfa_register rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 568
Ltmp3:
.cfi_offset rbx, -56
Ltmp4:
.cfi_offset r12, -48
Ltmp5:
.cfi_offset r13, -40
Ltmp6:
.cfi_offset r14, -32
Ltmp7:
.cfi_offset r15, -24
mov r12, r8
mov rbx, rdx
mov r13, rsi
mov r14, rdi
mov rdx, qword ptr [rbx + 16]
cmp rdx, rcx
jbe LBB0_22
## BB#1: ## %"_ZN80_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Index$LT$usize$GT$$GT$5index17hd0c0443db373d30aE.exit"
mov rax, qword ptr [rbx]
mov r15, rcx
shl r15, 4
cmp qword ptr [rax + r15], 1
jne LBB0_2
## BB#9: ## %bb3
mov rcx, qword ptr [rax + r15 + 8]
add r13, 16
jmp LBB0_10
LBB0_2: ## %bb2
lea r8, [r13 + 16]
mov rax, qword ptr [r13 + 16]
test rax, rax
mov qword ptr [rbp - 48], rcx ## 8-byte Spill
mov qword ptr [rbp - 96], r8 ## 8-byte Spill
je LBB0_4
## BB#3: ## %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h654cb74e8494e2e1E.exit"
mov rdi, qword ptr [r13]
lea rsi, [rax + 2*rax]
cmp qword ptr [rdi + 8*rsi - 8], r9
jne LBB0_15
LBB0_4: ## %bb14
test rdx, rdx
je LBB0_12
## BB#5: ## %"_ZN83_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$usize$GT$$GT$9index_mut17h2dc5bb73a2131dbaE.exit46.preheader"
xor edi, edi
xor esi, esi
.p2align 4, 0x90
LBB0_6: ## %"_ZN83_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$usize$GT$$GT$9index_mut17h2dc5bb73a2131dbaE.exit46"
## =>This Inner Loop Header: Depth=1
mov rax, qword ptr [rbx]
inc rsi
mov qword ptr [rax + rdi], 0
cmp rsi, rdx
jae LBB0_11
## BB#7: ## %"_ZN83_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$usize$GT$$GT$9index_mut17h2dc5bb73a2131dbaE.exit46.bb21_crit_edge"
## in Loop: Header=BB0_6 Depth=1
mov rax, qword ptr [rbx + 16]
add rdi, 16
cmp rax, rsi
ja LBB0_6
## BB#8: ## %panic.i45
lea rdi, [rip + _panic_bounds_check_loc22492]
mov rdx, rax
call __ZN4core9panicking18panic_bounds_check17ha883fe1527ce6884E
LBB0_11: ## %bb19.loopexit
mov rax, qword ptr [r8]
LBB0_12: ## %bb19
cmp rax, qword ptr [r13 + 8]
je LBB0_13
LBB0_14: ## %bb26
mov rdx, qword ptr [r13]
lea rax, [rax + 2*rax]
mov qword ptr [rdx + 8*rax], 1
mov qword ptr [rdx + 8*rax + 16], 0
mov qword ptr [rdx + 8*rax + 8], 0
mov rax, qword ptr [r13 + 16]
inc rax
mov qword ptr [r13 + 16], rax
je LBB0_23
LBB0_15: ## %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h033c5ccaeb7a4205E.exit"
mov qword ptr [rbp - 88], r14 ## 8-byte Spill
mov rdx, qword ptr [r12 + 16]
cmp rdx, rcx
jbe LBB0_22
## BB#16: ## %"_ZN80_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Index$LT$usize$GT$$GT$5index17hba8e960f35a44c5cE.exit"
mov rdx, qword ptr [r13]
dec rax
lea rax, [rax + 2*rax]
mov qword ptr [rbp - 64], rdx ## 8-byte Spill
mov qword ptr [rbp - 80], rax ## 8-byte Spill
mov rax, qword ptr [rdx + 8*rax + 16]
mov qword ptr [rbp - 72], rax ## 8-byte Spill
mov r13, qword ptr [r12]
imul r14, rcx, 400
lea rsi, [r13 + r14 + 144]
mov rax, qword ptr [r13 + r14 + 200]
mov qword ptr [rbp - 168], rax
mov rax, qword ptr [r13 + r14 + 192]
mov qword ptr [rbp - 176], rax
mov rax, qword ptr [r13 + r14 + 184]
mov qword ptr [rbp - 184], rax
mov rax, qword ptr [r13 + r14 + 176]
mov qword ptr [rbp - 192], rax
mov rax, qword ptr [r13 + r14 + 168]
mov qword ptr [rbp - 200], rax
mov rax, qword ptr [r13 + r14 + 160]
mov qword ptr [rbp - 208], rax
mov rax, qword ptr [r13 + r14 + 144]
mov rcx, qword ptr [r13 + r14 + 152]
mov qword ptr [rbp - 216], rcx
mov qword ptr [rbp - 224], rax
lea rdi, [rbp - 352]
call __ZN44_$LT$euclid..matrix4d..Matrix4D$LT$T$GT$$GT$6invert17h7cb9aead3b48b7fcE
cmp dword ptr [r13 + r14 + 208], 1
jne LBB0_23
## BB#17: ## %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17hd135f9f68b8e604fE.exit"
mov rax, qword ptr [r13 + r14 + 300]
mov qword ptr [rbp - 104], rax
mov rax, qword ptr [r13 + r14 + 292]
mov qword ptr [rbp - 112], rax
mov rax, qword ptr [r13 + r14 + 284]
mov qword ptr [rbp - 120], rax
mov rax, qword ptr [r13 + r14 + 276]
mov qword ptr [rbp - 128], rax
mov rax, qword ptr [r13 + r14 + 268]
mov qword ptr [rbp - 136], rax
mov rax, qword ptr [r13 + r14 + 260]
mov qword ptr [rbp - 144], rax
mov rax, qword ptr [r13 + r14 + 244]
mov rcx, qword ptr [r13 + r14 + 252]
mov qword ptr [rbp - 152], rcx
mov qword ptr [rbp - 160], rax
cmp dword ptr [r13 + r14 + 360], 0
je LBB0_23
## BB#18: ## %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h8cb8e2f14e416bceE.exit"
mov r8, qword ptr [rbp - 64] ## 8-byte Reload
mov rdx, qword ptr [rbp - 80] ## 8-byte Reload
lea r12, [r8 + 8*rdx]
movups xmm0, xmmword ptr [r13 + r14 + 364]
mov rax, qword ptr [rbp - 168]
mov qword ptr [rbp - 424], rax
mov rax, qword ptr [rbp - 176]
mov qword ptr [rbp - 432], rax
mov rax, qword ptr [rbp - 184]
mov qword ptr [rbp - 440], rax
mov rax, qword ptr [rbp - 192]
mov qword ptr [rbp - 448], rax
mov rax, qword ptr [rbp - 200]
mov qword ptr [rbp - 456], rax
mov rax, qword ptr [rbp - 208]
mov qword ptr [rbp - 464], rax
mov rax, qword ptr [rbp - 224]
mov rcx, qword ptr [rbp - 216]
mov qword ptr [rbp - 472], rcx
mov qword ptr [rbp - 480], rax
mov rax, qword ptr [rbp - 296]
mov qword ptr [rbp - 360], rax
mov rax, qword ptr [rbp - 304]
mov qword ptr [rbp - 368], rax
mov rax, qword ptr [rbp - 312]
mov qword ptr [rbp - 376], rax
mov rax, qword ptr [rbp - 320]
mov qword ptr [rbp - 384], rax
mov rax, qword ptr [rbp - 328]
mov qword ptr [rbp - 392], rax
mov rax, qword ptr [rbp - 336]
mov qword ptr [rbp - 400], rax
mov rax, qword ptr [rbp - 352]
mov rcx, qword ptr [rbp - 344]
mov qword ptr [rbp - 408], rcx
mov qword ptr [rbp - 416], rax
lea rdi, [rbp - 608]
lea rsi, [rbp - 480]
mov ecx, 16
rep movsq
mov rax, qword ptr [rbp - 104]
mov qword ptr [rbp - 232], rax
mov rax, qword ptr [rbp - 112]
mov qword ptr [rbp - 240], rax
mov rax, qword ptr [rbp - 120]
mov qword ptr [rbp - 248], rax
mov rax, qword ptr [rbp - 128]
mov qword ptr [rbp - 256], rax
mov rax, qword ptr [rbp - 136]
mov qword ptr [rbp - 264], rax
mov rax, qword ptr [rbp - 144]
mov qword ptr [rbp - 272], rax
mov rax, qword ptr [rbp - 160]
mov rcx, qword ptr [rbp - 152]
mov qword ptr [rbp - 280], rcx
mov qword ptr [rbp - 288], rax
mov rax, qword ptr [r12 + 16]
cmp rax, qword ptr [r8 + 8*rdx + 8]
mov r8, qword ptr [rbp - 48] ## 8-byte Reload
je LBB0_19
LBB0_20: ## %"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$4push17he6350fa1279e5265E.exit"
mov rdx, qword ptr [r12]
imul rax, rax, 208
lea rdi, [rdx + rax]
lea rsi, [rbp - 608]
mov ecx, 32
rep movsd
movups xmmword ptr [rdx + rax + 128], xmm0
mov rcx, qword ptr [rbp - 232]
mov qword ptr [rdx + rax + 200], rcx
mov rcx, qword ptr [rbp - 240]
mov qword ptr [rdx + rax + 192], rcx
mov rcx, qword ptr [rbp - 248]
mov qword ptr [rdx + rax + 184], rcx
mov rcx, qword ptr [rbp - 256]
mov qword ptr [rdx + rax + 176], rcx
mov rcx, qword ptr [rbp - 264]
mov qword ptr [rdx + rax + 168], rcx
mov rcx, qword ptr [rbp - 272]
mov qword ptr [rdx + rax + 160], rcx
mov rcx, qword ptr [rbp - 288]
mov rsi, qword ptr [rbp - 280]
mov qword ptr [rdx + rax + 152], rsi
mov qword ptr [rdx + rax + 144], rcx
inc qword ptr [r12 + 16]
mov rdx, qword ptr [rbx + 16]
cmp rdx, r8
mov r14, qword ptr [rbp - 88] ## 8-byte Reload
jbe LBB0_24
## BB#21: ## %"_ZN83_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$usize$GT$$GT$9index_mut17h2dc5bb73a2131dbaE.exit"
mov rax, qword ptr [rbx]
mov qword ptr [rax + r15], 1
mov rcx, qword ptr [rbp - 72] ## 8-byte Reload
mov qword ptr [rax + r15 + 8], rcx
mov r13, qword ptr [rbp - 96] ## 8-byte Reload
LBB0_10: ## %bb4
mov rax, qword ptr [r13]
dec rax
mov qword ptr [r14], rax
mov dword ptr [r14 + 8], ecx
add rsp, 568
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
LBB0_19: ## %bb4.i
mov rdi, r12
movaps xmmword ptr [rbp - 64], xmm0 ## 16-byte Spill
call __ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$6double17hb0941eca5c1c45e1E
movaps xmm0, xmmword ptr [rbp - 64] ## 16-byte Reload
mov r8, qword ptr [rbp - 48] ## 8-byte Reload
mov rax, qword ptr [r12 + 16]
jmp LBB0_20
LBB0_13: ## %bb4.i50
mov rdi, r13
call __ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$6double17hccbe19d61bbb7c9dE
mov rcx, qword ptr [rbp - 48] ## 8-byte Reload
mov rax, qword ptr [r13 + 16]
jmp LBB0_14
LBB0_22: ## %panic.i
lea rdi, [rip + _panic_bounds_check_loc22490]
mov rsi, rcx
call __ZN4core9panicking18panic_bounds_check17ha883fe1527ce6884E
LBB0_23: ## %bb3.i
mov rdi, qword ptr [rip + __ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17hd4aed9e7c703f81cE@GOTPCREL]
call __ZN4core9panicking5panic17hbfac80217e56ecbeE
LBB0_24: ## %panic.i32
lea rdi, [rip + _panic_bounds_check_loc22492]
mov rsi, r8
call __ZN4core9panicking18panic_bounds_check17ha883fe1527ce6884E
.cfi_endproc
.subsections_via_symbols
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment