Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/sibcall.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children | c2174574ed3a |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
285 | 285 |
286 ; X32ABI-LABEL: t14: | 286 ; X32ABI-LABEL: t14: |
287 ; X32ABI: movl 20(%edi), %edi | 287 ; X32ABI: movl 20(%edi), %edi |
288 ; X32ABI-NEXT: movl 12(%edi), %eax | 288 ; X32ABI-NEXT: movl 12(%edi), %eax |
289 ; X32ABI-NEXT: jmpq *%rax | 289 ; X32ABI-NEXT: jmpq *%rax |
290 %0 = getelementptr inbounds %struct.__block_literal_2* %.block_descriptor, i64 0, i32 5 ; <void ()**> [#uses=1] | 290 %0 = getelementptr inbounds %struct.__block_literal_2, %struct.__block_literal_2* %.block_descriptor, i64 0, i32 5 ; <void ()**> [#uses=1] |
291 %1 = load void ()** %0, align 8 ; <void ()*> [#uses=2] | 291 %1 = load void ()*, void ()** %0, align 8 ; <void ()*> [#uses=2] |
292 %2 = bitcast void ()* %1 to %struct.__block_literal_1* ; <%struct.__block_literal_1*> [#uses=1] | 292 %2 = bitcast void ()* %1 to %struct.__block_literal_1* ; <%struct.__block_literal_1*> [#uses=1] |
293 %3 = getelementptr inbounds %struct.__block_literal_1* %2, i64 0, i32 3 ; <i8**> [#uses=1] | 293 %3 = getelementptr inbounds %struct.__block_literal_1, %struct.__block_literal_1* %2, i64 0, i32 3 ; <i8**> [#uses=1] |
294 %4 = load i8** %3, align 8 ; <i8*> [#uses=1] | 294 %4 = load i8*, i8** %3, align 8 ; <i8*> [#uses=1] |
295 %5 = bitcast i8* %4 to void (i8*)* ; <void (i8*)*> [#uses=1] | 295 %5 = bitcast i8* %4 to void (i8*)* ; <void (i8*)*> [#uses=1] |
296 %6 = bitcast void ()* %1 to i8* ; <i8*> [#uses=1] | 296 %6 = bitcast void ()* %1 to i8* ; <i8*> [#uses=1] |
297 tail call void %5(i8* %6) nounwind | 297 tail call void %5(i8* %6) nounwind |
298 ret void | 298 ret void |
299 } | 299 } |
347 ; 64: jmp {{_?}}bar5 | 347 ; 64: jmp {{_?}}bar5 |
348 | 348 |
349 ; X32ABI-LABEL: t17: | 349 ; X32ABI-LABEL: t17: |
350 ; X32ABI: xorl %eax, %eax | 350 ; X32ABI: xorl %eax, %eax |
351 ; X32ABI: jmp {{_?}}bar5 | 351 ; X32ABI: jmp {{_?}}bar5 |
352 tail call void (...)* @bar5() nounwind | 352 tail call void (...) @bar5() nounwind |
353 ret void | 353 ret void |
354 } | 354 } |
355 | 355 |
356 declare void @bar5(...) | 356 declare void @bar5(...) |
357 | 357 |
367 ; 64: jmp {{_?}}bar6 | 367 ; 64: jmp {{_?}}bar6 |
368 | 368 |
369 ; X32ABI-LABEL: t18: | 369 ; X32ABI-LABEL: t18: |
370 ; X32ABI: xorl %eax, %eax | 370 ; X32ABI: xorl %eax, %eax |
371 ; X32ABI: jmp {{_?}}bar6 | 371 ; X32ABI: jmp {{_?}}bar6 |
372 %0 = tail call double (...)* @bar6() nounwind | 372 %0 = tail call double (...) @bar6() nounwind |
373 ret void | 373 ret void |
374 } | 374 } |
375 | 375 |
376 declare double @bar6(...) | 376 declare double @bar6(...) |
377 | 377 |