blob: e281cec2a78e3b8d05c89931926dac8d3a00d914 [file]
--- _Future.
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- BroadcastStreamController.
B0 = EntryBlock()
v3 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
ParallelMove input(NullConstant(null) -> vloc:R1)
StoreInstanceField(BroadcastStreamController._doneFuture, v1, v3) # RA: (R0, R1) temps: [R2, R3]
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v3) # RA: (R0)
--- BroadcastStreamController.ensureDoneFuture
B0 = EntryBlock() dominates:(B9, B17, B8)
v6 = Constant(null)
v12 = Constant(<void>)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v3 = InterfaceCall getter BroadcastStreamController._doneFuture(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
CompareAndBranch ==(v3, v6, true: B8, false: B9) # RA: (R0, -)
B8 = TargetBlock() idom:B0
ParallelMove input(<void> -> R1)
v13 = AllocateObject _Future<void>(v12) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[0])
DirectCall _Future.(v13) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(param[0] -> R1, stack[0] -> R0)
InterfaceCall setter BroadcastStreamController._doneFuture(v1, v13) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[0] -> R1)
Goto(B17)
B9 = TargetBlock() idom:B0
v20 = TypeCast(v3, _Future<void>, unchecked) # RA: R1 <- (R0)
ParallelMove output(R1 -> stack[0])
Goto(B17)
B17 = JoinBlock(B9, B8) idom:B0
v25 = Phi(v20, v13) # RA: R1 <- (R1, R1)
ParallelMove output(R1 -> stack[0])
ParallelMove input(vloc:R1 -> R0)
Return(v25) # RA: (R0)
--- BroadcastStreamController.addError
B0 = EntryBlock() dominates:(B7, B6)
v14 = Constant(null)
v1 = Parameter(this) # RA: R0 <- ()
v2 = Parameter(error) # RA: R1 <- ()
v3 = Parameter(stackTrace) # RA: R2 <- ()
ParallelMove output(R2 -> vloc:R0, R1 -> vloc:stack[1], R0 -> vloc:stack[0])
ParallelMove spill(R0 -> stack[2])
v5 = InterfaceCall getter BroadcastStreamController._mayAddEvent(v1) # RA: R0 <- (stack[0]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v5, true: B6, false: B7) # RA: (R0)
B6 = TargetBlock() idom:B0
ParallelMove output(stack[1] -> R0, stack[2] -> R1)
v17 = DirectCall _interceptUserError(v2, v3) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[3])
v20 = InterfaceCall getter AsyncError.error(v17) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[3] -> R1)
ParallelMove spill(R0 -> stack[4])
v23 = InterfaceCall getter AsyncError.stackTrace(v17) # RA: R0 <- (R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[0] -> R1, stack[4] -> R2)
InterfaceCall BroadcastStreamController._addError(v1, v20, v23) # RA: R0 <- (R1, R2, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v14) # RA: (R0)
B7 = TargetBlock() idom:B0
ParallelMove control(stack[0] -> R1)
v12 = InterfaceCall BroadcastStreamController._addEventError(v1) # RA: R0 <- (R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Throw(v12) # RA: (R0)
--- getter BroadcastStreamController._doneFuture
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v3 = LoadInstanceField(BroadcastStreamController._doneFuture, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v3) # RA: (R0)
--- setter BroadcastStreamController._doneFuture
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(BroadcastStreamController._doneFuture, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- AsyncError.
B0 = EntryBlock()
v12 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(error) # RA: param[1] <- ()
v3 = Parameter(stackTrace) # RA: param[2] <- ()
ParallelMove output(param[2] -> vloc:R2, param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(AsyncError.error, v1, v2) # RA: (R0, R1) temps: [R3, R4]
StoreInstanceField(AsyncError.stackTrace, v1, v3) # RA: (R0, R2) temps: [R1, R3]
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v12) # RA: (R0)
--- getter AsyncError._stackTrace
B0 = EntryBlock()
v4 = Constant(SymbolConstant(#_stackTrace))
v5 = Constant(1)
v6 = Constant(ListConstant(const <Type>[]))
v7 = Constant(ListConstant(const <dynamic>[]))
v8 = Constant(<Symbol, dynamic>)
v9 = Constant(MapConstant(const <Symbol, dynamic>{}))
Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R5)
v3 = AllocateObject _InvocationMirror() # RA: R0 <- () temps: [R1, R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[0])
v10 = DirectCall Map.unmodifiable(v8, v9) # RA: R0 <- (-, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[1], stack[0] -> R0)
DirectCall _InvocationMirror._withType(v3, v4, v5, v6, v7, v10) # RA: R0 <- (R0, -, -, -, -, stack[1]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(param[0] -> R1, stack[0] -> R2)
v12 = DirectCall NoSuchMethodError.withInvocation(v1, v3) # RA: R0 <- (R1, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Throw(v12) # RA: (R0)
--- setter AsyncError._stackTrace
B0 = EntryBlock()
v5 = Constant(SymbolConstant(#_stackTrace=))
v6 = Constant(2)
v7 = Constant(ListConstant(const <Type>[]))
v8 = Constant(<dynamic>)
v12 = Constant(<Symbol, dynamic>)
v13 = Constant(MapConstant(const <Symbol, dynamic>{}))
Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R6, param[0] -> vloc:R5)
v4 = AllocateObject _InvocationMirror() # RA: R0 <- () temps: [R1, R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[0])
v10 = DirectCall _GrowableList._literal1(v8, v2) # RA: R0 <- (-, R6) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v11 = DirectCall List.unmodifiable(v8, v10) # RA: R0 <- (-, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[1])
v14 = DirectCall Map.unmodifiable(v12, v13) # RA: R0 <- (-, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[2], stack[0] -> R0, stack[1] -> R1)
DirectCall _InvocationMirror._withType(v4, v5, v6, v7, v11, v14) # RA: R0 <- (R0, -, -, -, R1, stack[2]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(param[0] -> R1, stack[0] -> R2)
v16 = DirectCall NoSuchMethodError.withInvocation(v1, v4) # RA: R0 <- (R1, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Throw(v16) # RA: (R0)
--- getter AsyncError.error
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v3 = LoadInstanceField(AsyncError.error, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v3) # RA: (R0)
--- getter AsyncError.stackTrace
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v3 = LoadInstanceField(AsyncError.stackTrace, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v3) # RA: (R0)
--- _AsBroadcastStreamController.
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- Stream.
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- StreamSubscription.
B0 = EntryBlock()
v7 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
Parameter(onDone) # RA: param[1] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v7) # RA: (R0)
--- AsBroadcastStream.
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(_source) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
ParallelMove input(NullConstant(null) -> vloc:R2)
StoreInstanceField(AsBroadcastStream._controller, v1, v6) # RA: (R0, R2) temps: [R3, R4]
ParallelMove input(NullConstant(null) -> vloc:R2)
StoreInstanceField(AsBroadcastStream._subscription, v1, v6) # RA: (R0, R2) temps: [R3, R4]
StoreInstanceField(AsBroadcastStream._source, v1, v2) # RA: (R0, R1) temps: [R2, R3]
DirectCall Stream.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- AsBroadcastStream.listen
B0 = EntryBlock() dominates:(B15, B25, B14)
v12 = Constant(null)
v66 = Constant(false)
v1 = Parameter(this) # RA: R0 <- ()
v2 = Parameter(onData) # RA: R1 <- ()
v3 = Parameter(onError) # RA: R2 <- ()
v4 = Parameter(onDone) # RA: R3 <- ()
v5 = Parameter(cancelOnError) # RA: R5 <- ()
ParallelMove output(R5 -> vloc:R0, R3 -> vloc:stack[3], R2 -> vloc:stack[2], R1 -> vloc:stack[1], R0 -> vloc:stack[0])
ParallelMove spill(R0 -> stack[4])
v9 = InterfaceCall getter AsBroadcastStream._controller(v1) # RA: R0 <- (stack[0]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
CompareAndBranch ==(v9, v12, true: B14, false: B15) # RA: (R0, -)
B14 = TargetBlock() idom:B0
Goto(B25)
B15 = TargetBlock() idom:B0 dominates:(B21, B20)
ParallelMove output(stack[0] -> R1)
v80 = LoadInstanceField(Stream.#typeArguments, v1) # RA: R2 <- (R1)
v18 = TypeCast(v9, v80, v12, _AsBroadcastStreamController<AsBroadcastStream.T%>, unchecked) # RA: R0 <- (R0, R2, -)
ParallelMove output(R0 -> stack[5])
v19 = InterfaceCall getter _AsBroadcastStreamController.isClosed(v18) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v19, true: B20, false: B21) # RA: (R0)
B20 = TargetBlock() idom:B15
Goto(B25)
B25 = JoinBlock(B20, B14) idom:B0
ParallelMove output(stack[0] -> R0)
v79 = LoadInstanceField(Stream.#typeArguments, v1) # RA: R0 <- (R0)
v28 = TypeArguments(v79, v12, <AsBroadcastStream.T%>) # RA: R1 <- (R0, -)
ParallelMove input(vloc:R1 -> R1)
v29 = AllocateObject StreamSubscription<AsBroadcastStream.T%>(v28) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0, stack[3] -> R1)
ParallelMove spill(R0 -> stack[6])
DirectCall StreamSubscription.(v29, v4) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[6] -> R1)
ParallelMove input(vloc:R1 -> R0)
Return(v29) # RA: (R0)
B21 = TargetBlock() idom:B15 dominates:(B37, B49, B36)
ParallelMove control(stack[0] -> R0, stack[3] -> R1)
v34 = InterfaceCall getter AsBroadcastStream._subscription(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
CompareAndBranch ==(v34, v12, true: B36, false: B37) # RA: (R0, -)
B36 = TargetBlock() idom:B21
ParallelMove output(stack[0] -> R0)
v41 = InterfaceCall getter AsBroadcastStream._source(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[7], stack[5] -> R0)
v44 = InterfaceCall tear-off _AsBroadcastStreamController.add(v18) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[7] -> R1)
v46 = InterfaceCall Stream.listen(v41, v44) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[0] -> R1)
ParallelMove spill(R0 -> stack[8])
InterfaceCall setter AsBroadcastStream._subscription(v1, v46) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[8] -> R1)
Goto(B49)
B37 = TargetBlock() idom:B21
ParallelMove input(NullConstant(null) -> R1)
Goto(B49)
B49 = JoinBlock(B37, B36) idom:B21 dominates:(B64, B68, B63)
Phi(v12, v46) # RA: R1 <- (-, R1)
ParallelMove output(stack[4] -> R0)
CompareAndBranch ==(v5, v12, true: B63, false: B64) # RA: (R0, -)
B63 = TargetBlock() idom:B49
ParallelMove input(BoolConstant(false) -> R0)
Goto(B68)
B64 = TargetBlock() idom:B49
v71 = TypeCast(v5, bool, unchecked) # RA: R0 <- (R0)
Goto(B68)
B68 = JoinBlock(B64, B63) idom:B49
v78 = Phi(v71, v66) # RA: R0 <- (R0, -)
ParallelMove output(stack[1] -> R1, stack[2] -> R2, stack[3] -> R3, stack[5] -> R4)
v75 = InterfaceCall _AsBroadcastStreamController._subscribe(v18, v2, v3, v4, v78) # RA: R0 <- (R4, R1, R2, R3, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v75) # RA: (R0)
--- getter AsBroadcastStream._source
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(AsBroadcastStream._source, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- getter AsBroadcastStream._controller
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(AsBroadcastStream._controller, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter AsBroadcastStream._controller
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(AsBroadcastStream._controller, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- getter AsBroadcastStream._subscription
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(AsBroadcastStream._subscription, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter AsBroadcastStream._subscription
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(AsBroadcastStream._subscription, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- _StreamControllerAddStreamState.
B0 = EntryBlock()
v5 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
ParallelMove input(NullConstant(null) -> vloc:R1)
StoreInstanceField(_StreamControllerAddStreamState._varData, v1, v5) # RA: (R0, R1) temps: [R2, R3]
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v5) # RA: (R0)
--- getter _StreamControllerAddStreamState._varData
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(_StreamControllerAddStreamState._varData, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter _StreamControllerAddStreamState._varData
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(_StreamControllerAddStreamState._varData, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- _PendingEvents.
B0 = EntryBlock()
v6 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v6) # RA: (R0)
--- StreamController.
B0 = EntryBlock()
v5 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
ParallelMove input(NullConstant(null) -> vloc:R1)
StoreInstanceField(StreamController._varData, v1, v5) # RA: (R0, R1) temps: [R2, R3]
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v5) # RA: (R0)
--- getter StreamController.pendingEvents
B0 = EntryBlock() dominates:(B7, B6)
v13 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = InterfaceCall getter StreamController._isAddingStream(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v5, true: B6, false: B7) # RA: (R0)
B6 = TargetBlock() idom:B0
ParallelMove output(param[0] -> R0)
v17 = InterfaceCall getter StreamController._varData(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[0] -> R1)
v25 = LoadInstanceField(StreamController.#typeArguments, v1) # RA: R5 <- (R1)
ParallelMove output(R5 -> stack[0])
ParallelMove input(vloc:R0 -> R0, vloc:R5 -> R2, NullConstant(null) -> R1)
v18 = TypeCast(v17, v25, v13, _StreamControllerAddStreamState<StreamController.T%>) # RA: R0 <- (R0, R2, R1) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R0)
v21 = InterfaceCall getter _StreamControllerAddStreamState._varData(v18) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[0] -> R2)
ParallelMove input(vloc:R0 -> R0, vloc:R2 -> R2, NullConstant(null) -> R1)
v22 = TypeCast(v21, v25, v13, _PendingEvents<StreamController.T%>?) # RA: R0 <- (R0, R2, R1) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v22) # RA: (R0)
B7 = TargetBlock() idom:B0
ParallelMove control(param[0] -> R1)
ParallelMove output(R1 -> R0)
v12 = InterfaceCall getter StreamController._varData(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[0] -> R1)
v26 = LoadInstanceField(StreamController.#typeArguments, v1) # RA: R2 <- (R1)
ParallelMove input(vloc:R0 -> R0, vloc:R2 -> R2, NullConstant(null) -> R1)
v14 = TypeCast(v12, v26, v13, _PendingEvents<StreamController.T%>?) # RA: R0 <- (R0, R2, R1) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v14) # RA: (R0)
--- getter StreamController._varData
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(StreamController._varData, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter StreamController._varData
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(StreamController._varData, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- Zone.
B0 = EntryBlock()
v4 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- Zone._enter
B0 = EntryBlock()
Parameter(zone) # RA: param[0] <- ()
v2 = LoadStaticField(Zone._current) # RA: R0 <- () temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v2) # RA: (R0)
--- Zone._leave
B0 = EntryBlock()
v2 = Constant(null)
Parameter(previous) # RA: param[0] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v2) # RA: (R0)
--- field-init Zone._current
B0 = EntryBlock()
v1 = AllocateObject _Zone() # RA: R0 <- () temps: [R1, R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[0])
DirectCall _Zone.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[0] -> R1)
ParallelMove input(vloc:R1 -> R0)
Return(v1) # RA: (R0)
--- _Zone.
B0 = EntryBlock()
v4 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Zone.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- SplayTreeMap.
B0 = EntryBlock()
v14 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(compare) # RA: param[1] <- ()
v3 = Parameter(isValidKey) # RA: param[2] <- ()
ParallelMove output(param[2] -> vloc:R2, param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(SplayTreeMap.compare, v1, v2) # RA: (R0, R1) temps: [R3, R4]
StoreInstanceField(SplayTreeMap.isValidKey, v1, v3) # RA: (R0, R2) temps: [R1, R3]
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v14) # RA: (R0)
--- SplayTreeMap.from
B0 = EntryBlock() dominates:(B11, B10)
v8 = Constant(null)
v1 = Parameter(#functionTypeParameters) # RA: R0 <- ()
v2 = Parameter(other) # RA: R1 <- ()
v3 = Parameter(compare) # RA: R2 <- ()
v4 = Parameter(isValidKey) # RA: R3 <- ()
ParallelMove output(R3 -> vloc:R10, R2 -> vloc:R9, R1 -> vloc:R6, R0 -> vloc:R5)
ParallelMove spill(R6 -> stack[0])
ParallelMove input(vloc:R6 -> R0, NullConstant(null) -> R2, vloc:R5 -> R1)
v9 = TypeTest(v2, v8, v1, Map<SplayTreeMap.from.K%, SplayTreeMap.from.V%>) # RA: R7 <- (R0, R2, R1) temps: [R8, R3, R4]
ParallelMove output(R7 -> vloc:R7)
Branch(v9, true: B10, false: B11) # RA: (R7)
B10 = TargetBlock() idom:B0
v15 = TypeArguments(v8, v1, <SplayTreeMap.from.K%, SplayTreeMap.from.V%>) # RA: R0 <- (-, R5)
v17 = TypeCast(v2, v8, v1, Map<SplayTreeMap.from.K%, SplayTreeMap.from.V%>, unchecked) # RA: R1 <- (R6, -, R5)
v20 = DirectCall SplayTreeMap.of(v15, v17, v3, v4) # RA: R0 <- (R0, R1, R9, R10) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v20) # RA: (R0)
B11 = TargetBlock() idom:B0
v22 = TypeArguments(v8, v1, <SplayTreeMap.from.K%, SplayTreeMap.from.V%>) # RA: R1 <- (-, R5)
ParallelMove input(vloc:R1 -> R1)
v23 = AllocateObject SplayTreeMap<SplayTreeMap.from.K%, SplayTreeMap.from.V%>(v22) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[1])
DirectCall SplayTreeMap.(v23, v3, v4) # RA: R0 <- (R0, R9, R10) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
v29 = AllocateClosure() # RA: R0 <- () temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0, stack[0] -> R1)
InterfaceCall Map.forEach(v2, v29) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[1] -> R1)
ParallelMove input(vloc:R1 -> R0)
Return(v23) # RA: (R0)
--- closure FunctionExpression(void (dynamic k, dynamic v) {}) at SplayTreeMap.from
B0 = EntryBlock()
v4 = Constant(null)
Parameter(#closure) # RA: param[0] <- ()
Parameter(k) # RA: param[1] <- ()
Parameter(v) # RA: param[2] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- SplayTreeMap.of
B0 = EntryBlock()
v7 = Constant(null)
v1 = Parameter(#functionTypeParameters) # RA: R0 <- ()
Parameter(other) # RA: R1 <- ()
v3 = Parameter(compare) # RA: R2 <- ()
v4 = Parameter(isValidKey) # RA: R3 <- ()
ParallelMove output(R3 -> vloc:R3, R2 -> vloc:R2, R0 -> vloc:R0)
v8 = TypeArguments(v7, v1, <SplayTreeMap.of.K%, SplayTreeMap.of.V%>) # RA: R1 <- (-, R0)
ParallelMove output(R2 -> R5, R3 -> R6)
ParallelMove input(vloc:R1 -> R1)
v9 = AllocateObject SplayTreeMap<SplayTreeMap.of.K%, SplayTreeMap.of.V%>(v8) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[0])
DirectCall SplayTreeMap.(v9, v3, v4) # RA: R0 <- (R0, R5, R6) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[0] -> R1)
ParallelMove input(vloc:R1 -> R0)
Return(v9) # RA: (R0)
--- getter SplayTreeMap.compare
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(SplayTreeMap.compare, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter SplayTreeMap.compare
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(SplayTreeMap.compare, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- getter SplayTreeMap.isValidKey
B0 = EntryBlock()
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(SplayTreeMap.isValidKey, v1) # RA: R0 <- (R0)
ParallelMove input(vloc:R0 -> R0)
Return(v5) # RA: (R0)
--- setter SplayTreeMap.isValidKey
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(#value) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
StoreInstanceField(SplayTreeMap.isValidKey, v1, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- ChunkedJsonParser.
B0 = EntryBlock()
v4 = Constant(null)
v1 = Parameter(this) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
DirectCall Object.(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- ChunkedJsonParser.parseNumber
B0 = EntryBlock() dominates:(B21, B23, B20)
v9 = Constant(0)
v11 = Constant(0.0)
v13 = Constant(1)
v15 = Constant(false)
Constant(45)
Constant(48)
Constant(9)
v66 = Constant("Missing expected digit")
v92 = Constant(4)
Constant(18)
Constant(3)
Constant(19)
Constant(922337203685477580)
v163 = Constant(true)
v165 = Constant(9223372036854776000.0)
Constant(10)
v190 = Constant(8)
Constant(46)
v252 = Constant(12)
Constant(10.0)
v298 = Constant(16)
Constant(32)
Constant(101)
v362 = Constant(20)
Constant(2)
Constant(44)
v398 = Constant(24)
Constant(400)
v451 = Constant(28)
v511 = Constant(-Infinity)
v515 = Constant(Infinity)
Constant(9007199254740992.0)
Constant(22)
v585 = Constant(ListConstant(const <dynamic>[]))
v684 = Constant(-1)
v686 = Constant(-0.0)
Constant(-22)
Constant(-922337203685477580)
v725 = Constant(UnboxedIntConstant(45))
v727 = Constant(UnboxedIntConstant(1))
v732 = Constant(UnboxedIntConstant(48))
v733 = Constant(UnboxedIntConstant(9))
v735 = Constant(UnboxedIntConstant(0))
v742 = Constant(UnboxedIntConstant(18))
v743 = Constant(UnboxedIntConstant(3))
v745 = Constant(UnboxedIntConstant(19))
v746 = Constant(UnboxedIntConstant(-922337203685477580))
v747 = Constant(UnboxedIntConstant(10))
v752 = Constant(UnboxedIntConstant(46))
v753 = Constant(UnboxedDoubleConstant(0.0))
v759 = Constant(UnboxedDoubleConstant(10.0))
v760 = Constant(UnboxedIntConstant(-1))
v766 = Constant(UnboxedIntConstant(32))
v767 = Constant(UnboxedIntConstant(101))
v771 = Constant(UnboxedIntConstant(2))
v772 = Constant(UnboxedIntConstant(44))
v778 = Constant(UnboxedIntConstant(400))
v785 = Constant(UnboxedDoubleConstant(9007199254740992.0))
v787 = Constant(UnboxedIntConstant(-22))
v793 = Constant(UnboxedIntConstant(22))
v1 = Parameter(this) # RA: param[0] <- ()
v2 = Parameter(char) # RA: param[1] <- ()
v3 = Parameter(position) # RA: param[2] <- ()
ParallelMove output(param[2] -> vloc:param[2], param[1] -> vloc:stack[0], param[0] -> vloc:R0)
v7 = InterfaceCall getter ChunkedJsonParser.chunkEnd(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[0] -> R1)
ParallelMove spill(R0 -> stack[1])
v724 = UnboxInt(v2) # RA: R2 <- (R1)
CompareAndBranch int ==(v724, v725, true: B20, false: B21) # RA: (R2, -)
B20 = TargetBlock() idom:B0 dominates:(B34, B33)
ParallelMove output(param[2] -> R1)
v726 = UnboxInt(v3) # RA: R2 <- (R1)
v28 = BinaryIntOp +(v726, v727) # RA: R2 <- (R2, -)
ParallelMove output(R2 -> stack[2])
v728 = UnboxInt(v7) # RA: R3 <- (R0)
CompareAndBranch int ==(v28, v728, true: B33, false: B34) # RA: (R2, R3)
B33 = TargetBlock() idom:B20
ParallelMove output(param[0] -> R3)
v40 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v9, v3) # RA: R0 <- (R3, -, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v40) # RA: (R0)
B34 = TargetBlock() idom:B20
ParallelMove control(param[0] -> R3)
v729 = BoxInt(v28) # RA: R7 <- (R2) temps: [R6, R4, R5]
ParallelMove output(R3 -> R0)
v44 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v729) # RA: R0 <- (R0, R7) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R1, stack[2] -> R0)
ParallelMove spill(R1 -> stack[0])
ParallelMove input(param[2] -> R2, IntConstant(-1) -> R3)
Goto(B23)
B21 = TargetBlock() idom:B0
ParallelMove output(param[2] -> R2)
v730 = UnboxInt(v3) # RA: R0 <- (R2)
ParallelMove output(R0 -> stack[2])
ParallelMove input(IntConstant(1) -> R3)
Goto(B23)
B23 = JoinBlock(B21, B34) idom:B0 dominates:(B55, B57, B54)
v662 = Phi(v13, v684) # RA: R3 <- (-, -)
v639 = Phi(v730, v28) # RA: R0 <- (R0, R0)
v635 = Phi(v2, v44) # RA: R1 <- (R1, R1)
ParallelMove output(R1 -> stack[0], R0 -> stack[2], R3 -> stack[3])
v731 = UnboxInt(v635) # RA: R1 <- (R1)
v49 = BinaryIntOp ^(v731, v732) # RA: R1 <- (R1, -)
ParallelMove output(R1 -> stack[4])
CompareAndBranch int >(v49, v733, true: B54, false: B55) # RA: (R1, -)
B54 = TargetBlock() idom:B23 dominates:(B62, B68, B61)
v734 = UnboxInt(v662) # RA: R4 <- (R3)
CompareAndBranch int <(v734, v735, true: B61, false: B62) # RA: (R4, -)
B61 = TargetBlock() idom:B54
v736 = BoxInt(v639) # RA: R7 <- (R0) temps: [R6, R5, R4]
ParallelMove output(param[0] -> R0)
InterfaceCall ChunkedJsonParser.fail(v1, v736, v66) # RA: R0 <- (R0, R7, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B68)
B62 = TargetBlock() idom:B54
ParallelMove output(stack[2] -> R3)
v737 = BoxInt(v639) # RA: R4 <- (R3) temps: [R2, R1, R0]
ParallelMove output(param[0] -> R0)
InterfaceCall ChunkedJsonParser.fail(v1, v737) # RA: R0 <- (R0, R4) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B68)
B68 = JoinBlock(B62, B61) idom:B54
Goto(B57)
B55 = TargetBlock() idom:B23
Goto(B57)
B57 = JoinBlock(B55, B68) idom:B23 dominates:(B78, B114, B77)
ParallelMove output(stack[4] -> R0)
CompareAndBranch int ==(v49, v735, true: B77, false: B78) # RA: (R0, -)
B77 = TargetBlock() idom:B57 dominates:(B87, B86)
ParallelMove output(stack[2] -> R0)
v81 = BinaryIntOp +(v639, v727) # RA: R0 <- (R0, -)
ParallelMove output(stack[1] -> R1, R0 -> stack[2])
v738 = UnboxInt(v7) # RA: R2 <- (R1)
CompareAndBranch int ==(v81, v738, true: B86, false: B87) # RA: (R0, R2)
B86 = TargetBlock() idom:B77
ParallelMove output(param[0] -> R3, param[2] -> R2)
v94 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v92, v3) # RA: R0 <- (R3, -, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v94) # RA: (R0)
B87 = TargetBlock() idom:B77 dominates:(B106, B108, B105)
ParallelMove control(param[0] -> R3, param[2] -> R2)
v739 = BoxInt(v81) # RA: R7 <- (R0) temps: [R6, R4, R5]
ParallelMove output(R3 -> R0)
v98 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v739) # RA: R0 <- (R0, R7) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[5])
v740 = UnboxInt(v98) # RA: R1 <- (R0)
v101 = BinaryIntOp ^(v740, v732) # RA: R1 <- (R1, -)
CompareAndBranch int <=(v101, v733, true: B105, false: B106) # RA: (R1, -)
B105 = TargetBlock() idom:B87
ParallelMove output(stack[2] -> R4)
v741 = BoxInt(v81) # RA: R5 <- (R4) temps: [R1, R2, R3]
ParallelMove output(param[0] -> R0)
InterfaceCall ChunkedJsonParser.fail(v1, v741) # RA: R0 <- (R0, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B108)
B106 = TargetBlock() idom:B87
Goto(B108)
B108 = JoinBlock(B106, B105) idom:B87
ParallelMove output(stack[5] -> R0, stack[2] -> R1)
ParallelMove input(BoolConstant(false) -> R4, DoubleConstant(0.0) -> R3, UnboxedIntConstant(0) -> R5, R0 -> R2)
Goto(B114)
B78 = TargetBlock() idom:B57 dominates:(B117)
ParallelMove control(stack[2] -> R1)
ParallelMove input(UnboxedIntConstant(0) -> R4, BoolConstant(false) -> R3, DoubleConstant(0.0) -> R2, UnboxedIntConstant(0) -> R5)
Goto(B117)
B117 = JoinBlock(B78, B203) idom:B78 dominates:(B123, B125, B122) loop-header (depth:1 body:(B117, B123, B125, B185, B203, B122, B134, B136, B147, B156, ..., B146, B133) back-edges:(B203))
v674 = Phi(v735, v176) # RA: R4 <- (-, R2)
v673 = Phi(v49, v199) # RA: R0 <- (R0, R0)
v665 = Phi(v15, v664) # RA: R3 <- (-, R4)
v655 = Phi(v11, v654) # RA: R2 <- (-, R3)
v651 = Phi(v735, v173) # RA: R5 <- (-, R5)
v646 = Phi(v639, v179) # RA: R1 <- (R1, R1)
ParallelMove output(R1 -> stack[2], R5 -> stack[9], R2 -> stack[6], R3 -> stack[7], R0 -> stack[4], R4 -> stack[8])
CompareAndBranch int >=(v674, v742, true: B122, false: B123) # RA: (R4, -)
B122 = TargetBlock() idom:B117 dominates:(B134, B136, B133) in-loop:B117
v129 = BinaryIntOp >>(v673, v743) # RA: R6 <- (R0, -)
ParallelMove output(stack[3] -> R7)
v744 = UnboxInt(v662) # RA: R8 <- (R7)
CompareAndBranch int <(v744, v735, true: B133, false: B134) # RA: (R8, -)
B133 = TargetBlock() idom:B122 in-loop:B117
v140 = BinaryIntOp &(v129, v673) # RA: R6 <- (R6, R0)
Goto(B136)
B134 = TargetBlock() idom:B122 in-loop:B117
Goto(B136)
B136 = JoinBlock(B134, B133) idom:B122 dominates:(B147, B158, B160, B146) in-loop:B117
v675 = Phi(v129, v140) # RA: R6 <- (R6, R6)
CompareAndBranch int ==(v674, v745, true: B146, false: B147) # RA: (R4, -)
B146 = TargetBlock() idom:B136 in-loop:B117
Goto(B160)
B147 = TargetBlock() idom:B136 dominates:(B156, B155) in-loop:B117
v151 = BinaryIntOp -(v651, v675) # RA: R6 <- (R5, R6)
CompareAndBranch int <(v151, v746, true: B155, false: B156) # RA: (R6, -)
B155 = TargetBlock() idom:B147 in-loop:B117
Goto(B160)
B160 = JoinBlock(B155, B146) idom:B136 in-loop:B117
ParallelMove input(BoolConstant(true) -> R3, DoubleConstant(9223372036854776000.0) -> R2)
Goto(B158)
B156 = TargetBlock() idom:B147 in-loop:B117
Goto(B158)
B158 = JoinBlock(B156, B160) idom:B136 in-loop:B117
v663 = Phi(v665, v163) # RA: R3 <- (R3, -)
v653 = Phi(v655, v165) # RA: R2 <- (R2, -)
ParallelMove output(R2 -> stack[6], R3 -> stack[7])
Goto(B125)
B123 = TargetBlock() idom:B117 in-loop:B117
ParallelMove control(stack[3] -> R7)
Goto(B125)
B125 = JoinBlock(B123, B158) idom:B117 dominates:(B185, B184) in-loop:B117
v664 = Phi(v665, v663) # RA: R3 <- (R3, R3)
v654 = Phi(v655, v653) # RA: R2 <- (R2, R2)
ParallelMove output(R2 -> stack[6], R3 -> stack[7])
v171 = BinaryIntOp *(v651, v747) # RA: R5 <- (R5, -)
v173 = BinaryIntOp -(v171, v673) # RA: R5 <- (R5, R0)
ParallelMove output(R5 -> stack[9])
v176 = BinaryIntOp +(v674, v727) # RA: R4 <- (R4, -)
ParallelMove output(R4 -> stack[8])
v179 = BinaryIntOp +(v646, v727) # RA: R1 <- (R1, -)
ParallelMove output(stack[1] -> R0, R1 -> stack[2])
v748 = UnboxInt(v7) # RA: R6 <- (R0)
CompareAndBranch int ==(v179, v748, true: B184, false: B185) # RA: (R1, R6)
B185 = TargetBlock() idom:B125 dominates:(B204, B203) in-loop:B117
v749 = BoxInt(v179) # RA: R10 <- (R1) temps: [R8, R9, R6]
ParallelMove output(param[0] -> R0)
v196 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v749) # RA: R0 <- (R0, R10) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[5])
v750 = UnboxInt(v196) # RA: R1 <- (R0)
ParallelMove output(R0 -> R2)
v199 = BinaryIntOp ^(v750, v732) # RA: R0 <- (R1, -)
ParallelMove output(R0 -> stack[4])
CompareAndBranch int <=(v199, v733, true: B203, false: B204) # RA: (R0, -)
B203 = TargetBlock() idom:B185 in-loop:B117
ParallelMove output(stack[2] -> R1, stack[9] -> R5, stack[6] -> R3, stack[7] -> R4, stack[8] -> R2)
ParallelMove input(R2 -> R4, R4 -> R3, R3 -> R2)
Goto(B117)
B204 = TargetBlock() idom:B185
ParallelMove control(stack[9] -> R5, stack[2] -> R1, stack[6] -> R3, stack[7] -> R4)
Goto(B114)
B114 = JoinBlock(B204, B108) idom:B57 dominates:(B212, B214, B211)
v666 = Phi(v664, v15) # RA: R4 <- (R4, -)
v656 = Phi(v654, v11) # RA: R3 <- (R3, -)
v652 = Phi(v173, v735) # RA: R5 <- (R5, -)
v640 = Phi(v179, v81) # RA: R1 <- (R1, R1)
v636 = Phi(v196, v98) # RA: R2 <- (R2, R0)
ParallelMove output(R2 -> stack[5], R1 -> stack[2], R5 -> stack[9], R3 -> stack[6], R4 -> stack[7])
v751 = UnboxInt(v636) # RA: R0 <- (R2)
CompareAndBranch int ==(v751, v752, true: B211, false: B212) # RA: (R0, -)
B211 = TargetBlock() idom:B114 dominates:(B218, B220, B217)
Branch(v666, true: B217, false: B218) # RA: (R4)
B217 = TargetBlock() idom:B211
v754 = UnboxDouble(v656) # RA: V0 <- (R3)
ParallelMove output(V0 -> stack[19])
Goto(B220)
B218 = TargetBlock() idom:B211 dominates:(B226, B229, B225)
CompareAndBranch int ==(v652, v735, true: B225, false: B226) # RA: (R5, -)
B225 = TargetBlock() idom:B218
ParallelMove input(UnboxedDoubleConstant(0.0) -> V0)
Goto(B229)
B226 = TargetBlock() idom:B218
v232 = UnaryIntOp toDouble(v652) # RA: V0 <- (R5)
v233 = UnaryDoubleOp -(v232) # RA: V0 <- (V0)
ParallelMove output(V0 -> stack[19])
Goto(B229)
B229 = JoinBlock(B226, B225) idom:B218
v676 = Phi(v233, v753) # RA: V0 <- (V0, -)
ParallelMove output(V0 -> stack[19])
ParallelMove input(BoolConstant(true) -> R4)
Goto(B220)
B220 = JoinBlock(B229, B217) idom:B211 dominates:(B247, B246)
v667 = Phi(v163, v666) # RA: R4 <- (-, R4)
v659 = Phi(v676, v754) # RA: V0 <- (V0, V0)
ParallelMove output(V0 -> stack[19], R4 -> stack[7])
v241 = BinaryIntOp +(v640, v727) # RA: R1 <- (R1, -)
ParallelMove output(stack[1] -> R0, R1 -> stack[2])
v755 = UnboxInt(v7) # RA: R2 <- (R0)
CompareAndBranch int ==(v241, v755, true: B246, false: B247) # RA: (R1, R2)
B246 = TargetBlock() idom:B220
ParallelMove output(param[0] -> R3, param[2] -> R2)
v254 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v252, v3) # RA: R0 <- (R3, -, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v254) # RA: (R0)
B247 = TargetBlock() idom:B220 dominates:(B266, B268, B265)
ParallelMove control(param[0] -> R3, param[2] -> R2)
v756 = BoxInt(v241) # RA: R8 <- (R1) temps: [R5, R6, R7]
ParallelMove output(R3 -> R0)
v258 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v756) # RA: R0 <- (R0, R8) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v757 = UnboxInt(v258) # RA: R0 <- (R0)
v261 = BinaryIntOp ^(v757, v732) # RA: R0 <- (R0, -)
ParallelMove output(R0 -> stack[10])
CompareAndBranch int >(v261, v733, true: B265, false: B266) # RA: (R0, -)
B265 = TargetBlock() idom:B247
ParallelMove output(stack[2] -> R4)
v758 = BoxInt(v241) # RA: R5 <- (R4) temps: [R3, R2, R1]
ParallelMove output(param[0] -> R0)
InterfaceCall ChunkedJsonParser.fail(v1, v758) # RA: R0 <- (R0, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B268)
B266 = TargetBlock() idom:B247
Goto(B268)
B268 = JoinBlock(B266, B265) idom:B247 dominates:(B274)
ParallelMove output(stack[2] -> R1, stack[19] -> V0, stack[10] -> R0)
ParallelMove input(UnboxedIntConstant(0) -> R5)
Goto(B274)
B274 = JoinBlock(B268, B311) idom:B268 dominates:(B293, B292) loop-header (depth:1 body:(B274, B293, B311) back-edges:(B311))
v671 = Phi(v261, v307) # RA: R0 <- (R0, R0)
v658 = Phi(v659, v281) # RA: V0 <- (V0, V0)
v648 = Phi(v735, v685) # RA: R5 <- (-, R1)
v642 = Phi(v241, v287) # RA: R1 <- (R1, R4)
ParallelMove output(R1 -> stack[2], R5 -> stack[9], V0 -> stack[19], R0 -> stack[10])
ParallelMove input(UnboxedDoubleConstant(10.0) -> vloc:V1)
v278 = BinaryDoubleOp *(v658, v759) # RA: V0 <- (V0, V1)
v280 = UnaryIntOp toDouble(v671) # RA: V1 <- (R0)
v281 = BinaryDoubleOp +(v278, v280) # RA: V0 <- (V0, V1)
ParallelMove output(V0 -> stack[19])
v685 = BinaryIntOp +(v648, v760) # RA: R5 <- (R5, -)
ParallelMove output(R5 -> stack[9])
v287 = BinaryIntOp +(v642, v727) # RA: R1 <- (R1, -)
ParallelMove output(stack[1] -> R0, R1 -> stack[2])
v761 = UnboxInt(v7) # RA: R2 <- (R0)
CompareAndBranch int ==(v287, v761, true: B292, false: B293) # RA: (R1, R2)
B293 = TargetBlock() idom:B274 dominates:(B312, B311) in-loop:B274
v762 = BoxInt(v287) # RA: R6 <- (R1) temps: [R2, R3, R4]
ParallelMove output(param[0] -> R0)
v304 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v762) # RA: R0 <- (R0, R6) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R2)
ParallelMove spill(R2 -> stack[5])
v763 = UnboxInt(v304) # RA: R0 <- (R2)
v307 = BinaryIntOp ^(v763, v732) # RA: R0 <- (R0, -)
ParallelMove output(R0 -> stack[10])
CompareAndBranch int <=(v307, v733, true: B311, false: B312) # RA: (R0, -)
B311 = TargetBlock() idom:B293 in-loop:B274
ParallelMove output(stack[2] -> R4, stack[9] -> R1, stack[19] -> V0)
ParallelMove input(R1 -> R5, R4 -> R1)
Goto(B274)
B312 = TargetBlock() idom:B293
ParallelMove control(stack[19] -> V0, stack[2] -> R4, stack[9] -> R1)
ParallelMove output(stack[7] -> R0)
ParallelMove input(param[0] -> R6, param[2] -> R5)
Goto(B214)
B292 = TargetBlock() idom:B274
ParallelMove output(param[0] -> R6, param[2] -> R5)
v300 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v298, v3) # RA: R0 <- (R6, -, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v300) # RA: (R0)
B212 = TargetBlock() idom:B114
ParallelMove control(param[0] -> R6, param[2] -> R5, R1 -> R4, R5 -> R1, R4 -> R0)
v764 = UnboxDouble(v656) # RA: V0 <- (R3)
ParallelMove output(V0 -> stack[19])
Goto(B214)
B214 = JoinBlock(B212, B312) idom:B114 dominates:(B322, B324, B321)
v668 = Phi(v666, v667) # RA: R0 <- (R0, R0)
v657 = Phi(v764, v281) # RA: V0 <- (V0, V0)
v647 = Phi(v652, v685) # RA: R1 <- (R1, R1)
v641 = Phi(v640, v287) # RA: R4 <- (R4, R4)
v637 = Phi(v636, v304) # RA: R2 <- (R2, R2)
ParallelMove output(R2 -> stack[5], R4 -> stack[2], R1 -> stack[9], V0 -> stack[19], R0 -> stack[7])
v765 = UnboxInt(v637) # RA: R2 <- (R2)
v318 = BinaryIntOp |(v765, v766) # RA: R2 <- (R2, -)
CompareAndBranch int ==(v318, v767, true: B321, false: B322) # RA: (R2, -)
B321 = TargetBlock() idom:B214 dominates:(B328, B330, B327)
Branch(v668, true: B327, false: B328) # RA: (R0)
B327 = TargetBlock() idom:B321
Goto(B330)
B328 = TargetBlock() idom:B321 dominates:(B336, B339, B335)
CompareAndBranch int ==(v647, v735, true: B335, false: B336) # RA: (R1, -)
B335 = TargetBlock() idom:B328
ParallelMove input(UnboxedDoubleConstant(0.0) -> V0)
Goto(B339)
B336 = TargetBlock() idom:B328
v342 = UnaryIntOp toDouble(v647) # RA: V0 <- (R1)
v343 = UnaryDoubleOp -(v342) # RA: V0 <- (V0)
ParallelMove output(V0 -> stack[19])
Goto(B339)
B339 = JoinBlock(B336, B335) idom:B328
v677 = Phi(v343, v753) # RA: V0 <- (V0, -)
ParallelMove output(V0 -> stack[19])
ParallelMove input(BoolConstant(true) -> R0, UnboxedIntConstant(0) -> R1)
Goto(B330)
B330 = JoinBlock(B339, B327) idom:B321 dominates:(B357, B356)
v669 = Phi(v163, v668) # RA: R0 <- (-, R0)
v660 = Phi(v677, v657) # RA: V0 <- (V0, V0)
v650 = Phi(v735, v647) # RA: R1 <- (-, R1)
ParallelMove output(R1 -> stack[9], V0 -> stack[19], R0 -> stack[7])
v351 = BinaryIntOp +(v641, v727) # RA: R4 <- (R4, -)
ParallelMove output(stack[1] -> R2, R4 -> stack[2])
v768 = UnboxInt(v7) # RA: R3 <- (R2)
CompareAndBranch int ==(v351, v768, true: B356, false: B357) # RA: (R4, R3)
B356 = TargetBlock() idom:B330
v364 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v362, v3) # RA: R0 <- (R6, -, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v364) # RA: (R0)
B357 = TargetBlock() idom:B330 dominates:(B378, B380, B377)
v769 = BoxInt(v351) # RA: R9 <- (R4) temps: [R3, R7, R8]
ParallelMove output(R6 -> R0)
v368 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v769) # RA: R0 <- (R0, R9) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v770 = UnboxInt(v368) # RA: R1 <- (R0)
v373 = BinaryIntOp +(v770, v727) # RA: R1 <- (R1, -)
v375 = BinaryIntOp |(v373, v771) # RA: R1 <- (R1, -)
CompareAndBranch int ==(v375, v752, true: B377, false: B378) # RA: (R1, -)
B377 = TargetBlock() idom:B357 dominates:(B393, B392)
v773 = UnboxInt(v368) # RA: R0 <- (R0)
ParallelMove input(UnboxedIntConstant(44) -> vloc:R1)
v384 = BinaryIntOp -(v772, v773) # RA: R0 <- (R1, R0)
ParallelMove output(R0 -> stack[11], stack[2] -> R1)
v387 = BinaryIntOp +(v351, v727) # RA: R1 <- (R1, -)
ParallelMove output(stack[1] -> R2, R1 -> stack[2])
v774 = UnboxInt(v7) # RA: R3 <- (R2)
CompareAndBranch int ==(v387, v774, true: B392, false: B393) # RA: (R1, R3)
B392 = TargetBlock() idom:B377
ParallelMove output(param[0] -> R4, param[2] -> R3)
v400 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v398, v3) # RA: R0 <- (R4, -, R3) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v400) # RA: (R0)
B393 = TargetBlock() idom:B377
ParallelMove control(param[0] -> R4, param[2] -> R3)
v775 = BoxInt(v387) # RA: R8 <- (R1) temps: [R7, R6, R5]
ParallelMove output(R4 -> R0)
v404 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v775) # RA: R0 <- (R0, R8) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[2] -> R2, stack[11] -> R1)
Goto(B380)
B378 = TargetBlock() idom:B357
ParallelMove control(stack[2] -> R2)
ParallelMove input(UnboxedIntConstant(1) -> R1)
Goto(B380)
B380 = JoinBlock(B378, B393) idom:B357 dominates:(B413, B415, B412)
v678 = Phi(v727, v384) # RA: R1 <- (-, R1)
v643 = Phi(v351, v387) # RA: R2 <- (R2, R2)
v638 = Phi(v368, v404) # RA: R0 <- (R0, R0)
ParallelMove output(R2 -> stack[2], R1 -> stack[11])
v776 = UnboxInt(v638) # RA: R0 <- (R0)
v408 = BinaryIntOp ^(v776, v732) # RA: R0 <- (R0, -)
ParallelMove output(R0 -> stack[12])
CompareAndBranch int >(v408, v733, true: B412, false: B413) # RA: (R0, -)
B412 = TargetBlock() idom:B380
v777 = BoxInt(v643) # RA: R6 <- (R2) temps: [R5, R4, R3]
ParallelMove output(param[0] -> R0)
InterfaceCall ChunkedJsonParser.fail(v1, v777, v66) # RA: R0 <- (R0, R6, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B415)
B413 = TargetBlock() idom:B380
Goto(B415)
B415 = JoinBlock(B413, B412) idom:B380 dominates:(B422)
ParallelMove output(stack[2] -> R0, stack[12] -> R1)
ParallelMove input(BoolConstant(false) -> R3, UnboxedIntConstant(0) -> R2)
Goto(B422)
B422 = JoinBlock(B415, B464) idom:B415 dominates:(B433, B435, B432) loop-header (depth:1 body:(B422, B433, B435, B446, B464, B432) back-edges:(B464))
v681 = Phi(v15, v680) # RA: R3 <- (-, R3)
v679 = Phi(v735, v427) # RA: R2 <- (-, R2)
v672 = Phi(v408, v460) # RA: R1 <- (R1, R1)
v645 = Phi(v643, v440) # RA: R0 <- (R0, R0)
ParallelMove output(R0 -> stack[2], R1 -> stack[12], R2 -> stack[13], R3 -> stack[14])
v425 = BinaryIntOp *(v679, v747) # RA: R2 <- (R2, -)
v427 = BinaryIntOp +(v425, v672) # RA: R2 <- (R2, R1)
ParallelMove output(R2 -> stack[13])
CompareAndBranch int >(v427, v778, true: B432, false: B433) # RA: (R2, -)
B432 = TargetBlock() idom:B422 in-loop:B422
ParallelMove input(BoolConstant(true) -> R3)
Goto(B435)
B433 = TargetBlock() idom:B422 in-loop:B422
Goto(B435)
B435 = JoinBlock(B433, B432) idom:B422 dominates:(B446, B445) in-loop:B422
v680 = Phi(v681, v163) # RA: R3 <- (R3, -)
ParallelMove output(R3 -> stack[14])
v440 = BinaryIntOp +(v645, v727) # RA: R0 <- (R0, -)
ParallelMove output(stack[1] -> R1, R0 -> stack[2])
v779 = UnboxInt(v7) # RA: R4 <- (R1)
CompareAndBranch int ==(v440, v779, true: B445, false: B446) # RA: (R0, R4)
B446 = TargetBlock() idom:B435 dominates:(B465, B464) in-loop:B422
v780 = BoxInt(v440) # RA: R7 <- (R0) temps: [R5, R4, R6]
ParallelMove output(R1 -> R0)
v457 = InterfaceCall ChunkedJsonParser._getCharUnsafe(v1, v780) # RA: R0 <- (param[0], R7) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v781 = UnboxInt(v457) # RA: R0 <- (R0)
v460 = BinaryIntOp ^(v781, v732) # RA: R1 <- (R0, -)
ParallelMove output(R1 -> stack[12])
CompareAndBranch int <=(v460, v733, true: B464, false: B465) # RA: (R1, -)
B464 = TargetBlock() idom:B446 in-loop:B422
ParallelMove output(stack[2] -> R0, stack[13] -> R2, stack[14] -> R3)
Goto(B422)
B465 = TargetBlock() idom:B446 dominates:(B470, B469)
ParallelMove control(stack[13] -> R2, stack[2] -> R0, stack[14] -> R3)
Branch(v680, true: B469, false: B470) # RA: (R3)
B469 = TargetBlock() idom:B465 dominates:(B477, B502, B484, B476)
ParallelMove output(stack[19] -> V1)
ParallelMove input(UnboxedDoubleConstant(0.0) -> vloc:V0)
v475 = Comparison double ==(v660, v753) # RA: R1 <- (V1, V0)
Branch(v475, true: B476, false: B477) # RA: (R1)
B476 = TargetBlock() idom:B469
Goto(B484)
B477 = TargetBlock() idom:B469 dominates:(B482, B481)
ParallelMove output(stack[11] -> R1)
CompareAndBranch int <(v678, v735, true: B481, false: B482) # RA: (R1, -)
B481 = TargetBlock() idom:B477
Goto(B484)
B484 = JoinBlock(B481, B476) idom:B469 dominates:(B492, B496, B491)
ParallelMove output(param[0] -> R0)
v488 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[3] -> R1)
v782 = UnboxInt(v662) # RA: R1 <- (R1)
CompareAndBranch int <(v782, v735, true: B491, false: B492) # RA: (R1, -)
B491 = TargetBlock() idom:B484
ParallelMove input(DoubleConstant(-0.0) -> R1)
Goto(B496)
B492 = TargetBlock() idom:B484
ParallelMove input(DoubleConstant(0.0) -> R1)
Goto(B496)
B496 = JoinBlock(B492, B491) idom:B484
v682 = Phi(v11, v686) # RA: R1 <- (-, -)
DynamicCall handleNumber(v488, v682) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B502)
B482 = TargetBlock() idom:B477 dominates:(B509, B513, B508)
ParallelMove control(param[0] -> R0, stack[3] -> R1)
v505 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[3] -> R3)
v783 = UnboxInt(v662) # RA: R1 <- (R3)
CompareAndBranch int <(v783, v735, true: B508, false: B509) # RA: (R1, -)
B508 = TargetBlock() idom:B482
ParallelMove input(DoubleConstant(-Infinity) -> R1)
Goto(B513)
B509 = TargetBlock() idom:B482
ParallelMove input(DoubleConstant(Infinity) -> R1)
Goto(B513)
B513 = JoinBlock(B509, B508) idom:B482
v683 = Phi(v515, v511) # RA: R1 <- (-, -)
DynamicCall handleNumber(v505, v683) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
Goto(B502)
B502 = JoinBlock(B513, B496) idom:B469
ParallelMove output(stack[2] -> R4)
v784 = BoxInt(v440) # RA: R3 <- (R4) temps: [R1, R2, R0]
ParallelMove input(vloc:R3 -> R0)
Return(v784) # RA: (R0)
B470 = TargetBlock() idom:B465
ParallelMove control(param[0] -> R0, R0 -> R4, stack[19] -> V1, stack[3] -> R3, stack[11] -> R1)
v526 = BinaryIntOp *(v678, v427) # RA: R1 <- (R1, R2)
ParallelMove output(stack[9] -> R2)
v527 = BinaryIntOp +(v650, v526) # RA: R2 <- (R2, R1)
ParallelMove output(R2 -> stack[9], stack[7] -> R1)
ParallelMove input(param[2] -> R5)
Goto(B324)
B445 = TargetBlock() idom:B435
ParallelMove control(param[0] -> R0)
ParallelMove output(param[2] -> R5)
v453 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v451, v3) # RA: R0 <- (R0, -, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v453) # RA: (R0)
B322 = TargetBlock() idom:B214
ParallelMove control(R6 -> R0, R1 -> R2, V0 -> V1, stack[3] -> R3, R0 -> R1)
Goto(B324)
B324 = JoinBlock(B322, B470) idom:B214 dominates:(B532, B531)
v670 = Phi(v668, v669) # RA: R1 <- (R1, R1)
v661 = Phi(v657, v660) # RA: V1 <- (V1, V1)
v649 = Phi(v647, v527) # RA: R2 <- (R2, R2)
v644 = Phi(v641, v440) # RA: R4 <- (R4, R4)
ParallelMove output(R4 -> stack[2], R2 -> stack[9], V1 -> stack[19], R1 -> stack[7])
Branch(v670, true: B531, false: B532) # RA: (R1)
B531 = TargetBlock() idom:B324 dominates:(B555, B557, B554)
ParallelMove input(UnboxedDoubleConstant(9007199254740992.0) -> vloc:V0)
v553 = Comparison double <(v661, v785) # RA: R1 <- (V1, V0)
Branch(v553, true: B554, false: B555) # RA: (R1)
B554 = TargetBlock() idom:B531 dominates:(B571, B573, B570)
v786 = UnboxInt(v662) # RA: R1 <- (R3)
v563 = UnaryIntOp toDouble(v786) # RA: V0 <- (R1)
v564 = BinaryDoubleOp *(v661, v563) # RA: V0 <- (V1, V0)
ParallelMove output(V0 -> stack[20])
CompareAndBranch int >=(v649, v787, true: B570, false: B571) # RA: (R2, -)
B570 = TargetBlock() idom:B554 dominates:(B578, B577)
CompareAndBranch int <(v649, v735, true: B577, false: B578) # RA: (R2, -)
B577 = TargetBlock() idom:B570
v583 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[9] -> R1)
ParallelMove spill(R0 -> stack[15])
v587 = UnaryIntOp -(v649) # RA: R1 <- (R1)
v788 = BoxInt(v587) # RA: R1 <- (R1) temps: [R4, R2, R3]
v588 = InterfaceCall List.[](v585, v788) # RA: R0 <- (-, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
v589 = TypeCast(v588, num) # RA: R0 <- (R0) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R1, stack[20] -> V0)
v789 = BoxDouble(v564) # RA: R4 <- (V0) temps: [R0, R3, R2]
v590 = InterfaceCall double./(v789, v589) # RA: R0 <- (R4, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[15] -> R1)
DynamicCall handleNumber(v583, v590) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R4)
v790 = BoxInt(v644) # RA: R0 <- (R4) temps: [R3, R2, R1]
ParallelMove input(vloc:R0 -> R0)
Return(v790) # RA: (R0)
B578 = TargetBlock() idom:B570 dominates:(B597, B596)
ParallelMove control(R2 -> R1)
CompareAndBranch int ==(v649, v735, true: B596, false: B597) # RA: (R1, -)
B596 = TargetBlock() idom:B578
v602 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R3, stack[20] -> V0)
v791 = BoxDouble(v564) # RA: R4 <- (V0) temps: [R0, R1, R2]
DynamicCall handleNumber(v602, v791) # RA: R0 <- (R3, R4) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R4)
v792 = BoxInt(v644) # RA: R3 <- (R4) temps: [R2, R1, R0]
ParallelMove input(vloc:R3 -> R0)
Return(v792) # RA: (R0)
B597 = TargetBlock() idom:B578 dominates:(B610, B609)
CompareAndBranch int <=(v649, v793, true: B609, false: B610) # RA: (R1, -)
B609 = TargetBlock() idom:B597
v615 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[9] -> R4)
ParallelMove spill(R0 -> stack[16])
v794 = BoxInt(v649) # RA: R4 <- (R4) temps: [R2, R1, R3]
v618 = InterfaceCall List.[](v585, v794) # RA: R0 <- (-, R4) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
v619 = TypeCast(v618, num) # RA: R0 <- (R0) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R2, stack[20] -> V0)
v795 = BoxDouble(v564) # RA: R4 <- (V0) temps: [R1, R3, R0]
v620 = InterfaceCall double.*(v795, v619) # RA: R0 <- (R4, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[16] -> R1)
DynamicCall handleNumber(v615, v620) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R4)
v796 = BoxInt(v644) # RA: R0 <- (R4) temps: [R3, R2, R1]
ParallelMove input(vloc:R0 -> R0)
Return(v796) # RA: (R0)
B610 = TargetBlock() idom:B597
Goto(B573)
B571 = TargetBlock() idom:B554
Goto(B573)
B573 = JoinBlock(B571, B610) idom:B554
Goto(B557)
B555 = TargetBlock() idom:B531
Goto(B557)
B557 = JoinBlock(B555, B573) idom:B531
v627 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R2, stack[2] -> R4)
ParallelMove spill(R2 -> stack[17])
v797 = BoxInt(v644) # RA: R5 <- (R4) temps: [R1, R3, R0]
ParallelMove output(param[0] -> R1, param[2] -> R0)
v631 = InterfaceCall ChunkedJsonParser.parseDouble(v1, v3, v797) # RA: R0 <- (R1, R0, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[17] -> R1)
DynamicCall handleNumber(v627, v631) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R5)
v798 = BoxInt(v644) # RA: R3 <- (R5) temps: [R2, R1, R0]
ParallelMove input(vloc:R3 -> R0)
Return(v798) # RA: (R0)
B532 = TargetBlock() idom:B324
ParallelMove control(R0 -> R1, R4 -> R5, R2 -> R4)
v799 = UnboxInt(v662) # RA: R0 <- (R3)
v537 = BinaryIntOp +(v799, v727) # RA: R0 <- (R0, -)
v538 = UnaryIntOp -(v537) # RA: R0 <- (R0)
v539 = BinaryIntOp >>(v538, v727) # RA: R0 <- (R0, -)
ParallelMove output(R0 -> stack[18])
v542 = InterfaceCall getter ChunkedJsonParser.listener(v1) # RA: R0 <- (R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, stack[18] -> R2, stack[9] -> R1)
v545 = BinaryIntOp ^(v649, v539) # RA: R1 <- (R1, R2)
v547 = BinaryIntOp -(v545, v539) # RA: R1 <- (R1, R2)
v800 = BoxInt(v547) # RA: R1 <- (R1) temps: [R4, R3, R2]
DynamicCall handleNumber(v542, v800) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R4)
v801 = BoxInt(v644) # RA: R3 <- (R4) temps: [R2, R1, R0]
ParallelMove input(vloc:R3 -> R0)
Return(v801) # RA: (R0)
B184 = TargetBlock() idom:B125
ParallelMove control(param[0] -> R1, param[2] -> R0)
v192 = InterfaceCall ChunkedJsonParser.beginChunkNumber(v1, v190, v3) # RA: R0 <- (R1, -, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v192) # RA: (R0)
--- field-init ChunkedJsonParser.MINUS
B0 = EntryBlock()
v1 = Constant(45)
ParallelMove input(IntConstant(45) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.DECIMALPOINT
B0 = EntryBlock()
v1 = Constant(46)
ParallelMove input(IntConstant(46) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.CHAR_0
B0 = EntryBlock()
v1 = Constant(48)
ParallelMove input(IntConstant(48) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.CHAR_9
B0 = EntryBlock()
v1 = Constant(57)
ParallelMove input(IntConstant(57) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.CHAR_e
B0 = EntryBlock()
v1 = Constant(101)
ParallelMove input(IntConstant(101) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_SIGN
B0 = EntryBlock()
v1 = Constant(0)
ParallelMove input(IntConstant(0) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_ZERO
B0 = EntryBlock()
v1 = Constant(4)
ParallelMove input(IntConstant(4) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_DIGIT
B0 = EntryBlock()
v1 = Constant(8)
ParallelMove input(IntConstant(8) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_DOT
B0 = EntryBlock()
v1 = Constant(12)
ParallelMove input(IntConstant(12) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_DOT_DIGIT
B0 = EntryBlock()
v1 = Constant(16)
ParallelMove input(IntConstant(16) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_E
B0 = EntryBlock()
v1 = Constant(20)
ParallelMove input(IntConstant(20) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_E_SIGN
B0 = EntryBlock()
v1 = Constant(24)
ParallelMove input(IntConstant(24) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_E_DIGIT
B0 = EntryBlock()
v1 = Constant(28)
ParallelMove input(IntConstant(28) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.NUM_SUCCESS
B0 = EntryBlock()
v1 = Constant(32)
ParallelMove input(IntConstant(32) -> R0)
Return(v1) # RA: (R0)
--- field-init ChunkedJsonParser.POWERS_OF_TEN
B0 = EntryBlock()
v1 = Constant(ListConstant(const <dynamic>[]))
ParallelMove input(ListConstant(const <dynamic>[]) -> R0)
Return(v1) # RA: (R0)
--- combine
B0 = EntryBlock()
Constant(536870911)
Constant(524287)
Constant(10)
Constant(6)
v26 = Constant(UnboxedIntConstant(536870911))
v27 = Constant(UnboxedIntConstant(524287))
v28 = Constant(UnboxedIntConstant(10))
v29 = Constant(UnboxedIntConstant(6))
v1 = Parameter(hash) # RA: param[0] <- ()
v2 = Parameter(argalue) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
v24 = UnboxInt(v1) # RA: R0 <- (R0)
v25 = UnboxInt(v2) # RA: R1 <- (R1)
v6 = BinaryIntOp +(v24, v25) # RA: R0 <- (R0, R1)
v7 = BinaryIntOp &(v6, v26) # RA: R0 <- (R0, -)
v12 = BinaryIntOp &(v7, v27) # RA: R1 <- (R0, -)
v14 = BinaryIntOp <<(v12, v28) # RA: R1 <- (R1, -)
v15 = BinaryIntOp +(v7, v14) # RA: R0 <- (R0, R1)
v16 = BinaryIntOp &(v15, v26) # RA: R0 <- (R0, -)
v21 = BinaryIntOp >>(v16, v29) # RA: R1 <- (R0, -)
v22 = BinaryIntOp ^(v16, v21) # RA: R0 <- (R0, R1)
v30 = BoxInt(v22) # RA: R0 <- (R0) temps: [R1, R2, R3]
ParallelMove input(vloc:R0 -> R0)
Return(v30) # RA: (R0)
--- finish
B0 = EntryBlock()
Constant(536870911)
Constant(67108863)
Constant(3)
Constant(11)
Constant(16383)
Constant(15)
v28 = Constant(UnboxedIntConstant(67108863))
v29 = Constant(UnboxedIntConstant(3))
v31 = Constant(UnboxedIntConstant(536870911))
v32 = Constant(UnboxedIntConstant(11))
v33 = Constant(UnboxedIntConstant(16383))
v34 = Constant(UnboxedIntConstant(15))
v1 = Parameter(hash) # RA: param[0] <- ()
ParallelMove output(param[0] -> vloc:R0)
v27 = UnboxInt(v1) # RA: R1 <- (R0)
v6 = BinaryIntOp &(v27, v28) # RA: R1 <- (R1, -)
v8 = BinaryIntOp <<(v6, v29) # RA: R1 <- (R1, -)
v30 = UnboxInt(v1) # RA: R0 <- (R0)
v9 = BinaryIntOp +(v30, v8) # RA: R0 <- (R0, R1)
v10 = BinaryIntOp &(v9, v31) # RA: R0 <- (R0, -)
v15 = BinaryIntOp >>(v10, v32) # RA: R1 <- (R0, -)
v16 = BinaryIntOp ^(v10, v15) # RA: R0 <- (R0, R1)
v21 = BinaryIntOp &(v16, v33) # RA: R1 <- (R0, -)
v23 = BinaryIntOp <<(v21, v34) # RA: R1 <- (R1, -)
v24 = BinaryIntOp +(v16, v23) # RA: R0 <- (R0, R1)
v25 = BinaryIntOp &(v24, v31) # RA: R0 <- (R0, -)
v35 = BoxInt(v25) # RA: R0 <- (R0) temps: [R1, R2, R3]
ParallelMove input(vloc:R0 -> R0)
Return(v35) # RA: (R0)
--- hash19
B0 = EntryBlock()
v1 = Parameter(arg1) # RA: param[0] <- ()
v2 = Parameter(arg2) # RA: param[1] <- ()
v3 = Parameter(arg3) # RA: param[2] <- ()
v4 = Parameter(arg4) # RA: param[3] <- ()
v5 = Parameter(arg5) # RA: param[4] <- ()
v6 = Parameter(arg6) # RA: param[5] <- ()
v7 = Parameter(arg7) # RA: param[6] <- ()
v8 = Parameter(arg8) # RA: param[7] <- ()
v9 = Parameter(arg9) # RA: param[8] <- ()
v10 = Parameter(arg10) # RA: param[9] <- ()
v11 = Parameter(arg11) # RA: param[10] <- ()
v12 = Parameter(arg12) # RA: param[11] <- ()
v13 = Parameter(arg13) # RA: param[12] <- ()
v14 = Parameter(arg14) # RA: param[13] <- ()
v15 = Parameter(arg15) # RA: param[14] <- ()
v16 = Parameter(arg16) # RA: param[15] <- ()
v17 = Parameter(arg17) # RA: param[16] <- ()
v18 = Parameter(arg18) # RA: param[17] <- ()
v19 = Parameter(arg19) # RA: param[18] <- ()
v20 = Parameter(seed) # RA: param[19] <- ()
ParallelMove output(param[19] -> vloc:R2, param[18] -> vloc:R0, param[17] -> vloc:param[17], param[16] -> vloc:param[16], param[15] -> vloc:param[15], param[14] -> vloc:param[14], param[13] -> vloc:param[13], param[12] -> vloc:param[12], param[11] -> vloc:param[11], param[10] -> vloc:param[10], param[9] -> vloc:param[9], param[8] -> vloc:param[8], param[7] -> vloc:param[7], param[6] -> vloc:param[6], param[5] -> vloc:param[5], param[4] -> vloc:param[4], param[3] -> vloc:param[3], param[2] -> vloc:param[2], param[1] -> vloc:param[1], param[0] -> vloc:R1)
v25 = DirectCall combine(v20, v1) # RA: R0 <- (R2, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[1] -> R1)
v29 = DirectCall combine(v25, v2) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[2] -> R1)
v33 = DirectCall combine(v29, v3) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[3] -> R1)
v37 = DirectCall combine(v33, v4) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[4] -> R1)
v41 = DirectCall combine(v37, v5) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[5] -> R1)
v45 = DirectCall combine(v41, v6) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[6] -> R1)
v49 = DirectCall combine(v45, v7) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[7] -> R1)
v53 = DirectCall combine(v49, v8) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[8] -> R1)
v57 = DirectCall combine(v53, v9) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[9] -> R1)
v61 = DirectCall combine(v57, v10) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[10] -> R1)
v65 = DirectCall combine(v61, v11) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[11] -> R1)
v69 = DirectCall combine(v65, v12) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[12] -> R1)
v73 = DirectCall combine(v69, v13) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[13] -> R1)
v77 = DirectCall combine(v73, v14) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[14] -> R1)
v81 = DirectCall combine(v77, v15) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[15] -> R1)
v85 = DirectCall combine(v81, v16) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[16] -> R1)
v89 = DirectCall combine(v85, v17) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[17] -> R1)
v93 = DirectCall combine(v89, v18) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0, param[18] -> R1)
v97 = DirectCall combine(v93, v19) # RA: R0 <- (R0, R1) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v100 = DirectCall finish(v97) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v100) # RA: (R0)
--- compareAny
B0 = EntryBlock()
v1 = Parameter(a) # RA: param[0] <- ()
v2 = Parameter(b) # RA: param[1] <- ()
ParallelMove output(param[1] -> vloc:R1, param[0] -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
v4 = TypeCast(v1, Comparable<dynamic>) # RA: R0 <- (R0) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R2)
ParallelMove input(vloc:R1 -> R0)
v6 = TypeCast(v2, Comparable<dynamic>) # RA: R0 <- (R0) temps: [R8, R3, R4]
ParallelMove output(R0 -> vloc:R0)
v7 = DirectCall Comparable.compare(v4, v6) # RA: R0 <- (R2, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v7) # RA: (R0)
--- _interceptUserError
B0 = EntryBlock()
v3 = Constant(null)
Parameter(error) # RA: param[0] <- ()
Parameter(stackTrace) # RA: param[1] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v3) # RA: (R0)
--- rootRunBinary
B0 = EntryBlock() dominates:(B13, B12)
v31 = Constant("zone")
v32 = Constant("Can only run in platform zones")
Constant(null)
Parameter(#functionTypeParameters) # RA: param[0] <- ()
Parameter(self) # RA: param[1] <- ()
v3 = Parameter(zone) # RA: param[2] <- ()
v4 = Parameter(f) # RA: param[3] <- ()
v5 = Parameter(arg1) # RA: param[4] <- ()
v6 = Parameter(arg2) # RA: param[5] <- ()
ParallelMove output(param[5] -> vloc:R0, param[4] -> vloc:param[4], param[3] -> vloc:param[3], param[2] -> vloc:param[2])
v9 = LoadStaticField(Zone._current) # RA: R0 <- () temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[0], param[2] -> R0)
v11 = DirectCall identical(v9, v3) # RA: R0 <- (stack[0], R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v11, true: B12, false: B13) # RA: (R0)
B12 = TargetBlock() idom:B0
ParallelMove output(param[3] -> R1, param[4] -> R2, param[5] -> R5)
v20 = ClosureCall(v4, v5, v6) # RA: R0 <- (R1, R2, R5) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v20) # RA: (R0)
B13 = TargetBlock() idom:B0 dominates:(B25, B24)
ParallelMove control(param[3] -> R1, param[4] -> R2, param[5] -> R5)
ParallelMove output(param[2] -> R6)
ParallelMove input(vloc:R6 -> R0)
v23 = TypeTest(v3, _Zone) # RA: R7 <- (R0) temps: [R8, R3, R4]
ParallelMove output(R7 -> vloc:R7)
Branch(v23, true: B24, false: B25) # RA: (R7)
B24 = TargetBlock() idom:B13 dominates:(B41, B40)
v37 = TypeCast(v3, _Zone, unchecked) # RA: R0 <- (R6)
v38 = DirectCall Zone._enter(v37) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[1])
TryEntry(try-body: B40, catch-block: B41)
B40 = TargetBlock() exception-handler:B41 idom:B24 dominates:(B47)
ParallelMove output(param[3] -> R0, param[4] -> R1, param[5] -> R2)
v46 = ClosureCall(v4, v5, v6) # RA: R0 <- (R0, R1, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[2])
Goto(B47)
B47 = JoinBlock(B40) idom:B40
ParallelMove output(stack[1] -> R0)
DirectCall Zone._leave(v38) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[2] -> R1)
ParallelMove input(vloc:R1 -> R0)
Return(v46) # RA: (R0)
B41 = CatchBlock() idom:B24
v49 = Parameter(#exception) # RA: R1 <- ()
v50 = Parameter(#stackTrace) # RA: R2 <- ()
ParallelMove control(stack[1] -> R0)
ParallelMove output(R1 -> stack[3], R2 -> stack[4])
DirectCall Zone._leave(v38) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[3] -> R1, stack[4] -> R2)
Throw(v49, v50) # RA: (R1, R2)
B25 = TargetBlock() idom:B13
v29 = AllocateObject ArgumentError() # RA: R0 <- () temps: [R1, R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[5])
DirectCall ArgumentError.value(v29, v3, v31, v32) # RA: R0 <- (R0, R6, -, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[5] -> R1)
Throw(v29) # RA: (R1)
--- replaceAll
B0 = EntryBlock() dominates:(B16, B45, B15)
v4 = Constant(0)
v6 = Constant(<dynamic>)
Constant(500)
v149 = Constant(UnboxedIntConstant(0))
v155 = Constant(UnboxedIntConstant(500))
v1 = Parameter(thisString) # RA: param[0] <- ()
v2 = Parameter(pattern) # RA: param[1] <- ()
v3 = Parameter(replacement) # RA: param[2] <- ()
ParallelMove output(param[2] -> vloc:param[2], param[1] -> vloc:param[1], param[0] -> vloc:R0)
v7 = DirectCall _GrowableList.(v6, v4) # RA: R0 <- (-, -) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[0], param[2] -> R0)
v11 = InterfaceCall getter String.length(v3) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[6])
v148 = UnboxInt(v11) # RA: R1 <- (R0)
CompareAndBranch int ==(v148, v149, true: B15, false: B16) # RA: (R1, -)
B15 = TargetBlock() idom:B0 dominates:(B23)
ParallelMove output(param[0] -> R0, param[1] -> R1)
v20 = InterfaceCall Pattern.allMatches(v2, v1) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v21 = InterfaceCall getter Iterable.iterator(v20) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[3])
ParallelMove input(UnboxedIntConstant(0) -> R2, IntConstant(0) -> R1)
Goto(B23)
B23 = JoinBlock(B15, B27) idom:B15 dominates:(B28, B27) loop-header (depth:1 body:(B23, B27) back-edges:(B27))
v141 = Phi(v149, v39) # RA: R2 <- (-, R0)
v138 = Phi(v4, v42) # RA: R1 <- (-, R1)
ParallelMove output(R1 -> stack[1], R2 -> stack[2])
v26 = InterfaceCall Iterator.moveNext(v21) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v26, true: B27, false: B28) # RA: (R0)
B27 = TargetBlock() idom:B23 in-loop:B23
ParallelMove output(stack[3] -> R0)
v31 = InterfaceCall getter Iterator.current(v21) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[4])
v37 = InterfaceCall getter Match.start(v31) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[5], stack[0] -> R0, stack[1] -> R1)
v38 = DirectCall _addReplaceSlice(v7, v138, v37) # RA: R0 <- (R0, R1, stack[5]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v150 = UnboxInt(v38) # RA: R0 <- (R0)
ParallelMove output(stack[2] -> R1)
v39 = BinaryIntOp +(v141, v150) # RA: R1 <- (R1, R0)
ParallelMove output(stack[4] -> R0, R1 -> stack[2])
v42 = InterfaceCall getter Match.end(v31) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R1, stack[2] -> R0)
ParallelMove spill(R1 -> stack[1])
ParallelMove input(stack[3] -> R0, R0 -> R2)
Goto(B23)
B28 = TargetBlock() idom:B23
ParallelMove control(stack[1] -> R1, stack[2] -> R0)
Goto(B45)
B16 = TargetBlock() idom:B0 dominates:(B52)
ParallelMove control(param[1] -> R1)
ParallelMove output(param[0] -> R0)
v49 = InterfaceCall Pattern.allMatches(v2, v1) # RA: R0 <- (R1, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v50 = InterfaceCall getter Iterable.iterator(v49) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[7])
ParallelMove input(R0 -> R2, UnboxedIntConstant(0) -> R0, IntConstant(0) -> R1)
Goto(B52)
B52 = JoinBlock(B16, B56) idom:B16 dominates:(B57, B56) loop-header (depth:1 body:(B52, B56) back-edges:(B56))
v143 = Phi(v149, v75) # RA: R0 <- (-, R0)
v140 = Phi(v4, v78) # RA: R1 <- (-, R1)
ParallelMove output(R2 -> R0, R1 -> stack[1], R0 -> stack[2])
v55 = InterfaceCall Iterator.moveNext(v50) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v55, true: B56, false: B57) # RA: (R0)
B56 = TargetBlock() idom:B52 in-loop:B52
ParallelMove output(stack[7] -> R0)
v60 = InterfaceCall getter Iterator.current(v50) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[8])
v66 = InterfaceCall getter Match.start(v60) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[9], stack[0] -> R0, stack[1] -> R1)
v67 = DirectCall _addReplaceSlice(v7, v140, v66) # RA: R0 <- (R0, R1, stack[9]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v151 = UnboxInt(v67) # RA: R0 <- (R0)
ParallelMove output(stack[2] -> R1)
v68 = BinaryIntOp +(v143, v151) # RA: R0 <- (R1, R0)
ParallelMove output(stack[0] -> R0, R0 -> stack[10])
InterfaceCall List.add(v7, v3) # RA: R0 <- (R0, param[2]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(stack[6] -> R2)
v152 = UnboxInt(v11) # RA: R0 <- (R2)
ParallelMove output(stack[10] -> R1)
v75 = BinaryIntOp +(v68, v152) # RA: R1 <- (R1, R0)
ParallelMove output(R2 -> R0, R1 -> stack[2])
v78 = InterfaceCall getter Match.end(v60) # RA: R0 <- (stack[8]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R1, stack[2] -> R0)
ParallelMove spill(R1 -> stack[1])
ParallelMove input(stack[7] -> R2)
Goto(B52)
B57 = TargetBlock() idom:B52
ParallelMove control(stack[1] -> R1, stack[2] -> R0)
Goto(B45)
B45 = JoinBlock(B57, B28) idom:B0 dominates:(B85, B92, B84)
v142 = Phi(v143, v141) # RA: R0 <- (R0, R0)
v139 = Phi(v140, v138) # RA: R1 <- (R1, R1)
ParallelMove output(R1 -> stack[1], R0 -> stack[2])
v153 = UnboxInt(v139) # RA: R2 <- (R1)
CompareAndBranch int ==(v153, v149, true: B84, false: B85) # RA: (R2, -)
B84 = TargetBlock() idom:B45 dominates:(B90, B89)
CompareAndBranch int ==(v142, v149, true: B89, false: B90) # RA: (R0, -)
B89 = TargetBlock() idom:B84
ParallelMove output(param[0] -> R0)
ParallelMove input(vloc:R0 -> R0)
Return(v1) # RA: (R0)
B90 = TargetBlock() idom:B84
ParallelMove control(param[0] -> R2)
Goto(B92)
B85 = TargetBlock() idom:B45
ParallelMove control(param[0] -> R2)
Goto(B92)
B92 = JoinBlock(B85, B90) idom:B45 dominates:(B110, B123, B109)
ParallelMove output(R2 -> R0)
v101 = InterfaceCall getter String.length(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:stack[11], stack[0] -> R0, stack[1] -> R1)
v102 = DirectCall _addReplaceSlice(v7, v139, v101) # RA: R0 <- (R0, R1, stack[11]) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
v154 = UnboxInt(v102) # RA: R0 <- (R0)
ParallelMove output(stack[2] -> R1)
v103 = BinaryIntOp +(v142, v154) # RA: R0 <- (R1, R0)
ParallelMove output(param[2] -> R0, R0 -> stack[12])
v106 = DirectCall _isOneByte(v3) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove spill(R0 -> stack[13])
Branch(v106, true: B109, false: B110) # RA: (R0)
B109 = TargetBlock() idom:B92 dominates:(B116, B115)
ParallelMove output(stack[12] -> R1)
CompareAndBranch int <(v103, v155, true: B115, false: B116) # RA: (R1, -)
B115 = TargetBlock() idom:B109 dominates:(B121, B120)
ParallelMove output(param[0] -> R0)
v119 = DirectCall _isOneByte(v1) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
Branch(v119, true: B120, false: B121) # RA: (R0)
B120 = TargetBlock() idom:B115
ParallelMove output(stack[12] -> R3)
v156 = BoxInt(v103) # RA: R3 <- (R3) temps: [R0, R1, R2]
ParallelMove output(param[0] -> R1, stack[0] -> R0)
v130 = DirectCall _joinReplaceAllOneByteResult(v1, v7, v156) # RA: R0 <- (R1, R0, R3) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v130) # RA: (R0)
B121 = TargetBlock() idom:B115
ParallelMove control(param[0] -> R1, stack[0] -> R0, stack[12] -> R3)
Goto(B123)
B116 = TargetBlock() idom:B109
ParallelMove control(param[0] -> R1, stack[0] -> R0, R1 -> R3)
Goto(B123)
B110 = TargetBlock() idom:B92
ParallelMove control(param[0] -> R1, stack[0] -> R0, stack[12] -> R3)
Goto(B123)
B123 = JoinBlock(B110, B116, B121) idom:B92
v157 = BoxInt(v103) # RA: R3 <- (R3) temps: [R2, R4, R5]
ParallelMove output(stack[13] -> R2)
v136 = DirectCall _joinReplaceAllResult(v1, v7, v157, v106) # RA: R0 <- (R1, R0, R3, R2) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove output(R0 -> vloc:R0)
ParallelMove input(vloc:R0 -> R0)
Return(v136) # RA: (R0)
--- _isOneByte
B0 = EntryBlock()
v2 = Constant(null)
Parameter(str) # RA: param[0] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v2) # RA: (R0)
--- _addReplaceSlice
B0 = EntryBlock()
v4 = Constant(null)
Parameter(matches) # RA: param[0] <- ()
Parameter(start) # RA: param[1] <- ()
Parameter(end) # RA: param[2] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- _joinReplaceAllOneByteResult
B0 = EntryBlock()
v4 = Constant(null)
Parameter(base) # RA: param[0] <- ()
Parameter(matches) # RA: param[1] <- ()
Parameter(length) # RA: param[2] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v4) # RA: (R0)
--- _joinReplaceAllResult
B0 = EntryBlock()
v5 = Constant(null)
Parameter(base) # RA: param[0] <- ()
Parameter(matches) # RA: param[1] <- ()
Parameter(length) # RA: param[2] <- ()
Parameter(replacementStringsAreOneByte) # RA: param[3] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v5) # RA: (R0)
--- closures
B0 = EntryBlock()
v9 = Constant(null)
Parameter(a1) # RA: R0 <- ()
v2 = Parameter(a2) # RA: R1 <- ()
ParallelMove output(R1 -> vloc:R1)
v3 = AllocateContext() # RA: R0 <- () temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
StoreInstanceField(#context-field:a2, v3, v2) # RA: (R0, R1) temps: [R2, R3]
ParallelMove output(R0 -> R1)
v6 = AllocateClosure(v3) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R5)
v7 = AllocateClosure(v3) # RA: R0 <- (R1) temps: [R2, R3, R4]
ParallelMove output(R0 -> vloc:R0)
DirectCall foo2(v6, v7) # RA: R0 <- (R5, R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v9) # RA: (R0)
--- closure FunctionExpression(Null (dynamic _#wc0#formal) {
print(a2);
}) at closures
B0 = EntryBlock()
v7 = Constant(null)
v1 = Parameter(#closure) # RA: param[0] <- ()
Parameter(_#wc0#formal) # RA: param[1] <- ()
ParallelMove output(param[0] -> vloc:R0)
v4 = LoadInstanceField(#closure-field[0], v1) # RA: R0 <- (R0)
v5 = LoadInstanceField(#context-field:a2, v4) # RA: R0 <- (R0)
DirectCall print(v5) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v7) # RA: (R0)
--- closure FunctionExpression(Null (dynamic _#wc1#formal, dynamic _#wc2#formal) {
print(a2);
}) at closures
B0 = EntryBlock()
v8 = Constant(null)
v1 = Parameter(#closure) # RA: param[0] <- ()
Parameter(_#wc1#formal) # RA: param[1] <- ()
Parameter(_#wc2#formal) # RA: param[2] <- ()
ParallelMove output(param[0] -> vloc:R0)
v5 = LoadInstanceField(#closure-field[0], v1) # RA: R0 <- (R0)
v6 = LoadInstanceField(#context-field:a2, v5) # RA: R0 <- (R0)
DirectCall print(v6) # RA: R0 <- (R0) temps: [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R19, R20, R23, R25, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, V29, V30]
ParallelMove input(NullConstant(null) -> R0)
Return(v8) # RA: (R0)
--- foo2
B0 = EntryBlock()
v3 = Constant(null)
Parameter(x) # RA: param[0] <- ()
Parameter(y) # RA: param[1] <- ()
ParallelMove input(NullConstant(null) -> R0)
Return(v3) # RA: (R0)
--- main
B0 = EntryBlock()
v1 = Constant(null)
ParallelMove input(NullConstant(null) -> R0)
Return(v1) # RA: (R0)