void registerCatch(DiagnosticPosition pos,
                           int startpc, int endpc,
                           int handler_pc, int catch_type) {
            if (startpc != endpc) {
                char startpc1 = (char)startpc;
                char endpc1 = (char)endpc;
                char handler_pc1 = (char)handler_pc;
                if (startpc1 == startpc &&
                    endpc1 == endpc &&
                    handler_pc1 == handler_pc) {
                    code.addCatch(startpc1, endpc1, handler_pc1,
                                  (char)catch_type);
                } else {
                    if (!useJsrLocally && !target.generateStackMapTable()) {
                        useJsrLocally = true;
                        throw new CodeSizeOverflow();
                    } else {
                        log.error(pos, "limit.code.too.large.for.try.stmt");
                        nerrs++;
                    }
                }
            }
        }