--- nobug.s 2020-10-06 09:24:32.189076613 +0200 +++ bug.s 2020-10-06 09:24:41.453077163 +0200 @@ -7,7 +7,9 @@ pushq %rax callq _ZN97_$LT$core..ops..range..RangeFull$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$3get17h74c2e2bb7245d0f5E popq %rcx - retq + popq %rcx + lfence + jmpq *%rcx .Lfunc_end0: .size _ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3get17hf6b80a671874953fE, .Lfunc_end0-_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3get17hf6b80a671874953fE # -- End function @@ -22,13 +24,13 @@ movq %rsi, 48(%rsp) movb $1, 15(%rsp) testq %rdi, %rdi - jne .LBB1_3 + jne .LBB2_3 # %bb.1: # %start movq $0, 16(%rsp) cmpb $0, 15(%rsp) - jne .LBB1_2 - jmp .LBB1_5 -.LBB1_3: # %bb3 + jne .LBB2_2 + jmp .LBB2_5 +.LBB2_3: # %bb3 movq 40(%rsp), %rdi movq 48(%rsp), %rsi movb $0, 15(%rsp) @@ -39,16 +41,18 @@ movq %rax, 24(%rsp) movq $1, 16(%rsp) cmpb $0, 15(%rsp) - je .LBB1_5 -.LBB1_2: # %bb7 + je .LBB2_5 +.LBB2_2: # %bb7 movb $0, 15(%rsp) -.LBB1_5: # %bb5 +.LBB2_5: # %bb5 movq 16(%rsp), %rax movq 24(%rsp), %rdx movq 32(%rsp), %rcx addq $88, %rsp .cfi_def_cfa_offset 8 - retq + popq %rcx + lfence + jmpq *%rcx .Lfunc_end1: .size _ZN4core6option15Option$LT$T$GT$3map17hc9e7ddb66f602558E, .Lfunc_end1-_ZN4core6option15Option$LT$T$GT$3map17hc9e7ddb66f602558E .cfi_endproc @@ -66,14 +70,14 @@ movb $1, 13(%rsp) movb $1, 14(%rsp) cmpq $1, %rdi - je .LBB2_4 + je .LBB3_4 # %bb.1: # %bb1 movb $0, 13(%rsp) movb %cl, 15(%rsp) cmpb $0, 14(%rsp) - jne .LBB2_6 - jmp .LBB2_2 -.LBB2_4: # %bb3 + jne .LBB3_6 + jmp .LBB3_2 +.LBB3_4: # %bb3 movq 24(%rsp), %rdi movq 32(%rsp), %rsi movb $0, 14(%rsp) @@ -82,19 +86,21 @@ callq _ZN3bug8do_error28_$u7b$$u7b$closure$u7d$$u7d$17h76e843e5ed8c9d1eE movb %al, 15(%rsp) cmpb $0, 14(%rsp) - je .LBB2_2 -.LBB2_6: # %bb10 + je .LBB3_2 +.LBB3_6: # %bb10 movb $0, 14(%rsp) -.LBB2_2: # %bb6 +.LBB3_2: # %bb6 cmpb $0, 13(%rsp) - je .LBB2_3 + je .LBB3_3 # %bb.7: # %bb12 movb $0, 13(%rsp) -.LBB2_3: # %bb7 +.LBB3_3: # %bb7 movb 15(%rsp), %al addq $72, %rsp .cfi_def_cfa_offset 8 - retq + popq %rcx + lfence + jmpq *%rcx .Lfunc_end2: .size _ZN4core6option15Option$LT$T$GT$6map_or17h48ae1869fe2e3ca4E, .Lfunc_end2-_ZN4core6option15Option$LT$T$GT$6map_or17h48ae1869fe2e3ca4E .cfi_endproc @@ -107,7 +113,9 @@ movq %rdi, %rax movq %rdi, -16(%rsp) movq %rsi, -8(%rsp) - retq + popq %rcx + lfence + jmpq *%rcx .Lfunc_end3: .size _ZN97_$LT$core..ops..range..RangeFull$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$3get17h74c2e2bb7245d0f5E, .Lfunc_end3-_ZN97_$LT$core..ops..range..RangeFull$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$3get17h74c2e2bb7245d0f5E # -- End function @@ -165,10 +173,22 @@ rust_begin_unwind: # @rust_begin_unwind # %bb.0: # %start .p2align 4, 0x90 -.LBB7_1: # %bb1 +.LBB8_1: # %bb1 # =>This Inner Loop Header: Depth=1 - jmp .LBB7_1 + jmp .LBB8_1 .Lfunc_end7: .size rust_begin_unwind, .Lfunc_end7-rust_begin_unwind # -- End function + .section .text.__llvm_lvi_thunk_r11,"axG",@progbits,__llvm_lvi_thunk_r11,comdat + .hidden __llvm_lvi_thunk_r11 # -- Begin function __llvm_lvi_thunk_r11 + .weak __llvm_lvi_thunk_r11 + .p2align 4, 0x90 + .type __llvm_lvi_thunk_r11,@function +__llvm_lvi_thunk_r11: # @__llvm_lvi_thunk_r11 +# %bb.0: # %entry + lfence + jmpq *%r11 +.Lfunc_end8: + .size __llvm_lvi_thunk_r11, .Lfunc_end8-__llvm_lvi_thunk_r11 + # -- End function .section ".note.GNU-stack","",@progbits