-
-
Save indutny/ac9eedc036a43098b2ad0bf7b63e9f65 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@.data0 = private unnamed_addr constant [6 x i8] c"ONNECT" | |
@.cstr1 = private unnamed_addr constant [19 x i8] c"`on_request` error\00" | |
@.cstr2 = private unnamed_addr constant [13 x i8] c"Invalid word\00" | |
@.data3 = private unnamed_addr constant [5 x i8] c"ELETE" | |
@.data4 = private unnamed_addr constant [2 x i8] c"ET" | |
@.data5 = private unnamed_addr constant [2 x i8] c"AD" | |
@.data6 = private unnamed_addr constant [2 x i8] c"TP" | |
@.cstr7 = private unnamed_addr constant [20 x i8] c"`on_response` error\00" | |
@.data8 = private unnamed_addr constant [6 x i8] c"PTIONS" | |
@.data9 = private unnamed_addr constant [3 x i8] c"TCH" | |
@.data10 = private unnamed_addr constant [2 x i8] c"ST" | |
@.data11 = private unnamed_addr constant [4 x i8] c"RACE" | |
%llparse_state = type { | |
i8* (%llparse_state*, i8*, i8*)*, ; 0 => "current" | |
i32, ; 1 => "error" | |
i8*, ; 2 => "reason" | |
i32, ; 3 => "index" | |
i32 ; 4 => "match" | |
} | |
declare i32 @on_request(%llparse_state*, i8*, i8*) alwaysinline | |
declare i32 @on_response(%llparse_state*, i8*, i8*) alwaysinline | |
define internal fastcc i8* @llparse__start(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = load i8, i8* %p | |
switch i8 %i2, label %b2_otherwise [ i8 67 , label %b3_case_0 i8 68 , label %b4_case_1 i8 71 , label %b5_case_2 i8 72 , label %b6_case_3 i8 79 , label %b7_case_4 i8 80 , label %b8_case_5 i8 84 , label %b9_case_6 ] | |
b1_false: | |
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start to i8* | |
ret i8* %i3 | |
b2_otherwise: | |
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i4 | |
b3_case_0: | |
%i5 = tail call fastcc i8* @llparse__start_1 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i5 | |
b4_case_1: | |
%i6 = tail call fastcc i8* @llparse__start_2 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i6 | |
b5_case_2: | |
%i7 = tail call fastcc i8* @llparse__start_3 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i7 | |
b6_case_3: | |
%i8 = tail call fastcc i8* @llparse__start_4 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i8 | |
b7_case_4: | |
%i9 = tail call fastcc i8* @llparse__start_7 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i9 | |
b8_case_5: | |
%i10 = tail call fastcc i8* @llparse__start_8 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i10 | |
b9_case_6: | |
%i11 = tail call fastcc i8* @llparse__start_12 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i11 | |
} | |
define internal fastcc i8* @llparse__start_1(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_1 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [6 x i8], [6 x i8]* @.data0, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 6 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 6, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_1 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__invoke_on_request(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = call i32 @on_request ( %llparse_state* %s , i8* %p , i8* %endp ) | |
switch i32 %i0, label %b0_otherwise [ i32 0 , label %b1_case_0 ] | |
b0_otherwise: | |
%i1 = tail call fastcc i8* @llparse__error ( %llparse_state* %s , i8* %p , i8* %endp ) | |
ret i8* %i1 | |
b1_case_0: | |
%i2 = tail call fastcc i8* @llparse__start ( %llparse_state* %s , i8* %p , i8* %endp ) | |
ret i8* %i2 | |
} | |
define internal fastcc i8* @llparse__error(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1 | |
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2 | |
%i2 = bitcast [19 x i8]* @.cstr1 to i8* | |
store i32 2, i32* %i0 | |
store i8* %i2, i8** %i1 | |
ret i8* null | |
} | |
define internal fastcc i8* @llparse__error_1(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1 | |
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2 | |
%i2 = bitcast [13 x i8]* @.cstr2 to i8* | |
store i32 3, i32* %i0 | |
store i8* %i2, i8** %i1 | |
ret i8* null | |
} | |
define internal fastcc i8* @llparse__start_2(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_2 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [5 x i8], [5 x i8]* @.data3, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 5 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 4, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_2 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__start_3(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_3 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data4, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 2 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 1, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_3 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__start_4(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = load i8, i8* %p | |
switch i8 %i2, label %b2_otherwise [ i8 69 , label %b3_case_0 i8 84 , label %b4_case_1 ] | |
b1_false: | |
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_4 to i8* | |
ret i8* %i3 | |
b2_otherwise: | |
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i4 | |
b3_case_0: | |
%i5 = tail call fastcc i8* @llparse__start_5 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i5 | |
b4_case_1: | |
%i6 = tail call fastcc i8* @llparse__start_6 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i6 | |
} | |
define internal fastcc i8* @llparse__start_5(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_5 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data5, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 2 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i15 | |
b7_false: | |
%i16 = icmp ne i8* %i5, %endp | |
br i1 %i16, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i17 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_5 to i8* | |
ret i8* %i17 | |
} | |
define internal fastcc i8* @llparse__start_6(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_6 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data6, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 2 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = tail call fastcc i8* @llparse__invoke_on_response ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i15 | |
b7_false: | |
%i16 = icmp ne i8* %i5, %endp | |
br i1 %i16, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i17 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_6 to i8* | |
ret i8* %i17 | |
} | |
define internal fastcc i8* @llparse__invoke_on_response(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = call i32 @on_response ( %llparse_state* %s , i8* %p , i8* %endp ) | |
switch i32 %i0, label %b0_otherwise [ i32 0 , label %b1_case_0 ] | |
b0_otherwise: | |
%i1 = tail call fastcc i8* @llparse__error_2 ( %llparse_state* %s , i8* %p , i8* %endp ) | |
ret i8* %i1 | |
b1_case_0: | |
%i2 = tail call fastcc i8* @llparse__start ( %llparse_state* %s , i8* %p , i8* %endp ) | |
ret i8* %i2 | |
} | |
define internal fastcc i8* @llparse__error_2(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1 | |
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2 | |
%i2 = bitcast [20 x i8]* @.cstr7 to i8* | |
store i32 1, i32* %i0 | |
store i8* %i2, i8** %i1 | |
ret i8* null | |
} | |
define internal fastcc i8* @llparse__start_7(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_7 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [6 x i8], [6 x i8]* @.data8, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 6 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 5, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_7 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__start_8(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = load i8, i8* %p | |
switch i8 %i2, label %b2_otherwise [ i8 65 , label %b3_case_0 i8 79 , label %b4_case_1 i8 85 , label %b5_case_2 ] | |
b1_false: | |
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_8 to i8* | |
ret i8* %i3 | |
b2_otherwise: | |
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i4 | |
b3_case_0: | |
%i5 = tail call fastcc i8* @llparse__start_9 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i5 | |
b4_case_1: | |
%i6 = tail call fastcc i8* @llparse__start_10 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i6 | |
b5_case_2: | |
%i7 = tail call fastcc i8* @llparse__start_11 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i7 | |
} | |
define internal fastcc i8* @llparse__start_9(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_9 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [3 x i8], [3 x i8]* @.data9, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 3 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 8, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_9 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__start_10(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_10 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data10, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 2 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 2, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_10 to i8* | |
ret i8* %i18 | |
} | |
define internal fastcc i8* @llparse__start_11(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = load i8, i8* %p | |
switch i8 %i2, label %b2_otherwise [ i8 84 , label %b3_case_0 ] | |
b1_false: | |
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_11 to i8* | |
ret i8* %i3 | |
b2_otherwise: | |
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i4 | |
b3_case_0: | |
%i5 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 3, i32* %i5 | |
%i6 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i1 , i8* %endp ) | |
ret i8* %i6 | |
} | |
define internal fastcc i8* @llparse__start_12(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = icmp ne i8* %p, %endp | |
br i1 %i0, label %b0_true, label %b1_false | |
b0_true: | |
%i1 = getelementptr i8, i8* %p, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i3 = load i32, i32* %i2 | |
br label %b2_target | |
b1_false: | |
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_12 to i8* | |
ret i8* %i4 | |
b2_target: | |
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ] | |
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ] | |
%i9 = load i8, i8* %i5 | |
%i10 = getelementptr inbounds [4 x i8], [4 x i8]* @.data11, i32 0, i32 %i7 | |
%i11 = load i8, i8* %i10 | |
%i12 = icmp eq i8 %i9, %i11 | |
br i1 %i12, label %b4_true, label %b5_false | |
b4_true: | |
%i6 = getelementptr i8, i8* %i5, i32 1 | |
%i8 = add i32 %i7, 1 | |
%i13 = icmp eq i32 %i8, 4 | |
br i1 %i13, label %b6_true, label %b7_false | |
b5_false: | |
store i32 0, i32* %i2 | |
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i14 | |
b6_true: | |
store i32 0, i32* %i2 | |
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i32 7, i32* %i15 | |
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp ) | |
ret i8* %i16 | |
b7_false: | |
%i17 = icmp ne i8* %i5, %endp | |
br i1 %i17, label %b3_true, label %b8_false | |
b3_true: | |
br label %b2_target | |
b8_false: | |
store i32 %i8, i32* %i2 | |
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_12 to i8* | |
ret i8* %i18 | |
} | |
define void @llparse_init(%llparse_state* %s) { | |
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 0 | |
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1 | |
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2 | |
%i3 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3 | |
%i4 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4 | |
store i8* (%llparse_state*, i8*, i8*)* @llparse__start, i8* (%llparse_state*, i8*, i8*)** %i0 | |
store i32 0, i32* %i1 | |
store i8* null, i8** %i2 | |
store i32 0, i32* %i3 | |
store i32 0, i32* %i4 | |
ret void | |
} | |
define i32 @llparse_execute(%llparse_state* %s, i8* %p, i8* %endp) { | |
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 0 | |
%i1 = load i8* (%llparse_state*, i8*, i8*)*, i8* (%llparse_state*, i8*, i8*)** %i0 | |
%i2 = call fastcc i8* %i1 ( %llparse_state* %s , i8* %p , i8* %endp ) | |
%i3 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1 | |
%i4 = load i32, i32* %i3 | |
%i5 = bitcast i8* %i2 to i8* (%llparse_state*, i8*, i8*)* | |
store i8* (%llparse_state*, i8*, i8*)* %i5, i8* (%llparse_state*, i8*, i8*)** %i0 | |
ret i32 %i4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment