Source/sources/gnu/kawa/functions/CompileArith.java
public boolean compileIntNum(gnu.expr.Expression r26, gnu.expr.Expression r27, int r28, int r29, gnu.expr.Compilation r30) {
        /*
            r25 = this;
            r0 = r25
            int r4 = r0.f55op
            r5 = 2
            if (r4 != r5) goto L_0x0069
            r0 = r27
            boolean r4 = r0 instanceof gnu.expr.QuoteExp
            if (r4 == 0) goto L_0x0069
            java.lang.Object r24 = r27.valueIfConstant()
            r4 = 2
            r0 = r29
            if (r0 > r4) goto L_0x004b
            java.lang.Number r24 = (java.lang.Number) r24
            long r16 = r24.longValue()
            r4 = -2147483648(0xffffffff80000000, double:NaN)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 <= 0) goto L_0x0048
            r4 = 2147483647(0x7fffffff, double:1.060997895E-314)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 > 0) goto L_0x0048
            r20 = 1
        L_0x002c:
            if (r20 == 0) goto L_0x0069
            gnu.kawa.functions.CompileArith r4 = $Pl
            r0 = r16
            long r6 = -r0
            int r5 = (int) r6
            java.lang.Integer r5 = java.lang.Integer.valueOf(r5)
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.getInstance(r5)
            r8 = 1
            r5 = r26
            r7 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
        L_0x0047:
            return r4
        L_0x0048:
            r20 = 0
            goto L_0x002c
        L_0x004b:
            r0 = r24
            boolean r4 = r0 instanceof gnu.math.IntNum
            if (r4 == 0) goto L_0x0064
            r14 = r24
            gnu.math.IntNum r14 = (gnu.math.IntNum) r14
            long r16 = r14.longValue()
            r4 = -2147483647(0xffffffff80000001, double:NaN)
            r6 = 2147483647(0x7fffffff, double:1.060997895E-314)
            boolean r20 = r14.inRange(r4, r6)
            goto L_0x002c
        L_0x0064:
            r20 = 0
            r16 = 0
            goto L_0x002c
        L_0x0069:
            r0 = r25
            int r4 = r0.f55op
            r5 = 1
            if (r4 == r5) goto L_0x0077
            r0 = r25
            int r4 = r0.f55op
            r5 = 3
            if (r4 != r5) goto L_0x00b5
        L_0x0077:
            r10 = 1
        L_0x0078:
            if (r10 == 0) goto L_0x00ff
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r26)
            if (r4 == 0) goto L_0x0082
            r28 = 1
        L_0x0082:
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r27)
            if (r4 == 0) goto L_0x008a
            r29 = 1
        L_0x008a:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00b7
            r4 = 1
            r0 = r29
            if (r0 == r4) goto L_0x00b7
            r21 = 1
        L_0x0096:
            if (r21 == 0) goto L_0x00ba
            boolean r4 = r26.side_effects()
            if (r4 == 0) goto L_0x00a4
            boolean r4 = r27.side_effects()
            if (r4 != 0) goto L_0x00ba
        L_0x00a4:
            r4 = r25
            r5 = r27
            r6 = r26
            r7 = r29
            r8 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
            goto L_0x0047
        L_0x00b5:
            r10 = 0
            goto L_0x0078
        L_0x00b7:
            r21 = 0
            goto L_0x0096
        L_0x00ba:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00f9
            gnu.bytecode.PrimType r22 = gnu.bytecode.Type.intType
        L_0x00c1:
            r4 = 1
            r0 = r29
            if (r0 != r4) goto L_0x00fc
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
        L_0x00c8:
            r0 = r26
            r1 = r30
            r2 = r22
            r0.compile(r1, r2)
            r0 = r27
            r1 = r30
            r2 = r23
            r0.compile(r1, r2)
            gnu.bytecode.CodeAttr r12 = r30.getCode()
            if (r21 == 0) goto L_0x00e7
            r12.emitSwap()
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.kawa.lispexpr.LangPrimType.intType
        L_0x00e7:
            r19 = 0
            r11 = 0
            gnu.kawa.lispexpr.LangObjType r15 = gnu.kawa.functions.Arithmetic.typeIntNum
            r0 = r25
            int r4 = r0.f55op
            switch(r4) {
                case 1: goto L_0x011d;
                case 2: goto L_0x0138;
                case 3: goto L_0x013b;
                case 4: goto L_0x014f;
                case 5: goto L_0x014f;
                case 6: goto L_0x014f;
                case 7: goto L_0x014f;
                case 8: goto L_0x014f;
                case 9: goto L_0x019f;
                case 10: goto L_0x018b;
                case 11: goto L_0x018b;
                case 12: goto L_0x00f3;
                case 13: goto L_0x013e;
                case 14: goto L_0x0140;
                case 15: goto L_0x0144;
                default: goto L_0x00f3;
            }
        L_0x00f3:
            java.lang.Error r4 = new java.lang.Error
            r4.<init>()
            throw r4
        L_0x00f9:
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c1
        L_0x00fc:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c8
        L_0x00ff:
            r0 = r25
            int r4 = r0.f55op
            r5 = 9
            if (r4 < r5) goto L_0x0116
            r0 = r25
            int r4 = r0.f55op
            r5 = 12
            if (r4 > r5) goto L_0x0116
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
            r21 = 0
            goto L_0x00c8
        L_0x0116:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            r22 = r23
            r21 = 0
            goto L_0x00c8
        L_0x011d:
            java.lang.String r19 = "add"
        L_0x011f:
            if (r11 != 0) goto L_0x012a
            r4 = 2
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
        L_0x012a:
            r0 = r19
            gnu.bytecode.Method r18 = r15.getMethod(r0, r11)
            r0 = r18
            r12.emitInvokeStatic(r0)
            r4 = 1
            goto L_0x0047
        L_0x0138:
            java.lang.String r19 = "sub"
            goto L_0x011f
        L_0x013b:
            java.lang.String r19 = "times"
            goto L_0x011f
        L_0x013e:
            java.lang.String r19 = "and"
        L_0x0140:
            if (r19 != 0) goto L_0x0144
            java.lang.String r19 = "ior"
        L_0x0144:
            if (r19 != 0) goto L_0x0148
            java.lang.String r19 = "xor"
        L_0x0148:
            java.lang.String r4 = "gnu.math.BitOps"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x014f:
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x016f
            java.lang.String r19 = "remainder"
        L_0x0159:
            r0 = r25
            gnu.mapping.Procedure r13 = r0.proc
            gnu.kawa.functions.DivideOp r13 = (gnu.kawa.functions.DivideOp) r13
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x0172
            int r4 = r13.rounding_mode
            r5 = 1
            if (r4 != r5) goto L_0x0172
            java.lang.String r19 = "modulo"
            goto L_0x011f
        L_0x016f:
            java.lang.String r19 = "quotient"
            goto L_0x0159
        L_0x0172:
            int r4 = r13.rounding_mode
            r5 = 3
            if (r4 == r5) goto L_0x011f
            int r4 = r13.rounding_mode
            r12.emitPushInt(r4)
            r4 = 3
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
            r4 = 2
            gnu.bytecode.PrimType r5 = gnu.bytecode.Type.intType
            r11[r4] = r5
            goto L_0x011f
        L_0x018b:
            r0 = r25
            int r4 = r0.f55op
            r5 = 10
            if (r4 != r5) goto L_0x019c
            java.lang.String r19 = "shiftLeft"
        L_0x0195:
            java.lang.String r4 = "gnu.kawa.functions.BitwiseOp"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x019c:
            java.lang.String r19 = "shiftRight"
            goto L_0x0195
        L_0x019f:
            java.lang.String r19 = "shift"
            goto L_0x011f
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.kawa.functions.CompileArith.compileIntNum(gnu.expr.Expression, gnu.expr.Expression, int, int, gnu.expr.Compilation):boolean");
    }
/* Code decompiled incorrectly, please refer to instructions dump. */
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .
public boolean compileIntNum(gnu.expr.Expression r26, gnu.expr.Expression r27, int r28, int r29, gnu.expr.Compilation r30) {
        /*
            r25 = this;
            r0 = r25
            int r4 = r0.f55op
            r5 = 2
            if (r4 != r5) goto L_0x0069
            r0 = r27
            boolean r4 = r0 instanceof gnu.expr.QuoteExp
            if (r4 == 0) goto L_0x0069
            java.lang.Object r24 = r27.valueIfConstant()
            r4 = 2
            r0 = r29
            if (r0 > r4) goto L_0x004b
            java.lang.Number r24 = (java.lang.Number) r24
            long r16 = r24.longValue()
            r4 = -2147483648(0xffffffff80000000, double:NaN)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 <= 0) goto L_0x0048
            r4 = 2147483647(0x7fffffff, double:1.060997895E-314)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 > 0) goto L_0x0048
            r20 = 1
        L_0x002c:
            if (r20 == 0) goto L_0x0069
            gnu.kawa.functions.CompileArith r4 = $Pl
            r0 = r16
            long r6 = -r0
            int r5 = (int) r6
            java.lang.Integer r5 = java.lang.Integer.valueOf(r5)
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.getInstance(r5)
            r8 = 1
            r5 = r26
            r7 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
        L_0x0047:
            return r4
        L_0x0048:
            r20 = 0
            goto L_0x002c
        L_0x004b:
            r0 = r24
            boolean r4 = r0 instanceof gnu.math.IntNum
            if (r4 == 0) goto L_0x0064
            r14 = r24
            gnu.math.IntNum r14 = (gnu.math.IntNum) r14
            long r16 = r14.longValue()
            r4 = -2147483647(0xffffffff80000001, double:NaN)
            r6 = 2147483647(0x7fffffff, double:1.060997895E-314)
            boolean r20 = r14.inRange(r4, r6)
            goto L_0x002c
        L_0x0064:
            r20 = 0
            r16 = 0
            goto L_0x002c
        L_0x0069:
            r0 = r25
            int r4 = r0.f55op
            r5 = 1
            if (r4 == r5) goto L_0x0077
            r0 = r25
            int r4 = r0.f55op
            r5 = 3
            if (r4 != r5) goto L_0x00b5
        L_0x0077:
            r10 = 1
        L_0x0078:
            if (r10 == 0) goto L_0x00ff
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r26)
            if (r4 == 0) goto L_0x0082
            r28 = 1
        L_0x0082:
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r27)
            if (r4 == 0) goto L_0x008a
            r29 = 1
        L_0x008a:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00b7
            r4 = 1
            r0 = r29
            if (r0 == r4) goto L_0x00b7
            r21 = 1
        L_0x0096:
            if (r21 == 0) goto L_0x00ba
            boolean r4 = r26.side_effects()
            if (r4 == 0) goto L_0x00a4
            boolean r4 = r27.side_effects()
            if (r4 != 0) goto L_0x00ba
        L_0x00a4:
            r4 = r25
            r5 = r27
            r6 = r26
            r7 = r29
            r8 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
            goto L_0x0047
        L_0x00b5:
            r10 = 0
            goto L_0x0078
        L_0x00b7:
            r21 = 0
            goto L_0x0096
        L_0x00ba:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00f9
            gnu.bytecode.PrimType r22 = gnu.bytecode.Type.intType
        L_0x00c1:
            r4 = 1
            r0 = r29
            if (r0 != r4) goto L_0x00fc
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
        L_0x00c8:
            r0 = r26
            r1 = r30
            r2 = r22
            r0.compile(r1, r2)
            r0 = r27
            r1 = r30
            r2 = r23
            r0.compile(r1, r2)
            gnu.bytecode.CodeAttr r12 = r30.getCode()
            if (r21 == 0) goto L_0x00e7
            r12.emitSwap()
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.kawa.lispexpr.LangPrimType.intType
        L_0x00e7:
            r19 = 0
            r11 = 0
            gnu.kawa.lispexpr.LangObjType r15 = gnu.kawa.functions.Arithmetic.typeIntNum
            r0 = r25
            int r4 = r0.f55op
            switch(r4) {
                case 1: goto L_0x011d;
                case 2: goto L_0x0138;
                case 3: goto L_0x013b;
                case 4: goto L_0x014f;
                case 5: goto L_0x014f;
                case 6: goto L_0x014f;
                case 7: goto L_0x014f;
                case 8: goto L_0x014f;
                case 9: goto L_0x019f;
                case 10: goto L_0x018b;
                case 11: goto L_0x018b;
                case 12: goto L_0x00f3;
                case 13: goto L_0x013e;
                case 14: goto L_0x0140;
                case 15: goto L_0x0144;
                default: goto L_0x00f3;
            }
        L_0x00f3:
            java.lang.Error r4 = new java.lang.Error
            r4.<init>()
            throw r4
        L_0x00f9:
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c1
        L_0x00fc:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c8
        L_0x00ff:
            r0 = r25
            int r4 = r0.f55op
            r5 = 9
            if (r4 < r5) goto L_0x0116
            r0 = r25
            int r4 = r0.f55op
            r5 = 12
            if (r4 > r5) goto L_0x0116
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
            r21 = 0
            goto L_0x00c8
        L_0x0116:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            r22 = r23
            r21 = 0
            goto L_0x00c8
        L_0x011d:
            java.lang.String r19 = "add"
        L_0x011f:
            if (r11 != 0) goto L_0x012a
            r4 = 2
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
        L_0x012a:
            r0 = r19
            gnu.bytecode.Method r18 = r15.getMethod(r0, r11)
            r0 = r18
            r12.emitInvokeStatic(r0)
            r4 = 1
            goto L_0x0047
        L_0x0138:
            java.lang.String r19 = "sub"
            goto L_0x011f
        L_0x013b:
            java.lang.String r19 = "times"
            goto L_0x011f
        L_0x013e:
            java.lang.String r19 = "and"
        L_0x0140:
            if (r19 != 0) goto L_0x0144
            java.lang.String r19 = "ior"
        L_0x0144:
            if (r19 != 0) goto L_0x0148
            java.lang.String r19 = "xor"
        L_0x0148:
            java.lang.String r4 = "gnu.math.BitOps"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x014f:
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x016f
            java.lang.String r19 = "remainder"
        L_0x0159:
            r0 = r25
            gnu.mapping.Procedure r13 = r0.proc
            gnu.kawa.functions.DivideOp r13 = (gnu.kawa.functions.DivideOp) r13
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x0172
            int r4 = r13.rounding_mode
            r5 = 1
            if (r4 != r5) goto L_0x0172
            java.lang.String r19 = "modulo"
            goto L_0x011f
        L_0x016f:
            java.lang.String r19 = "quotient"
            goto L_0x0159
        L_0x0172:
            int r4 = r13.rounding_mode
            r5 = 3
            if (r4 == r5) goto L_0x011f
            int r4 = r13.rounding_mode
            r12.emitPushInt(r4)
            r4 = 3
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
            r4 = 2
            gnu.bytecode.PrimType r5 = gnu.bytecode.Type.intType
            r11[r4] = r5
            goto L_0x011f
        L_0x018b:
            r0 = r25
            int r4 = r0.f55op
            r5 = 10
            if (r4 != r5) goto L_0x019c
            java.lang.String r19 = "shiftLeft"
        L_0x0195:
            java.lang.String r4 = "gnu.kawa.functions.BitwiseOp"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x019c:
            java.lang.String r19 = "shiftRight"
            goto L_0x0195
        L_0x019f:
            java.lang.String r19 = "shift"
            goto L_0x011f
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.kawa.functions.CompileArith.compileIntNum(gnu.expr.Expression, gnu.expr.Expression, int, int, gnu.expr.Compilation):boolean");
    }
public boolean compileIntNum ( gnu . expr . Expression r26 , gnu . expr . Expression r27 , int r28 , int r29 , gnu . expr . Compilation r30 ) { /*
            r25 = this;
            r0 = r25
            int r4 = r0.f55op
            r5 = 2
            if (r4 != r5) goto L_0x0069
            r0 = r27
            boolean r4 = r0 instanceof gnu.expr.QuoteExp
            if (r4 == 0) goto L_0x0069
            java.lang.Object r24 = r27.valueIfConstant()
            r4 = 2
            r0 = r29
            if (r0 > r4) goto L_0x004b
            java.lang.Number r24 = (java.lang.Number) r24
            long r16 = r24.longValue()
            r4 = -2147483648(0xffffffff80000000, double:NaN)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 <= 0) goto L_0x0048
            r4 = 2147483647(0x7fffffff, double:1.060997895E-314)
            int r4 = (r16 > r4 ? 1 : (r16 == r4 ? 0 : -1))
            if (r4 > 0) goto L_0x0048
            r20 = 1
        L_0x002c:
            if (r20 == 0) goto L_0x0069
            gnu.kawa.functions.CompileArith r4 = $Pl
            r0 = r16
            long r6 = -r0
            int r5 = (int) r6
            java.lang.Integer r5 = java.lang.Integer.valueOf(r5)
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.getInstance(r5)
            r8 = 1
            r5 = r26
            r7 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
        L_0x0047:
            return r4
        L_0x0048:
            r20 = 0
            goto L_0x002c
        L_0x004b:
            r0 = r24
            boolean r4 = r0 instanceof gnu.math.IntNum
            if (r4 == 0) goto L_0x0064
            r14 = r24
            gnu.math.IntNum r14 = (gnu.math.IntNum) r14
            long r16 = r14.longValue()
            r4 = -2147483647(0xffffffff80000001, double:NaN)
            r6 = 2147483647(0x7fffffff, double:1.060997895E-314)
            boolean r20 = r14.inRange(r4, r6)
            goto L_0x002c
        L_0x0064:
            r20 = 0
            r16 = 0
            goto L_0x002c
        L_0x0069:
            r0 = r25
            int r4 = r0.f55op
            r5 = 1
            if (r4 == r5) goto L_0x0077
            r0 = r25
            int r4 = r0.f55op
            r5 = 3
            if (r4 != r5) goto L_0x00b5
        L_0x0077:
            r10 = 1
        L_0x0078:
            if (r10 == 0) goto L_0x00ff
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r26)
            if (r4 == 0) goto L_0x0082
            r28 = 1
        L_0x0082:
            java.lang.Integer r4 = gnu.expr.InlineCalls.checkIntValue(r27)
            if (r4 == 0) goto L_0x008a
            r29 = 1
        L_0x008a:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00b7
            r4 = 1
            r0 = r29
            if (r0 == r4) goto L_0x00b7
            r21 = 1
        L_0x0096:
            if (r21 == 0) goto L_0x00ba
            boolean r4 = r26.side_effects()
            if (r4 == 0) goto L_0x00a4
            boolean r4 = r27.side_effects()
            if (r4 != 0) goto L_0x00ba
        L_0x00a4:
            r4 = r25
            r5 = r27
            r6 = r26
            r7 = r29
            r8 = r28
            r9 = r30
            boolean r4 = r4.compileIntNum(r5, r6, r7, r8, r9)
            goto L_0x0047
        L_0x00b5:
            r10 = 0
            goto L_0x0078
        L_0x00b7:
            r21 = 0
            goto L_0x0096
        L_0x00ba:
            r4 = 1
            r0 = r28
            if (r0 != r4) goto L_0x00f9
            gnu.bytecode.PrimType r22 = gnu.bytecode.Type.intType
        L_0x00c1:
            r4 = 1
            r0 = r29
            if (r0 != r4) goto L_0x00fc
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
        L_0x00c8:
            r0 = r26
            r1 = r30
            r2 = r22
            r0.compile(r1, r2)
            r0 = r27
            r1 = r30
            r2 = r23
            r0.compile(r1, r2)
            gnu.bytecode.CodeAttr r12 = r30.getCode()
            if (r21 == 0) goto L_0x00e7
            r12.emitSwap()
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.kawa.lispexpr.LangPrimType.intType
        L_0x00e7:
            r19 = 0
            r11 = 0
            gnu.kawa.lispexpr.LangObjType r15 = gnu.kawa.functions.Arithmetic.typeIntNum
            r0 = r25
            int r4 = r0.f55op
            switch(r4) {
                case 1: goto L_0x011d;
                case 2: goto L_0x0138;
                case 3: goto L_0x013b;
                case 4: goto L_0x014f;
                case 5: goto L_0x014f;
                case 6: goto L_0x014f;
                case 7: goto L_0x014f;
                case 8: goto L_0x014f;
                case 9: goto L_0x019f;
                case 10: goto L_0x018b;
                case 11: goto L_0x018b;
                case 12: goto L_0x00f3;
                case 13: goto L_0x013e;
                case 14: goto L_0x0140;
                case 15: goto L_0x0144;
                default: goto L_0x00f3;
            }
        L_0x00f3:
            java.lang.Error r4 = new java.lang.Error
            r4.<init>()
            throw r4
        L_0x00f9:
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c1
        L_0x00fc:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            goto L_0x00c8
        L_0x00ff:
            r0 = r25
            int r4 = r0.f55op
            r5 = 9
            if (r4 < r5) goto L_0x0116
            r0 = r25
            int r4 = r0.f55op
            r5 = 12
            if (r4 > r5) goto L_0x0116
            gnu.kawa.lispexpr.LangObjType r22 = gnu.kawa.functions.Arithmetic.typeIntNum
            gnu.bytecode.PrimType r23 = gnu.bytecode.Type.intType
            r21 = 0
            goto L_0x00c8
        L_0x0116:
            gnu.kawa.lispexpr.LangObjType r23 = gnu.kawa.functions.Arithmetic.typeIntNum
            r22 = r23
            r21 = 0
            goto L_0x00c8
        L_0x011d:
            java.lang.String r19 = "add"
        L_0x011f:
            if (r11 != 0) goto L_0x012a
            r4 = 2
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
        L_0x012a:
            r0 = r19
            gnu.bytecode.Method r18 = r15.getMethod(r0, r11)
            r0 = r18
            r12.emitInvokeStatic(r0)
            r4 = 1
            goto L_0x0047
        L_0x0138:
            java.lang.String r19 = "sub"
            goto L_0x011f
        L_0x013b:
            java.lang.String r19 = "times"
            goto L_0x011f
        L_0x013e:
            java.lang.String r19 = "and"
        L_0x0140:
            if (r19 != 0) goto L_0x0144
            java.lang.String r19 = "ior"
        L_0x0144:
            if (r19 != 0) goto L_0x0148
            java.lang.String r19 = "xor"
        L_0x0148:
            java.lang.String r4 = "gnu.math.BitOps"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x014f:
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x016f
            java.lang.String r19 = "remainder"
        L_0x0159:
            r0 = r25
            gnu.mapping.Procedure r13 = r0.proc
            gnu.kawa.functions.DivideOp r13 = (gnu.kawa.functions.DivideOp) r13
            r0 = r25
            int r4 = r0.f55op
            r5 = 8
            if (r4 != r5) goto L_0x0172
            int r4 = r13.rounding_mode
            r5 = 1
            if (r4 != r5) goto L_0x0172
            java.lang.String r19 = "modulo"
            goto L_0x011f
        L_0x016f:
            java.lang.String r19 = "quotient"
            goto L_0x0159
        L_0x0172:
            int r4 = r13.rounding_mode
            r5 = 3
            if (r4 == r5) goto L_0x011f
            int r4 = r13.rounding_mode
            r12.emitPushInt(r4)
            r4 = 3
            gnu.bytecode.Type[] r11 = new gnu.bytecode.Type[r4]
            r4 = 0
            r11[r4] = r22
            r4 = 1
            r11[r4] = r23
            r4 = 2
            gnu.bytecode.PrimType r5 = gnu.bytecode.Type.intType
            r11[r4] = r5
            goto L_0x011f
        L_0x018b:
            r0 = r25
            int r4 = r0.f55op
            r5 = 10
            if (r4 != r5) goto L_0x019c
            java.lang.String r19 = "shiftLeft"
        L_0x0195:
            java.lang.String r4 = "gnu.kawa.functions.BitwiseOp"
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r4)
            goto L_0x011f
        L_0x019c:
            java.lang.String r19 = "shiftRight"
            goto L_0x0195
        L_0x019f:
            java.lang.String r19 = "shift"
            goto L_0x011f
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.kawa.functions.CompileArith.compileIntNum(gnu.expr.Expression, gnu.expr.Expression, int, int, gnu.expr.Compilation):boolean" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .