Advertisement
Guest User

Untitled

a guest
Dec 19th, 2016
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 3.66 KB | None | 0 0
  1. ; [8] i1:=low(int64);
  2.         store i64 -9223372036854775808, i64* @"\01_U_$P$PROGRAM_$$_I1", align 8
  3. ; [9] caught:=false;
  4.         store i8 0, i8* @"\01_U_$P$PROGRAM_$$_CAUGHT", align 1
  5. ; [10] try
  6.         %reg.1_18 = bitcast %"typ.SYSTEM.TExceptAddr"* %tmp.1 to i8*
  7.         %reg.1_17 = bitcast %"typ.SYSTEM.jmp_buf"* %tmp.2 to i8*
  8.         %reg.1_19 = call %"typ.SYSTEM.jmp_buf"* (i32, i8*, i8*) @"\01fpc_pushexceptaddr" (i32 1, i8* %reg.1_17, i8* %reg.1_18)
  9.         %reg.1_20 = bitcast %"typ.SYSTEM.jmp_buf"* %reg.1_19 to %"typ.SYSTEM.jmp_buf"*
  10.         %reg.1_21 = bitcast %"typ.SYSTEM.jmp_buf"* %reg.1_20 to %"typ.SYSTEM.jmp_buf"*
  11.         %reg.1_22 = call i32 (%"typ.SYSTEM.jmp_buf"*) @"\01fpc_setjmp" (%"typ.SYSTEM.jmp_buf"* %reg.1_21)
  12.         %reg.1_23 = bitcast i32 %reg.1_22 to i32
  13.         %reg.1_24 = zext i32 %reg.1_23 to i64
  14.         store i64 %reg.1_24, i64* %tmp.3, align 8
  15.         %reg.1_25 = trunc i64 0 to i32
  16.         %reg.1_26 = icmp ne i32 %reg.1_23, %reg.1_25
  17.         br i1 %reg.1_26, label %Lj11, label %Lj12
  18. Lj12:
  19. ; [11] i1:=i1-1;
  20.         %reg.1_27 = load i64, i64* @"\01_U_$P$PROGRAM_$$_I1", align 8
  21.         %reg.1_29 = bitcast i64 1 to i64
  22.         %reg.1_30 = sext i64 %reg.1_29 to i128
  23.         %reg.1_31 = sext i64 %reg.1_27 to i128
  24.         %reg.1_32 = sub i128 %reg.1_31, %reg.1_30
  25.         %reg.1_28 = trunc i128 %reg.1_32 to i64
  26.         %reg.1_33 = sext i64 %reg.1_28 to i128
  27.         %reg.1_34 = icmp ne i128 %reg.1_33, %reg.1_32
  28.         %reg.1_35 = trunc i64 0 to i1
  29.         %reg.1_36 = icmp eq i1 %reg.1_34, %reg.1_35
  30.         br i1 %reg.1_36, label %Lj14, label %Lj15
  31. Lj15:
  32.         invoke void () @"\01fpc_overflow" () to label %Lj16 unwind label %Lj13
  33. Lj16:
  34.         br label %Lj14
  35. Lj14:
  36.         store i64 %reg.1_28, i64* @"\01_U_$P$PROGRAM_$$_I1", align 8
  37.         br label %Lj11
  38. Lj13:
  39.         %reg.1_37 = landingpad %"typ.PROGRAM.$llvmstruct$d00000004i32"  catch i8* null
  40.  
  41.         br label %Lj11
  42. Lj11:
  43.         call void () @"\01fpc_popaddrstack" ()
  44.         %reg.1_38 = load i64, i64* %tmp.3, align 8
  45.         %reg.1_39 = bitcast i64 0 to i64
  46.         %reg.1_40 = icmp eq i64 %reg.1_38, %reg.1_39
  47.         br i1 %reg.1_40, label %Lj9, label %Lj17
  48. Lj17:
  49.         br label %Lj10
  50. Lj10:
  51.         %reg.1_43 = bitcast %"typ.SYSTEM.TExceptAddr"* %tmp.4 to i8*
  52.         %reg.1_42 = bitcast %"typ.SYSTEM.jmp_buf"* %tmp.5 to i8*
  53.         %reg.1_44 = call %"typ.SYSTEM.jmp_buf"* (i32, i8*, i8*) @"\01fpc_pushexceptaddr" (i32 1, i8* %reg.1_42, i8* %reg.1_43)
  54.         %reg.1_45 = bitcast %"typ.SYSTEM.jmp_buf"* %reg.1_44 to %"typ.SYSTEM.jmp_buf"*
  55.         %reg.1_46 = bitcast %"typ.SYSTEM.jmp_buf"* %reg.1_45 to %"typ.SYSTEM.jmp_buf"*
  56.         %reg.1_47 = call i32 (%"typ.SYSTEM.jmp_buf"*) @"\01fpc_setjmp" (%"typ.SYSTEM.jmp_buf"* %reg.1_46)
  57.         %reg.1_48 = bitcast i32 %reg.1_47 to i32
  58.         %reg.1_49 = zext i32 %reg.1_48 to i64
  59.         store i64 %reg.1_49, i64* %tmp.6, align 8
  60.         %reg.1_50 = trunc i64 0 to i32
  61.         %reg.1_51 = icmp ne i32 %reg.1_48, %reg.1_50
  62.         br i1 %reg.1_51, label %Lj18, label %Lj19
  63. Lj19:
  64. ; [13] caught:=true;
  65.         store i8 1, i8* @"\01_U_$P$PROGRAM_$$_CAUGHT", align 1
  66.         br label %Lj18
  67.         %reg.1_52 = landingpad %"typ.PROGRAM.$llvmstruct$d00000004i32"  catch i8* null
  68.  
  69.         br label %Lj18
  70. Lj18:
  71.         call void () @"\01fpc_popaddrstack" ()
  72.         %reg.1_53 = load i64, i64* %tmp.6, align 8
  73.         %reg.1_54 = bitcast i64 0 to i64
  74.         %reg.1_55 = icmp eq i64 %reg.1_53, %reg.1_54
  75.         br i1 %reg.1_55, label %Lj21, label %Lj22
  76. Lj22:
  77.         call void () @"\01fpc_raise_nested" ()
  78.         br label %Lj21
  79. Lj21:
  80.         call void () @"\01fpc_doneexception" ()
  81.         br label %Lj9
  82. Lj9:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement