brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.2 KiB · 5173fa6 Raw
1013 lines · plain
1## Check that llvm-bolt is able to read a file with DWARF Exception CFI2## information and fix CFI information after reordering.3 4# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o5# RUN: llvm-strip --strip-unneeded %t.o6# RUN: %clang %cflags -fpic -shared -xc /dev/null -o %t.so7## Link against a DSO to ensure PLT entries.8# RUN: %clangxx %cflags %t.o %t.so -o %t.exe9# RUN: llvm-bolt %t.exe -o %t --reorder-blocks=cache --print-after-lowering \10# RUN:   --print-only=_Z10SolveCubicddddPiPd 2>&1 | FileCheck %s11#12# Entry BB13# CHECK:      divsd   %xmm0, %xmm114# CHECK:      pushq   %rbx15# CHECK:      !CFI    $0      ; OpDefCfaOffset16# CHECK:      !CFI    $1      ; OpOffset17# CHECK:      movq    %rsi, %rbx18# CHECK:      subq    $0x70, %rsp19# CHECK:      !CFI    $2      ; OpDefCfaOffset20# CHECK:      divsd   %xmm0, %xmm221# Duplicated tail22# CHECK:      addq    $0x70, %rsp23# CHECK:      !CFI    $3      ; OpDefCfaOffset24# CHECK:      popq    %rbx25# CHECK:      !CFI    $4      ; OpDefCfaOffset26# CHECK:      retq27# CHECK:      !CFI    {{.*}}  ; OpDefCfa28# Epilogue rescheduled to the middle of the function29# CHECK:      addq    $0x70, %rsp30# CHECK:      !CFI    $6      ; OpDefCfaOffset31# CHECK:      popq    %rbx32# CHECK:      !CFI    $7      ; OpDefCfaOffset33# CHECK:      retq34# CHECK:      !CFI    {{.*}}  ; OpDefCfa35 36	.text37  .globl main38  .type main, %function39main:40# FDATA: 0 [unknown] 0 1 main 0 0 041	.cfi_startproc42LBB00:43	pushq	%r1544	.cfi_def_cfa_offset 1645	.cfi_offset %r15, -1646	movl	$0x401520, %edi47	pushq	%r1448	.cfi_def_cfa_offset 2449	.cfi_offset %r14, -2450	pushq	%r1351	.cfi_def_cfa_offset 3252	.cfi_offset %r13, -3253	pushq	%r1254	.cfi_def_cfa_offset 4055	.cfi_offset %r12, -4056	xorl	%r12d, %r12d57	pushq	%rbp58	.cfi_def_cfa_offset 4859	.cfi_offset %rbp, -4860	pushq	%rbx61	.cfi_def_cfa_offset 5662	.cfi_offset %rbx, -5663	subq	$0x98, %rsp64	.cfi_def_cfa_offset 20865	leaq	0x60(%rsp), %rbx66	leaq	0x8c(%rsp), %rbp67	callq	puts@PLT68	movsd	DATAat0x401640(%rip), %xmm369	movq	%rbx, %rsi70	movsd	DATAat0x401648(%rip), %xmm271	movq	%rbp, %rdi72	movsd	DATAat0x401650(%rip), %xmm173	movq	%rbx, %r1374	movsd	DATAat0x401658(%rip), %xmm075	callq	_Z10SolveCubicddddPiPd76	movl	$0x4015d8, %edi77	xorl	%eax, %eax78	callq	printf@PLT79LBB00_br: 	jmp	Ltmp080# FDATA: 1 main #LBB00_br# 1 main #Ltmp0# 0 081 82Ltmp1:83	movsd	(%r13), %xmm084	movl	$0x4015e3, %edi85	movl	$0x1, %eax86	addl	$0x1, %r12d87	addq	$0x8, %r1388Ltmp1_br: 	callq	printf@PLT89# FDATA: 1 main #Ltmp1_br# 1 main #Ltmp0# 0 090 91Ltmp0:92	cmpl	0x8c(%rsp), %r12d93Ltmp0_br: 	jl	Ltmp194# FDATA: 1 main #Ltmp0_br# 1 main #Ltmp1# 0 095# FDATA: 1 main #Ltmp0_br# 1 main #LFT2# 0 096 97LFT2:98	movl	$0xa, %edi99	movq	%rbx, %r13100	xorl	%r12d, %r12d101	callq	putchar@PLT102	movsd	DATAat0x401640(%rip), %xmm3103	movq	%rbx, %rsi104	movsd	DATAat0x401660(%rip), %xmm2105	movq	%rbp, %rdi106	movsd	DATAat0x401668(%rip), %xmm1107	movsd	DATAat0x401658(%rip), %xmm0108	callq	_Z10SolveCubicddddPiPd109	movl	$0x4015d8, %edi110	xorl	%eax, %eax111	callq	printf@PLT112LFT2_br: 	jmp	Ltmp2113# FDATA: 1 main #LFT2_br# 1 main #Ltmp2# 0 0114 115Ltmp3:116	movsd	(%r13), %xmm0117	movl	$0x4015e3, %edi118	movl	$0x1, %eax119	addl	$0x1, %r12d120	addq	$0x8, %r13121Ltmp3_br: 	callq	printf@PLT122# FDATA: 1 main #Ltmp3_br# 1 main #Ltmp2# 0 0123 124Ltmp2:125	cmpl	0x8c(%rsp), %r12d126Ltmp2_br: 	jl	Ltmp3127# FDATA: 1 main #Ltmp2_br# 1 main #Ltmp3# 0 0128# FDATA: 1 main #Ltmp2_br# 1 main #LFT4# 0 0129 130LFT4:131	movl	$0xa, %edi132	callq	putchar@PLT133	movsd	DATAat0x401670(%rip), %xmm3134	movq	%rbx, %rsi135	movsd	DATAat0x401678(%rip), %xmm2136	movq	%rbp, %rdi137	movsd	DATAat0x401680(%rip), %xmm1138	movsd	DATAat0x401658(%rip), %xmm0139	callq	_Z10SolveCubicddddPiPd140	movl	$0x4015d8, %edi141	xorl	%eax, %eax142	callq	printf@PLT143	movq	%rbx, %r12144	xorl	%r13d, %r13d145LFT4_br: 	jmp	Ltmp4146# FDATA: 1 main #LFT4_br# 1 main #Ltmp4# 0 0147 148Ltmp5:149	movsd	(%r12), %xmm0150	movl	$0x4015e3, %edi151	movl	$0x1, %eax152	callq	printf@PLT153	addl	$0x1, %r13d154Ltmp5_br: 	addq	$0x8, %r12155# FDATA: 1 main #Ltmp5_br# 1 main #Ltmp4# 0 0156 157Ltmp4:158	cmpl	0x8c(%rsp), %r13d159Ltmp4_br: 	jl	Ltmp5160# FDATA: 1 main #Ltmp4_br# 1 main #Ltmp5# 0 0161# FDATA: 1 main #Ltmp4_br# 1 main #LFT6# 0 0162 163LFT6:164	movl	$0xa, %edi165LFT6_br: 	callq	putchar@PLT166# FDATA: 1 main #LFT6_br# 1 main #Ltmp27# 0 0167 168Ltmp27:169	movsd	DATAat0x401658(%rip), %xmm2170	movq	%rbx, %rsi171	movsd	DATAat0x401688(%rip), %xmm3172	movq	%rbp, %rdi173	movsd	DATAat0x401690(%rip), %xmm1174	movq	%rbx, %r13175	movapd	%xmm2, %xmm0176	xorl	%r12d, %r12d177	callq	_Z10SolveCubicddddPiPd178	movl	$0x4015d8, %edi179	xorl	%eax, %eax180	callq	printf@PLT181Ltmp27_br: 	jmp	Ltmp6182# FDATA: 1 main #Ltmp27_br# 1 main #Ltmp6# 0 0183 184Ltmp7:185	movsd	(%r13), %xmm0186	movl	$0x4015e3, %edi187	movl	$0x1, %eax188	addl	$0x1, %r12d189	addq	$0x8, %r13190Ltmp7_br: 	callq	printf@PLT191# FDATA: 1 main #Ltmp7_br# 1 main #Ltmp6# 0 0192 193Ltmp6:194	cmpl	0x8c(%rsp), %r12d195Ltmp6_br: 	jl	Ltmp7196# FDATA: 1 main #Ltmp6_br# 1 main #Ltmp7# 0 0197# FDATA: 1 main #Ltmp6_br# 1 main #LFT9# 0 0198 199LFT9:200	movl	$0xa, %edi201	movq	%rbx, %r13202	xorl	%r12d, %r12d203	callq	putchar@PLT204	movsd	DATAat0x401698(%rip), %xmm3205	movq	%rbx, %rsi206	movsd	DATAat0x4016a0(%rip), %xmm2207	movq	%rbp, %rdi208	movsd	DATAat0x4016a8(%rip), %xmm1209	movsd	DATAat0x4016b0(%rip), %xmm0210	callq	_Z10SolveCubicddddPiPd211	movl	$0x4015d8, %edi212	xorl	%eax, %eax213	callq	printf@PLT214LFT9_br: 	jmp	Ltmp8215# FDATA: 1 main #LFT9_br# 1 main #Ltmp8# 0 0216 217Ltmp9:218	movsd	(%r13), %xmm0219	movl	$0x4015e3, %edi220	movl	$0x1, %eax221	addl	$0x1, %r12d222	addq	$0x8, %r13223Ltmp9_br: 	callq	printf@PLT224# FDATA: 1 main #Ltmp9_br# 1 main #Ltmp8# 0 0225 226Ltmp8:227	cmpl	0x8c(%rsp), %r12d228Ltmp8_br: 	jl	Ltmp9229# FDATA: 1 main #Ltmp8_br# 1 main #Ltmp9# 0 0230# FDATA: 1 main #Ltmp8_br# 1 main #LFT11# 0 0231 232LFT11:233	movl	$0xa, %edi234	movq	%rbx, %r13235	xorl	%r12d, %r12d236	callq	putchar@PLT237	movsd	DATAat0x4016b8(%rip), %xmm3238	movq	%rbx, %rsi239	movsd	DATAat0x4016c0(%rip), %xmm2240	movq	%rbp, %rdi241	movsd	DATAat0x4016c8(%rip), %xmm1242	movsd	DATAat0x4016d0(%rip), %xmm0243	callq	_Z10SolveCubicddddPiPd244	movl	$0x4015d8, %edi245	xorl	%eax, %eax246	callq	printf@PLT247LFT11_br: 	jmp	Ltmp10248# FDATA: 1 main #LFT11_br# 1 main #Ltmp10# 0 0249 250Ltmp11:251	movsd	(%r13), %xmm0252	movl	$0x4015e3, %edi253	movl	$0x1, %eax254	addl	$0x1, %r12d255	addq	$0x8, %r13256Ltmp11_br: 	callq	printf@PLT257# FDATA: 1 main #Ltmp11_br# 1 main #Ltmp10# 0 0258 259Ltmp10:260	cmpl	0x8c(%rsp), %r12d261Ltmp10_br: 	jl	Ltmp11262# FDATA: 1 main #Ltmp10_br# 1 main #Ltmp11# 0 0263# FDATA: 1 main #Ltmp10_br# 1 main #LFT13# 0 0264 265LFT13:266	movl	$0xa, %edi267	callq	putchar@PLT268	movsd	DATAat0x4016d8(%rip), %xmm3269	movq	%rbx, %rsi270	movsd	DATAat0x4016e0(%rip), %xmm2271	movq	%rbp, %rdi272	movsd	DATAat0x4016e8(%rip), %xmm1273	movsd	DATAat0x4016f0(%rip), %xmm0274	callq	_Z10SolveCubicddddPiPd275	movl	$0x4015d8, %edi276	xorl	%eax, %eax277	callq	printf@PLT278	movq	%rbx, %r12279	xorl	%r13d, %r13d280LFT13_br: 	jmp	Ltmp12281# FDATA: 1 main #LFT13_br# 1 main #Ltmp12# 0 0282 283Ltmp13:284	movsd	(%r12), %xmm0285	movl	$0x4015e3, %edi286	movl	$0x1, %eax287	callq	printf@PLT288	addl	$0x1, %r13d289Ltmp13_br: 	addq	$0x8, %r12290# FDATA: 1 main #Ltmp13_br# 1 main #Ltmp12# 0 0291 292Ltmp12:293	cmpl	0x8c(%rsp), %r13d294Ltmp12_br: 	jl	Ltmp13295# FDATA: 1 main #Ltmp12_br# 1 main #Ltmp13# 0 0296# FDATA: 1 main #Ltmp12_br# 1 main #LFT15# 0 0297 298LFT15:299	movl	$0xa, %edi300LFT15_br: 	callq	putchar@PLT301# FDATA: 1 main #LFT15_br# 1 main #Ltmp29# 0 0302 303Ltmp29:304	movsd	DATAat0x4016f8(%rip), %xmm3305	movq	%rbx, %rsi306	movsd	DATAat0x401700(%rip), %xmm2307	movq	%rbp, %rdi308	movsd	DATAat0x401708(%rip), %xmm1309	movq	%rbx, %r13310	movsd	DATAat0x401710(%rip), %xmm0311	xorl	%r12d, %r12d312	callq	_Z10SolveCubicddddPiPd313	movl	$0x4015d8, %edi314	xorl	%eax, %eax315	callq	printf@PLT316Ltmp29_br: 	jmp	Ltmp14317# FDATA: 1 main #Ltmp29_br# 1 main #Ltmp14# 0 0318 319Ltmp15:320	movsd	(%r13), %xmm0321	movl	$0x4015e3, %edi322	movl	$0x1, %eax323	addl	$0x1, %r12d324	addq	$0x8, %r13325Ltmp15_br: 	callq	printf@PLT326# FDATA: 1 main #Ltmp15_br# 1 main #Ltmp14# 0 0327 328Ltmp14:329	cmpl	0x8c(%rsp), %r12d330Ltmp14_br: 	jl	Ltmp15331# FDATA: 1 main #Ltmp14_br# 1 main #Ltmp15# 0 0332# FDATA: 1 main #Ltmp14_br# 1 main #LFT16# 0 0333 334LFT16:335	movl	$0xa, %edi336	movabsq	$-0x4010000000000000, %r14337	callq	putchar@PLT338	movabsq	$0x3ff0000000000000, %rsi339	movl	$0x0, 0x5c(%rsp)340LFT16_br: 	movq	%rsi, 0x50(%rsp)341# FDATA: 1 main #LFT16_br# 1 main #Ltmp21# 0 0342 343Ltmp21:344	movabsq	$0x4024000000000000, %rax345	xorl	%r15d, %r15d346Ltmp21_br: 	movq	%rax, 0x48(%rsp)347# FDATA: 1 main #Ltmp21_br# 1 main #Ltmp20# 0 0348 349Ltmp20:350	movabsq	$0x4014000000000000, %rdx351	xorl	%r13d, %r13d352Ltmp20_br: 	movq	%rdx, 0x40(%rsp)353# FDATA: 1 main #Ltmp20_br# 1 main #Ltmp19# 0 0354 355Ltmp19:356	xorl	%r12d, %r12d357Ltmp19_br: 	movq	%r14, 0x38(%rsp)358# FDATA: 1 main #Ltmp19_br# 1 main #Ltmp18# 0 0359 360Ltmp18:361	movsd	0x38(%rsp), %xmm3362	movq	%rbx, %rsi363	movsd	0x40(%rsp), %xmm2364	movq	%rbp, %rdi365	movsd	0x48(%rsp), %xmm1366	movsd	0x50(%rsp), %xmm0367	callq	_Z10SolveCubicddddPiPd368	xorl	%eax, %eax369	movl	$0x4015d8, %edi370	callq	printf@PLT371	movl	0x8c(%rsp), %ecx372	testl	%ecx, %ecx373Ltmp18_br: 	jle	Ltmp16374# FDATA: 1 main #Ltmp18_br# 1 main #Ltmp16# 0 0375# FDATA: 1 main #Ltmp18_br# 1 main #LFT17# 0 0376 377LFT17:378	movq	%rbx, %rcx379LFT17_br: 	xorl	%edx, %edx380# FDATA: 1 main #LFT17_br# 1 main #Ltmp17# 0 0381 382Ltmp17:383	movsd	(%rcx), %xmm0384	movl	$0x4015e3, %edi385	movl	$0x1, %eax386	movl	%edx, 0x20(%rsp)387	movq	%rcx, 0x30(%rsp)388	callq	printf@PLT389	movl	0x20(%rsp), %edx390	movq	0x30(%rsp), %rcx391	addl	$0x1, %edx392	addq	$0x8, %rcx393	cmpl	%edx, 0x8c(%rsp)394Ltmp17_br: 	jg	Ltmp17395# FDATA: 1 main #Ltmp17_br# 1 main #Ltmp17# 0 0396# FDATA: 1 main #Ltmp17_br# 1 main #Ltmp16# 0 0397 398Ltmp16:399	movl	$0xa, %edi400	addl	$0x1, %r12d401	callq	putchar@PLT402	movsd	0x38(%rsp), %xmm0403	cmpl	$0x9, %r12d404	subsd	DATAat0x401718(%rip), %xmm0405	movsd	%xmm0, 0x38(%rsp)406Ltmp16_br: 	jne	Ltmp18407# FDATA: 1 main #Ltmp16_br# 1 main #Ltmp18# 0 0408# FDATA: 1 main #Ltmp16_br# 1 main #LFT18# 0 0409 410LFT18:411	movsd	DATAat0x401720(%rip), %xmm0412	addl	$0x1, %r13d413	cmpl	$0x11, %r13d414	addsd	0x40(%rsp), %xmm0415	movsd	%xmm0, 0x40(%rsp)416LFT18_br: 	jne	Ltmp19417# FDATA: 1 main #LFT18_br# 1 main #Ltmp19# 0 0418# FDATA: 1 main #LFT18_br# 1 main #LFT19# 0 0419 420LFT19:421	movsd	0x48(%rsp), %xmm0422	addl	$0x1, %r15d423	cmpl	$0x28, %r15d424	subsd	DATAat0x401728(%rip), %xmm0425	movsd	%xmm0, 0x48(%rsp)426LFT19_br: 	jne	Ltmp20427# FDATA: 1 main #LFT19_br# 1 main #Ltmp20# 0 0428# FDATA: 1 main #LFT19_br# 1 main #LFT20# 0 0429 430LFT20:431	movsd	DATAat0x401658(%rip), %xmm0432	addl	$0x1, 0x5c(%rsp)433	cmpl	$0x9, 0x5c(%rsp)434	addsd	0x50(%rsp), %xmm0435	movsd	%xmm0, 0x50(%rsp)436LFT20_br: 	jne	Ltmp21437# FDATA: 1 main #LFT20_br# 1 main #Ltmp21# 0 0438# FDATA: 1 main #LFT20_br# 1 main #LFT21# 0 0439 440LFT21:441	leaq	0x80(%rsp), %r12442	movl	$0x401548, %edi443	movl	$0xc350, %ebp444	xorl	%ebx, %ebx445LFT21_br: 	callq	puts@PLT446# FDATA: 1 main #LFT21_br# 1 main #Ltmp22# 0 0447 448Ltmp22:449	movslq	%ebx, %rdi450	movq	%r12, %rsi451	callq	_Z5usqrtmP8int_sqrt452	movl	0x80(%rsp), %edx453	movl	%ebx, %esi454	xorl	%eax, %eax455	movl	$0x4015f2, %edi456	addl	$0x2, %ebx457	callq	printf@PLT458	subl	$0x1, %ebp459Ltmp22_br: 	jne	Ltmp22460# FDATA: 1 main #Ltmp22_br# 1 main #Ltmp22# 0 0461# FDATA: 1 main #Ltmp22_br# 1 main #LFT22# 0 0462 463LFT22:464	movl	$0xa, %edi465	movl	$0x3fed0169, %ebx466LFT22_br: 	callq	putchar@PLT467# FDATA: 1 main #LFT22_br# 1 main #Ltmp23# 0 0468 469Ltmp23:470	movq	%rbx, %rdi471	movq	%r12, %rsi472	callq	_Z5usqrtmP8int_sqrt473	movl	0x80(%rsp), %edx474	movq	%rbx, %rsi475	xorl	%eax, %eax476	movl	$0x401603, %edi477	addq	$0x1, %rbx478	callq	printf@PLT479	cmpq	$0x3fed4169, %rbx480Ltmp23_br: 	jne	Ltmp23481# FDATA: 1 main #Ltmp23_br# 1 main #Ltmp23# 0 0482# FDATA: 1 main #Ltmp23_br# 1 main #LFT23# 0 0483 484LFT23:485	movl	$0x401570, %edi486	xorl	%ebx, %ebx487	callq	puts@PLT488	movq	%rbx, 0x8(%rsp)489	movsd	DATAat0x401748(%rip), %xmm3490LFT23_br: 	movsd	0x8(%rsp), %xmm2491# FDATA: 1 main #LFT23_br# 1 main #Ltmp24# 0 0492 493Ltmp24:494	movsd	DATAat0x401730(%rip), %xmm1495	movl	$0x401598, %edi496	movapd	%xmm2, %xmm0497	movl	$0x2, %eax498	mulsd	%xmm2, %xmm1499	movsd	%xmm2, 0x20(%rsp)500	movsd	%xmm3, 0x10(%rsp)501	divsd	DATAat0x401738(%rip), %xmm1502	callq	printf@PLT503	movsd	0x20(%rsp), %xmm2504	movsd	0x10(%rsp), %xmm3505	addsd	DATAat0x401740(%rip), %xmm2506	ucomisd	%xmm2, %xmm3507Ltmp24_br: 	jae	Ltmp24508# FDATA: 1 main #Ltmp24_br# 1 main #Ltmp24# 0 0509# FDATA: 1 main #Ltmp24_br# 1 main #LFT24# 0 0510 511LFT24:512	movl	$0x401612, %edi513	callq	puts@PLT514	movq	%rbx, 0x8(%rsp)515	movsd	DATAat0x401758(%rip), %xmm3516LFT24_br: 	movsd	0x8(%rsp), %xmm2517# FDATA: 1 main #LFT24_br# 1 main #Ltmp25# 0 0518 519Ltmp25:520	movsd	DATAat0x401738(%rip), %xmm1521	movl	$0x4015b8, %edi522	movapd	%xmm2, %xmm0523	movl	$0x2, %eax524	mulsd	%xmm2, %xmm1525	movsd	%xmm2, 0x20(%rsp)526	movsd	%xmm3, 0x10(%rsp)527	divsd	DATAat0x401730(%rip), %xmm1528	callq	printf@PLT529	movsd	0x20(%rsp), %xmm2530	movsd	0x10(%rsp), %xmm3531	addsd	DATAat0x401750(%rip), %xmm2532	ucomisd	%xmm2, %xmm3533Ltmp25_br: 	jae	Ltmp25534# FDATA: 1 main #Ltmp25_br# 1 main #Ltmp25# 0 0535# FDATA: 1 main #Ltmp25_br# 1 main #LFT25# 0 0536 537LFT25:538	addq	$0x98, %rsp539	.cfi_def_cfa_offset 56540	xorl	%eax, %eax541	popq	%rbx542	.cfi_def_cfa_offset 48543	popq	%rbp544	.cfi_def_cfa_offset 40545	popq	%r12546	.cfi_def_cfa_offset 32547	popq	%r13548	.cfi_def_cfa_offset 24549	popq	%r14550	.cfi_def_cfa_offset 16551	popq	%r15552	.cfi_def_cfa_offset 8553	retq554	.cfi_def_cfa %rsp, 208555 556LLP0:557	cmpq	$0x1, %rdx558	movq	%rax, %rdi559LLP0_br: 	je	Ltmp26560# FDATA: 1 main #LLP0_br# 1 main #Ltmp26# 0 0561# FDATA: 1 main #LLP0_br# 1 main #Ltmp28# 0 0562 563Ltmp28:564Ltmp28_br: 	callq	_Unwind_Resume@PLT565# FDATA: 1 main #Ltmp28_br# 1 main #Ltmp26# 0 0566 567Ltmp26:568	callq	__cxa_begin_catch@PLT569	movl	$0x4015e7, %edi570	callq	puts@PLT571	callq	__cxa_end_catch@PLT572Ltmp26_br: 	jmp	Ltmp27573# FDATA: 1 main #Ltmp26_br# 1 main #Ltmp27# 0 0574 575Ltmp30:576	movq	%rax, 0x30(%rsp)577	callq	__cxa_end_catch@PLT578	movq	0x30(%rsp), %rdi579Ltmp30_br: 	jmp	Ltmp28580# FDATA: 1 main #Ltmp30_br# 1 main #Ltmp28# 0 0581 582LLP1:583	cmpq	$0x1, %rdx584	movq	%rax, %rdi585LLP1_br: 	jne	Ltmp28586# FDATA: 1 main #LLP1_br# 1 main #Ltmp28# 0 0587# FDATA: 1 main #LLP1_br# 1 main #LFT26# 0 0588 589LFT26:590	callq	__cxa_begin_catch@PLT591	movl	$0x4015e7, %edi592	callq	puts@PLT593	callq	__cxa_end_catch@PLT594LFT26_br: 	jmp	Ltmp29595# FDATA: 1 main #LFT26_br# 1 main #Ltmp29# 0 0596 597LLP2:598LLP2_br: 	jmp	Ltmp30599# FDATA: 1 main #LLP2_br# 1 main #Ltmp30# 0 0600 601	.cfi_endproc602.size main, .-main603 604.section .rodata605"DATAat0x401738":606"DATAat0x401748":607"DATAat0x401728":608"DATAat0x401718":609"DATAat0x4016f8":610"DATAat0x401690":611"DATAat0x401668":612"DATAat0x401650":613"DATAat0x401700":614"DATAat0x401698":615"DATAat0x401688":616"DATAat0x401648":617"DATAat0x401680":618"DATAat0x4016c8":619"DATAat0x401750":620"DATAat0x401678":621"DATAat0x4016c0":622"DATAat0x401758":623"DATAat0x401660":624"DATAat0x4016b0":625"DATAat0x401640":626"DATAat0x401658":627"DATAat0x401720":628"DATAat0x4016f0":629"DATAat0x401710":630"DATAat0x4016a8":631"DATAat0x401730":632"DATAat0x4016b8":633"DATAat0x401708":634"DATAat0x401670":635"DATAat0x4016a0":636"DATAat0x4016d0":637"DATAat0x4016d8":638"DATAat0x4016e0":639"DATAat0x401740":640"DATAat0x4016e8":641	.text642  .globl _Z10SolveCubicddddPiPd643  .type _Z10SolveCubicddddPiPd, %function644_Z10SolveCubicddddPiPd:645# FDATA: 0 [unknown] 0 1 _Z10SolveCubicddddPiPd 0 0 57646	.cfi_startproc647LBB01:648	divsd	%xmm0, %xmm1649	pushq	%rbx650	.cfi_def_cfa_offset 16651	.cfi_offset %rbx, -16652	movq	%rsi, %rbx653	subq	$0x70, %rsp654	.cfi_def_cfa_offset 128655	divsd	%xmm0, %xmm2656	movsd	%xmm1, 0x48(%rsp)657	fldl	0x48(%rsp)658	divsd	%xmm0, %xmm3659	movsd	%xmm2, 0x48(%rsp)660	fldl	0x48(%rsp)661	fld	%st(1)662	fmul	%st(2), %st663	movsd	%xmm3, 0x48(%rsp)664	fld	%st(1)665	fmuls	DATAat0x401760(%rip)666	faddp	%st, %st(1)667	fdivs	DATAat0x401764(%rip)668	fld	%st(2)669	fadd	%st(3), %st670	fmul	%st(3), %st671	fmul	%st(3), %st672	fld	%st(3)673	fmuls	DATAat0x401768(%rip)674	fmulp	%st, %st(3)675	faddp	%st, %st(2)676	flds	DATAat0x40176c(%rip)677	fmull	0x48(%rsp)678	faddp	%st, %st(2)679	fxch	%st(1)680	fdivs	DATAat0x401770(%rip)681	fld	%st(1)682	fmul	%st(2), %st683	fmul	%st(2), %st684	fld	%st(1)685	fmul	%st(2), %st686	fsub	%st(1), %st687	fstpl	0x68(%rsp)688	movsd	0x68(%rsp), %xmm0689	ucomisd	DATAat0x401778(%rip), %xmm0690LBB01_br: 	jbe	Ltmp31691# FDATA: 1 _Z10SolveCubicddddPiPd #LBB01_br# 1 _Z10SolveCubicddddPiPd #Ltmp31# 0 0692# FDATA: 1 _Z10SolveCubicddddPiPd #LBB01_br# 1 _Z10SolveCubicddddPiPd #LFT1# 0 0693 694LFT1:695	fstp	%st(0)696LFT1_br: 	jmp	Ltmp32697# FDATA: 1 _Z10SolveCubicddddPiPd #LFT1_br# 1 _Z10SolveCubicddddPiPd #Ltmp32# 0 0698 699Ltmp37:700Ltmp37_br: 	fstp	%st(0)701# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp37_br# 1 _Z10SolveCubicddddPiPd #Ltmp32# 0 0702 703Ltmp32:704	sqrtsd	%xmm0, %xmm1705	movl	$0x1, (%rdi)706	ucomisd	%xmm1, %xmm1707Ltmp32_br: 	jp	Ltmp33708# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp32_br# 1 _Z10SolveCubicddddPiPd #Ltmp33# 0 0709# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp32_br# 1 _Z10SolveCubicddddPiPd #LFT3# 0 0710 711LFT3:712LFT3_br: 	jne	Ltmp33713# FDATA: 1 _Z10SolveCubicddddPiPd #LFT3_br# 1 _Z10SolveCubicddddPiPd #Ltmp33# 0 0714# FDATA: 1 _Z10SolveCubicddddPiPd #LFT3_br# 1 _Z10SolveCubicddddPiPd #Ltmp36# 0 0715 716Ltmp36:717	fstl	0x68(%rsp)718	movsd	DATAat0x4017b0(%rip), %xmm2719	fstpt	0x30(%rsp)720	fxch	%st(1)721	movsd	0x68(%rsp), %xmm0722	fstpt	0x10(%rsp)723	andpd	%xmm2, %xmm0724	fstpt	0x20(%rsp)725	addsd	%xmm1, %xmm0726	movsd	DATAat0x401798(%rip), %xmm1727	callq	pow@PLT728	movsd	%xmm0, 0x8(%rsp)729	fldl	0x8(%rsp)730	fldz731	fldt	0x30(%rsp)732	fxch	%st(1)733	fucompi	%st(1), %st734	fstp	%st(0)735	fldt	0x10(%rsp)736	fldt	0x20(%rsp)737Ltmp36_br: 	ja	Ltmp34738# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp36_br# 1 _Z10SolveCubicddddPiPd #Ltmp34# 0 0739# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp36_br# 1 _Z10SolveCubicddddPiPd #LFT5# 0 0740 741LFT5:742LFT5_br: 	movsd	DATAat0x4017a0(%rip), %xmm1743# FDATA: 1 _Z10SolveCubicddddPiPd #LFT5_br# 1 _Z10SolveCubicddddPiPd #Ltmp35# 0 0744 745Ltmp35:746	fdiv	%st(2), %st747	faddp	%st, %st(2)748	fxch	%st(1)749	fstpl	0x68(%rsp)750	fdivs	DATAat0x401760(%rip)751	movsd	0x68(%rsp), %xmm0752	mulsd	%xmm1, %xmm0753	movsd	%xmm0, 0x8(%rsp)754	fldl	0x8(%rsp)755	faddp	%st, %st(1)756	fstpl	(%rbx)757	addq	$0x70, %rsp758	.cfi_def_cfa_offset 16759	popq	%rbx760	.cfi_def_cfa_offset 8761	retq762	.cfi_def_cfa %rsp, 128763 764Ltmp34:765	movsd	DATAat0x401658(%rip), %xmm1766Ltmp34_br: 	jmp	Ltmp35767# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp34_br# 1 _Z10SolveCubicddddPiPd #Ltmp35# 0 0768 769Ltmp33:770	fstpt	0x30(%rsp)771	fxch	%st(1)772	fstpt	0x10(%rsp)773	fstpt	0x20(%rsp)774	callq	sqrt@PLT775	movapd	%xmm0, %xmm1776	fldt	0x20(%rsp)777	fldt	0x10(%rsp)778	fldt	0x30(%rsp)779	fxch	%st(1)780	fxch	%st(2)781	fxch	%st(1)782Ltmp33_br: 	jmp	Ltmp36783# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp33_br# 1 _Z10SolveCubicddddPiPd #Ltmp36# 0 0784 785Ltmp31:786Ltmp31_br: 	jp	Ltmp37787# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp31_br# 1 _Z10SolveCubicddddPiPd #Ltmp37# 0 0788# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp31_br# 1 _Z10SolveCubicddddPiPd #LFT7# 0 0789 790LFT7:791	fstpl	0x68(%rsp)792	movl	$0x3, (%rdi)793	movsd	0x68(%rsp), %xmm1794	sqrtsd	%xmm1, %xmm0795	ucomisd	%xmm0, %xmm0796LFT7_br: 	jp	Ltmp38797# FDATA: 1 _Z10SolveCubicddddPiPd #LFT7_br# 1 _Z10SolveCubicddddPiPd #Ltmp38# 0 0798# FDATA: 1 _Z10SolveCubicddddPiPd #LFT7_br# 1 _Z10SolveCubicddddPiPd #LFT8# 0 0799 800LFT8:801LFT8_br: 	jne	Ltmp38802# FDATA: 1 _Z10SolveCubicddddPiPd #LFT8_br# 1 _Z10SolveCubicddddPiPd #Ltmp38# 0 0803# FDATA: 1 _Z10SolveCubicddddPiPd #LFT8_br# 1 _Z10SolveCubicddddPiPd #Ltmp47# 0 0804 805Ltmp47:806	movsd	%xmm0, 0x8(%rsp)807	fldl	0x8(%rsp)808	fdivrp	%st, %st(1)809	fstpl	0x68(%rsp)810	fxch	%st(1)811	fstpt	0x10(%rsp)812	movsd	0x68(%rsp), %xmm0813	fstpt	0x20(%rsp)814	callq	acos@PLT815	movsd	%xmm0, 0x48(%rsp)816	fldt	0x20(%rsp)817	fstpl	0x60(%rsp)818	sqrtsd	0x60(%rsp), %xmm1819	movapd	%xmm1, %xmm2820	ucomisd	%xmm1, %xmm1821	fldt	0x10(%rsp)822Ltmp47_br: 	jp	Ltmp39823# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp47_br# 1 _Z10SolveCubicddddPiPd #Ltmp39# 0 0824# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp47_br# 1 _Z10SolveCubicddddPiPd #LFT10# 0 0825 826LFT10:827LFT10_br: 	jne	Ltmp40828# FDATA: 1 _Z10SolveCubicddddPiPd #LFT10_br# 1 _Z10SolveCubicddddPiPd #Ltmp40# 0 0829# FDATA: 1 _Z10SolveCubicddddPiPd #LFT10_br# 1 _Z10SolveCubicddddPiPd #Ltmp46# 0 0830 831Ltmp46:832	divsd	DATAat0x4016b0(%rip), %xmm0833	movsd	%xmm1, 0x20(%rsp)834	movsd	%xmm2, 0x30(%rsp)835	fstpt	0x10(%rsp)836	callq	cos@PLT837	movsd	0x30(%rsp), %xmm2838	movsd	0x20(%rsp), %xmm1839	fldt	0x10(%rsp)840	ucomisd	%xmm1, %xmm1841	mulsd	DATAat0x401780(%rip), %xmm2842	fdivs	DATAat0x401760(%rip)843	mulsd	%xmm0, %xmm2844	movsd	%xmm2, 0x8(%rsp)845	movapd	%xmm1, %xmm2846	fld	%st(0)847	fstpt	0x50(%rsp)848	fldl	0x8(%rsp)849	faddp	%st, %st(1)850	fstpl	(%rbx)851Ltmp46_br: 	jp	Ltmp41852# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp46_br# 1 _Z10SolveCubicddddPiPd #Ltmp41# 0 0853# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp46_br# 1 _Z10SolveCubicddddPiPd #LFT12# 0 0854 855LFT12:856LFT12_br: 	jne	Ltmp41857# FDATA: 1 _Z10SolveCubicddddPiPd #LFT12_br# 1 _Z10SolveCubicddddPiPd #Ltmp41# 0 0858# FDATA: 1 _Z10SolveCubicddddPiPd #LFT12_br# 1 _Z10SolveCubicddddPiPd #Ltmp44# 0 0859 860Ltmp44:861	movsd	0x48(%rsp), %xmm0862	movsd	%xmm1, 0x20(%rsp)863	addsd	DATAat0x401788(%rip), %xmm0864	movsd	%xmm2, 0x30(%rsp)865	divsd	DATAat0x4016b0(%rip), %xmm0866	callq	cos@PLT867	movsd	0x30(%rsp), %xmm2868	fldt	0x50(%rsp)869	mulsd	DATAat0x401780(%rip), %xmm2870	movsd	0x20(%rsp), %xmm1871	ucomisd	%xmm1, %xmm1872	mulsd	%xmm0, %xmm2873	movsd	%xmm2, 0x8(%rsp)874	fldl	0x8(%rsp)875	faddp	%st, %st(1)876	fstpl	0x8(%rbx)877Ltmp44_br: 	jp	Ltmp42878# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp44_br# 1 _Z10SolveCubicddddPiPd #Ltmp42# 0 0879# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp44_br# 1 _Z10SolveCubicddddPiPd #LFT14# 0 0880 881LFT14:882LFT14_br: 	jne	Ltmp42883# FDATA: 1 _Z10SolveCubicddddPiPd #LFT14_br# 1 _Z10SolveCubicddddPiPd #Ltmp42# 0 0884# FDATA: 1 _Z10SolveCubicddddPiPd #LFT14_br# 1 _Z10SolveCubicddddPiPd #Ltmp43# 0 0885 886Ltmp43:887	movsd	0x48(%rsp), %xmm0888	movsd	%xmm1, 0x20(%rsp)889	addsd	DATAat0x401790(%rip), %xmm0890	divsd	DATAat0x4016b0(%rip), %xmm0891	callq	cos@PLT892	fldt	0x50(%rsp)893	movsd	DATAat0x401780(%rip), %xmm2894	movsd	0x20(%rsp), %xmm1895	mulsd	%xmm1, %xmm2896	mulsd	%xmm0, %xmm2897	movsd	%xmm2, 0x8(%rsp)898	fldl	0x8(%rsp)899	faddp	%st, %st(1)900	fstpl	0x10(%rbx)901	addq	$0x70, %rsp902	.cfi_def_cfa_offset 16903	popq	%rbx904	.cfi_def_cfa_offset 8905	retq906	.cfi_def_cfa %rsp, 128907 908Ltmp42:909	movsd	0x60(%rsp), %xmm0910	callq	sqrt@PLT911	movapd	%xmm0, %xmm1912Ltmp42_br: 	jmp	Ltmp43913# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp42_br# 1 _Z10SolveCubicddddPiPd #Ltmp43# 0 0914 915Ltmp41:916	movsd	0x60(%rsp), %xmm0917	callq	sqrt@PLT918	movsd	0x20(%rsp), %xmm1919	movapd	%xmm0, %xmm2920Ltmp41_br: 	jmp	Ltmp44921# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp41_br# 1 _Z10SolveCubicddddPiPd #Ltmp44# 0 0922 923Ltmp39:924	fstp	%st(0)925Ltmp39_br: 	jmp	Ltmp45926# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp39_br# 1 _Z10SolveCubicddddPiPd #Ltmp45# 0 0927 928Ltmp40:929Ltmp40_br: 	fstp	%st(0)930# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp40_br# 1 _Z10SolveCubicddddPiPd #Ltmp45# 0 0931 932Ltmp45:933	movsd	0x60(%rsp), %xmm0934	movsd	%xmm1, 0x20(%rsp)935	callq	sqrt@PLT936	movsd	0x20(%rsp), %xmm1937	movapd	%xmm0, %xmm2938	movsd	0x48(%rsp), %xmm0939	fldt	0x10(%rsp)940Ltmp45_br: 	jmp	Ltmp46941# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp45_br# 1 _Z10SolveCubicddddPiPd #Ltmp46# 0 0942 943Ltmp38:944	fstpt	0x30(%rsp)945	fxch	%st(1)946	movapd	%xmm1, %xmm0947	fstpt	0x10(%rsp)948	fstpt	0x20(%rsp)949	callq	sqrt@PLT950	fldt	0x20(%rsp)951	fldt	0x10(%rsp)952	fldt	0x30(%rsp)953	fxch	%st(1)954	fxch	%st(2)955	fxch	%st(1)956Ltmp38_br: 	jmp	Ltmp47957# FDATA: 1 _Z10SolveCubicddddPiPd #Ltmp38_br# 1 _Z10SolveCubicddddPiPd #Ltmp47# 0 0958 959	.cfi_endproc960.size _Z10SolveCubicddddPiPd, .-_Z10SolveCubicddddPiPd961.section .rodata962"DATAat0x401788":963"DATAat0x401790":964"DATAat0x401780":965"DATAat0x401770":966"DATAat0x40176c":967"DATAat0x401760":968"DATAat0x401768":969"DATAat0x401778":970"DATAat0x401764":971"DATAat0x401798":972"DATAat0x4017b0":973"DATAat0x4017a0":974 975	.text976  .globl _Z5usqrtmP8int_sqrt977  .type _Z5usqrtmP8int_sqrt, %function978_Z5usqrtmP8int_sqrt:979# FDATA: 0 [unknown] 0 1 _Z5usqrtmP8int_sqrt 0 0 6980	.cfi_startproc981LBB02:982	xorl	%r9d, %r9d983	xorl	%eax, %eax984LBB02_br: 	xorl	%ecx, %ecx985# FDATA: 1 _Z5usqrtmP8int_sqrt #LBB02_br# 1 _Z5usqrtmP8int_sqrt #Ltmp48# 0 0986 987Ltmp48:988	movq	%rdi, %rdx989	leaq	(%rax,%rax), %r10990	leaq	0x1(,%rax,4), %r8991	andl	$0xc0000000, %edx992	shlq	$0x2, %rdi993	shrq	$0x1e, %rdx994	leaq	0x1(%r10), %rax995	leaq	(%rdx,%rcx,4), %rdx996	movq	%rdx, %rcx997	subq	%r8, %rcx998	cmpq	%r8, %rdx999	cmovbq	%rdx, %rcx1000	cmovbq	%r10, %rax1001	addl	$0x1, %r9d1002	cmpl	$0x20, %r9d1003Ltmp48_br: 	jne	Ltmp481004# FDATA: 1 _Z5usqrtmP8int_sqrt #Ltmp48_br# 1 _Z5usqrtmP8int_sqrt #Ltmp48# 0 01005# FDATA: 1 _Z5usqrtmP8int_sqrt #Ltmp48_br# 1 _Z5usqrtmP8int_sqrt #LFT0# 0 01006 1007LFT0:1008	movq	%rax, (%rsi)1009	retq1010 1011	.cfi_endproc1012.size _Z5usqrtmP8int_sqrt, .-_Z5usqrtmP8int_sqrt1013