mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-29 13:29:28 +00:00
integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
1446 lines
81 KiB
LLVM
1446 lines
81 KiB
LLVM
; RUN: llvm-as < %s | opt -prune-eh -inline -print-callgraph \
|
|
; RUN: -disable-output |& \
|
|
; RUN: grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
|
|
%struct.FRAME.ce3806g = type { %struct.string___XUB, %struct.string___XUB, %struct.string___XUB, %struct.string___XUB }
|
|
%struct.FRAME.ce3806g__fxio__put__4 = type { i32, i32, i32, %struct.system__file_control_block__pstring*, i32, i32, i8 }
|
|
%struct.RETURN = type { i8, i32 }
|
|
%struct.ada__streams__root_stream_type = type { %struct.ada__tags__dispatch_table* }
|
|
%struct.ada__tags__dispatch_table = type { [1 x i32] }
|
|
%struct.ada__tags__select_specific_data = type { i32, %struct.ada__tags__select_specific_data_element }
|
|
%struct.ada__tags__select_specific_data_element = type { i32, i8 }
|
|
%struct.ada__tags__type_specific_data = type { i32, i32, [2147483647 x i8]*, [2147483647 x i8]*, %struct.ada__tags__dispatch_table*, i8, i32, i32, i32, i32, [2 x %struct.ada__tags__dispatch_table*] }
|
|
%struct.ada__text_io__text_afcb = type { %struct.system__file_control_block__afcb, i32, i32, i32, i32, i32, %struct.ada__text_io__text_afcb*, i8, i8 }
|
|
%struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
|
|
%struct.long_long_float___PAD = type { x86_fp80, [1 x i32] }
|
|
%struct.string___XUB = type { i32, i32 }
|
|
%struct.system__file_control_block__afcb = type { %struct.ada__streams__root_stream_type, i32, %struct.system__file_control_block__pstring, %struct.system__file_control_block__pstring, i8, i8, i8, i8, i8, i8, i8, %struct.system__file_control_block__afcb*, %struct.system__file_control_block__afcb* }
|
|
%struct.system__file_control_block__pstring = type { i8*, %struct.string___XUB* }
|
|
%struct.system__finalization_implementation__limited_record_controller = type { %struct.system__finalization_root__root_controlled, %struct.system__finalization_root__root_controlled* }
|
|
%struct.system__finalization_implementation__record_controller = type { %struct.system__finalization_implementation__limited_record_controller, i32 }
|
|
%struct.system__finalization_root__empty_root_controlled = type { %struct.ada__tags__dispatch_table* }
|
|
%struct.system__finalization_root__root_controlled = type { %struct.ada__streams__root_stream_type, %struct.system__finalization_root__root_controlled*, %struct.system__finalization_root__root_controlled* }
|
|
%struct.system__secondary_stack__mark_id = type { i32, i32 }
|
|
%struct.system__standard_library__exception_data = type { i8, i8, i32, i32, %struct.system__standard_library__exception_data*, i32, void ()* }
|
|
@.str = internal constant [12 x i8] c"system.ads\00\00" ; <[12 x i8]*> [#uses=1]
|
|
@.str1 = internal constant [14 x i8] c"a-tifiio.adb\00\00" ; <[14 x i8]*> [#uses=1]
|
|
@system__soft_links__abort_undefer = external global void ()* ; <void ()**> [#uses=6]
|
|
@.str2 = internal constant [47 x i8] c"a-tifiio.adb:327 instantiated at ce3806g.adb:52" ; <[47 x i8]*> [#uses=1]
|
|
@C.354.2200 = internal constant %struct.string___XUB { i32 1, i32 47 } ; <%struct.string___XUB*> [#uses=1]
|
|
@ada__io_exceptions__data_error = external global %struct.exception ; <%struct.exception*> [#uses=1]
|
|
@constraint_error = external global %struct.exception ; <%struct.exception*> [#uses=2]
|
|
@__gnat_all_others_value = external constant i32 ; <i32*> [#uses=21]
|
|
@.str3 = internal constant [10 x i8] c"0123456789" ; <[10 x i8]*> [#uses=2]
|
|
@ada__text_io__current_out = external global %struct.ada__text_io__text_afcb* ; <%struct.ada__text_io__text_afcb**> [#uses=1]
|
|
@.str4 = internal constant [126 x i8] c"CHECK THAT FIXED_IO PUT OPERATES ON FILES OF MODE OUT_FILE AND IF NO FILE IS SPECIFIED THE CURRENT DEFAULT OUTPUT FILE IS USED" ; <[126 x i8]*> [#uses=1]
|
|
@C.131.1559 = internal constant %struct.string___XUB { i32 1, i32 126 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str5 = internal constant [7 x i8] c"CE3806G" ; <[7 x i8]*> [#uses=1]
|
|
@C.132.1562 = internal constant %struct.string___XUB { i32 1, i32 7 } ; <%struct.string___XUB*> [#uses=1]
|
|
@incompleteF.1176.b = internal global i1 false ; <i1*> [#uses=2]
|
|
@incomplete.1177 = internal global %struct.exception { i8 0, i8 65, i32 23, i8* getelementptr ([23 x i8]* @incompleteE.1174, i32 0, i32 0), i8* null, i32 0, i8* null } ; <%struct.exception*> [#uses=15]
|
|
@incompleteE.1174 = internal global [23 x i8] c"CE3806G.B_1.INCOMPLETE\00" ; <[23 x i8]*> [#uses=1]
|
|
@.str6 = internal constant [0 x i8] zeroinitializer ; <[0 x i8]*> [#uses=1]
|
|
@C.136.1568 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.137.1571 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str7 = internal constant [50 x i8] c"USE_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE" ; <[50 x i8]*> [#uses=1]
|
|
@C.139.1577 = internal constant %struct.string___XUB { i32 1, i32 50 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str8 = internal constant [14 x i8] c"ce3806g.adb:65" ; <[14 x i8]*> [#uses=1]
|
|
@C.140.1580 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str9 = internal constant [51 x i8] c"NAME_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE" ; <[51 x i8]*> [#uses=1]
|
|
@C.143.1585 = internal constant %struct.string___XUB { i32 1, i32 51 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str10 = internal constant [14 x i8] c"ce3806g.adb:69" ; <[14 x i8]*> [#uses=1]
|
|
@C.144.1588 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.146.1592 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.147.1595 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.153.1609 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.154.1612 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str12 = internal constant [47 x i8] c"USE_ERROR RAISED ON TEXT OPEN WITH IN_FILE MODE" ; <[47 x i8]*> [#uses=1]
|
|
@C.156.1618 = internal constant %struct.string___XUB { i32 1, i32 47 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str13 = internal constant [14 x i8] c"ce3806g.adb:88" ; <[14 x i8]*> [#uses=1]
|
|
@C.157.1621 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.159.1627 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@C.160.1630 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str14 = internal constant [33 x i8] c"VALUE INCORRECT - FIXED FROM FILE" ; <[33 x i8]*> [#uses=1]
|
|
@C.162.1637 = internal constant %struct.string___XUB { i32 1, i32 33 } ; <%struct.string___XUB*> [#uses=1]
|
|
@.str15 = internal constant [36 x i8] c"VALUE INCORRECT - FIXED FROM DEFAULT" ; <[36 x i8]*> [#uses=1]
|
|
@C.164.1642 = internal constant %struct.string___XUB { i32 1, i32 36 } ; <%struct.string___XUB*> [#uses=1]
|
|
@ada__io_exceptions__use_error = external global %struct.exception ; <%struct.exception*> [#uses=4]
|
|
@ada__io_exceptions__name_error = external global %struct.exception ; <%struct.exception*> [#uses=2]
|
|
|
|
define void @_ada_ce3806g() {
|
|
entry:
|
|
%0 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
|
|
%1 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
|
|
%2 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
|
|
%3 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
|
|
%FRAME.356 = alloca %struct.FRAME.ce3806g ; <%struct.FRAME.ce3806g*> [#uses=20]
|
|
call void @report__test( i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), %struct.string___XUB* @C.132.1562, i8* getelementptr ([126 x i8]* @.str4, i32 0, i32 0), %struct.string___XUB* @C.131.1559 )
|
|
%4 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3 ; <%struct.string___XUB*> [#uses=1]
|
|
call void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %4 )
|
|
%.b = load i1* @incompleteF.1176.b ; <i1> [#uses=1]
|
|
br i1 %.b, label %bb11, label %bb
|
|
|
|
bb: ; preds = %entry
|
|
invoke void @system__exception_table__register_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*) )
|
|
to label %invcont unwind label %lpad
|
|
|
|
invcont: ; preds = %bb
|
|
store i1 true, i1* @incompleteF.1176.b
|
|
br label %bb11
|
|
|
|
bb11: ; preds = %entry, %invcont
|
|
%5 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2 ; <%struct.string___XUB*> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %5 )
|
|
to label %invcont12 unwind label %lpad228
|
|
|
|
invcont12: ; preds = %bb11
|
|
invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %3, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.137.1571 )
|
|
to label %invcont17 unwind label %lpad232
|
|
|
|
invcont17: ; preds = %invcont12
|
|
%elt18 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%val19 = load i8** %elt18, align 8 ; <i8*> [#uses=1]
|
|
%elt20 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
%val21 = load %struct.string___XUB** %elt20 ; <%struct.string___XUB*> [#uses=1]
|
|
%6 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val19, %struct.string___XUB* %val21, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.136.1568 )
|
|
to label %invcont26 unwind label %lpad232 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
|
|
|
|
invcont26: ; preds = %invcont17
|
|
%7 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0 ; <i32*> [#uses=1]
|
|
%8 = load i32* %7, align 8 ; <i32> [#uses=1]
|
|
%9 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1 ; <i32*> [#uses=1]
|
|
%10 = load i32* %9, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %8, i32 %10 )
|
|
to label %bb73 unwind label %lpad228
|
|
|
|
bb32: ; preds = %lpad232
|
|
call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
|
|
%11 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %11( )
|
|
to label %invcont33 unwind label %lpad240
|
|
|
|
invcont33: ; preds = %bb32
|
|
invoke void @report__not_applicable( i8* getelementptr ([50 x i8]* @.str7, i32 0, i32 0), %struct.string___XUB* @C.139.1577 )
|
|
to label %invcont38 unwind label %lpad240
|
|
|
|
invcont38: ; preds = %invcont33
|
|
invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str8, i32 0, i32 0), %struct.string___XUB* @C.140.1580 ) noreturn
|
|
to label %invcont43 unwind label %lpad240
|
|
|
|
invcont43: ; preds = %invcont38
|
|
unreachable
|
|
|
|
bb47: ; preds = %ppad291
|
|
call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
|
|
%12 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %12( )
|
|
to label %invcont49 unwind label %lpad248
|
|
|
|
invcont49: ; preds = %bb47
|
|
invoke void @report__not_applicable( i8* getelementptr ([51 x i8]* @.str9, i32 0, i32 0), %struct.string___XUB* @C.143.1585 )
|
|
to label %invcont54 unwind label %lpad248
|
|
|
|
invcont54: ; preds = %invcont49
|
|
invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str10, i32 0, i32 0), %struct.string___XUB* @C.144.1588 ) noreturn
|
|
to label %invcont59 unwind label %lpad248
|
|
|
|
invcont59: ; preds = %invcont54
|
|
unreachable
|
|
|
|
bb73: ; preds = %invcont26
|
|
invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %2, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.147.1595 )
|
|
to label %invcont78 unwind label %lpad228
|
|
|
|
invcont78: ; preds = %bb73
|
|
%elt79 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%val80 = load i8** %elt79, align 8 ; <i8*> [#uses=1]
|
|
%elt81 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
%val82 = load %struct.string___XUB** %elt81 ; <%struct.string___XUB*> [#uses=1]
|
|
%13 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val80, %struct.string___XUB* %val82, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.146.1592 )
|
|
to label %invcont87 unwind label %lpad228 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
|
|
|
|
invcont87: ; preds = %invcont78
|
|
invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %13 )
|
|
to label %invcont88 unwind label %lpad228
|
|
|
|
invcont88: ; preds = %invcont87
|
|
%14 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1 ; <%struct.string___XUB*> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %14 )
|
|
to label %invcont89 unwind label %lpad228
|
|
|
|
invcont89: ; preds = %invcont88
|
|
invoke fastcc void @ce3806g__fxio__put.1149( %struct.ada__text_io__text_afcb* %6 )
|
|
to label %bb94 unwind label %lpad252
|
|
|
|
bb94: ; preds = %invcont89
|
|
invoke fastcc void @ce3806g__fxio__put__2.1155( )
|
|
to label %invcont95 unwind label %lpad252
|
|
|
|
invcont95: ; preds = %bb94
|
|
%15 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %6 )
|
|
to label %invcont96 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
|
|
|
|
invcont96: ; preds = %invcont95
|
|
%16 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0 ; <%struct.string___XUB*> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %16 )
|
|
to label %invcont97 unwind label %lpad252
|
|
|
|
invcont97: ; preds = %invcont96
|
|
invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %1, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.154.1612 )
|
|
to label %invcont102 unwind label %lpad256
|
|
|
|
invcont102: ; preds = %invcont97
|
|
%elt103 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%val104 = load i8** %elt103, align 8 ; <i8*> [#uses=1]
|
|
%elt105 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
%val106 = load %struct.string___XUB** %elt105 ; <%struct.string___XUB*> [#uses=1]
|
|
%17 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %15, i8 0, i8* %val104, %struct.string___XUB* %val106, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.153.1609 )
|
|
to label %invcont111 unwind label %lpad256 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
|
|
|
|
invcont111: ; preds = %invcont102
|
|
%18 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%19 = load i32* %18, align 8 ; <i32> [#uses=1]
|
|
%20 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%21 = load i32* %20, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %19, i32 %21 )
|
|
to label %bb143 unwind label %lpad252
|
|
|
|
bb117: ; preds = %lpad256
|
|
call void @__gnat_begin_handler( i8* %eh_ptr257 ) nounwind
|
|
%22 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %22( )
|
|
to label %invcont119 unwind label %lpad264
|
|
|
|
invcont119: ; preds = %bb117
|
|
invoke void @report__not_applicable( i8* getelementptr ([47 x i8]* @.str12, i32 0, i32 0), %struct.string___XUB* @C.156.1618 )
|
|
to label %invcont124 unwind label %lpad264
|
|
|
|
invcont124: ; preds = %invcont119
|
|
invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str13, i32 0, i32 0), %struct.string___XUB* @C.157.1621 ) noreturn
|
|
to label %invcont129 unwind label %lpad264
|
|
|
|
invcont129: ; preds = %invcont124
|
|
unreachable
|
|
|
|
bb143: ; preds = %invcont111
|
|
%23 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__standard_output( )
|
|
to label %invcont144 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
|
|
|
|
invcont144: ; preds = %bb143
|
|
invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %23 )
|
|
to label %invcont145 unwind label %lpad252
|
|
|
|
invcont145: ; preds = %invcont144
|
|
%24 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %13 )
|
|
to label %invcont146 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
|
|
|
|
invcont146: ; preds = %invcont145
|
|
invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %0, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.160.1630 )
|
|
to label %invcont151 unwind label %lpad252
|
|
|
|
invcont151: ; preds = %invcont146
|
|
%elt152 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%val153 = load i8** %elt152, align 8 ; <i8*> [#uses=1]
|
|
%elt154 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
%val155 = load %struct.string___XUB** %elt154 ; <%struct.string___XUB*> [#uses=1]
|
|
%25 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %24, i8 0, i8* %val153, %struct.string___XUB* %val155, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.159.1627 )
|
|
to label %invcont160 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
|
|
|
|
invcont160: ; preds = %invcont151
|
|
%26 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %17 ) signext
|
|
to label %invcont161 unwind label %lpad252 ; <i8> [#uses=1]
|
|
|
|
invcont161: ; preds = %invcont160
|
|
%27 = icmp eq i8 %26, -3 ; <i1> [#uses=1]
|
|
br i1 %27, label %bb169, label %bb163
|
|
|
|
bb163: ; preds = %invcont161
|
|
invoke void @report__failed( i8* getelementptr ([33 x i8]* @.str14, i32 0, i32 0), %struct.string___XUB* @C.162.1637 )
|
|
to label %bb169 unwind label %lpad252
|
|
|
|
bb169: ; preds = %invcont161, %bb163
|
|
%28 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %25 ) signext
|
|
to label %invcont170 unwind label %lpad252 ; <i8> [#uses=1]
|
|
|
|
invcont170: ; preds = %bb169
|
|
%29 = icmp eq i8 %28, -1 ; <i1> [#uses=1]
|
|
br i1 %29, label %bb187, label %bb172
|
|
|
|
bb172: ; preds = %invcont170
|
|
invoke void @report__failed( i8* getelementptr ([36 x i8]* @.str15, i32 0, i32 0), %struct.string___XUB* @C.164.1642 )
|
|
to label %bb187 unwind label %lpad252
|
|
|
|
bb187: ; preds = %invcont170, %bb172
|
|
%30 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
|
|
%31 = load i32* %30, align 8 ; <i32> [#uses=1]
|
|
%32 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1 ; <i32*> [#uses=1]
|
|
%33 = load i32* %32, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %31, i32 %33 )
|
|
to label %bb193 unwind label %lpad228
|
|
|
|
bb193: ; preds = %bb187
|
|
%34 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %17 )
|
|
to label %invcont194 unwind label %lpad268 ; <%struct.ada__text_io__text_afcb*> [#uses=0]
|
|
|
|
invcont194: ; preds = %bb193
|
|
%35 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %25 )
|
|
to label %bb221 unwind label %lpad268 ; <%struct.ada__text_io__text_afcb*> [#uses=0]
|
|
|
|
bb196: ; preds = %lpad268
|
|
call void @__gnat_begin_handler( i8* %eh_ptr269 ) nounwind
|
|
%36 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %36( )
|
|
to label %bb203 unwind label %lpad276
|
|
|
|
bb203: ; preds = %bb196
|
|
invoke void @__gnat_end_handler( i8* %eh_ptr269 )
|
|
to label %bb221 unwind label %lpad272
|
|
|
|
bb205: ; preds = %ppad304
|
|
call void @__gnat_begin_handler( i8* %eh_exception.1 ) nounwind
|
|
%37 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %37( )
|
|
to label %bb212 unwind label %lpad284
|
|
|
|
bb212: ; preds = %bb205
|
|
invoke void @__gnat_end_handler( i8* %eh_exception.1 )
|
|
to label %bb221 unwind label %lpad280
|
|
|
|
bb221: ; preds = %invcont194, %bb212, %bb203
|
|
%38 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0 ; <i32*> [#uses=1]
|
|
%39 = load i32* %38, align 8 ; <i32> [#uses=1]
|
|
%40 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1 ; <i32*> [#uses=1]
|
|
%41 = load i32* %40, align 4 ; <i32> [#uses=1]
|
|
call void @system__secondary_stack__ss_release( i32 %39, i32 %41 )
|
|
call void @report__result( )
|
|
ret void
|
|
|
|
lpad: ; preds = %bb
|
|
%eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select227 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
br label %ppad
|
|
|
|
lpad228: ; preds = %bb187, %ppad294, %invcont88, %invcont87, %invcont78, %bb73, %ppad288, %invcont26, %bb11
|
|
%eh_ptr229 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select231 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr229, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad304
|
|
|
|
lpad232: ; preds = %invcont17, %invcont12
|
|
%eh_ptr233 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=6]
|
|
%eh_select235 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr233, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @ada__io_exceptions__name_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=3]
|
|
%eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%42 = icmp eq i32 %eh_select235, %eh_typeid ; <i1> [#uses=1]
|
|
br i1 %42, label %bb32, label %ppad291
|
|
|
|
lpad236: ; preds = %lpad240
|
|
%eh_ptr237 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select239 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr237, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad288
|
|
|
|
lpad240: ; preds = %invcont38, %invcont33, %bb32
|
|
%eh_ptr241 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select243 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr241, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
invoke void @__gnat_end_handler( i8* %eh_ptr233 )
|
|
to label %ppad288 unwind label %lpad236
|
|
|
|
lpad244: ; preds = %lpad248
|
|
%eh_ptr245 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select247 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr245, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad288
|
|
|
|
lpad248: ; preds = %invcont54, %invcont49, %bb47
|
|
%eh_ptr249 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select251 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr249, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
invoke void @__gnat_end_handler( i8* %eh_ptr233 )
|
|
to label %ppad288 unwind label %lpad244
|
|
|
|
lpad252: ; preds = %bb94, %invcont89, %invcont160, %bb169, %bb172, %bb163, %invcont151, %invcont146, %invcont145, %invcont144, %bb143, %ppad295, %invcont111, %invcont96, %invcont95
|
|
%eh_ptr253 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select255 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr253, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad294
|
|
|
|
lpad256: ; preds = %invcont102, %invcont97
|
|
%eh_ptr257 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=4]
|
|
%eh_select259 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr257, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=2]
|
|
%eh_typeid297 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%43 = icmp eq i32 %eh_select259, %eh_typeid297 ; <i1> [#uses=1]
|
|
br i1 %43, label %bb117, label %ppad295
|
|
|
|
lpad260: ; preds = %lpad264
|
|
%eh_ptr261 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select263 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr261, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad295
|
|
|
|
lpad264: ; preds = %invcont124, %invcont119, %bb117
|
|
%eh_ptr265 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select267 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr265, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
invoke void @__gnat_end_handler( i8* %eh_ptr257 )
|
|
to label %ppad295 unwind label %lpad260
|
|
|
|
lpad268: ; preds = %invcont194, %bb193
|
|
%eh_ptr269 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5]
|
|
%eh_select271 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr269, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=2]
|
|
%eh_typeid301 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%44 = icmp eq i32 %eh_select271, %eh_typeid301 ; <i1> [#uses=1]
|
|
br i1 %44, label %bb196, label %ppad304
|
|
|
|
lpad272: ; preds = %bb203, %lpad276
|
|
%eh_ptr273 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select275 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr273, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
br label %ppad304
|
|
|
|
lpad276: ; preds = %bb196
|
|
%eh_ptr277 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select279 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr277, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
invoke void @__gnat_end_handler( i8* %eh_ptr269 )
|
|
to label %ppad304 unwind label %lpad272
|
|
|
|
lpad280: ; preds = %bb212, %lpad284
|
|
%eh_ptr281 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select283 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr281, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
br label %ppad
|
|
|
|
lpad284: ; preds = %bb205
|
|
%eh_ptr285 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select287 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr285, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
invoke void @__gnat_end_handler( i8* %eh_exception.1 )
|
|
to label %ppad unwind label %lpad280
|
|
|
|
ppad: ; preds = %lpad284, %ppad304, %lpad280, %lpad
|
|
%eh_exception.2 = phi i8* [ %eh_exception.1, %ppad304 ], [ %eh_ptr281, %lpad280 ], [ %eh_ptr, %lpad ], [ %eh_ptr285, %lpad284 ] ; <i8*> [#uses=1]
|
|
%45 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0 ; <i32*> [#uses=1]
|
|
%46 = load i32* %45, align 8 ; <i32> [#uses=1]
|
|
%47 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1 ; <i32*> [#uses=1]
|
|
%48 = load i32* %47, align 4 ; <i32> [#uses=1]
|
|
call void @system__secondary_stack__ss_release( i32 %46, i32 %48 )
|
|
%49 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 ) ; <i32> [#uses=0]
|
|
unreachable
|
|
|
|
ppad288: ; preds = %lpad248, %lpad240, %ppad291, %lpad244, %lpad236
|
|
%eh_exception.0 = phi i8* [ %eh_ptr233, %ppad291 ], [ %eh_ptr245, %lpad244 ], [ %eh_ptr237, %lpad236 ], [ %eh_ptr241, %lpad240 ], [ %eh_ptr249, %lpad248 ] ; <i8*> [#uses=1]
|
|
%eh_selector.0 = phi i32 [ %eh_select235, %ppad291 ], [ %eh_select247, %lpad244 ], [ %eh_select239, %lpad236 ], [ %eh_select243, %lpad240 ], [ %eh_select251, %lpad248 ] ; <i32> [#uses=1]
|
|
%50 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0 ; <i32*> [#uses=1]
|
|
%51 = load i32* %50, align 8 ; <i32> [#uses=1]
|
|
%52 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1 ; <i32*> [#uses=1]
|
|
%53 = load i32* %52, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %51, i32 %53 )
|
|
to label %ppad304 unwind label %lpad228
|
|
|
|
ppad291: ; preds = %lpad232
|
|
%eh_typeid292 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__name_error, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%54 = icmp eq i32 %eh_select235, %eh_typeid292 ; <i1> [#uses=1]
|
|
br i1 %54, label %bb47, label %ppad288
|
|
|
|
ppad294: ; preds = %ppad295, %lpad252
|
|
%eh_exception.4 = phi i8* [ %eh_ptr253, %lpad252 ], [ %eh_exception.3, %ppad295 ] ; <i8*> [#uses=1]
|
|
%eh_selector.4 = phi i32 [ %eh_select255, %lpad252 ], [ %eh_selector.3, %ppad295 ] ; <i32> [#uses=1]
|
|
%55 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
|
|
%56 = load i32* %55, align 8 ; <i32> [#uses=1]
|
|
%57 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1 ; <i32*> [#uses=1]
|
|
%58 = load i32* %57, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %56, i32 %58 )
|
|
to label %ppad304 unwind label %lpad228
|
|
|
|
ppad295: ; preds = %lpad264, %lpad256, %lpad260
|
|
%eh_exception.3 = phi i8* [ %eh_ptr257, %lpad256 ], [ %eh_ptr261, %lpad260 ], [ %eh_ptr265, %lpad264 ] ; <i8*> [#uses=1]
|
|
%eh_selector.3 = phi i32 [ %eh_select259, %lpad256 ], [ %eh_select263, %lpad260 ], [ %eh_select267, %lpad264 ] ; <i32> [#uses=1]
|
|
%59 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%60 = load i32* %59, align 8 ; <i32> [#uses=1]
|
|
%61 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%62 = load i32* %61, align 4 ; <i32> [#uses=1]
|
|
invoke void @system__secondary_stack__ss_release( i32 %60, i32 %62 )
|
|
to label %ppad294 unwind label %lpad252
|
|
|
|
ppad304: ; preds = %lpad276, %ppad294, %ppad288, %lpad268, %lpad272, %lpad228
|
|
%eh_exception.1 = phi i8* [ %eh_ptr229, %lpad228 ], [ %eh_ptr269, %lpad268 ], [ %eh_ptr273, %lpad272 ], [ %eh_exception.0, %ppad288 ], [ %eh_exception.4, %ppad294 ], [ %eh_ptr277, %lpad276 ] ; <i8*> [#uses=4]
|
|
%eh_selector.1 = phi i32 [ %eh_select231, %lpad228 ], [ %eh_select271, %lpad268 ], [ %eh_select275, %lpad272 ], [ %eh_selector.0, %ppad288 ], [ %eh_selector.4, %ppad294 ], [ %eh_select279, %lpad276 ] ; <i32> [#uses=1]
|
|
%eh_typeid305 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @incomplete.1177, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%63 = icmp eq i32 %eh_selector.1, %eh_typeid305 ; <i1> [#uses=1]
|
|
br i1 %63, label %bb205, label %ppad
|
|
}
|
|
|
|
define internal fastcc i8 @ce3806g__fxio__get.1137(%struct.ada__text_io__text_afcb* %file) signext {
|
|
entry:
|
|
%0 = invoke x86_fp80 @ada__text_io__float_aux__get( %struct.ada__text_io__text_afcb* %file, i32 0 )
|
|
to label %invcont unwind label %lpad ; <x86_fp80> [#uses=5]
|
|
|
|
invcont: ; preds = %entry
|
|
%1 = fcmp ult x86_fp80 %0, 0xKFFFEFFFFFFFFFFFFFFFF ; <i1> [#uses=1]
|
|
%2 = fcmp ugt x86_fp80 %0, 0xK7FFEFFFFFFFFFFFFFFFF ; <i1> [#uses=1]
|
|
%or.cond = or i1 %1, %2 ; <i1> [#uses=1]
|
|
br i1 %or.cond, label %bb2, label %bb4
|
|
|
|
bb2: ; preds = %invcont
|
|
invoke void @__gnat_rcheck_12( i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i32 1 ) noreturn
|
|
to label %invcont3 unwind label %lpad
|
|
|
|
invcont3: ; preds = %bb2
|
|
unreachable
|
|
|
|
bb4: ; preds = %invcont
|
|
%3 = fmul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=1]
|
|
%4 = fcmp ult x86_fp80 %3, 0xKC0068000000000000000 ; <i1> [#uses=1]
|
|
br i1 %4, label %bb8, label %bb6
|
|
|
|
bb6: ; preds = %bb4
|
|
%5 = fmul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=1]
|
|
%6 = fcmp ugt x86_fp80 %5, 0xK4005FE00000000000000 ; <i1> [#uses=1]
|
|
br i1 %6, label %bb8, label %bb10
|
|
|
|
bb8: ; preds = %bb4, %bb6
|
|
invoke void @__gnat_rcheck_10( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
|
|
to label %invcont9 unwind label %lpad
|
|
|
|
invcont9: ; preds = %bb8
|
|
unreachable
|
|
|
|
bb10: ; preds = %bb6
|
|
%7 = fmul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=3]
|
|
%8 = fcmp ult x86_fp80 %7, 0xK00000000000000000000 ; <i1> [#uses=1]
|
|
br i1 %8, label %bb13, label %bb12
|
|
|
|
bb12: ; preds = %bb10
|
|
%9 = fadd x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF ; <x86_fp80> [#uses=1]
|
|
br label %bb14
|
|
|
|
bb13: ; preds = %bb10
|
|
%10 = fsub x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF ; <x86_fp80> [#uses=1]
|
|
br label %bb14
|
|
|
|
bb14: ; preds = %bb13, %bb12
|
|
%iftmp.339.0.in = phi x86_fp80 [ %10, %bb13 ], [ %9, %bb12 ] ; <x86_fp80> [#uses=1]
|
|
%iftmp.339.0 = fptosi x86_fp80 %iftmp.339.0.in to i8 ; <i8> [#uses=3]
|
|
%11 = add i8 %iftmp.339.0, 20 ; <i8> [#uses=1]
|
|
%12 = icmp ugt i8 %11, 40 ; <i1> [#uses=1]
|
|
br i1 %12, label %bb16, label %bb18
|
|
|
|
bb16: ; preds = %bb14
|
|
invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
|
|
to label %invcont17 unwind label %lpad
|
|
|
|
invcont17: ; preds = %bb16
|
|
unreachable
|
|
|
|
bb18: ; preds = %bb14
|
|
%13 = add i8 %iftmp.339.0, 20 ; <i8> [#uses=1]
|
|
%14 = icmp ugt i8 %13, 40 ; <i1> [#uses=1]
|
|
br i1 %14, label %bb20, label %bb22
|
|
|
|
bb20: ; preds = %bb18
|
|
invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
|
|
to label %invcont21 unwind label %lpad
|
|
|
|
invcont21: ; preds = %bb20
|
|
unreachable
|
|
|
|
bb22: ; preds = %bb18
|
|
ret i8 %iftmp.339.0
|
|
|
|
bb23: ; preds = %lpad
|
|
call void @__gnat_begin_handler( i8* %eh_ptr ) nounwind
|
|
%15 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
|
|
invoke void %15( )
|
|
to label %invcont24 unwind label %lpad33
|
|
|
|
invcont24: ; preds = %bb23
|
|
invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @ada__io_exceptions__data_error to %struct.system__standard_library__exception_data*), i8* getelementptr ([47 x i8]* @.str2, i32 0, i32 0), %struct.string___XUB* @C.354.2200 ) noreturn
|
|
to label %invcont27 unwind label %lpad33
|
|
|
|
invcont27: ; preds = %invcont24
|
|
unreachable
|
|
|
|
lpad: ; preds = %bb20, %bb16, %bb8, %bb2, %entry
|
|
%eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=4]
|
|
%eh_select32 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
|
|
%eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1]
|
|
%16 = icmp eq i32 %eh_select32, %eh_typeid ; <i1> [#uses=1]
|
|
br i1 %16, label %bb23, label %Unwind
|
|
|
|
lpad33: ; preds = %invcont24, %bb23
|
|
%eh_ptr34 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select36 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr34, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
call void @__gnat_end_handler( i8* %eh_ptr )
|
|
br label %Unwind
|
|
|
|
Unwind: ; preds = %lpad, %lpad33
|
|
%eh_exception.0 = phi i8* [ %eh_ptr, %lpad ], [ %eh_ptr34, %lpad33 ] ; <i8*> [#uses=1]
|
|
%17 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.0 ) ; <i32> [#uses=0]
|
|
unreachable
|
|
}
|
|
|
|
define internal fastcc void @ce3806g__fxio__put.1149(%struct.ada__text_io__text_afcb* %file) {
|
|
entry:
|
|
%A.301 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
|
|
%A.292 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
|
|
%0 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
|
|
%1 = alloca [12 x i8] ; <[12 x i8]*> [#uses=1]
|
|
%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0 ; <i8*> [#uses=2]
|
|
%2 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
store i32 1, i32* %2, align 8
|
|
%3 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 12, i32* %3, align 4
|
|
%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.292, i8 signext -3 )
|
|
to label %invcont unwind label %lpad ; <i32> [#uses=1]
|
|
|
|
invcont: ; preds = %entry
|
|
%5 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
store i32 1, i32* %5, align 8
|
|
%6 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 %4, i32* %6, align 4
|
|
invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %file, i8* %.sub, %struct.string___XUB* %A.301 )
|
|
to label %bb60 unwind label %lpad
|
|
|
|
bb60: ; preds = %invcont
|
|
ret void
|
|
|
|
lpad: ; preds = %entry, %invcont
|
|
%eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
call void @llvm.stackrestore( i8* %0 )
|
|
%7 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
|
|
unreachable
|
|
}
|
|
|
|
define internal fastcc void @ce3806g__fxio__put__2.1155() {
|
|
entry:
|
|
%A.266 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
|
|
%A.257 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
|
|
%0 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
|
|
%1 = alloca [12 x i8] ; <[12 x i8]*> [#uses=1]
|
|
%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0 ; <i8*> [#uses=2]
|
|
%2 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
store i32 1, i32* %2, align 8
|
|
%3 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 12, i32* %3, align 4
|
|
%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.257, i8 signext -1 )
|
|
to label %invcont unwind label %lpad ; <i32> [#uses=1]
|
|
|
|
invcont: ; preds = %entry
|
|
%5 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
store i32 1, i32* %5, align 8
|
|
%6 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 %4, i32* %6, align 4
|
|
%7 = load %struct.ada__text_io__text_afcb** @ada__text_io__current_out, align 4 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
|
|
invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %7, i8* %.sub, %struct.string___XUB* %A.266 )
|
|
to label %bb60 unwind label %lpad
|
|
|
|
bb60: ; preds = %invcont
|
|
ret void
|
|
|
|
lpad: ; preds = %entry, %invcont
|
|
%eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
call void @llvm.stackrestore( i8* %0 )
|
|
%8 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
|
|
unreachable
|
|
}
|
|
|
|
define internal fastcc i32 @ce3806g__fxio__put__4.1215(i8* %to.0, %struct.string___XUB* %to.1, i8 signext %item) {
|
|
entry:
|
|
%P0 = load i32 * @__gnat_all_others_value, align 4 ; <i32*> [#uses=1]
|
|
%P = alloca i32, i32 %P0 ; <i32*> [#uses=1]
|
|
call void @ext( i32* %P )
|
|
%to_addr = alloca %struct.system__file_control_block__pstring ; <%struct.system__file_control_block__pstring*> [#uses=4]
|
|
%FRAME.358 = alloca %struct.FRAME.ce3806g__fxio__put__4 ; <%struct.FRAME.ce3806g__fxio__put__4*> [#uses=65]
|
|
%0 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
store i8* %to.0, i8** %0, align 8
|
|
%1 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
store %struct.string___XUB* %to.1, %struct.string___XUB** %1
|
|
%2 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
store %struct.system__file_control_block__pstring* %to_addr, %struct.system__file_control_block__pstring** %2, align 4
|
|
%3 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
store i32 3, i32* %3, align 8
|
|
%4 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
|
|
%5 = load %struct.string___XUB** %4, align 4 ; <%struct.string___XUB*> [#uses=1]
|
|
%6 = getelementptr %struct.string___XUB* %5, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%7 = load i32* %6, align 4 ; <i32> [#uses=1]
|
|
%8 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
store i32 %7, i32* %8, align 8
|
|
%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
%10 = load i32* %9, align 8 ; <i32> [#uses=1]
|
|
%11 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
store i32 %10, i32* %11, align 8
|
|
%item.lobit = lshr i8 %item, 7 ; <i8> [#uses=1]
|
|
%12 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
|
|
store i8 %item.lobit, i8* %12, align 8
|
|
%13 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
%14 = load i32* %13, align 8 ; <i32> [#uses=1]
|
|
%15 = add i32 %14, -1 ; <i32> [#uses=1]
|
|
%16 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %15, i32* %16, align 4
|
|
%17 = sext i8 %item to i64 ; <i64> [#uses=1]
|
|
%18 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 1 ) readnone ; <i64> [#uses=1]
|
|
%19 = sub i64 0, %18 ; <i64> [#uses=1]
|
|
%20 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 0 ) readnone ; <i64> [#uses=1]
|
|
%21 = mul i64 %20, -2 ; <i64> [#uses=1]
|
|
call fastcc void @ce3806g__fxio__put__put_scaled__4.1346( %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i64 %17, i64 %19, i64 %21, i32 0, i32 -1 )
|
|
%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%23 = load i32* %22, align 4 ; <i32> [#uses=1]
|
|
%24 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
%25 = load i32* %24, align 8 ; <i32> [#uses=1]
|
|
%26 = icmp slt i32 %23, %25 ; <i1> [#uses=1]
|
|
br i1 %26, label %bb71, label %bb72
|
|
|
|
bb71: ; preds = %entry
|
|
%27 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 0, i32* %27, align 4
|
|
br label %bb72
|
|
|
|
bb72: ; preds = %entry, %bb102, %bb71
|
|
%28 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%29 = load i32* %28, align 4 ; <i32> [#uses=1]
|
|
%30 = icmp slt i32 %29, -1 ; <i1> [#uses=1]
|
|
%31 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%32 = load i32* %31, align 4 ; <i32> [#uses=2]
|
|
br i1 %30, label %bb103, label %bb74
|
|
|
|
bb74: ; preds = %bb72
|
|
%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
%34 = load i32* %33, align 8 ; <i32> [#uses=1]
|
|
%35 = add i32 %34, -1 ; <i32> [#uses=1]
|
|
%36 = icmp eq i32 %32, %35 ; <i1> [#uses=1]
|
|
%37 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%38 = load i32* %37, align 4 ; <i32> [#uses=2]
|
|
br i1 %36, label %bb76, label %bb98
|
|
|
|
bb76: ; preds = %bb74
|
|
%39 = icmp slt i32 %38, 1 ; <i1> [#uses=1]
|
|
br i1 %39, label %bb80, label %bb102
|
|
|
|
bb80: ; preds = %bb76
|
|
%40 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%41 = load i32* %40, align 4 ; <i32> [#uses=2]
|
|
%42 = icmp sgt i32 %41, -1 ; <i1> [#uses=1]
|
|
%.op = add i32 %41, 2 ; <i32> [#uses=1]
|
|
%43 = select i1 %42, i32 %.op, i32 2 ; <i32> [#uses=1]
|
|
%44 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
|
|
%45 = load i8* %44, align 8 ; <i8> [#uses=1]
|
|
%46 = zext i8 %45 to i32 ; <i32> [#uses=1]
|
|
%47 = add i32 %43, %46 ; <i32> [#uses=2]
|
|
%48 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%49 = load i32* %48, align 8 ; <i32> [#uses=1]
|
|
%50 = icmp sgt i32 %47, %49 ; <i1> [#uses=1]
|
|
br i1 %50, label %bb88, label %bb85
|
|
|
|
bb85: ; preds = %bb80, %bb87
|
|
%j.0 = phi i32 [ %68, %bb87 ], [ %47, %bb80 ] ; <i32> [#uses=2]
|
|
%51 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%52 = load i32* %51, align 4 ; <i32> [#uses=1]
|
|
%53 = add i32 %52, 1 ; <i32> [#uses=1]
|
|
%54 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %53, i32* %54, align 4
|
|
%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%56 = load i32* %55, align 8 ; <i32> [#uses=1]
|
|
%57 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%58 = load %struct.system__file_control_block__pstring** %57, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%59 = getelementptr %struct.system__file_control_block__pstring* %58, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%60 = load i8** %59, align 4 ; <i8*> [#uses=1]
|
|
%61 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%62 = load i32* %61, align 4 ; <i32> [#uses=1]
|
|
%63 = sub i32 %62, %56 ; <i32> [#uses=1]
|
|
%64 = getelementptr i8* %60, i32 %63 ; <i8*> [#uses=1]
|
|
store i8 32, i8* %64, align 1
|
|
%65 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%66 = load i32* %65, align 8 ; <i32> [#uses=1]
|
|
%67 = icmp eq i32 %66, %j.0 ; <i1> [#uses=1]
|
|
br i1 %67, label %bb88, label %bb87
|
|
|
|
bb87: ; preds = %bb85
|
|
%68 = add i32 %j.0, 1 ; <i32> [#uses=1]
|
|
br label %bb85
|
|
|
|
bb88: ; preds = %bb80, %bb85
|
|
%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
|
|
%70 = load i8* %69, align 8 ; <i8> [#uses=1]
|
|
%toBool89 = icmp eq i8 %70, 0 ; <i1> [#uses=1]
|
|
br i1 %toBool89, label %bb91, label %bb90
|
|
|
|
bb90: ; preds = %bb88
|
|
%71 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%72 = load i32* %71, align 4 ; <i32> [#uses=1]
|
|
%73 = add i32 %72, 1 ; <i32> [#uses=1]
|
|
%74 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %73, i32* %74, align 4
|
|
%75 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%76 = load i32* %75, align 8 ; <i32> [#uses=1]
|
|
%77 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%78 = load %struct.system__file_control_block__pstring** %77, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%79 = getelementptr %struct.system__file_control_block__pstring* %78, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%80 = load i8** %79, align 4 ; <i8*> [#uses=1]
|
|
%81 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%82 = load i32* %81, align 4 ; <i32> [#uses=1]
|
|
%83 = sub i32 %82, %76 ; <i32> [#uses=1]
|
|
%84 = getelementptr i8* %80, i32 %83 ; <i8*> [#uses=1]
|
|
store i8 45, i8* %84, align 1
|
|
br label %bb91
|
|
|
|
bb91: ; preds = %bb88, %bb90
|
|
%85 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%86 = load i32* %85, align 4 ; <i32> [#uses=1]
|
|
%87 = icmp slt i32 %86, 0 ; <i1> [#uses=1]
|
|
br i1 %87, label %bb93, label %bb97
|
|
|
|
bb93: ; preds = %bb91
|
|
%88 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%89 = load i32* %88, align 4 ; <i32> [#uses=1]
|
|
%90 = add i32 %89, 1 ; <i32> [#uses=1]
|
|
%91 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %90, i32* %91, align 4
|
|
%92 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%93 = load i32* %92, align 8 ; <i32> [#uses=1]
|
|
%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%95 = load %struct.system__file_control_block__pstring** %94, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%96 = getelementptr %struct.system__file_control_block__pstring* %95, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%97 = load i8** %96, align 4 ; <i8*> [#uses=1]
|
|
%98 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%99 = load i32* %98, align 4 ; <i32> [#uses=1]
|
|
%100 = sub i32 %99, %93 ; <i32> [#uses=1]
|
|
%101 = getelementptr i8* %97, i32 %100 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %101, align 1
|
|
%102 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%103 = load i32* %102, align 4 ; <i32> [#uses=1]
|
|
%104 = add i32 %103, 1 ; <i32> [#uses=1]
|
|
%105 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %104, i32* %105, align 4
|
|
%106 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%107 = load i32* %106, align 8 ; <i32> [#uses=1]
|
|
%108 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%109 = load %struct.system__file_control_block__pstring** %108, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%110 = getelementptr %struct.system__file_control_block__pstring* %109, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%111 = load i8** %110, align 4 ; <i8*> [#uses=1]
|
|
%112 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%113 = load i32* %112, align 4 ; <i32> [#uses=1]
|
|
%114 = sub i32 %113, %107 ; <i32> [#uses=1]
|
|
%115 = getelementptr i8* %111, i32 %114 ; <i8*> [#uses=1]
|
|
store i8 46, i8* %115, align 1
|
|
%116 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%117 = load i32* %116, align 4 ; <i32> [#uses=1]
|
|
br label %bb94
|
|
|
|
bb94: ; preds = %bb96, %bb93
|
|
%j8.0 = phi i32 [ %117, %bb93 ], [ %133, %bb96 ] ; <i32> [#uses=2]
|
|
%118 = icmp sgt i32 %j8.0, -2 ; <i1> [#uses=1]
|
|
br i1 %118, label %bb97, label %bb96
|
|
|
|
bb96: ; preds = %bb94
|
|
%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%120 = load i32* %119, align 4 ; <i32> [#uses=1]
|
|
%121 = add i32 %120, 1 ; <i32> [#uses=1]
|
|
%122 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %121, i32* %122, align 4
|
|
%123 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%124 = load i32* %123, align 8 ; <i32> [#uses=1]
|
|
%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%126 = load %struct.system__file_control_block__pstring** %125, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%127 = getelementptr %struct.system__file_control_block__pstring* %126, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%128 = load i8** %127, align 4 ; <i8*> [#uses=1]
|
|
%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%130 = load i32* %129, align 4 ; <i32> [#uses=1]
|
|
%131 = sub i32 %130, %124 ; <i32> [#uses=1]
|
|
%132 = getelementptr i8* %128, i32 %131 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %132, align 1
|
|
%133 = add i32 %j8.0, 1 ; <i32> [#uses=1]
|
|
br label %bb94
|
|
|
|
bb97: ; preds = %bb91, %bb94
|
|
%134 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%135 = load i32* %134, align 4 ; <i32> [#uses=1]
|
|
%136 = add i32 %135, 1 ; <i32> [#uses=1]
|
|
%137 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %136, i32* %137, align 4
|
|
%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%139 = load i32* %138, align 8 ; <i32> [#uses=1]
|
|
%140 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%141 = load %struct.system__file_control_block__pstring** %140, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%142 = getelementptr %struct.system__file_control_block__pstring* %141, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%143 = load i8** %142, align 4 ; <i8*> [#uses=1]
|
|
%144 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%145 = load i32* %144, align 4 ; <i32> [#uses=1]
|
|
%146 = sub i32 %145, %139 ; <i32> [#uses=1]
|
|
%147 = getelementptr i8* %143, i32 %146 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %147, align 1
|
|
br label %bb102
|
|
|
|
bb98: ; preds = %bb74
|
|
%148 = icmp eq i32 %38, -1 ; <i1> [#uses=1]
|
|
br i1 %148, label %bb100, label %bb101
|
|
|
|
bb100: ; preds = %bb98
|
|
%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%150 = load i32* %149, align 4 ; <i32> [#uses=1]
|
|
%151 = add i32 %150, 1 ; <i32> [#uses=1]
|
|
%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %151, i32* %152, align 4
|
|
%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%154 = load i32* %153, align 8 ; <i32> [#uses=1]
|
|
%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%156 = load %struct.system__file_control_block__pstring** %155, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%158 = load i8** %157, align 4 ; <i8*> [#uses=1]
|
|
%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%160 = load i32* %159, align 4 ; <i32> [#uses=1]
|
|
%161 = sub i32 %160, %154 ; <i32> [#uses=1]
|
|
%162 = getelementptr i8* %158, i32 %161 ; <i8*> [#uses=1]
|
|
store i8 46, i8* %162, align 1
|
|
br label %bb101
|
|
|
|
bb101: ; preds = %bb98, %bb100
|
|
%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%164 = load i32* %163, align 4 ; <i32> [#uses=1]
|
|
%165 = add i32 %164, 1 ; <i32> [#uses=1]
|
|
%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %165, i32* %166, align 4
|
|
%167 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%168 = load i32* %167, align 8 ; <i32> [#uses=1]
|
|
%169 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%170 = load %struct.system__file_control_block__pstring** %169, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%171 = getelementptr %struct.system__file_control_block__pstring* %170, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%172 = load i8** %171, align 4 ; <i8*> [#uses=1]
|
|
%173 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%174 = load i32* %173, align 4 ; <i32> [#uses=1]
|
|
%175 = sub i32 %174, %168 ; <i32> [#uses=1]
|
|
%176 = getelementptr i8* %172, i32 %175 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %176, align 1
|
|
br label %bb102
|
|
|
|
bb102: ; preds = %bb76, %bb101, %bb97
|
|
%177 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%178 = load i32* %177, align 4 ; <i32> [#uses=1]
|
|
%179 = add i32 %178, -1 ; <i32> [#uses=1]
|
|
%180 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 %179, i32* %180, align 4
|
|
br label %bb72
|
|
|
|
bb103: ; preds = %bb72
|
|
ret i32 %32
|
|
}
|
|
|
|
declare x86_fp80 @ada__text_io__float_aux__get(%struct.ada__text_io__text_afcb*, i32)
|
|
|
|
declare void @__gnat_rcheck_12(i8*, i32) noreturn
|
|
|
|
declare void @__gnat_rcheck_10(i8*, i32) noreturn
|
|
|
|
declare i8* @llvm.eh.exception() nounwind
|
|
|
|
declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
|
|
|
|
declare i32 @llvm.eh.typeid.for.i32(i8*) nounwind
|
|
|
|
declare void @__gnat_begin_handler(i8*) nounwind
|
|
|
|
declare void @__gnat_raise_exception(%struct.system__standard_library__exception_data*, i8*, %struct.string___XUB*) noreturn
|
|
|
|
declare void @__gnat_end_handler(i8*)
|
|
|
|
declare i32 @__gnat_eh_personality(...)
|
|
|
|
declare i32 @_Unwind_Resume(...)
|
|
|
|
define internal fastcc void @ce3806g__fxio__put__put_int64__4.1339(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %x, i32 %scale) {
|
|
entry:
|
|
%0 = icmp eq i64 %x, 0 ; <i1> [#uses=1]
|
|
br i1 %0, label %return, label %bb
|
|
|
|
bb: ; preds = %entry
|
|
%1 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 %scale, i32* %1, align 4
|
|
%2 = add i64 %x, 9 ; <i64> [#uses=1]
|
|
%3 = icmp ugt i64 %2, 18 ; <i1> [#uses=1]
|
|
br i1 %3, label %bb18, label %bb19
|
|
|
|
bb18: ; preds = %bb
|
|
%4 = add i32 %scale, 1 ; <i32> [#uses=1]
|
|
%5 = sdiv i64 %x, 10 ; <i64> [#uses=1]
|
|
call fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %5, i32 %4 )
|
|
br label %bb19
|
|
|
|
bb19: ; preds = %bb, %bb18
|
|
%6 = srem i64 %x, 10 ; <i64> [#uses=3]
|
|
%neg = sub i64 0, %6 ; <i64> [#uses=1]
|
|
%abscond = icmp sgt i64 %6, -1 ; <i1> [#uses=1]
|
|
%abs = select i1 %abscond, i64 %6, i64 %neg ; <i64> [#uses=3]
|
|
%7 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%8 = load i32* %7, align 4 ; <i32> [#uses=1]
|
|
%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 2 ; <i32*> [#uses=1]
|
|
%10 = load i32* %9, align 4 ; <i32> [#uses=1]
|
|
%11 = add i32 %10, -1 ; <i32> [#uses=1]
|
|
%12 = icmp eq i32 %8, %11 ; <i1> [#uses=1]
|
|
br i1 %12, label %bb23, label %bb44
|
|
|
|
bb23: ; preds = %bb19
|
|
%13 = icmp ne i64 %abs, 0 ; <i1> [#uses=1]
|
|
%14 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%15 = load i32* %14, align 4 ; <i32> [#uses=1]
|
|
%16 = icmp slt i32 %15, 1 ; <i1> [#uses=1]
|
|
%17 = or i1 %13, %16 ; <i1> [#uses=1]
|
|
br i1 %17, label %bb27, label %bb48
|
|
|
|
bb27: ; preds = %bb23
|
|
%18 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%19 = load i32* %18, align 4 ; <i32> [#uses=2]
|
|
%20 = icmp sgt i32 %19, -1 ; <i1> [#uses=1]
|
|
%.op = add i32 %19, 2 ; <i32> [#uses=1]
|
|
%21 = select i1 %20, i32 %.op, i32 2 ; <i32> [#uses=1]
|
|
%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6 ; <i8*> [#uses=1]
|
|
%23 = load i8* %22, align 1 ; <i8> [#uses=1]
|
|
%24 = zext i8 %23 to i32 ; <i32> [#uses=1]
|
|
%25 = add i32 %21, %24 ; <i32> [#uses=2]
|
|
%26 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%27 = load i32* %26, align 4 ; <i32> [#uses=1]
|
|
%28 = icmp sgt i32 %25, %27 ; <i1> [#uses=1]
|
|
br i1 %28, label %bb34, label %bb31
|
|
|
|
bb31: ; preds = %bb27, %bb33
|
|
%j.0 = phi i32 [ %46, %bb33 ], [ %25, %bb27 ] ; <i32> [#uses=2]
|
|
%29 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%30 = load i32* %29, align 4 ; <i32> [#uses=1]
|
|
%31 = add i32 %30, 1 ; <i32> [#uses=1]
|
|
%32 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %31, i32* %32, align 4
|
|
%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%34 = load i32* %33, align 4 ; <i32> [#uses=1]
|
|
%35 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%36 = load %struct.system__file_control_block__pstring** %35, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%37 = getelementptr %struct.system__file_control_block__pstring* %36, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%38 = load i8** %37, align 4 ; <i8*> [#uses=1]
|
|
%39 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%40 = load i32* %39, align 4 ; <i32> [#uses=1]
|
|
%41 = sub i32 %40, %34 ; <i32> [#uses=1]
|
|
%42 = getelementptr i8* %38, i32 %41 ; <i8*> [#uses=1]
|
|
store i8 32, i8* %42, align 1
|
|
%43 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0 ; <i32*> [#uses=1]
|
|
%44 = load i32* %43, align 4 ; <i32> [#uses=1]
|
|
%45 = icmp eq i32 %44, %j.0 ; <i1> [#uses=1]
|
|
br i1 %45, label %bb34, label %bb33
|
|
|
|
bb33: ; preds = %bb31
|
|
%46 = add i32 %j.0, 1 ; <i32> [#uses=1]
|
|
br label %bb31
|
|
|
|
bb34: ; preds = %bb27, %bb31
|
|
%47 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6 ; <i8*> [#uses=1]
|
|
%48 = load i8* %47, align 1 ; <i8> [#uses=1]
|
|
%toBool35 = icmp eq i8 %48, 0 ; <i1> [#uses=1]
|
|
br i1 %toBool35, label %bb37, label %bb36
|
|
|
|
bb36: ; preds = %bb34
|
|
%49 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%50 = load i32* %49, align 4 ; <i32> [#uses=1]
|
|
%51 = add i32 %50, 1 ; <i32> [#uses=1]
|
|
%52 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %51, i32* %52, align 4
|
|
%53 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%54 = load i32* %53, align 4 ; <i32> [#uses=1]
|
|
%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%56 = load %struct.system__file_control_block__pstring** %55, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%57 = getelementptr %struct.system__file_control_block__pstring* %56, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%58 = load i8** %57, align 4 ; <i8*> [#uses=1]
|
|
%59 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%60 = load i32* %59, align 4 ; <i32> [#uses=1]
|
|
%61 = sub i32 %60, %54 ; <i32> [#uses=1]
|
|
%62 = getelementptr i8* %58, i32 %61 ; <i8*> [#uses=1]
|
|
store i8 45, i8* %62, align 1
|
|
br label %bb37
|
|
|
|
bb37: ; preds = %bb34, %bb36
|
|
%63 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%64 = load i32* %63, align 4 ; <i32> [#uses=1]
|
|
%65 = icmp slt i32 %64, 0 ; <i1> [#uses=1]
|
|
br i1 %65, label %bb39, label %bb43
|
|
|
|
bb39: ; preds = %bb37
|
|
%66 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%67 = load i32* %66, align 4 ; <i32> [#uses=1]
|
|
%68 = add i32 %67, 1 ; <i32> [#uses=1]
|
|
%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %68, i32* %69, align 4
|
|
%70 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%71 = load i32* %70, align 4 ; <i32> [#uses=1]
|
|
%72 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%73 = load %struct.system__file_control_block__pstring** %72, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%74 = getelementptr %struct.system__file_control_block__pstring* %73, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%75 = load i8** %74, align 4 ; <i8*> [#uses=1]
|
|
%76 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%77 = load i32* %76, align 4 ; <i32> [#uses=1]
|
|
%78 = sub i32 %77, %71 ; <i32> [#uses=1]
|
|
%79 = getelementptr i8* %75, i32 %78 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %79, align 1
|
|
%80 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%81 = load i32* %80, align 4 ; <i32> [#uses=1]
|
|
%82 = add i32 %81, 1 ; <i32> [#uses=1]
|
|
%83 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %82, i32* %83, align 4
|
|
%84 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%85 = load i32* %84, align 4 ; <i32> [#uses=1]
|
|
%86 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%87 = load %struct.system__file_control_block__pstring** %86, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%88 = getelementptr %struct.system__file_control_block__pstring* %87, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%89 = load i8** %88, align 4 ; <i8*> [#uses=1]
|
|
%90 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%91 = load i32* %90, align 4 ; <i32> [#uses=1]
|
|
%92 = sub i32 %91, %85 ; <i32> [#uses=1]
|
|
%93 = getelementptr i8* %89, i32 %92 ; <i8*> [#uses=1]
|
|
store i8 46, i8* %93, align 1
|
|
%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%95 = load i32* %94, align 4 ; <i32> [#uses=1]
|
|
br label %bb40
|
|
|
|
bb40: ; preds = %bb42, %bb39
|
|
%j15.0 = phi i32 [ %95, %bb39 ], [ %111, %bb42 ] ; <i32> [#uses=2]
|
|
%96 = icmp sgt i32 %j15.0, -2 ; <i1> [#uses=1]
|
|
br i1 %96, label %bb43, label %bb42
|
|
|
|
bb42: ; preds = %bb40
|
|
%97 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%98 = load i32* %97, align 4 ; <i32> [#uses=1]
|
|
%99 = add i32 %98, 1 ; <i32> [#uses=1]
|
|
%100 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %99, i32* %100, align 4
|
|
%101 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%102 = load i32* %101, align 4 ; <i32> [#uses=1]
|
|
%103 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%104 = load %struct.system__file_control_block__pstring** %103, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%105 = getelementptr %struct.system__file_control_block__pstring* %104, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%106 = load i8** %105, align 4 ; <i8*> [#uses=1]
|
|
%107 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%108 = load i32* %107, align 4 ; <i32> [#uses=1]
|
|
%109 = sub i32 %108, %102 ; <i32> [#uses=1]
|
|
%110 = getelementptr i8* %106, i32 %109 ; <i8*> [#uses=1]
|
|
store i8 48, i8* %110, align 1
|
|
%111 = add i32 %j15.0, 1 ; <i32> [#uses=1]
|
|
br label %bb40
|
|
|
|
bb43: ; preds = %bb37, %bb40
|
|
%112 = trunc i64 %abs to i32 ; <i32> [#uses=1]
|
|
%113 = getelementptr [10 x i8]* @.str3, i32 0, i32 %112 ; <i8*> [#uses=1]
|
|
%114 = load i8* %113, align 1 ; <i8> [#uses=1]
|
|
%115 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%116 = load i32* %115, align 4 ; <i32> [#uses=1]
|
|
%117 = add i32 %116, 1 ; <i32> [#uses=1]
|
|
%118 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %117, i32* %118, align 4
|
|
%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%120 = load i32* %119, align 4 ; <i32> [#uses=1]
|
|
%121 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%122 = load %struct.system__file_control_block__pstring** %121, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%123 = getelementptr %struct.system__file_control_block__pstring* %122, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%124 = load i8** %123, align 4 ; <i8*> [#uses=1]
|
|
%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%126 = load i32* %125, align 4 ; <i32> [#uses=1]
|
|
%127 = sub i32 %126, %120 ; <i32> [#uses=1]
|
|
%128 = getelementptr i8* %124, i32 %127 ; <i8*> [#uses=1]
|
|
store i8 %114, i8* %128, align 1
|
|
br label %bb48
|
|
|
|
bb44: ; preds = %bb19
|
|
%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%130 = load i32* %129, align 4 ; <i32> [#uses=1]
|
|
%131 = icmp eq i32 %130, -1 ; <i1> [#uses=1]
|
|
br i1 %131, label %bb46, label %bb47
|
|
|
|
bb46: ; preds = %bb44
|
|
%132 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%133 = load i32* %132, align 4 ; <i32> [#uses=1]
|
|
%134 = add i32 %133, 1 ; <i32> [#uses=1]
|
|
%135 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %134, i32* %135, align 4
|
|
%136 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%137 = load i32* %136, align 4 ; <i32> [#uses=1]
|
|
%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%139 = load %struct.system__file_control_block__pstring** %138, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%140 = getelementptr %struct.system__file_control_block__pstring* %139, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%141 = load i8** %140, align 4 ; <i8*> [#uses=1]
|
|
%142 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%143 = load i32* %142, align 4 ; <i32> [#uses=1]
|
|
%144 = sub i32 %143, %137 ; <i32> [#uses=1]
|
|
%145 = getelementptr i8* %141, i32 %144 ; <i8*> [#uses=1]
|
|
store i8 46, i8* %145, align 1
|
|
br label %bb47
|
|
|
|
bb47: ; preds = %bb44, %bb46
|
|
%146 = trunc i64 %abs to i32 ; <i32> [#uses=1]
|
|
%147 = getelementptr [10 x i8]* @.str3, i32 0, i32 %146 ; <i8*> [#uses=1]
|
|
%148 = load i8* %147, align 1 ; <i8> [#uses=1]
|
|
%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%150 = load i32* %149, align 4 ; <i32> [#uses=1]
|
|
%151 = add i32 %150, 1 ; <i32> [#uses=1]
|
|
%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
store i32 %151, i32* %152, align 4
|
|
%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
|
|
%154 = load i32* %153, align 4 ; <i32> [#uses=1]
|
|
%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
|
|
%156 = load %struct.system__file_control_block__pstring** %155, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
|
|
%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0 ; <i8**> [#uses=1]
|
|
%158 = load i8** %157, align 4 ; <i8*> [#uses=1]
|
|
%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
|
|
%160 = load i32* %159, align 4 ; <i32> [#uses=1]
|
|
%161 = sub i32 %160, %154 ; <i32> [#uses=1]
|
|
%162 = getelementptr i8* %158, i32 %161 ; <i8*> [#uses=1]
|
|
store i8 %148, i8* %162, align 1
|
|
br label %bb48
|
|
|
|
bb48: ; preds = %bb23, %bb47, %bb43
|
|
%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
%164 = load i32* %163, align 4 ; <i32> [#uses=1]
|
|
%165 = add i32 %164, -1 ; <i32> [#uses=1]
|
|
%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
|
|
store i32 %165, i32* %166, align 4
|
|
ret void
|
|
|
|
return: ; preds = %entry
|
|
ret void
|
|
}
|
|
|
|
define internal fastcc void @ce3806g__fxio__put__put_scaled__4.1346(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %x, i64 %y, i64 %z, i32 %a, i32 %e) {
|
|
entry:
|
|
%0 = alloca { i64, i64 } ; <{ i64, i64 }*> [#uses=3]
|
|
%1 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
|
|
%2 = add i32 %a, 17 ; <i32> [#uses=2]
|
|
%3 = sdiv i32 %2, 18 ; <i32> [#uses=3]
|
|
%4 = add i32 %3, 1 ; <i32> [#uses=7]
|
|
%5 = icmp sgt i32 %4, -1 ; <i1> [#uses=1]
|
|
%max53 = select i1 %5, i32 %4, i32 0 ; <i32> [#uses=1]
|
|
%6 = alloca i64, i32 %max53 ; <i64*> [#uses=21]
|
|
%7 = icmp sgt i32 %4, 0 ; <i1> [#uses=1]
|
|
br i1 %7, label %bb55, label %bb58
|
|
|
|
bb55: ; preds = %entry, %bb57
|
|
%J60b.0 = phi i32 [ %11, %bb57 ], [ 1, %entry ] ; <i32> [#uses=3]
|
|
%8 = add i32 %J60b.0, -1 ; <i32> [#uses=1]
|
|
%9 = getelementptr i64* %6, i32 %8 ; <i64*> [#uses=1]
|
|
store i64 0, i64* %9, align 8
|
|
%10 = icmp eq i32 %4, %J60b.0 ; <i1> [#uses=1]
|
|
br i1 %10, label %bb58, label %bb57
|
|
|
|
bb57: ; preds = %bb55
|
|
%11 = add i32 %J60b.0, 1 ; <i32> [#uses=1]
|
|
br label %bb55
|
|
|
|
bb58: ; preds = %entry, %bb55
|
|
%12 = icmp sgt i32 %4, 0 ; <i1> [#uses=1]
|
|
br i1 %12, label %bb61, label %bb91
|
|
|
|
bb61: ; preds = %bb58, %bb90
|
|
%j2.0 = phi i32 [ %88, %bb90 ], [ 1, %bb58 ] ; <i32> [#uses=11]
|
|
%aa.0 = phi i32 [ %86, %bb90 ], [ %a, %bb58 ] ; <i32> [#uses=6]
|
|
%yy.0 = phi i64 [ %84, %bb90 ], [ %y, %bb58 ] ; <i64> [#uses=3]
|
|
%xx.0 = phi i64 [ %21, %bb90 ], [ %x, %bb58 ] ; <i64> [#uses=2]
|
|
%13 = icmp eq i64 %xx.0, 0 ; <i1> [#uses=1]
|
|
br i1 %13, label %bb91, label %bb63
|
|
|
|
bb63: ; preds = %bb61
|
|
%14 = icmp eq i32 %aa.0, 0 ; <i1> [#uses=1]
|
|
%15 = zext i1 %14 to i8 ; <i8> [#uses=1]
|
|
invoke void @system__arith_64__scaled_divide( { i64, i64 }* noalias sret %0, i64 %xx.0, i64 %yy.0, i64 %z, i8 %15 )
|
|
to label %invcont unwind label %lpad
|
|
|
|
invcont: ; preds = %bb63
|
|
%16 = getelementptr { i64, i64 }* %0, i32 0, i32 0 ; <i64*> [#uses=1]
|
|
%17 = load i64* %16, align 8 ; <i64> [#uses=1]
|
|
%18 = add i32 %j2.0, -1 ; <i32> [#uses=1]
|
|
%19 = getelementptr i64* %6, i32 %18 ; <i64*> [#uses=1]
|
|
store i64 %17, i64* %19, align 8
|
|
%20 = getelementptr { i64, i64 }* %0, i32 0, i32 1 ; <i64*> [#uses=1]
|
|
%21 = load i64* %20, align 8 ; <i64> [#uses=1]
|
|
%22 = add i32 %j2.0, -1 ; <i32> [#uses=1]
|
|
%23 = getelementptr i64* %6, i32 %22 ; <i64*> [#uses=1]
|
|
%24 = load i64* %23, align 8 ; <i64> [#uses=1]
|
|
%25 = icmp eq i64 %24, %yy.0 ; <i1> [#uses=1]
|
|
%26 = add i32 %j2.0, -1 ; <i32> [#uses=1]
|
|
%27 = getelementptr i64* %6, i32 %26 ; <i64*> [#uses=1]
|
|
%28 = load i64* %27, align 8 ; <i64> [#uses=1]
|
|
%29 = sub i64 0, %28 ; <i64> [#uses=1]
|
|
%30 = icmp eq i64 %yy.0, %29 ; <i1> [#uses=1]
|
|
%31 = or i1 %25, %30 ; <i1> [#uses=1]
|
|
%32 = icmp sgt i32 %j2.0, 1 ; <i1> [#uses=1]
|
|
%or.cond = and i1 %31, %32 ; <i1> [#uses=1]
|
|
br i1 %or.cond, label %bb69, label %bb83
|
|
|
|
bb69: ; preds = %invcont
|
|
%33 = add i32 %j2.0, -1 ; <i32> [#uses=1]
|
|
%34 = getelementptr i64* %6, i32 %33 ; <i64*> [#uses=1]
|
|
%35 = load i64* %34, align 8 ; <i64> [#uses=1]
|
|
%36 = icmp slt i64 %35, 0 ; <i1> [#uses=1]
|
|
%37 = add i32 %j2.0, -2 ; <i32> [#uses=1]
|
|
%38 = getelementptr i64* %6, i32 %37 ; <i64*> [#uses=1]
|
|
%39 = load i64* %38, align 8 ; <i64> [#uses=2]
|
|
br i1 %36, label %bb71, label %bb72
|
|
|
|
bb71: ; preds = %bb69
|
|
%40 = add i64 %39, 1 ; <i64> [#uses=1]
|
|
%41 = add i32 %j2.0, -2 ; <i32> [#uses=1]
|
|
%42 = getelementptr i64* %6, i32 %41 ; <i64*> [#uses=1]
|
|
store i64 %40, i64* %42, align 8
|
|
br label %bb73
|
|
|
|
bb72: ; preds = %bb69
|
|
%43 = add i64 %39, -1 ; <i64> [#uses=1]
|
|
%44 = add i32 %j2.0, -2 ; <i32> [#uses=1]
|
|
%45 = getelementptr i64* %6, i32 %44 ; <i64*> [#uses=1]
|
|
store i64 %43, i64* %45, align 8
|
|
br label %bb73
|
|
|
|
bb73: ; preds = %bb72, %bb71
|
|
%46 = add i32 %j2.0, -1 ; <i32> [#uses=1]
|
|
%47 = getelementptr i64* %6, i32 %46 ; <i64*> [#uses=1]
|
|
store i64 0, i64* %47, align 8
|
|
br label %bb74
|
|
|
|
bb74: ; preds = %bb82, %bb73
|
|
%j1.0 = phi i32 [ %4, %bb73 ], [ %81, %bb82 ] ; <i32> [#uses=12]
|
|
%48 = icmp slt i32 %j1.0, 2 ; <i1> [#uses=1]
|
|
br i1 %48, label %bb83, label %bb76
|
|
|
|
bb76: ; preds = %bb74
|
|
%49 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%50 = getelementptr i64* %6, i32 %49 ; <i64*> [#uses=1]
|
|
%51 = load i64* %50, align 8 ; <i64> [#uses=1]
|
|
%52 = icmp sgt i64 %51, 999999999999999999 ; <i1> [#uses=1]
|
|
br i1 %52, label %bb78, label %bb79
|
|
|
|
bb78: ; preds = %bb76
|
|
%53 = add i32 %j1.0, -2 ; <i32> [#uses=1]
|
|
%54 = getelementptr i64* %6, i32 %53 ; <i64*> [#uses=1]
|
|
%55 = load i64* %54, align 8 ; <i64> [#uses=1]
|
|
%56 = add i64 %55, 1 ; <i64> [#uses=1]
|
|
%57 = add i32 %j1.0, -2 ; <i32> [#uses=1]
|
|
%58 = getelementptr i64* %6, i32 %57 ; <i64*> [#uses=1]
|
|
store i64 %56, i64* %58, align 8
|
|
%59 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%60 = getelementptr i64* %6, i32 %59 ; <i64*> [#uses=1]
|
|
%61 = load i64* %60, align 8 ; <i64> [#uses=1]
|
|
%62 = add i64 %61, -1000000000000000000 ; <i64> [#uses=1]
|
|
%63 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%64 = getelementptr i64* %6, i32 %63 ; <i64*> [#uses=1]
|
|
store i64 %62, i64* %64, align 8
|
|
br label %bb82
|
|
|
|
bb79: ; preds = %bb76
|
|
%65 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%66 = getelementptr i64* %6, i32 %65 ; <i64*> [#uses=1]
|
|
%67 = load i64* %66, align 8 ; <i64> [#uses=1]
|
|
%68 = icmp slt i64 %67, -999999999999999999 ; <i1> [#uses=1]
|
|
br i1 %68, label %bb81, label %bb82
|
|
|
|
bb81: ; preds = %bb79
|
|
%69 = add i32 %j1.0, -2 ; <i32> [#uses=1]
|
|
%70 = getelementptr i64* %6, i32 %69 ; <i64*> [#uses=1]
|
|
%71 = load i64* %70, align 8 ; <i64> [#uses=1]
|
|
%72 = add i64 %71, -1 ; <i64> [#uses=1]
|
|
%73 = add i32 %j1.0, -2 ; <i32> [#uses=1]
|
|
%74 = getelementptr i64* %6, i32 %73 ; <i64*> [#uses=1]
|
|
store i64 %72, i64* %74, align 8
|
|
%75 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%76 = getelementptr i64* %6, i32 %75 ; <i64*> [#uses=1]
|
|
%77 = load i64* %76, align 8 ; <i64> [#uses=1]
|
|
%78 = add i64 %77, 1000000000000000000 ; <i64> [#uses=1]
|
|
%79 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
%80 = getelementptr i64* %6, i32 %79 ; <i64*> [#uses=1]
|
|
store i64 %78, i64* %80, align 8
|
|
br label %bb82
|
|
|
|
bb82: ; preds = %bb79, %bb81, %bb78
|
|
%81 = add i32 %j1.0, -1 ; <i32> [#uses=1]
|
|
br label %bb74
|
|
|
|
bb83: ; preds = %invcont, %bb74
|
|
%82 = icmp slt i32 %aa.0, 19 ; <i1> [#uses=1]
|
|
%min = select i1 %82, i32 %aa.0, i32 18 ; <i32> [#uses=1]
|
|
%83 = invoke i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 %min ) readnone
|
|
to label %invcont86 unwind label %lpad ; <i64> [#uses=1]
|
|
|
|
invcont86: ; preds = %bb83
|
|
%84 = sub i64 0, %83 ; <i64> [#uses=1]
|
|
%85 = icmp slt i32 %aa.0, 19 ; <i1> [#uses=1]
|
|
%min87 = select i1 %85, i32 %aa.0, i32 18 ; <i32> [#uses=1]
|
|
%86 = sub i32 %aa.0, %min87 ; <i32> [#uses=1]
|
|
%87 = icmp eq i32 %4, %j2.0 ; <i1> [#uses=1]
|
|
br i1 %87, label %bb91, label %bb90
|
|
|
|
bb90: ; preds = %invcont86
|
|
%88 = add i32 %j2.0, 1 ; <i32> [#uses=1]
|
|
br label %bb61
|
|
|
|
bb91: ; preds = %bb58, %bb61, %invcont86
|
|
%89 = icmp slt i32 %2, 18 ; <i1> [#uses=1]
|
|
br i1 %89, label %bb98, label %bb94
|
|
|
|
bb94: ; preds = %bb91, %bb97
|
|
%j.0 = phi i32 [ %97, %bb97 ], [ 1, %bb91 ] ; <i32> [#uses=4]
|
|
%90 = mul i32 %j.0, 18 ; <i32> [#uses=1]
|
|
%91 = add i32 %90, -18 ; <i32> [#uses=1]
|
|
%92 = sub i32 %e, %91 ; <i32> [#uses=1]
|
|
%93 = add i32 %j.0, -1 ; <i32> [#uses=1]
|
|
%94 = getelementptr i64* %6, i32 %93 ; <i64*> [#uses=1]
|
|
%95 = load i64* %94, align 8 ; <i64> [#uses=1]
|
|
invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %95, i32 %92 )
|
|
to label %invcont95 unwind label %lpad
|
|
|
|
invcont95: ; preds = %bb94
|
|
%96 = icmp eq i32 %3, %j.0 ; <i1> [#uses=1]
|
|
br i1 %96, label %bb98, label %bb97
|
|
|
|
bb97: ; preds = %invcont95
|
|
%97 = add i32 %j.0, 1 ; <i32> [#uses=1]
|
|
br label %bb94
|
|
|
|
bb98: ; preds = %bb91, %invcont95
|
|
%98 = sub i32 %e, %a ; <i32> [#uses=1]
|
|
%99 = getelementptr i64* %6, i32 %3 ; <i64*> [#uses=1]
|
|
%100 = load i64* %99, align 8 ; <i64> [#uses=1]
|
|
invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %100, i32 %98 )
|
|
to label %bb101 unwind label %lpad
|
|
|
|
bb101: ; preds = %bb98
|
|
ret void
|
|
|
|
lpad: ; preds = %bb98, %bb94, %bb83, %bb63
|
|
%eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
|
|
%eh_select103 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
|
|
call void @llvm.stackrestore( i8* %1 )
|
|
%101 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
|
|
unreachable
|
|
}
|
|
|
|
declare i8* @llvm.stacksave() nounwind
|
|
|
|
declare void @system__arith_64__scaled_divide({ i64, i64 }* noalias sret, i64, i64, i64, i8)
|
|
|
|
declare i64 @system__exn_lli__exn_long_long_integer(i64, i32) readnone
|
|
|
|
declare void @llvm.stackrestore(i8*) nounwind
|
|
|
|
declare i32 @system__img_real__set_image_real(x86_fp80, i8*, %struct.string___XUB*, i32, i32, i32, i32)
|
|
|
|
declare void @ada__text_io__generic_aux__put_item(%struct.ada__text_io__text_afcb*, i8*, %struct.string___XUB*)
|
|
|
|
declare void @report__test(i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
|
|
|
|
declare void @system__secondary_stack__ss_mark(%struct.string___XUB* noalias sret)
|
|
|
|
declare void @system__exception_table__register_exception(%struct.system__standard_library__exception_data*)
|
|
|
|
declare void @report__legal_file_name(%struct.system__file_control_block__pstring* noalias sret, i32, i8*, %struct.string___XUB*)
|
|
|
|
declare %struct.ada__text_io__text_afcb* @ada__text_io__create(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
|
|
|
|
declare void @system__secondary_stack__ss_release(i32, i32)
|
|
|
|
declare void @report__not_applicable(i8*, %struct.string___XUB*)
|
|
|
|
declare void @ada__text_io__set_output(%struct.ada__text_io__text_afcb*)
|
|
|
|
declare %struct.ada__text_io__text_afcb* @ada__text_io__close(%struct.ada__text_io__text_afcb*)
|
|
|
|
declare %struct.ada__text_io__text_afcb* @ada__text_io__open(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
|
|
|
|
declare %struct.ada__text_io__text_afcb* @ada__text_io__standard_output()
|
|
|
|
declare void @report__failed(i8*, %struct.string___XUB*)
|
|
|
|
declare void @ext(i32*)
|
|
|
|
declare %struct.ada__text_io__text_afcb* @ada__text_io__delete(%struct.ada__text_io__text_afcb*)
|
|
|
|
declare void @report__result()
|