Created
January 19, 2015 16:23
-
-
Save badlogic/3fa265b1bcaa10df8b42 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
| define external %Object* @"[J]java.util.concurrent.ConcurrentHashMap$Segment.put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;"(%Env* %p0, %Object* %p1, %Object* %p2, i32 %p3, %Object* %p4, i8 %p5) nounwind noinline optsize { | |
| label0: | |
| %__envStack = alloca %Env* | |
| store %Env* %p0, %Env** %__envStack | |
| call void @"llvm.dbg.declare"(metadata %Env** %__envStack, metadata !39), !dbg !{i32 334, i32 0, !{!"0x2e\00[J]java.util.concurrent.ConcurrentHashMap$Segment.put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;\00[J]java.util.concurrent.ConcurrentHashMap$Segment.put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;\00\00334\000\001\000\000\00256\000\00334", !0, !1, !25, null, %Object* (%Env*, %Object*, %Object*, i32, %Object*, i8)* @"[J]java.util.concurrent.ConcurrentHashMap$Segment.put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;", null, null, !27}, null} | |
| %r0 = alloca %Object* | |
| %r1 = alloca %Object* | |
| %i0 = alloca i32 | |
| %r2 = alloca %Object* | |
| %z0 = alloca i32 | |
| %$z1 = alloca i32 | |
| %$r10 = alloca %Object* | |
| %r3 = alloca %Object* | |
| %r4 = alloca %Object* | |
| %$i2 = alloca i32 | |
| %$i3 = alloca i32 | |
| %i1 = alloca i32 | |
| %r5 = alloca %Object* | |
| %r6 = alloca %Object* | |
| %$r11 = alloca %Object* | |
| %r7 = alloca %Object* | |
| %$i4 = alloca i32 | |
| %$z2 = alloca i32 | |
| %r8 = alloca %Object* | |
| %$r12 = alloca %Object* | |
| %$i5 = alloca i32 | |
| %$i6 = alloca i32 | |
| %$r13 = alloca %Object* | |
| %$i7 = alloca i32 | |
| %i8 = alloca i32 | |
| %$i9 = alloca i32 | |
| %$i10 = alloca i32 | |
| %$r14 = alloca %Object* | |
| %$i11 = alloca i32 | |
| %$i12 = alloca i32 | |
| %$r15 = alloca %Object* | |
| %r9 = alloca %Object* | |
| store %Object* null, %Object** %r0 | |
| store %Object* null, %Object** %r1 | |
| store %Object* null, %Object** %r2 | |
| store %Object* null, %Object** %$r10 | |
| store %Object* null, %Object** %r3 | |
| store %Object* null, %Object** %r4 | |
| store %Object* null, %Object** %r5 | |
| store %Object* null, %Object** %r6 | |
| store %Object* null, %Object** %$r11 | |
| store %Object* null, %Object** %r7 | |
| store %Object* null, %Object** %r8 | |
| store %Object* null, %Object** %$r12 | |
| store %Object* null, %Object** %$r13 | |
| store %Object* null, %Object** %$r14 | |
| store %Object* null, %Object** %$r15 | |
| store %Object* null, %Object** %r9 | |
| call void @"checkso"() | |
| %t1 = alloca %BcTrycatchContext | |
| %t2 = getelementptr %BcTrycatchContext* %t1, i32 0, i32 0, i32 1 | |
| store i32 0, i32* %t2 | |
| %t3 = getelementptr %BcTrycatchContext* %t1, i32 0, i32 1 | |
| store i8* bitcast ({i8*, i8*}* @"g2" to i8*), i8** %t3 | |
| %t0 = bitcast %BcTrycatchContext* %t1 to %TrycatchContext* | |
| %t4 = call i32 @"rvmTrycatchEnter"(%Env* %p0, %TrycatchContext* %t0) | |
| switch i32 %t4, label %label1 [ i32 1, label %label21 ] | |
| label1: | |
| call void @"llvm.dbg.declare"(metadata %Object** %r0, metadata !40), !dbg !{i32 334, i32 0, !24, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r1, metadata !41), !dbg !{i32 334, i32 0, !24, null} | |
| call void @"llvm.dbg.declare"(metadata i32* %i0, metadata !42), !dbg !{i32 334, i32 0, !24, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r2, metadata !43), !dbg !{i32 334, i32 0, !24, null} | |
| call void @"llvm.dbg.declare"(metadata i32* %z0, metadata !44), !dbg !{i32 334, i32 0, !24, null} | |
| %t5 = getelementptr %TrycatchContext* %t0, i32 0, i32 1 | |
| store i32 0, i32* %t5 | |
| store volatile %Object* %p1, %Object** %r0 | |
| store volatile %Object* %p2, %Object** %r1 | |
| store volatile i32 %p3, i32* %i0 | |
| store volatile %Object* %p4, %Object** %r2 | |
| %t6 = sext i8 %p5 to i32 | |
| store volatile i32 %t6, i32* %z0 | |
| %t7 = load volatile %Object** %r0, !dbg !{i32 334, i32 0, !28, null} | |
| %t8 = call i8 @"[j]java.util.concurrent.ConcurrentHashMap$Segment.tryLock()Z[Invokevirtual(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0, %Object* %t7), !dbg !{i32 334, i32 0, !28, null} | |
| %t9 = sext i8 %t8 to i32, !dbg !{i32 334, i32 0, !28, null} | |
| store volatile i32 %t9, i32* %$z1, !dbg !{i32 334, i32 0, !28, null} | |
| %t10 = load volatile i32* %$z1, !dbg !{i32 334, i32 0, !28, null} | |
| %t11 = icmp eq i32 %t10, 0, !dbg !{i32 334, i32 0, !28, null} | |
| br i1 %t11, label %label3, label %label2, !dbg !{i32 334, i32 0, !28, null} | |
| label2: | |
| store volatile %Object* null, %Object** %$r10, !dbg !{i32 334, i32 0, !28, null} | |
| br label %label4, !dbg !{i32 334, i32 0, !28, null} | |
| label3: | |
| %t12 = load volatile %Object** %r0, !dbg !{i32 334, i32 0, !28, null} | |
| %t13 = load volatile %Object** %r1, !dbg !{i32 334, i32 0, !28, null} | |
| %t14 = load volatile i32* %i0, !dbg !{i32 334, i32 0, !28, null} | |
| %t15 = load volatile %Object** %r2, !dbg !{i32 334, i32 0, !28, null} | |
| %t16 = call %Object* @"[J]java.util.concurrent.ConcurrentHashMap$Segment.scanAndLockForPut(Ljava/lang/Object;ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$HashEntry;"(%Env* %p0, %Object* %t12, %Object* %t13, i32 %t14, %Object* %t15), !dbg !{i32 334, i32 0, !28, null} | |
| store volatile %Object* %t16, %Object** %$r10, !dbg !{i32 334, i32 0, !28, null} | |
| br label %label4 | |
| label4: | |
| %t17 = load volatile %Object** %$r10, !dbg !{i32 334, i32 0, !28, null} | |
| store volatile %Object* %t17, %Object** %r3, !dbg !{i32 334, i32 0, !28, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r3, metadata !45), !dbg !{i32 338, i32 0, !29, null} | |
| %t18 = getelementptr %TrycatchContext* %t0, i32 0, i32 1, !dbg !{i32 338, i32 0, !29, null} | |
| store i32 1, i32* %t18, !dbg !{i32 338, i32 0, !29, null} | |
| %t19 = load volatile %Object** %r0, !dbg !{i32 338, i32 0, !29, null} | |
| %t20 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap$Segment.table([Ljava/util/concurrent/ConcurrentHashMap$HashEntry;)[get]"(%Env* %p0, %Object* %t19), !dbg !{i32 338, i32 0, !29, null} | |
| store volatile %Object* %t20, %Object** %r4, !dbg !{i32 338, i32 0, !29, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r4, metadata !46), !dbg !{i32 339, i32 0, !30, null} | |
| %t21 = load volatile %Object** %r4, !dbg !{i32 339, i32 0, !30, null} | |
| %t22 = call i8 @"checknull"(%Env* %p0, %Object* %t21), !dbg !{i32 339, i32 0, !30, null} | |
| %t23 = call i32 @"arraylength"(%Object* %t21), !dbg !{i32 339, i32 0, !30, null} | |
| store volatile i32 %t23, i32* %$i2, !dbg !{i32 339, i32 0, !30, null} | |
| %t25 = load volatile i32* %$i2, !dbg !{i32 339, i32 0, !30, null} | |
| %t24 = sub i32 %t25, 1, !dbg !{i32 339, i32 0, !30, null} | |
| store volatile i32 %t24, i32* %$i3, !dbg !{i32 339, i32 0, !30, null} | |
| %t27 = load volatile i32* %$i3, !dbg !{i32 339, i32 0, !30, null} | |
| %t28 = load volatile i32* %i0, !dbg !{i32 339, i32 0, !30, null} | |
| %t26 = and i32 %t27, %t28, !dbg !{i32 339, i32 0, !30, null} | |
| store volatile i32 %t26, i32* %i1, !dbg !{i32 339, i32 0, !30, null} | |
| call void @"llvm.dbg.declare"(metadata i32* %i1, metadata !48), !dbg !{i32 340, i32 0, !31, null} | |
| %t29 = load volatile %Object** %r4, !dbg !{i32 340, i32 0, !31, null} | |
| %t30 = load volatile i32* %i1, !dbg !{i32 340, i32 0, !31, null} | |
| %t31 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap.entryAt([Ljava/util/concurrent/ConcurrentHashMap$HashEntry;I)Ljava/util/concurrent/ConcurrentHashMap$HashEntry;[Invokestatic(java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0, %Object* %t29, i32 %t30), !dbg !{i32 340, i32 0, !31, null} | |
| store volatile %Object* %t31, %Object** %r5, !dbg !{i32 340, i32 0, !31, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r5, metadata !49), !dbg !{i32 341, i32 0, !32, null} | |
| %t32 = load volatile %Object** %r5, !dbg !{i32 341, i32 0, !32, null} | |
| store volatile %Object* %t32, %Object** %r6, !dbg !{i32 341, i32 0, !32, null} | |
| br label %label5 | |
| label5: | |
| call void @"llvm.dbg.declare"(metadata %Object** %r5, metadata !50), !dbg !{i32 342, i32 0, !33, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r6, metadata !51), !dbg !{i32 342, i32 0, !33, null} | |
| %t33 = load volatile %Object** %r6, !dbg !{i32 342, i32 0, !33, null} | |
| %t34 = icmp eq %Object* %t33, null, !dbg !{i32 342, i32 0, !33, null} | |
| br i1 %t34, label %label12, label %label6, !dbg !{i32 342, i32 0, !33, null} | |
| label6: | |
| %t35 = load volatile %Object** %r6, !dbg !{i32 344, i32 0, !33, null} | |
| %t36 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.key(Ljava/lang/Object;)[GetField(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t35), !dbg !{i32 344, i32 0, !33, null} | |
| store volatile %Object* %t36, %Object** %$r11, !dbg !{i32 344, i32 0, !33, null} | |
| %t37 = load volatile %Object** %$r11, !dbg !{i32 344, i32 0, !33, null} | |
| store volatile %Object* %t37, %Object** %r7, !dbg !{i32 344, i32 0, !33, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r7, metadata !53), !dbg !{i32 344, i32 0, !34, null} | |
| %t38 = load volatile %Object** %$r11, !dbg !{i32 344, i32 0, !34, null} | |
| %t39 = load volatile %Object** %r1, !dbg !{i32 344, i32 0, !34, null} | |
| %t40 = icmp eq %Object* %t38, %t39, !dbg !{i32 344, i32 0, !34, null} | |
| br i1 %t40, label %label9, label %label7, !dbg !{i32 344, i32 0, !34, null} | |
| label7: | |
| %t41 = load volatile %Object** %r6, !dbg !{i32 344, i32 0, !34, null} | |
| %t42 = call i32 @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.hash(I)[GetField(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t41), !dbg !{i32 344, i32 0, !34, null} | |
| store volatile i32 %t42, i32* %$i4, !dbg !{i32 344, i32 0, !34, null} | |
| %t43 = load volatile i32* %$i4, !dbg !{i32 344, i32 0, !34, null} | |
| %t44 = load volatile i32* %i0, !dbg !{i32 344, i32 0, !34, null} | |
| %t45 = icmp ne i32 %t43, %t44, !dbg !{i32 344, i32 0, !34, null} | |
| br i1 %t45, label %label11, label %label8, !dbg !{i32 344, i32 0, !34, null} | |
| label8: | |
| %t46 = load volatile %Object** %r1, !dbg !{i32 344, i32 0, !34, null} | |
| %t47 = call i8 @"checknull"(%Env* %p0, %Object* %t46), !dbg !{i32 344, i32 0, !34, null} | |
| %t48 = load volatile %Object** %r7, !dbg !{i32 344, i32 0, !34, null} | |
| %t49 = call i8 @"[j]java.lang.Object.equals(Ljava/lang/Object;)Z[Invokevirtual(java/util/concurrent/ConcurrentHashMap$Segment,java/lang/Object)]"(%Env* %p0, %Object* %t46, %Object* %t48), !dbg !{i32 344, i32 0, !34, null} | |
| %t50 = sext i8 %t49 to i32, !dbg !{i32 344, i32 0, !34, null} | |
| store volatile i32 %t50, i32* %$z2, !dbg !{i32 344, i32 0, !34, null} | |
| %t51 = load volatile i32* %$z2, !dbg !{i32 344, i32 0, !34, null} | |
| %t52 = icmp eq i32 %t51, 0, !dbg !{i32 344, i32 0, !34, null} | |
| br i1 %t52, label %label11, label %label9, !dbg !{i32 344, i32 0, !34, null} | |
| label9: | |
| %t53 = load volatile %Object** %r6, !dbg !{i32 346, i32 0, !34, null} | |
| %t54 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.value(Ljava/lang/Object;)[GetField(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t53), !dbg !{i32 346, i32 0, !34, null} | |
| store volatile %Object* %t54, %Object** %r8, !dbg !{i32 346, i32 0, !34, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r8, metadata !57), !dbg !{i32 347, i32 0, !35, null} | |
| %t55 = load volatile i32* %z0, !dbg !{i32 347, i32 0, !35, null} | |
| %t56 = icmp ne i32 %t55, 0, !dbg !{i32 347, i32 0, !35, null} | |
| br i1 %t56, label %label20, label %label10, !dbg !{i32 347, i32 0, !35, null} | |
| label10: | |
| %t57 = load volatile %Object** %r2, !dbg !{i32 348, i32 0, !35, null} | |
| %t58 = load volatile %Object** %r6, !dbg !{i32 348, i32 0, !35, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.value(Ljava/lang/Object;)[PutField(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t58, %Object* %t57), !dbg !{i32 348, i32 0, !35, null} | |
| %t59 = load volatile %Object** %r0, !dbg !{i32 349, i32 0, !35, null} | |
| store volatile %Object* %t59, %Object** %$r12, !dbg !{i32 349, i32 0, !35, null} | |
| %t60 = load volatile %Object** %r0, !dbg !{i32 349, i32 0, !35, null} | |
| %t61 = call i32 @"[j]java.util.concurrent.ConcurrentHashMap$Segment.modCount(I)[get]"(%Env* %p0, %Object* %t60), !dbg !{i32 349, i32 0, !35, null} | |
| store volatile i32 %t61, i32* %$i5, !dbg !{i32 349, i32 0, !35, null} | |
| %t63 = load volatile i32* %$i5, !dbg !{i32 349, i32 0, !35, null} | |
| %t62 = add i32 %t63, 1, !dbg !{i32 349, i32 0, !35, null} | |
| store volatile i32 %t62, i32* %$i6, !dbg !{i32 349, i32 0, !35, null} | |
| %t64 = load volatile i32* %$i6, !dbg !{i32 349, i32 0, !35, null} | |
| %t65 = load volatile %Object** %r0, !dbg !{i32 349, i32 0, !35, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$Segment.modCount(I)[set]"(%Env* %p0, %Object* %t65, i32 %t64), !dbg !{i32 349, i32 0, !35, null} | |
| br label %label20, !dbg !{i32 349, i32 0, !35, null} | |
| label11: | |
| %t66 = load volatile %Object** %r6, !dbg !{i32 353, i32 0, !34, null} | |
| %t67 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.next(Ljava/util/concurrent/ConcurrentHashMap$HashEntry;)[GetField(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t66), !dbg !{i32 353, i32 0, !34, null} | |
| store volatile %Object* %t67, %Object** %r6, !dbg !{i32 353, i32 0, !34, null} | |
| br label %label5, !dbg !{i32 354, i32 0, !33, null} | |
| label12: | |
| %t68 = load volatile %Object** %r3, !dbg !{i32 356, i32 0, !33, null} | |
| %t69 = icmp eq %Object* %t68, null, !dbg !{i32 356, i32 0, !33, null} | |
| br i1 %t69, label %label14, label %label13, !dbg !{i32 356, i32 0, !33, null} | |
| label13: | |
| %t70 = load volatile %Object** %r3, !dbg !{i32 357, i32 0, !33, null} | |
| %t71 = load volatile %Object** %r5, !dbg !{i32 357, i32 0, !33, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.setNext(Ljava/util/concurrent/ConcurrentHashMap$HashEntry;)V[Invokevirtual(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t70, %Object* %t71), !dbg !{i32 357, i32 0, !33, null} | |
| br label %label15, !dbg !{i32 357, i32 0, !33, null} | |
| label14: | |
| %t72 = call %Object* @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry[New(java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0), !dbg !{i32 359, i32 0, !33, null} | |
| store volatile %Object* %t72, %Object** %$r13, !dbg !{i32 359, i32 0, !33, null} | |
| %t73 = load volatile %Object** %$r13, !dbg !{i32 359, i32 0, !33, null} | |
| %t74 = load volatile i32* %i0, !dbg !{i32 359, i32 0, !33, null} | |
| %t75 = load volatile %Object** %r1, !dbg !{i32 359, i32 0, !33, null} | |
| %t76 = load volatile %Object** %r2, !dbg !{i32 359, i32 0, !33, null} | |
| %t77 = load volatile %Object** %r5, !dbg !{i32 359, i32 0, !33, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$HashEntry.<init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$HashEntry;)V[Invokespecial(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$HashEntry)]"(%Env* %p0, %Object* %t73, i32 %t74, %Object* %t75, %Object* %t76, %Object* %t77), !dbg !{i32 359, i32 0, !33, null} | |
| %t78 = load volatile %Object** %$r13, !dbg !{i32 359, i32 0, !33, null} | |
| store volatile %Object* %t78, %Object** %r3, !dbg !{i32 359, i32 0, !33, null} | |
| br label %label15 | |
| label15: | |
| %t79 = load volatile %Object** %r0, !dbg !{i32 360, i32 0, !33, null} | |
| %t80 = call i32 @"[j]java.util.concurrent.ConcurrentHashMap$Segment.count(I)[get]"(%Env* %p0, %Object* %t79), !dbg !{i32 360, i32 0, !33, null} | |
| store volatile i32 %t80, i32* %$i7, !dbg !{i32 360, i32 0, !33, null} | |
| %t82 = load volatile i32* %$i7, !dbg !{i32 360, i32 0, !33, null} | |
| %t81 = add i32 %t82, 1, !dbg !{i32 360, i32 0, !33, null} | |
| store volatile i32 %t81, i32* %i8, !dbg !{i32 360, i32 0, !33, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r6, metadata !52), !dbg !{i32 361, i32 0, !36, null} | |
| %t83 = load volatile %Object** %r0, !dbg !{i32 361, i32 0, !36, null} | |
| %t84 = call i32 @"[j]java.util.concurrent.ConcurrentHashMap$Segment.threshold(I)[get]"(%Env* %p0, %Object* %t83), !dbg !{i32 361, i32 0, !36, null} | |
| store volatile i32 %t84, i32* %$i9, !dbg !{i32 361, i32 0, !36, null} | |
| %t85 = load volatile i32* %i8, !dbg !{i32 361, i32 0, !36, null} | |
| %t86 = load volatile i32* %$i9, !dbg !{i32 361, i32 0, !36, null} | |
| %t87 = icmp sle i32 %t85, %t86, !dbg !{i32 361, i32 0, !36, null} | |
| br i1 %t87, label %label18, label %label16, !dbg !{i32 361, i32 0, !36, null} | |
| label16: | |
| %t88 = load volatile %Object** %r4, !dbg !{i32 361, i32 0, !36, null} | |
| %t89 = call i32 @"arraylength"(%Object* %t88), !dbg !{i32 361, i32 0, !36, null} | |
| store volatile i32 %t89, i32* %$i10, !dbg !{i32 361, i32 0, !36, null} | |
| %t90 = load volatile i32* %$i10, !dbg !{i32 361, i32 0, !36, null} | |
| %t91 = icmp sge i32 %t90, 1073741824, !dbg !{i32 361, i32 0, !36, null} | |
| br i1 %t91, label %label18, label %label17, !dbg !{i32 361, i32 0, !36, null} | |
| label17: | |
| %t92 = load volatile %Object** %r0, !dbg !{i32 362, i32 0, !36, null} | |
| %t93 = load volatile %Object** %r3, !dbg !{i32 362, i32 0, !36, null} | |
| call void @"[J]java.util.concurrent.ConcurrentHashMap$Segment.rehash(Ljava/util/concurrent/ConcurrentHashMap$HashEntry;)V"(%Env* %p0, %Object* %t92, %Object* %t93), !dbg !{i32 362, i32 0, !36, null} | |
| br label %label19, !dbg !{i32 362, i32 0, !36, null} | |
| label18: | |
| %t94 = load volatile %Object** %r4, !dbg !{i32 364, i32 0, !36, null} | |
| %t95 = load volatile i32* %i1, !dbg !{i32 364, i32 0, !36, null} | |
| %t96 = load volatile %Object** %r3, !dbg !{i32 364, i32 0, !36, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap.setEntryAt([Ljava/util/concurrent/ConcurrentHashMap$HashEntry;ILjava/util/concurrent/ConcurrentHashMap$HashEntry;)V[Invokestatic(java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0, %Object* %t94, i32 %t95, %Object* %t96), !dbg !{i32 364, i32 0, !36, null} | |
| br label %label19 | |
| label19: | |
| %t97 = load volatile %Object** %r0, !dbg !{i32 365, i32 0, !36, null} | |
| store volatile %Object* %t97, %Object** %$r14, !dbg !{i32 365, i32 0, !36, null} | |
| %t98 = load volatile %Object** %r0, !dbg !{i32 365, i32 0, !36, null} | |
| %t99 = call i32 @"[j]java.util.concurrent.ConcurrentHashMap$Segment.modCount(I)[get]"(%Env* %p0, %Object* %t98), !dbg !{i32 365, i32 0, !36, null} | |
| store volatile i32 %t99, i32* %$i11, !dbg !{i32 365, i32 0, !36, null} | |
| %t101 = load volatile i32* %$i11, !dbg !{i32 365, i32 0, !36, null} | |
| %t100 = add i32 %t101, 1, !dbg !{i32 365, i32 0, !36, null} | |
| store volatile i32 %t100, i32* %$i12, !dbg !{i32 365, i32 0, !36, null} | |
| %t102 = load volatile i32* %$i12, !dbg !{i32 365, i32 0, !36, null} | |
| %t103 = load volatile %Object** %r0, !dbg !{i32 365, i32 0, !36, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$Segment.modCount(I)[set]"(%Env* %p0, %Object* %t103, i32 %t102), !dbg !{i32 365, i32 0, !36, null} | |
| %t104 = load volatile i32* %i8, !dbg !{i32 366, i32 0, !36, null} | |
| %t105 = load volatile %Object** %r0, !dbg !{i32 366, i32 0, !36, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$Segment.count(I)[set]"(%Env* %p0, %Object* %t105, i32 %t104), !dbg !{i32 366, i32 0, !36, null} | |
| store volatile %Object* null, %Object** %r8, !dbg !{i32 367, i32 0, !36, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r8, metadata !54), !dbg !{i32 368, i32 0, !37, null} | |
| call void @"llvm.dbg.declare"(metadata %Object** %r5, metadata !55), !dbg !{i32 368, i32 0, !37, null} | |
| call void @"llvm.dbg.declare"(metadata i32* %i8, metadata !56), !dbg !{i32 368, i32 0, !37, null} | |
| br label %label20, !dbg !{i32 368, i32 0, !37, null} | |
| label20: | |
| call void @"llvm.dbg.declare"(metadata %Object** %r8, metadata !47), !dbg !{i32 372, i32 0, !38, null} | |
| %t106 = getelementptr %TrycatchContext* %t0, i32 0, i32 1, !dbg !{i32 372, i32 0, !38, null} | |
| store i32 0, i32* %t106, !dbg !{i32 372, i32 0, !38, null} | |
| %t107 = load volatile %Object** %r0, !dbg !{i32 372, i32 0, !38, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$Segment.unlock()V[Invokevirtual(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0, %Object* %t107), !dbg !{i32 372, i32 0, !38, null} | |
| br label %label22, !dbg !{i32 373, i32 0, !38, null} | |
| label21: | |
| %t108 = getelementptr %TrycatchContext* %t0, i32 0, i32 1 | |
| store i32 0, i32* %t108 | |
| %t109 = call %Object* @"_bcExceptionClear"(%Env* %p0) | |
| store volatile %Object* %t109, %Object** %$r15 | |
| %t110 = getelementptr %TrycatchContext* %t0, i32 0, i32 1, !dbg !{i32 372, i32 0, !38, null} | |
| store i32 2, i32* %t110, !dbg !{i32 372, i32 0, !38, null} | |
| %t111 = load volatile %Object** %$r15, !dbg !{i32 372, i32 0, !38, null} | |
| store volatile %Object* %t111, %Object** %r9, !dbg !{i32 372, i32 0, !38, null} | |
| %t112 = getelementptr %TrycatchContext* %t0, i32 0, i32 1, !dbg !{i32 372, i32 0, !38, null} | |
| store i32 0, i32* %t112, !dbg !{i32 372, i32 0, !38, null} | |
| %t113 = load volatile %Object** %r0, !dbg !{i32 372, i32 0, !38, null} | |
| %t114 = call i8 @"checknull"(%Env* %p0, %Object* %t113), !dbg !{i32 372, i32 0, !38, null} | |
| call void @"[j]java.util.concurrent.ConcurrentHashMap$Segment.unlock()V[Invokevirtual(java/util/concurrent/ConcurrentHashMap$Segment,java/util/concurrent/ConcurrentHashMap$Segment)]"(%Env* %p0, %Object* %t113), !dbg !{i32 372, i32 0, !38, null} | |
| %t115 = load volatile %Object** %r9, !dbg !{i32 372, i32 0, !38, null} | |
| call void @"_bcThrow"(%Env* %p0, %Object* %t115), !dbg !{i32 372, i32 0, !38, null} | |
| unreachable, !dbg !{i32 372, i32 0, !38, null} | |
| label22: | |
| call void @"_bcTrycatchLeave"(%Env* %p0) | |
| %t116 = load volatile %Object** %r8, !dbg !{i32 374, i32 0, !38, null} | |
| ret %Object* %t116, !dbg !{i32 374, i32 0, !38, null} | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment