Run time type check with relative numbering added. Checkcast and Instanceof
authorcacao <none@none>
Fri, 30 Oct 1998 14:51:47 +0000 (14:51 +0000)
committercacao <none@none>
Fri, 30 Oct 1998 14:51:47 +0000 (14:51 +0000)
inlined.

26 files changed:
alpha/asmpart.c
alpha/disass.c
alpha/ngen.c
alpha/ngen.h
builtin.c
builtin.h
global.h
headers.c
loader.c
loader.h
main.c
mm/Makefile
ncomp/mcode.c
ncomp/nparse.c
ncomp/nstack.c
src/cacao/cacao.c
src/cacaoh/headers.c
src/threads/green/threadio.c
src/vm/builtin.c
src/vm/builtin.h
src/vm/global.h
src/vm/loader.c
src/vm/loader.h
tests/jctest.dec
tests/jctest.java
threads/threadio.c

index 50ba080da136aafeb467380692e106213c340987..e47e183757704b2d26d74111447dbc77d9bf82bb 100644 (file)
@@ -95,6 +95,8 @@
        .globl asm_handle_nat_exception
        .globl asm_signal_exception
        .globl new_builtin_checkcast
+       .globl new_builtin_checkclasscast
+       .globl new_builtin_checkintercast
        .globl new_builtin_checkarraycast
        .globl new_builtin_aastore
        .globl new_builtin_monitorenter
@@ -935,7 +937,7 @@ new_builtin_checkcast:
        lda     sp,-16(sp)                  # allocate stack space
        stq     ra,0(sp)                    # save return address
        stq     a0,8(sp)                    # save object pointer
-       jsr     ra,builtin_checkcast        # builtin_checkcast
+       jsr     ra,new_builtin_checkcast    # new_builtin_checkcast
        ldgp    gp,0(ra)
        beq     v0,nb_ccast_throw           # if (false) throw exception
        ldq     ra,0(sp)                    # restore return address
@@ -952,6 +954,66 @@ nb_ccast_throw:
        .end    new_builtin_checkcast
 
 
+/****************** function new_builtin_checkclasscast ************************
+*                                                                              *
+*   Does the cast check and eventually throws an exception                     *
+*                                                                              *
+*******************************************************************************/
+
+       .ent    new_builtin_checkclasscast
+new_builtin_checkclasscast:
+
+       ldgp    gp,0(pv)
+       lda     sp,-16(sp)                  # allocate stack space
+       stq     ra,0(sp)                    # save return address
+       stq     a0,8(sp)                    # save object pointer
+       jsr     ra,builtin_checkclasscast   # builtin_checkclasscast
+       ldgp    gp,0(ra)
+       beq     v0,nb_cclass_throw          # if (false) throw exception
+       ldq     ra,0(sp)                    # restore return address
+       ldq     v0,8(sp)                    # return object pointer
+       lda     sp,16(sp)                   # free stack space
+       jmp     zero,(ra)
+
+nb_cclass_throw:
+       ldq     xptr,proto_java_lang_ClassCastException
+       ldq     ra,0(sp)                    # restore return address
+       lda     sp,16(sp)                   # free stack space
+       lda     xpc,-4(ra)                  # faulting address is return adress - 4
+       br      asm_handle_nat_exception
+       .end    new_builtin_checkclasscast
+
+
+/****************** function new_builtin_checkintercast ************************
+*                                                                              *
+*   Does the cast check and eventually throws an exception                     *
+*                                                                              *
+*******************************************************************************/
+
+       .ent    new_builtin_checkintercast
+new_builtin_checkintercast:
+
+       ldgp    gp,0(pv)
+       lda     sp,-16(sp)                  # allocate stack space
+       stq     ra,0(sp)                    # save return address
+       stq     a0,8(sp)                    # save object pointer
+       jsr     ra,builtin_checkintercast   # builtin_checkintercast
+       ldgp    gp,0(ra)
+       beq     v0,nb_cinter_throw          # if (false) throw exception
+       ldq     ra,0(sp)                    # restore return address
+       ldq     v0,8(sp)                    # return object pointer
+       lda     sp,16(sp)                   # free stack space
+       jmp     zero,(ra)
+
+nb_cinter_throw:
+       ldq     xptr,proto_java_lang_ClassCastException
+       ldq     ra,0(sp)                    # restore return address
+       lda     sp,16(sp)                   # free stack space
+       lda     xpc,-4(ra)                  # faulting address is return adress - 4
+       br      asm_handle_nat_exception
+       .end    new_builtin_checkintercast
+
+
 /******************* function new_builtin_checkarraycast ***********************
 *                                                                              *
 *   Does the cast check and eventually throws an exception                     *
index e9392e662a53d456e0203428c8a27857ba0efcb8..f8fdc4a971a4c62d9d49201aa3d7801e4d849b31 100644 (file)
@@ -264,6 +264,8 @@ static void disasscmd (int c, int pos)
                if (op == 0x11 && opfun == 0x20 && ra == rb && ~(c&0x1000)) {
                        if (ra == 31 && rc == 31)
                                printf ("NOP\n");
+                       else if (ra == 31)
+                               printf ("CLR     $%d\n", rc);
                        else
                                printf ("MOV     $%d,$%d\n", ra, rc);
                        return;
index a9eb8da68e9971391203163f003382e836fbd644..c91f9fe9c245e07464d18f7742375b26818c6359 100644 (file)
@@ -1,4 +1,4 @@
-/***************************** alpha/ngen.c ************************************
+/* alpha/ngen.c ****************************************************************
 
        Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
 
@@ -17,7 +17,7 @@
 
 
 
-/*******************************************************************************
+/* *****************************************************************************
 
 Datatypes and Register Allocations:
 ----------------------------------- 
@@ -44,7 +44,7 @@ explained in detail in the documention file: calling.doc
 *******************************************************************************/
 
 
-/*********** additional functions and macros to generate code *****************/
+/* additional functions and macros to generate code ***************************/
 
 #define BlockPtrOfPC(pc)        block+block_index[pc]
 
@@ -245,7 +245,7 @@ ieee_set_fp_control(ieee_get_fp_control()
 }
 
 
-/*************************** function gen_mcode ********************************
+/* function gen_mcode **********************************************************
 
        generates machine code
 
@@ -521,7 +521,7 @@ static void gen_mcode()
                        gen_nullptr_check(s1);
                        break;
 
-               /*********************** constant operations **************************/
+               /* constant operations ************************************************/
 
                case ICMD_ICONST:
                        d = reg_of_var(iptr->dst, REG_ITMP1);
@@ -574,7 +574,7 @@ static void gen_mcode()
                        store_reg_to_var_int(iptr->dst, d);
                        break;
 
-               /********************** load/store operations *************************/
+               /* load/store operations **********************************************/
 
                case ICMD_ILOAD:
                case ICMD_LLOAD:
@@ -640,7 +640,7 @@ static void gen_mcode()
                        break;
 
 
-               /******************* pop/dup/swap operations **************************/
+               /* pop/dup/swap operations ********************************************/
 
                case ICMD_POP:
                case ICMD_POP2:
@@ -697,7 +697,7 @@ static void gen_mcode()
                        break;
 
 
-               /********************* integer operations *****************************/
+               /* integer operations *************************************************/
 
                case ICMD_INEG:
                        var_to_reg_int(s1, src, REG_ITMP1); 
@@ -1287,7 +1287,7 @@ static void gen_mcode()
                        break;
 
 
-               /*********************** floating operations **************************/
+               /* floating operations ************************************************/
 
                case ICMD_FNEG:
                        var_to_reg_flt(s1, src, REG_FTMP1);
@@ -1595,7 +1595,7 @@ static void gen_mcode()
                        break;
 
 
-               /********************** memory operations *****************************/
+               /* memory operations **************************************************/
 
 #define gen_bound_check \
                        if (checkbounds) {\
@@ -1961,7 +1961,7 @@ static void gen_mcode()
                        break;
 
 
-               /********************** branch operations *****************************/
+               /* branch operations **************************************************/
 
 #define ALIGNCODENOP {if((int)((long)mcodeptr&7)){M_NOP;}}
 
@@ -2450,18 +2450,6 @@ static void gen_mcode()
                        break;
 
 
-/*   branch if the unsigned value of s1 is greater that s2 (note, that s2 has
-        to be >= 0) */
-
-/*             case ICMD_IF_UCMPGE: 
-                       var_to_reg_int(s1, src->prev, REG_ITMP1);
-                       var_to_reg_int(s2, src, REG_ITMP2);
-                       M_CMPULE(s2, s1, REG_ITMP1, 0);
-                       M_BNEZ(REG_ITMP1, 0);
-                       mcode_addreference(BlockPtrOfPC(iptr->op1), mcodeptr);
-            break;
-*/
-
                case ICMD_IRETURN:
                case ICMD_LRETURN:
                case ICMD_ARETURN:
@@ -2760,6 +2748,150 @@ makeactualcall:
                        }
                        break;
 
+
+               case ICMD_INSTANCEOF: /* ..., objectref ==> ..., intresult            */
+
+                                     /* op1:   0 == array, 1 == class                */
+                                     /* val.a: (classinfo*) superclass               */
+
+/*      superclass is an interface:
+ *
+ *      return (sub != NULL) &&
+ *             (sub->vftbl->interfacetablelength > super->index) &&
+ *             (sub->vftbl->interfacevftbl[super->index] != NULL);
+ *
+ *      superclass is a class:
+ *
+ *      return (sub != NULL) &&
+ *             ((sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+ *              (sub->vftbl->lowclassval <= super->vftbl->highclassval));
+ */
+
+                       {
+                       classinfo *c = (classinfo*) iptr->val.a;
+                       
+                       var_to_reg_int(s1, src, REG_ITMP1);
+                       d = reg_of_var(iptr->dst, REG_ITMP3);
+                       if (s1 == d) {
+                               M_MOV(s1, REG_ITMP1);
+                               s1 = REG_ITMP1;
+                               }
+                       M_CLR(d);
+                       if (iptr->op1) {                               /* class/interface */
+                               if (c->flags & ACC_INTERFACE) {            /* interface       */
+                                       M_BEQZ(s1, 7 + (c->index > 255));
+                                       M_ALD(REG_ITMP1, s1, OFFSET(java_objectheader, vftbl));
+                                       M_ILD(REG_ITMP2, REG_ITMP1, OFFSET(vftbl, interfacetablelength));
+                                       if (c->index <= 255) {
+                                               M_CMPLE(REG_ITMP2, c->index, REG_ITMP2, 1);
+                                               M_BNEZ(REG_ITMP2, 3);
+                                               }
+                                       else {
+                                               M_ISUB(REG_ZERO, REG_ITMP2, REG_ITMP2, 0);
+                                               M_LDA(REG_ITMP2, REG_ITMP2, c->index);
+                                               M_BGEZ(REG_ITMP2, 3);
+                                               }
+                                       M_ALD(REG_ITMP1, REG_ITMP1, OFFSET(vftbl, interfacevftbl));
+                                       M_ALD(REG_ITMP1, REG_ITMP1, c->index * 8);
+                                       M_CMPULT(REG_ZERO, REG_ITMP1, d, 0);   /* REG_ITMP1 != 0  */
+                                       }
+                               else {                                     /* class           */
+                                       s2 = c->vftbl->highclassval - c->vftbl->lowclassval;
+                                       M_BEQZ(s1, 4 + (c->vftbl->lowclassval > 255) + (s2 > 255));
+                                       M_ALD(REG_ITMP1, s1, OFFSET(java_objectheader, vftbl));
+                                       M_ILD(REG_ITMP1, REG_ITMP1, OFFSET(vftbl, lowclassval));
+                                       if (c->vftbl->lowclassval <= 255)
+                                               M_ISUB(REG_ITMP1, c->vftbl->lowclassval, REG_ITMP1, 1);
+                                       else {
+                                               M_LDA(REG_ITMP2, REG_ZERO, c->vftbl->lowclassval);
+                                               M_ISUB(REG_ITMP1, REG_ITMP2, REG_ITMP1, 0);
+                                               }
+                                       if (s2 <= 255)
+                                               M_CMPULE(REG_ITMP1, s2, d, 1);
+                                       else {
+                                               M_LDA(REG_ITMP2, REG_ZERO, s2);
+                                               M_CMPULE(REG_ITMP1, REG_ITMP2, d, 0);
+                                               }
+                                       }
+                               }
+                       else
+                               panic ("internal error: no inlined array instanceof");
+                       }
+                       store_reg_to_var_int(iptr->dst, d);
+                       break;
+
+               case ICMD_CHECKCAST:  /* ..., objectref ==> ..., objectref            */
+
+                                     /* op1:   0 == array, 1 == class                */
+                                     /* val.a: (classinfo*) superclass               */
+
+/*      superclass is an interface:
+ *
+ *      OK if ((sub == NULL) ||
+ *             (sub->vftbl->interfacetablelength > super->index) &&
+ *             (sub->vftbl->interfacevftbl[super->index] != NULL));
+ *
+ *      superclass is a class:
+ *
+ *      OK if ((sub == NULL) ||
+ *             ((sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+ *              (sub->vftbl->lowclassval <= super->vftbl->highclassval)));
+ */
+
+                       {
+                       classinfo *c = (classinfo*) iptr->val.a;
+                       
+                       d = reg_of_var(iptr->dst, REG_ITMP3);
+                       var_to_reg_int(s1, src, d);
+                       if (iptr->op1) {                               /* class/interface */
+                               if (c->flags & ACC_INTERFACE) {            /* interface       */
+                                       M_BEQZ(s1, 7 + (c->index > 255));
+                                       M_ALD(REG_ITMP1, s1, OFFSET(java_objectheader, vftbl));
+                                       M_ILD(REG_ITMP2, REG_ITMP1, OFFSET(vftbl, interfacetablelength));
+                                       if (c->index <= 255) {
+                                               M_CMPLE(REG_ITMP2, c->index, REG_ITMP2, 1);
+                                               M_BNEZ(REG_ITMP2, 0);
+                                               mcode_addxcastrefs(mcodeptr);
+                                               }
+                                       else {
+                                               M_ISUB(REG_ZERO, REG_ITMP2, REG_ITMP2, 0);
+                                               M_LDA(REG_ITMP2, REG_ITMP2, c->index);
+                                               M_BGEZ(REG_ITMP2, 0);
+                                               mcode_addxcastrefs(mcodeptr);
+                                               }
+                                       M_ALD(REG_ITMP1, REG_ITMP1, OFFSET(vftbl, interfacevftbl));
+                                       M_ALD(REG_ITMP2, REG_ITMP1, c->index * 8);
+                                       M_BEQZ(REG_ITMP2, 0);
+                                       mcode_addxcastrefs(mcodeptr);
+                                       }
+                               else {                                     /* class           */
+                                       s2 = c->vftbl->highclassval - c->vftbl->lowclassval;
+                                       M_BEQZ(s1, 5 + (c->vftbl->lowclassval > 255) + (s2 > 255));
+                                       M_ALD(REG_ITMP1, s1, OFFSET(java_objectheader, vftbl));
+                                       M_ILD(REG_ITMP1, REG_ITMP1, OFFSET(vftbl, lowclassval));
+                                       if (c->vftbl->lowclassval <= 255)
+                                               M_ISUB(REG_ITMP1, c->vftbl->lowclassval, REG_ITMP1, 1);
+                                       else {
+                                               M_LDA(REG_ITMP2, REG_ZERO, c->vftbl->lowclassval);
+                                               M_ISUB(REG_ITMP1, REG_ITMP2, REG_ITMP1, 0);
+                                               }
+                                       if (s2 <= 255)
+                                               M_CMPULE(REG_ITMP1, s2, REG_ITMP2, 1);
+                                       else {
+                                               M_LDA(REG_ITMP2, REG_ZERO, s2);
+                                               M_CMPULE(REG_ITMP1, REG_ITMP2, REG_ITMP2, 0);
+                                               }
+                                       M_BEQZ(REG_ITMP2, 0);
+                                       mcode_addxcastrefs(mcodeptr);
+                                       }
+                               }
+                       else
+                               panic ("internal error: no inlined array checkcast");
+                       }
+                       M_INTMOVE(s1, d);
+                       store_reg_to_var_int(iptr->dst, d);
+                       break;
+
                case ICMD_CHECKASIZE:
                        var_to_reg_int(s1, src, REG_ITMP1);
                        M_BLTZ(s1, 0);
@@ -2917,6 +3049,38 @@ makeactualcall:
                        }
                }
 
+       xcodeptr = NULL;
+       
+       for (; xcastrefs != NULL; xcastrefs = xcastrefs->next) {
+               if ((exceptiontablelength == 0) && (xcodeptr != NULL)) {
+                       gen_resolvebranch((u1*) mcodebase + xcastrefs->branchpos, 
+                               xcastrefs->branchpos, (u1*) xcodeptr - (u1*) mcodebase - 4);
+                       continue;
+                       }
+
+               gen_resolvebranch((u1*) mcodebase + xcastrefs->branchpos, 
+                                 xcastrefs->branchpos, (u1*) mcodeptr - mcodebase);
+
+               MCODECHECK(8);
+
+               M_LDA(REG_ITMP2_XPC, REG_PV, xcastrefs->branchpos);
+
+               if (xcodeptr != NULL) {
+                       M_BR((xcodeptr-mcodeptr)-1);
+                       }
+               else {
+                       xcodeptr = mcodeptr;
+
+                       a = dseg_addaddress(proto_java_lang_ClassCastException);
+                       M_LLD(REG_ITMP1_XPTR, REG_PV, a);
+
+                       a = dseg_addaddress(asm_handle_exception);
+                       M_LLD(REG_ITMP3, REG_PV, a);
+
+                       M_JMP(REG_ZERO, REG_ITMP3);
+                       }
+               }
+
 
 #ifdef SOFTNULLPTRCHECK
 
@@ -2959,7 +3123,7 @@ makeactualcall:
 }
 
 
-/******** redefinition of code generation macros (compiling into array) *******/
+/* redefinition of code generation macros (compiling into array) **************/
 
 /* 
 These macros are newly defined to allow code generation into an array.
@@ -2990,7 +3154,7 @@ This makes sense only for the stub-generation-routines below.
 
 #if 0
 
-/************************ function createcompilerstub **************************
+/* function createcompilerstub *************************************************
 
        creates a stub routine which calls the compiler
        
@@ -3018,7 +3182,7 @@ u1 *createcompilerstub (methodinfo *m)
 }
 
 
-/************************* function removecompilerstub *************************
+/* function removecompilerstub *************************************************
 
      deletes a compilerstub from memory  (simply by freeing it)
 
@@ -3030,7 +3194,7 @@ void removecompilerstub (u1 *stub)
 }
 
 
-/************************ function: removenativestub ***************************
+/* function: removenativestub **************************************************
 
     removes a previously created native-stub from memory
     
@@ -3044,7 +3208,7 @@ void removenativestub (u1 *stub)
 #endif /* 0 */
 
 
-/********************* Funktion: ncreatenativestub *****************************
+/* function: ncreatenativestub *************************************************
 
        creates a stub routine which calls a native method
        
index 37a82a4ea9caf241da1faca8f37820791adc9401..49da0b7b49cca4adf6688c7f571dd962d066a197 100644 (file)
@@ -1,4 +1,4 @@
-/***************************** alpha/ngen.h ************************************
+/* alpha/ngen.h ****************************************************************
 
        Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
 
@@ -14,7 +14,7 @@
 
 *******************************************************************************/
 
-/************************ Preallocated registers ******************************/
+/* preallocated registers *****************************************************/
 
 /* integer registers */
   
@@ -44,7 +44,7 @@
 
 #define REG_IFTMP       28   /* temporary integer and floating point register */
 
-/******************** register descripton - array *****************************/
+/* register descripton - array ************************************************/
 
 /* #define REG_RES   0         reserved register for OS or code generator */
 /* #define REG_RET   1         return value register */
@@ -80,7 +80,7 @@ int nregdescfloat[] = {
 /* for use of reserved registers, see comment above */
 
 
-/*** parameter allocation mode ***/
+/* parameter allocation mode */
 
 int nreg_parammode = PARAMMODE_NUMBERED;  
 
@@ -91,14 +91,14 @@ int nreg_parammode = PARAMMODE_NUMBERED;
    */
 
 
-/************************** stackframe-infos **********************************/
+/* stackframe-infos ***********************************************************/
 
 int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 
 /* -> see file 'calling.doc' */
 
 
-/******************** macros to create code ***********************************/
+/* macros to create code ******************************************************/
 
 /* 3-address-operations: M_OP3
       op ..... opcode
@@ -142,7 +142,7 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
        *(mcodeptr++) = ( (((s4)(op))<<26)|((a)<<21)|((b)<<16)|((disp)&0xffff) )
 
 
-/***** macros for all used commands (see an Alpha-manual for description) *****/ 
+/* macros for all used commands (see an Alpha-manual for description) *********/ 
 
 #define M_LDA(a,b,disp)         M_MEM (0x08,a,b,disp)           /* low const  */
 #define M_LDAH(a,b,disp)        M_MEM (0x09,a,b,disp)           /* high const */
@@ -150,10 +150,12 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_SLDU(a,b,disp)        M_MEM (0x0c,a,b,disp)           /* 16 load    */
 #define M_ILD(a,b,disp)         M_MEM (0x28,a,b,disp)           /* 32 load    */
 #define M_LLD(a,b,disp)         M_MEM (0x29,a,b,disp)           /* 64 load    */
+#define M_ALD(a,b,disp)         M_MEM (0x29,a,b,disp)           /* addr load  */
 #define M_BST(a,b,disp)         M_MEM (0x0e,a,b,disp)           /*  8 store   */
 #define M_SST(a,b,disp)         M_MEM (0x0d,a,b,disp)           /* 16 store   */
 #define M_IST(a,b,disp)         M_MEM (0x2c,a,b,disp)           /* 32 store   */
 #define M_LST(a,b,disp)         M_MEM (0x2d,a,b,disp)           /* 64 store   */
+#define M_AST(a,b,disp)         M_MEM (0x2d,a,b,disp)           /* addr store */
 
 #define M_BSEXT(b,c)            M_OP3 (0x1c,0x0,REG_ZERO,b,c,0) /*  8 signext */
 #define M_SSEXT(b,c)            M_OP3 (0x1c,0x1,REG_ZERO,b,c,0) /* 16 signext */
@@ -189,7 +191,9 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_OR(a,b,c,const)       M_OP3 (0x11,0x20, a,b,c,const)  /* c = a |  b */
 #define M_XOR(a,b,c,const)      M_OP3 (0x11,0x40, a,b,c,const)  /* c = a ^  b */
 
-#define M_NOP                   M_OR (31,31,31,0)
+#define M_MOV(a,c)              M_OR (a,a,c,0)                  /* c = a      */
+#define M_CLR(c)                M_OR (31,31,c,0)                /* c = 0      */
+#define M_NOP                   M_OR (31,31,31,0)               /* ;          */
 
 #define M_SLL(a,b,c,const)      M_OP3 (0x12,0x39, a,b,c,const)  /* c = a << b */
 #define M_SRA(a,b,c,const)      M_OP3 (0x12,0x3c, a,b,c,const)  /* c = a >> b */
@@ -243,7 +247,7 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 
 #define M_FBEQZ(fa,disp)        M_BRA (0x31,fa,disp)            /* br a == 0.0*/
 
-/****** macros for special commands (see an Alpha-manual for description) *****/ 
+/* macros for special commands (see an Alpha-manual for description) **********/ 
 
 #define M_TRAPB                 M_MEM (0x18,0,0,0x0000)        /* trap barrier*/
 
@@ -285,7 +289,7 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 
 #define M_UMULH(a,b,c,const)    M_OP3 (0x13,0x30, a,b,c,const)  /* 64 umulh   */
 
-/****** macros for unused commands (see an Alpha-manual for description) ******/ 
+/* macros for unused commands (see an Alpha-manual for description) ***********/ 
 
 #define M_ANDNOT(a,b,c,const)   M_OP3 (0x11,0x08, a,b,c,const) /* c = a &~ b  */
 #define M_ORNOT(a,b,c,const)    M_OP3 (0x11,0x28, a,b,c,const) /* c = a |~ b  */
@@ -312,7 +316,7 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_JMP_CO(a,b)           M_MEM (0x1a,a,b,0xc000)        /* call cosub  */
 
 
-/************************ function gen_resolvebranch ***************************
+/* function gen_resolvebranch **************************************************
 
        backpatches a branch instruction; Alpha branch instructions are very
        regular, so it is only necessary to overwrite some fixed bits in the
index c1de52db7c81258af511a57ca9cab306fbef1e8f..6e28c7c5dcc3822a4cd04b5c0d64795a1d58abcf 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -35,6 +35,8 @@ builtin_descriptor builtin_desc[] = {
        {(functionptr) builtin_instanceof,         "instanceof"},
        {(functionptr) builtin_checkcast,          "checkcast"},
        {(functionptr) new_builtin_checkcast,      "checkcast"},
+       {(functionptr) new_builtin_checkclasscast, "checkclasscast"},
+       {(functionptr) new_builtin_checkintercast, "checkintercast"},
        {(functionptr) builtin_arrayinstanceof,    "arrayinstanceof"},
        {(functionptr) builtin_checkarraycast,     "checkarraycast"},
        {(functionptr) new_builtin_checkarraycast, "checkarraycast"},
@@ -126,18 +128,12 @@ builtin_descriptor builtin_desc[] = {
 static s4 builtin_isanysubclass (classinfo *sub, classinfo *super)
 {
        if (super->flags & ACC_INTERFACE) {
-               u4 index = super->index;
-/*             if (sub->vftbl == NULL) return 0; */
+               s4 index = super->index;
                if (index >= sub->vftbl->interfacetablelength) return 0;
                return ( sub->vftbl->interfacevftbl[index] ) ? 1 : 0;
                }
-       else {
-               while (sub) {
-                       if (sub==super) return 1;
-                       sub = sub->super;
-                       }
-               return 0;
-               }
+       return (sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+              (sub->vftbl->lowclassval <= super->vftbl->highclassval);
 }
 
 
@@ -195,6 +191,40 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
 }
 
 
+/***************** function: builtin_checkclasscast ****************************
+
+       Returns 1 (true) if the object "sub" is a subclass of the class "super",
+       otherwise returns 0 (false). If sub is NULL it also returns 1 (true).
+              
+*******************************************************************************/
+
+s4 builtin_checkclasscast(java_objectheader *sub, classinfo *super)
+{
+       if (!sub)
+               return 1;
+
+       return (sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+              (sub->vftbl->lowclassval <= super->vftbl->highclassval);
+}
+
+
+/***************** function: builtin_checkintercast ****************************
+
+       Returns 1 (true) if the object "sub" is a subclass of the interface "super",
+       otherwise returns 0 (false). If "sub" is NULL it also returns 1 (true).
+              
+*******************************************************************************/
+
+s4 builtin_checkintercast(java_objectheader *sub, classinfo *super)
+{
+       if (!sub)
+               return 1;
+
+       return (sub->vftbl->interfacetablelength > super->index) &&
+              (sub->vftbl->interfacevftbl[super->index] != NULL);
+       return 0;
+}
+
 
 /*********** interne Funktion: builtin_descriptorscompatible ******************
 
index b52afb4379ae083d2ff2049e33bdd906f96a61ca..1343c63ebe861d0571c10e39cecff122dfa1497c 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -26,6 +26,8 @@ extern builtin_descriptor builtin_desc[];
 s4 builtin_instanceof(java_objectheader *obj, classinfo *class);
 s4 builtin_checkcast(java_objectheader *obj, classinfo *class);
 s4 new_builtin_checkcast(java_objectheader *obj, classinfo *class);
+s4 new_builtin_checkclasscast(java_objectheader *obj, classinfo *class);
+s4 new_builtin_checkintercast(java_objectheader *obj, classinfo *class);
 s4 builtin_arrayinstanceof
        (java_objectheader *obj, constant_arraydescriptor *desc);
 s4 builtin_checkarraycast
index 5a21a49d42c3e317db8021fdb92ba21572dbf278..8b7995c56eb034d7f2feaeb37527c88e5f34ddcc 100644 (file)
--- a/global.h
+++ b/global.h
@@ -12,7 +12,7 @@
                 Mark Probst         EMAIL: cacao@complang.tuwien.ac.at
                         Philipp Tomsich     EMAIL: cacao@complang.tuwien.ac.at
 
-       Last Change: 1998/10/29
+       Last Change: 1998/10/30
 
 *******************************************************************************/
 
@@ -223,7 +223,7 @@ typedef struct constant_arraydescriptor {
 
 
 
-/***************** Die Datenstrukturen fuer das Laufzeitsystem ***************/
+/***************** Die Datenstrukturen fuer das Laufzeitsystem ****************/
 
 
        /********* Objekte **********
@@ -337,122 +337,120 @@ typedef struct java_arrayarray {
 
 
 
-/************** Strukturen f"ur Klassen, Felder & Methoden *****************/
+/******************** class, field and method structures **********************/
 
 
-    /*** Struktur: fieldinfo ***/
+/********************** structure: fieldinfo **********************************/
 
-typedef struct fieldinfo {   /* Struktur f"ur ein Feld einer Klasse */
-       s4       flags;              /* die ACC-Flags */
-       s4       type;               /* Grunddatentyp */
-       unicode *name;               /* Name des Felds */
-       unicode *descriptor;         /* Typedescriptor in JavaVM-Form */
+typedef struct fieldinfo {/* field of a class                                 */
+       s4       flags;       /* ACC flags                                        */
+       s4       type;        /* basic data type                                  */
+       unicode *name;        /* name of field                                    */
+       unicode *descriptor;  /* JavaVM descriptor string of field                */
        
-       s4       offset;             /* Offset vom Anfang des Objektes */
-       /* (bei Instanzvariablen) */
+       s4       offset;      /* offset from start of object (instance variables) */
 
-       union {                      /* Speicher f"ur den Wert */
-               s4 i;                    /* (bei Klassenvariablen) */    
+       union {               /* storage for static values (class variables)      */
+               s4 i; 
                s8 l;
                float f;
                double d;
                void *a; 
        } value;
-               
+
 } fieldinfo;
 
 
-/*** Struktur: exceptiontable ***/
+/********************** structure: exceptiontable *****************************/
 
-typedef struct exceptiontable {  /* Exceptionhandler-Eintrag in einer Methode */ 
-       s4         startpc;            /* Anfang des G"ultigkeitsbereichs */
-       s4         endpc;              /* Ende des Bereichs (exklusive) */
-       s4         handlerpc;          /* JavaVM-Position des Handlers */
-       classinfo *catchtype;          /* Typ der behandelten Exceptions (oder 
-                                                                         NULL, wenn alle behandelt werden sollen) */
+typedef struct exceptiontable { /* exceptiontable entry in a method           */ 
+       s4         startpc;         /* start pc of guarded area (inclusive)       */
+       s4         endpc;           /* end pc of guarded area (exklusive)         */
+       s4         handlerpc;       /* pc of exception handler                    */
+       classinfo *catchtype;       /* catchtype of exception (NULL == catchall)  */
 } exceptiontable;
 
 
+/********************** structure: methodinfo *********************************/
 
-/*** Struktur: methodinfo ***/
-
-typedef struct methodinfo {  /* Struktur f"ur eine Methode einer Klasse */
-       s4             flags;            /* die ACC-Flags */
-       unicode   *name;             /* Name der Methode */
-       unicode   *descriptor;       /* der JavaVM-Descriptorstring f"ur Methoden */
-       s4        returntype;        /* only temporary valid, return type */
-       s4        paramcount;        /* only temporary valid, number of parameters */
-       u1        *paramtypes;       /* only temporary valid, parameter types */
-       classinfo *class;            /* Die Klasse, der die Methode geh"ort */
-       u4         vftblindex;       /* Index dieser Methode f"ur die Virtual
-                                                                       Function Table (wenn es keine statische
-                                                                       Methode ist) */
+typedef struct methodinfo {         /* method structure                       */
+       s4             flags;               /* ACC flags                              */
+       unicode   *name;                /* name of method                         */
+       unicode   *descriptor;          /* JavaVM descriptor string of method     */
+       s4         returntype;          /* only temporary valid, return type      */
+       s4         paramcount;          /* only temporary valid, parameter count  */
+       u1        *paramtypes;          /* only temporary valid, parameter types  */
+       classinfo *class;               /* class, the method belongs to           */
+       u4         vftblindex;          /* index of method in virtual function table
+                                          (if it is a virtual method)            */
+       s4         maxstack;            /* maximum stack depth of method          */
+       s4         maxlocals;           /* maximum number of local variables      */
+       u4         jcodelength;         /* length of JavaVM code                  */
+       u1        *jcode;               /* pointer to JavaVM code                 */
 
-       s4       maxstack;                  /* maximale Stacktiefe des JavaVM-Codes */
-       s4   maxlocals;                 /* maximale Anzahl der JavaVM-Variablen */
-       u4   jcodelength;               /* L"ange des JavaVM-Codes */
-       u1  *jcode;                     /* und Zeiger auf den JavaVM-Code */
+       s4         exceptiontablelength;/* exceptiontable length                  */
+       exceptiontable *exceptiontable; /* the exceptiontable                     */
 
-       s4   exceptiontablelength;      /* L"ange der Exceptintable */
-       exceptiontable *exceptiontable; /* Die Exceptiontable selber */
+       u1        *stubroutine;         /* stub for compiling or calling natives  */    
+       u4         mcodelength;         /* legth of generated machine code        */
+       u1        *mcode;               /* pointer to machine code                */
+       u1        *entrypoint;          /* entry point in machine code            */
 
-       u1  *stubroutine;               /* STUB-Routine for compiling or calling 
-                                                                          natives */   
-       u4   mcodelength;               /* L"ange des generierten Maschinencodes */
-       u1  *mcode;                     /* Zeiger auf den Maschinencode */
-       u1  *entrypoint;                /* Entrypoint to the Maschine-Code */   
 } methodinfo;
 
 
-/*** Struktur: classinfo ***/
+/********************** structure: classinfo **********************************/
 
-struct classinfo {           /* Datenstruktur f"ur eine Klasse */
-       java_objectheader header;     /* Weil auch Klassen als Objekte angesprochen 
-                                                                        werden */
+struct classinfo {                /* class structure                          */
+       java_objectheader header;     /* classes are also objects                 */
 
-       s4 flags;                     /* Die ACC-Flags */
-       unicode *name;                /* Name der Klasse */ 
-       
-       s4       cpcount;             /* Anzahl der Eintr"age im Constant-Pool */
-       u1      *cptags;              /* Die TAGs f"ur den Constant-Pool */
-       voidptr *cpinfos;             /* Die Zeiger auf die Info-Strukturen */
-       
-       classinfo *super;             /* Zeiger auf die "ubergeordnete Klasse */
-       
-       s4          interfacescount;  /* Anzahl der Interfaces */
-       classinfo **interfaces;       /* Zeiger auf die Interfaces */
-       
-       s4          fieldscount;      /* Anzahl der Felder */
-       fieldinfo  *fields;           /* Die Tabelle der Felder */
-       
-       s4          methodscount;     /* Anzahl der Methoden */
-       methodinfo *methods;          /* Die Tabelle der Methoden */
-       
-       
-       listnode    listnode;         /* Verkettungsstruktur (f"ur Listen) */
+       s4          flags;            /* ACC flags                                */
+       unicode    *name;             /* class name                               */ 
+
+       s4          cpcount;          /* number of entries in constant pool       */
+       u1         *cptags;           /* constant pool tags                       */
+       voidptr    *cpinfos;          /* pointer to constant pool info structures */
+
+       classinfo  *super;            /* super class pointer                      */
+       classinfo  *sub;              /* sub class pointer                        */
+       classinfo  *nextsub;          /* pointer to next class in sub class list  */
+
+       s4          interfacescount;  /* number of interfaces                     */
+       classinfo **interfaces;       /* pointer to interfaces                    */
 
-       bool        initialized;      /* true, wenn Klasse bereits Initialisiert */ 
-       bool        linked;           /* wird von `class_link` auf true gesetzt */
-       s4                      index;            /* Hierarchietiefe  (bei normalen Klassen)  
-                                                                        oder fortlaufende Nummer (bei Interfaces)*/ 
-       u4          instancesize;     /* Gr"osse eines Objektes dieser Klasse */
+       s4          fieldscount;      /* number of fields                         */
+       fieldinfo  *fields;           /* field table                              */
 
-       vftbl       *vftbl;
+       s4          methodscount;     /* number of methods                        */
+       methodinfo *methods;          /* method table                             */
 
-       methodinfo* finalizer;        /* Finalizer-Methode f"ur die Klasse */
+       listnode    listnode;         /* linkage                                  */
+
+       bool        initialized;      /* true, if class already initialised       */ 
+       bool        linked;           /* true, if class already linked            */
+       s4                      index;            /* hierarchy depth (classes) or index
+                                        (interfaces)                             */ 
+       s4          instancesize;     /* size of an instance of this class        */
+
+       vftbl      *vftbl;            /* pointer to virtual function table        */
+
+       methodinfo *finalizer;        /* finalizer method                         */
 #ifdef JIT_MARKER_SUPPORT
-       methodinfomarker; 
+       methodinfo *marker; 
 #endif
 };
        
 
 struct vftbl {
-       classinfo  *class;            /* Class, the function table belongs to */
+       classinfo  *class;                /* Class, the function table belongs to */
+
+       s4          vftbllength;          /* virtual function table length        */
+       s4          interfacetablelength; /* interface table length               */   
 
-       s4          vftbllength;      /* L"aenge der Virtual Function Table */
+       s4          lowclassval;          /* low value for relative numbering     */   
+       s4          highclassval;         /* high value for relative numbering    */   
 
-       s4          interfacetablelength;   /* L"ange der Interfacetable */   
-       u4         *interfacevftbllength;   /* -> siehe unten */   
+       u4         *interfacevftbllength; /* see description below                */   
        methodptr **interfacevftbl;
        
        methodptr   table[1];
@@ -500,7 +498,7 @@ struct vftbl {
 
 
 
-/************************* Referenzen auf die wichtigen Systemklassen ********************/
+/********************** references to some system classes  ********************/
 
 extern classinfo *class_java_lang_Object;
 extern classinfo *class_java_lang_String;
@@ -511,12 +509,12 @@ extern classinfo *class_java_lang_NegativeArraySizeException;
 extern classinfo *class_java_lang_OutOfMemoryError;
 extern classinfo *class_java_lang_ArithmeticException;
 extern classinfo *class_java_lang_ArrayStoreException;
-extern classinfo *class_java_lang_ThreadDeath;              /* schani */
+extern classinfo *class_java_lang_ThreadDeath;
  
 extern classinfo *class_array;
 
 
-/********************** Vorgefertigte Instanzen einiger Systemklassen ********************/
+/********************** instances of some system classes **********************/
 
 extern java_objectheader *proto_java_lang_ClassCastException;
 extern java_objectheader *proto_java_lang_NullPointerException;
@@ -525,17 +523,17 @@ extern java_objectheader *proto_java_lang_NegativeArraySizeException;
 extern java_objectheader *proto_java_lang_OutOfMemoryError;
 extern java_objectheader *proto_java_lang_ArithmeticException;
 extern java_objectheader *proto_java_lang_ArrayStoreException;
-extern java_objectheader *proto_java_lang_ThreadDeath;      /* schani */
+extern java_objectheader *proto_java_lang_ThreadDeath;
 
 
-/********************** flag variables *********************/
+/******************************* flag variables *******************************/
 
 extern bool compileall;
 extern bool runverbose;         
 extern bool verbose;         
                                 
 
-/********************** trace variables ********************/
+/******************************* trace variables ******************************/
 
 extern int count_class_infos;
 extern int count_const_pool_len;
index 6b8ee37ba18f528cb2546633b3735c2c723620e7..92ae368980688a997af9bbb3e99e7e7421b795e6 100644 (file)
--- a/headers.c
+++ b/headers.c
@@ -56,6 +56,10 @@ void new_builtin_monitorexit (java_objectheader *o) {}
 
 s4 new_builtin_checkcast(java_objectheader *o, classinfo *c)
                         {return 0;}
+s4 new_builtin_checkclasscast(java_objectheader *o, classinfo *c)
+                        {return 0;}
+s4 new_builtin_checkintercast(java_objectheader *o, classinfo *c)
+                        {return 0;}
 s4 new_builtin_checkarraycast
        (java_objectheader *o, constant_arraydescriptor *d)
        {return 0;}
index c94327c4e82f666916fff0516954dfdd460c1bab..38324b03115b82db437be211d757e9e0fcef849a 100644 (file)
--- a/loader.c
+++ b/loader.c
@@ -695,6 +695,8 @@ classinfo *class_get (unicode *u)
        c -> cptags = NULL;
        c -> cpinfos = NULL;
        c -> super = NULL;
+       c -> sub = NULL;
+       c -> nextsub = NULL;
        c -> interfacescount = 0;
        c -> interfaces = NULL;
        c -> fieldscount = 0;
@@ -1818,8 +1820,7 @@ classinfo *loader_load (unicode *topname)
        intsDisable();                           /* schani */
 
        if (getloadingtime) starttime = getcputime();
-       
-       
+
        top = class_get (topname);
 
        while ( (c = list_first(&unloadedclasses)) ) {
@@ -1830,17 +1831,12 @@ classinfo *loader_load (unicode *topname)
                class_link (c);
                }
 
-       
-       synchronize_caches ();
-       
-
-
        if (getloadingtime) {
                stoptime = getcputime();
                loadingtime += (stoptime-starttime);
                }
-               
-       intsRestore();                      /* schani */
+
+       intsRestore();                          /* schani */
 
        return top;
 }
@@ -1966,6 +1962,52 @@ void loader_initclasses ()
        intsRestore();                      /* schani */
 }
 
+static s4 classvalue = 0;
+
+static void loader_compute_class_values (classinfo *c)
+{
+       classinfo *subs;
+
+       c->vftbl->lowclassval = classvalue++;
+       subs = c->sub;
+       while (subs != NULL) {
+               loader_compute_class_values(subs);
+               subs = subs->nextsub;
+               }
+       c->vftbl->highclassval = classvalue++;
+/*
+       {
+       int i;
+       for (i = 0; i < c->index; i++)
+               printf(" ");
+       printf("%3d  %3d  ", (int) c->vftbl->lowclassval, (int) c->vftbl->highclassval);
+       unicode_display(c->name);
+       printf("\n");
+       }
+*/
+}
+
+
+void loader_compute_subclasses ()
+{
+       classinfo *c;
+       
+       intsDisable();                     /* schani */
+
+       c = list_first (&linkedclasses);
+       while (c) {
+               if (!(c->flags & ACC_INTERFACE) && (c->super != NULL)) {
+                       c->nextsub = c->super->sub;
+                       c->super->sub = c;
+                       }
+               c = list_next (&linkedclasses, c);
+               }
+
+       loader_compute_class_values(class_java_lang_Object);
+
+       intsRestore();                      /* schani */
+}
+
 
 
 /******************** Funktion: loader_close **********************************
index 190a6458adc935f0d01bc3a0b9e6d216cd13a93b..57686b0845b3cdcfea460c2d755836bdc48c2eae 100644 (file)
--- a/loader.h
+++ b/loader.h
@@ -34,6 +34,7 @@ void loader_close ();
 
 classinfo *loader_load (unicode *topname);
 void loader_initclasses ();
+void loader_compute_subclasses ();
 
 classinfo *class_get (unicode *name);
 voidptr class_getconstant (classinfo *class, u4 pos, u4 ctype);
diff --git a/main.c b/main.c
index fed957978c7c9c4e54dcbc934753a28e4035faca..51197cb0fa2dcd285c8dea804f9f66a73d94e2f8 100644 (file)
--- a/main.c
+++ b/main.c
@@ -634,6 +634,8 @@ int main(int argc, char **argv)
 
        topclass = loader_load ( unicode_new_char (cp) );
 
+       loader_compute_subclasses();
+
        gc_init();
 
 #ifdef USE_THREADS
index 19a3ae663a9a3ad3dcfebc25a4eb455817c01be0..2314aea0ac4621d3eb837b380ce6a014a412ad71 100644 (file)
@@ -1,5 +1,5 @@
 # cacao/mm/Makefile
-# $Id: Makefile 26 1998-10-29 00:33:54Z phil $
+# $Id: Makefile 28 1998-10-30 14:51:47Z cacao $
 
 AR = ar
 COMBINE = $(AR) rcs mm.o
@@ -69,7 +69,7 @@ gc.o:  heap.h gc.c
 # Local variables:
 # mode: Makefile
 # indent-tabs-mode: t
-# tab-width: 8
+# tab-width: 4
 # End:
 #
 
index 11fc9a6b6067dc9bc8a00aa2e9c4c42bb6d681c3..ce460184bc360eb0002515d69f8bfe8a8071e453 100644 (file)
@@ -50,6 +50,7 @@ static jumpref *jumpreferences;     /* list of jumptable target addresses     */
 static branchref *xboundrefs;       /* list of bound check branches           */
 static branchref *xcheckarefs;      /* list of array size check branches      */
 static branchref *xnullrefs;        /* list of null check branches            */
+static branchref *xcastrefs;        /* list of cast check branches            */
 
 static void mcode_init();           /* allocates code and data area           */
 static void mcode_close();          /* releases temporary storage             */
@@ -71,6 +72,7 @@ static void dseg_addtarget(basicblock *target);
 static void mcode_addreference(basicblock *target, void *branchptr);
 static void mcode_addxboundrefs(void *branchptr);
 static void mcode_addxnullrefs(void *branchptr);
+static void mcode_addxcastrefs(void *branchptr);
 
 static void dseg_display(s4 *s4ptr);
 
@@ -94,6 +96,7 @@ static void mcode_init()
        jumpreferences = NULL;
        xboundrefs = NULL;
        xnullrefs = NULL;
+       xcastrefs = NULL;
 }
 
 
@@ -286,6 +289,18 @@ static void mcode_addxnullrefs(void *branchptr)
 }
 
 
+static void mcode_addxcastrefs(void *branchptr)
+{
+       s4 branchpos = (u1*) branchptr - mcodebase;
+
+       branchref *br = DNEW(branchref);
+
+       br->branchpos = branchpos;
+       br->next = xcastrefs;
+       xcastrefs = br;
+}
+
+
 static void mcode_finish(int mcodelen)
 {
        jumpref *jr;
index e510f3eddb1b8769f74f708e7563e7190f269716..8a7a7c40c83a40c8d45705f446b0ffa039660d6f 100644 (file)
@@ -710,8 +710,7 @@ static void parse()
                                        BUILTIN2((functionptr) new_builtin_checkarraycast, TYPE_ADR);
                                        }
                                else { /* object type cast-check */
-                                       LOADCONST_A(class_getconstant(class, i, CONSTANT_Class));
-                                       BUILTIN2((functionptr) new_builtin_checkcast, TYPE_ADR);
+                                       OP2A(opcode, 1, (class_getconstant(class, i, CONSTANT_Class)));
                                        }
                                break;
 
@@ -724,8 +723,7 @@ static void parse()
                                        BUILTIN2((functionptr) builtin_arrayinstanceof, TYPE_INT);
                                        }
                                else { /* object type cast-check */
-                                       LOADCONST_A(class_getconstant(class, i, CONSTANT_Class));
-                                       BUILTIN2((functionptr) builtin_instanceof, TYPE_INT);
+                                       OP2A(opcode, 1, (class_getconstant(class, i, CONSTANT_Class)));
                                        }
                                break;
 
index 59da5f32e5f982a15871f84dc2556cbb20fcad18..6454348907faa0f7b5854c25b42f7a923a8ade8b 100644 (file)
@@ -1927,4 +1927,13 @@ static void show_icmd_method()
                        printf("\n");
                        }
        }
+       i = block[b].mpc;
+       s4ptr = (s4 *) (method->mcode + dseglen + i);
+       if (showdisassemble && (s4ptr < (s4 *) (method->mcode + method->mcodelength))) {
+               printf("\n");
+               for (; s4ptr < (s4 *) (method->mcode + method->mcodelength); i += 4, s4ptr++) {
+                       disasscmd (*s4ptr, i); 
+                       }
+               printf("\n");
+               }
 }
index fed957978c7c9c4e54dcbc934753a28e4035faca..51197cb0fa2dcd285c8dea804f9f66a73d94e2f8 100644 (file)
@@ -634,6 +634,8 @@ int main(int argc, char **argv)
 
        topclass = loader_load ( unicode_new_char (cp) );
 
+       loader_compute_subclasses();
+
        gc_init();
 
 #ifdef USE_THREADS
index 6b8ee37ba18f528cb2546633b3735c2c723620e7..92ae368980688a997af9bbb3e99e7e7421b795e6 100644 (file)
@@ -56,6 +56,10 @@ void new_builtin_monitorexit (java_objectheader *o) {}
 
 s4 new_builtin_checkcast(java_objectheader *o, classinfo *c)
                         {return 0;}
+s4 new_builtin_checkclasscast(java_objectheader *o, classinfo *c)
+                        {return 0;}
+s4 new_builtin_checkintercast(java_objectheader *o, classinfo *c)
+                        {return 0;}
 s4 new_builtin_checkarraycast
        (java_objectheader *o, constant_arraydescriptor *d)
        {return 0;}
index 379b49af11d16acc7a3afa01037741209b3d6441..1e7c44a5ae2d225550afc23df1ecd453b62103b2 100644 (file)
@@ -137,6 +137,8 @@ void clear_thread_flags(void)
 #endif
 
 #endif
+fflush (stdout);
+fflush (stderr);
 }
 
 
index c1de52db7c81258af511a57ca9cab306fbef1e8f..6e28c7c5dcc3822a4cd04b5c0d64795a1d58abcf 100644 (file)
@@ -35,6 +35,8 @@ builtin_descriptor builtin_desc[] = {
        {(functionptr) builtin_instanceof,         "instanceof"},
        {(functionptr) builtin_checkcast,          "checkcast"},
        {(functionptr) new_builtin_checkcast,      "checkcast"},
+       {(functionptr) new_builtin_checkclasscast, "checkclasscast"},
+       {(functionptr) new_builtin_checkintercast, "checkintercast"},
        {(functionptr) builtin_arrayinstanceof,    "arrayinstanceof"},
        {(functionptr) builtin_checkarraycast,     "checkarraycast"},
        {(functionptr) new_builtin_checkarraycast, "checkarraycast"},
@@ -126,18 +128,12 @@ builtin_descriptor builtin_desc[] = {
 static s4 builtin_isanysubclass (classinfo *sub, classinfo *super)
 {
        if (super->flags & ACC_INTERFACE) {
-               u4 index = super->index;
-/*             if (sub->vftbl == NULL) return 0; */
+               s4 index = super->index;
                if (index >= sub->vftbl->interfacetablelength) return 0;
                return ( sub->vftbl->interfacevftbl[index] ) ? 1 : 0;
                }
-       else {
-               while (sub) {
-                       if (sub==super) return 1;
-                       sub = sub->super;
-                       }
-               return 0;
-               }
+       return (sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+              (sub->vftbl->lowclassval <= super->vftbl->highclassval);
 }
 
 
@@ -195,6 +191,40 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
 }
 
 
+/***************** function: builtin_checkclasscast ****************************
+
+       Returns 1 (true) if the object "sub" is a subclass of the class "super",
+       otherwise returns 0 (false). If sub is NULL it also returns 1 (true).
+              
+*******************************************************************************/
+
+s4 builtin_checkclasscast(java_objectheader *sub, classinfo *super)
+{
+       if (!sub)
+               return 1;
+
+       return (sub->vftbl->lowclassval >= super->vftbl->lowclassval) &
+              (sub->vftbl->lowclassval <= super->vftbl->highclassval);
+}
+
+
+/***************** function: builtin_checkintercast ****************************
+
+       Returns 1 (true) if the object "sub" is a subclass of the interface "super",
+       otherwise returns 0 (false). If "sub" is NULL it also returns 1 (true).
+              
+*******************************************************************************/
+
+s4 builtin_checkintercast(java_objectheader *sub, classinfo *super)
+{
+       if (!sub)
+               return 1;
+
+       return (sub->vftbl->interfacetablelength > super->index) &&
+              (sub->vftbl->interfacevftbl[super->index] != NULL);
+       return 0;
+}
+
 
 /*********** interne Funktion: builtin_descriptorscompatible ******************
 
index b52afb4379ae083d2ff2049e33bdd906f96a61ca..1343c63ebe861d0571c10e39cecff122dfa1497c 100644 (file)
@@ -26,6 +26,8 @@ extern builtin_descriptor builtin_desc[];
 s4 builtin_instanceof(java_objectheader *obj, classinfo *class);
 s4 builtin_checkcast(java_objectheader *obj, classinfo *class);
 s4 new_builtin_checkcast(java_objectheader *obj, classinfo *class);
+s4 new_builtin_checkclasscast(java_objectheader *obj, classinfo *class);
+s4 new_builtin_checkintercast(java_objectheader *obj, classinfo *class);
 s4 builtin_arrayinstanceof
        (java_objectheader *obj, constant_arraydescriptor *desc);
 s4 builtin_checkarraycast
index 5a21a49d42c3e317db8021fdb92ba21572dbf278..8b7995c56eb034d7f2feaeb37527c88e5f34ddcc 100644 (file)
@@ -12,7 +12,7 @@
                 Mark Probst         EMAIL: cacao@complang.tuwien.ac.at
                         Philipp Tomsich     EMAIL: cacao@complang.tuwien.ac.at
 
-       Last Change: 1998/10/29
+       Last Change: 1998/10/30
 
 *******************************************************************************/
 
@@ -223,7 +223,7 @@ typedef struct constant_arraydescriptor {
 
 
 
-/***************** Die Datenstrukturen fuer das Laufzeitsystem ***************/
+/***************** Die Datenstrukturen fuer das Laufzeitsystem ****************/
 
 
        /********* Objekte **********
@@ -337,122 +337,120 @@ typedef struct java_arrayarray {
 
 
 
-/************** Strukturen f"ur Klassen, Felder & Methoden *****************/
+/******************** class, field and method structures **********************/
 
 
-    /*** Struktur: fieldinfo ***/
+/********************** structure: fieldinfo **********************************/
 
-typedef struct fieldinfo {   /* Struktur f"ur ein Feld einer Klasse */
-       s4       flags;              /* die ACC-Flags */
-       s4       type;               /* Grunddatentyp */
-       unicode *name;               /* Name des Felds */
-       unicode *descriptor;         /* Typedescriptor in JavaVM-Form */
+typedef struct fieldinfo {/* field of a class                                 */
+       s4       flags;       /* ACC flags                                        */
+       s4       type;        /* basic data type                                  */
+       unicode *name;        /* name of field                                    */
+       unicode *descriptor;  /* JavaVM descriptor string of field                */
        
-       s4       offset;             /* Offset vom Anfang des Objektes */
-       /* (bei Instanzvariablen) */
+       s4       offset;      /* offset from start of object (instance variables) */
 
-       union {                      /* Speicher f"ur den Wert */
-               s4 i;                    /* (bei Klassenvariablen) */    
+       union {               /* storage for static values (class variables)      */
+               s4 i; 
                s8 l;
                float f;
                double d;
                void *a; 
        } value;
-               
+
 } fieldinfo;
 
 
-/*** Struktur: exceptiontable ***/
+/********************** structure: exceptiontable *****************************/
 
-typedef struct exceptiontable {  /* Exceptionhandler-Eintrag in einer Methode */ 
-       s4         startpc;            /* Anfang des G"ultigkeitsbereichs */
-       s4         endpc;              /* Ende des Bereichs (exklusive) */
-       s4         handlerpc;          /* JavaVM-Position des Handlers */
-       classinfo *catchtype;          /* Typ der behandelten Exceptions (oder 
-                                                                         NULL, wenn alle behandelt werden sollen) */
+typedef struct exceptiontable { /* exceptiontable entry in a method           */ 
+       s4         startpc;         /* start pc of guarded area (inclusive)       */
+       s4         endpc;           /* end pc of guarded area (exklusive)         */
+       s4         handlerpc;       /* pc of exception handler                    */
+       classinfo *catchtype;       /* catchtype of exception (NULL == catchall)  */
 } exceptiontable;
 
 
+/********************** structure: methodinfo *********************************/
 
-/*** Struktur: methodinfo ***/
-
-typedef struct methodinfo {  /* Struktur f"ur eine Methode einer Klasse */
-       s4             flags;            /* die ACC-Flags */
-       unicode   *name;             /* Name der Methode */
-       unicode   *descriptor;       /* der JavaVM-Descriptorstring f"ur Methoden */
-       s4        returntype;        /* only temporary valid, return type */
-       s4        paramcount;        /* only temporary valid, number of parameters */
-       u1        *paramtypes;       /* only temporary valid, parameter types */
-       classinfo *class;            /* Die Klasse, der die Methode geh"ort */
-       u4         vftblindex;       /* Index dieser Methode f"ur die Virtual
-                                                                       Function Table (wenn es keine statische
-                                                                       Methode ist) */
+typedef struct methodinfo {         /* method structure                       */
+       s4             flags;               /* ACC flags                              */
+       unicode   *name;                /* name of method                         */
+       unicode   *descriptor;          /* JavaVM descriptor string of method     */
+       s4         returntype;          /* only temporary valid, return type      */
+       s4         paramcount;          /* only temporary valid, parameter count  */
+       u1        *paramtypes;          /* only temporary valid, parameter types  */
+       classinfo *class;               /* class, the method belongs to           */
+       u4         vftblindex;          /* index of method in virtual function table
+                                          (if it is a virtual method)            */
+       s4         maxstack;            /* maximum stack depth of method          */
+       s4         maxlocals;           /* maximum number of local variables      */
+       u4         jcodelength;         /* length of JavaVM code                  */
+       u1        *jcode;               /* pointer to JavaVM code                 */
 
-       s4       maxstack;                  /* maximale Stacktiefe des JavaVM-Codes */
-       s4   maxlocals;                 /* maximale Anzahl der JavaVM-Variablen */
-       u4   jcodelength;               /* L"ange des JavaVM-Codes */
-       u1  *jcode;                     /* und Zeiger auf den JavaVM-Code */
+       s4         exceptiontablelength;/* exceptiontable length                  */
+       exceptiontable *exceptiontable; /* the exceptiontable                     */
 
-       s4   exceptiontablelength;      /* L"ange der Exceptintable */
-       exceptiontable *exceptiontable; /* Die Exceptiontable selber */
+       u1        *stubroutine;         /* stub for compiling or calling natives  */    
+       u4         mcodelength;         /* legth of generated machine code        */
+       u1        *mcode;               /* pointer to machine code                */
+       u1        *entrypoint;          /* entry point in machine code            */
 
-       u1  *stubroutine;               /* STUB-Routine for compiling or calling 
-                                                                          natives */   
-       u4   mcodelength;               /* L"ange des generierten Maschinencodes */
-       u1  *mcode;                     /* Zeiger auf den Maschinencode */
-       u1  *entrypoint;                /* Entrypoint to the Maschine-Code */   
 } methodinfo;
 
 
-/*** Struktur: classinfo ***/
+/********************** structure: classinfo **********************************/
 
-struct classinfo {           /* Datenstruktur f"ur eine Klasse */
-       java_objectheader header;     /* Weil auch Klassen als Objekte angesprochen 
-                                                                        werden */
+struct classinfo {                /* class structure                          */
+       java_objectheader header;     /* classes are also objects                 */
 
-       s4 flags;                     /* Die ACC-Flags */
-       unicode *name;                /* Name der Klasse */ 
-       
-       s4       cpcount;             /* Anzahl der Eintr"age im Constant-Pool */
-       u1      *cptags;              /* Die TAGs f"ur den Constant-Pool */
-       voidptr *cpinfos;             /* Die Zeiger auf die Info-Strukturen */
-       
-       classinfo *super;             /* Zeiger auf die "ubergeordnete Klasse */
-       
-       s4          interfacescount;  /* Anzahl der Interfaces */
-       classinfo **interfaces;       /* Zeiger auf die Interfaces */
-       
-       s4          fieldscount;      /* Anzahl der Felder */
-       fieldinfo  *fields;           /* Die Tabelle der Felder */
-       
-       s4          methodscount;     /* Anzahl der Methoden */
-       methodinfo *methods;          /* Die Tabelle der Methoden */
-       
-       
-       listnode    listnode;         /* Verkettungsstruktur (f"ur Listen) */
+       s4          flags;            /* ACC flags                                */
+       unicode    *name;             /* class name                               */ 
+
+       s4          cpcount;          /* number of entries in constant pool       */
+       u1         *cptags;           /* constant pool tags                       */
+       voidptr    *cpinfos;          /* pointer to constant pool info structures */
+
+       classinfo  *super;            /* super class pointer                      */
+       classinfo  *sub;              /* sub class pointer                        */
+       classinfo  *nextsub;          /* pointer to next class in sub class list  */
+
+       s4          interfacescount;  /* number of interfaces                     */
+       classinfo **interfaces;       /* pointer to interfaces                    */
 
-       bool        initialized;      /* true, wenn Klasse bereits Initialisiert */ 
-       bool        linked;           /* wird von `class_link` auf true gesetzt */
-       s4                      index;            /* Hierarchietiefe  (bei normalen Klassen)  
-                                                                        oder fortlaufende Nummer (bei Interfaces)*/ 
-       u4          instancesize;     /* Gr"osse eines Objektes dieser Klasse */
+       s4          fieldscount;      /* number of fields                         */
+       fieldinfo  *fields;           /* field table                              */
 
-       vftbl       *vftbl;
+       s4          methodscount;     /* number of methods                        */
+       methodinfo *methods;          /* method table                             */
 
-       methodinfo* finalizer;        /* Finalizer-Methode f"ur die Klasse */
+       listnode    listnode;         /* linkage                                  */
+
+       bool        initialized;      /* true, if class already initialised       */ 
+       bool        linked;           /* true, if class already linked            */
+       s4                      index;            /* hierarchy depth (classes) or index
+                                        (interfaces)                             */ 
+       s4          instancesize;     /* size of an instance of this class        */
+
+       vftbl      *vftbl;            /* pointer to virtual function table        */
+
+       methodinfo *finalizer;        /* finalizer method                         */
 #ifdef JIT_MARKER_SUPPORT
-       methodinfomarker; 
+       methodinfo *marker; 
 #endif
 };
        
 
 struct vftbl {
-       classinfo  *class;            /* Class, the function table belongs to */
+       classinfo  *class;                /* Class, the function table belongs to */
+
+       s4          vftbllength;          /* virtual function table length        */
+       s4          interfacetablelength; /* interface table length               */   
 
-       s4          vftbllength;      /* L"aenge der Virtual Function Table */
+       s4          lowclassval;          /* low value for relative numbering     */   
+       s4          highclassval;         /* high value for relative numbering    */   
 
-       s4          interfacetablelength;   /* L"ange der Interfacetable */   
-       u4         *interfacevftbllength;   /* -> siehe unten */   
+       u4         *interfacevftbllength; /* see description below                */   
        methodptr **interfacevftbl;
        
        methodptr   table[1];
@@ -500,7 +498,7 @@ struct vftbl {
 
 
 
-/************************* Referenzen auf die wichtigen Systemklassen ********************/
+/********************** references to some system classes  ********************/
 
 extern classinfo *class_java_lang_Object;
 extern classinfo *class_java_lang_String;
@@ -511,12 +509,12 @@ extern classinfo *class_java_lang_NegativeArraySizeException;
 extern classinfo *class_java_lang_OutOfMemoryError;
 extern classinfo *class_java_lang_ArithmeticException;
 extern classinfo *class_java_lang_ArrayStoreException;
-extern classinfo *class_java_lang_ThreadDeath;              /* schani */
+extern classinfo *class_java_lang_ThreadDeath;
  
 extern classinfo *class_array;
 
 
-/********************** Vorgefertigte Instanzen einiger Systemklassen ********************/
+/********************** instances of some system classes **********************/
 
 extern java_objectheader *proto_java_lang_ClassCastException;
 extern java_objectheader *proto_java_lang_NullPointerException;
@@ -525,17 +523,17 @@ extern java_objectheader *proto_java_lang_NegativeArraySizeException;
 extern java_objectheader *proto_java_lang_OutOfMemoryError;
 extern java_objectheader *proto_java_lang_ArithmeticException;
 extern java_objectheader *proto_java_lang_ArrayStoreException;
-extern java_objectheader *proto_java_lang_ThreadDeath;      /* schani */
+extern java_objectheader *proto_java_lang_ThreadDeath;
 
 
-/********************** flag variables *********************/
+/******************************* flag variables *******************************/
 
 extern bool compileall;
 extern bool runverbose;         
 extern bool verbose;         
                                 
 
-/********************** trace variables ********************/
+/******************************* trace variables ******************************/
 
 extern int count_class_infos;
 extern int count_const_pool_len;
index c94327c4e82f666916fff0516954dfdd460c1bab..38324b03115b82db437be211d757e9e0fcef849a 100644 (file)
@@ -695,6 +695,8 @@ classinfo *class_get (unicode *u)
        c -> cptags = NULL;
        c -> cpinfos = NULL;
        c -> super = NULL;
+       c -> sub = NULL;
+       c -> nextsub = NULL;
        c -> interfacescount = 0;
        c -> interfaces = NULL;
        c -> fieldscount = 0;
@@ -1818,8 +1820,7 @@ classinfo *loader_load (unicode *topname)
        intsDisable();                           /* schani */
 
        if (getloadingtime) starttime = getcputime();
-       
-       
+
        top = class_get (topname);
 
        while ( (c = list_first(&unloadedclasses)) ) {
@@ -1830,17 +1831,12 @@ classinfo *loader_load (unicode *topname)
                class_link (c);
                }
 
-       
-       synchronize_caches ();
-       
-
-
        if (getloadingtime) {
                stoptime = getcputime();
                loadingtime += (stoptime-starttime);
                }
-               
-       intsRestore();                      /* schani */
+
+       intsRestore();                          /* schani */
 
        return top;
 }
@@ -1966,6 +1962,52 @@ void loader_initclasses ()
        intsRestore();                      /* schani */
 }
 
+static s4 classvalue = 0;
+
+static void loader_compute_class_values (classinfo *c)
+{
+       classinfo *subs;
+
+       c->vftbl->lowclassval = classvalue++;
+       subs = c->sub;
+       while (subs != NULL) {
+               loader_compute_class_values(subs);
+               subs = subs->nextsub;
+               }
+       c->vftbl->highclassval = classvalue++;
+/*
+       {
+       int i;
+       for (i = 0; i < c->index; i++)
+               printf(" ");
+       printf("%3d  %3d  ", (int) c->vftbl->lowclassval, (int) c->vftbl->highclassval);
+       unicode_display(c->name);
+       printf("\n");
+       }
+*/
+}
+
+
+void loader_compute_subclasses ()
+{
+       classinfo *c;
+       
+       intsDisable();                     /* schani */
+
+       c = list_first (&linkedclasses);
+       while (c) {
+               if (!(c->flags & ACC_INTERFACE) && (c->super != NULL)) {
+                       c->nextsub = c->super->sub;
+                       c->super->sub = c;
+                       }
+               c = list_next (&linkedclasses, c);
+               }
+
+       loader_compute_class_values(class_java_lang_Object);
+
+       intsRestore();                      /* schani */
+}
+
 
 
 /******************** Funktion: loader_close **********************************
index 190a6458adc935f0d01bc3a0b9e6d216cd13a93b..57686b0845b3cdcfea460c2d755836bdc48c2eae 100644 (file)
@@ -34,6 +34,7 @@ void loader_close ();
 
 classinfo *loader_load (unicode *topname);
 void loader_initclasses ();
+void loader_compute_subclasses ();
 
 classinfo *class_get (unicode *name);
 voidptr class_getconstant (classinfo *class, u4 pos, u4 ctype);
index 20e64abcf8b6e764361f973ff576222c7e7a94d7..f4f881977434882ef6c2b3a59f44e2a6b3502153 100644 (file)
@@ -116,4010 +116,4018 @@ successful initialisation
 114.    default
 115.    -> 14
 116.    ------------------- test casts
-117.    type cast check: Integer = Object(Integer)
-118.    type cast check: Integer = Object
-119.    exception: class cast
-120.    type cast check: Integer[] = Object(Integer)[]
-121.    type cast check: Integer[] = Object[]
+117.    Integer is instanceof Object:  true
+118.    Integer is instanceof Integer: true
+119.    Object is instanceof Integer:  false
+120.    type cast check: Integer = Object(Integer)
+121.    type cast check: Integer = Object
 122.    exception: class cast
-123.    array store check: Object(Integer)[0] = Integer
-124.    array store check: Object(Integer)[0] = Object
-125.    exception: array store
-126.    ------------------- test special null pointers
-127.    null pointer check: put field
-128.    exception: null pointer
-129.    null pointer check: get field
-130.    exception: null pointer
-131.    null pointer check: invokevirtual
-132.    exception: null pointer
-133.    null pointer check: invokeinterface
-134.    exception: null pointer
-135.    null pointer check: monitorenter
+123.    DataOutputStream is instanceof DataOutput: true
+124.    Object is instanceof DataOutput: false
+125.    type cast check: DataOutput = Object(DataOutputStream)
+126.    type cast check: DataOutput = Object
+127.    exception: class cast
+128.    type cast check: Integer[] = Object(Integer)[]
+129.    type cast check: Integer[] = Object[]
+130.    exception: class cast
+131.    array store check: Object(Integer)[0] = Integer
+132.    array store check: Object(Integer)[0] = Object
+133.    exception: array store
+134.    ------------------- test special null pointers
+135.    null pointer check: put field
 136.    exception: null pointer
-137.    ------------------- test byte arrays
-138.    null pointer check: byte array store
-139.    exception: null pointer
-140.    null pointer check: byte array load
-141.    exception: null pointer
-142.    negative array size check: byte array
-143.    exception: negative array size
-144.    array bound check: byte array store
-145.    exception: out of bounds: -1
-146.    array bound check: byte array load
-147.    exception: out of bounds: -1
-148.    testarraybounds: -5
-149.    exception: out of bounds: 5
-150.    testarraybounds: 40
-151.    testarraybounds: 45
-152.    testarraybounds: 50
-153.    testarraybounds: 55
-154.    testarraybounds: 60
-155.    testarraybounds: 90
-156.    testarraybounds: 95
-157.    testarraybounds: 100
-158.    exception: out of bounds: 100
-159.    exception: out of bounds: -4
-160.    exception: out of bounds: -3
-161.    exception: out of bounds: -2
-162.    exception: out of bounds: -1
-163.    exception: out of bounds: 100
-164.    exception: out of bounds: 101
-165.    exception: out of bounds: 102
-166.    exception: out of bounds: 103
-167.    byte: -50
-168.    byte: -49
-169.    byte: -48
-170.    byte: -47
-171.    byte: -46
-172.    byte: -45
-173.    byte: -44
-174.    byte: -43
-175.    byte: -42
-176.    byte: -41
-177.    byte: -40
-178.    byte: -39
-179.    byte: -38
-180.    byte: -37
-181.    byte: -36
-182.    byte: -35
-183.    byte: -34
-184.    byte: -33
-185.    byte: -32
-186.    byte: -31
-187.    byte: -30
-188.    byte: -29
-189.    byte: -28
-190.    byte: -27
-191.    byte: -26
-192.    byte: -25
-193.    byte: -24
-194.    byte: -23
-195.    byte: -22
-196.    byte: -21
-197.    byte: -20
-198.    byte: -19
-199.    byte: -18
-200.    byte: -17
-201.    byte: -16
-202.    byte: -15
-203.    byte: -14
-204.    byte: -13
-205.    byte: -12
-206.    byte: -11
-207.    byte: -10
-208.    byte: -9
-209.    byte: -8
-210.    byte: -7
-211.    byte: -6
-212.    byte: -5
-213.    byte: -4
-214.    byte: -3
-215.    byte: -2
-216.    byte: -1
-217.    byte: 0
-218.    byte: 1
-219.    byte: 2
-220.    byte: 3
-221.    byte: 4
-222.    byte: 5
-223.    byte: 6
-224.    byte: 7
-225.    byte: 8
-226.    byte: 9
-227.    byte: 10
-228.    byte: 11
-229.    byte: 12
-230.    byte: 13
-231.    byte: 14
-232.    byte: 15
-233.    byte: 16
-234.    byte: 17
-235.    byte: 18
-236.    byte: 19
-237.    byte: 20
-238.    byte: 21
-239.    byte: 22
-240.    byte: 23
-241.    byte: 24
-242.    byte: 25
-243.    byte: 26
-244.    byte: 27
-245.    byte: 28
-246.    byte: 29
-247.    byte: 30
-248.    byte: 31
-249.    byte: 32
-250.    byte: 33
-251.    byte: 34
-252.    byte: 35
-253.    byte: 36
-254.    byte: 37
-255.    byte: 38
-256.    byte: 39
-257.    byte: 40
-258.    byte: 41
-259.    byte: 42
-260.    byte: 43
-261.    byte: 44
-262.    byte: 45
-263.    byte: 46
-264.    byte: 47
-265.    byte: 48
-266.    byte: 49
-267.    -------- test short arrays
-268.    null pointer check: short array store
-269.    exception: null pointer
-270.    null pointer check: short array load
-271.    exception: null pointer
-272.    array bound check: short array store
-273.    exception: out of bounds: -1
-274.    array bound check: short array load
-275.    exception: out of bounds: -1
-276.    short: -50
-277.    short: -49
-278.    short: -48
-279.    short: -47
-280.    short: -46
-281.    short: -45
-282.    short: -44
-283.    short: -43
-284.    short: -42
-285.    short: -41
-286.    short: -40
-287.    short: -39
-288.    short: -38
-289.    short: -37
-290.    short: -36
-291.    short: -35
-292.    short: -34
-293.    short: -33
-294.    short: -32
-295.    short: -31
-296.    short: -30
-297.    short: -29
-298.    short: -28
-299.    short: -27
-300.    short: -26
-301.    short: -25
-302.    short: -24
-303.    short: -23
-304.    short: -22
-305.    short: -21
-306.    short: -20
-307.    short: -19
-308.    short: -18
-309.    short: -17
-310.    short: -16
-311.    short: -15
-312.    short: -14
-313.    short: -13
-314.    short: -12
-315.    short: -11
-316.    short: -10
-317.    short: -9
-318.    short: -8
-319.    short: -7
-320.    short: -6
-321.    short: -5
-322.    short: -4
-323.    short: -3
-324.    short: -2
-325.    short: -1
-326.    short: 0
-327.    short: 1
-328.    short: 2
-329.    short: 3
-330.    short: 4
-331.    short: 5
-332.    short: 6
-333.    short: 7
-334.    short: 8
-335.    short: 9
-336.    short: 10
-337.    short: 11
-338.    short: 12
-339.    short: 13
-340.    short: 14
-341.    short: 15
-342.    short: 16
-343.    short: 17
-344.    short: 18
-345.    short: 19
-346.    short: 20
-347.    short: 21
-348.    short: 22
-349.    short: 23
-350.    short: 24
-351.    short: 25
-352.    short: 26
-353.    short: 27
-354.    short: 28
-355.    short: 29
-356.    short: 30
-357.    short: 31
-358.    short: 32
-359.    short: 33
-360.    short: 34
-361.    short: 35
-362.    short: 36
-363.    short: 37
-364.    short: 38
-365.    short: 39
-366.    short: 40
-367.    short: 41
-368.    short: 42
-369.    short: 43
-370.    short: 44
-371.    short: 45
-372.    short: 46
-373.    short: 47
-374.    short: 48
-375.    short: 49
-376.    -------- test int arrays
-377.    null pointer check: int array store
-378.    exception: null pointer
-379.    null pointer check: int array load
-380.    exception: null pointer
-381.    array bound check: int array store
-382.    exception: out of bounds: -1
-383.    array bound check: int array load
-384.    exception: out of bounds: -1
-385.    int: 123456
-386.    int: 123457
-387.    int: 123458
-388.    int: 123459
-389.    int: 123460
-390.    int: 123461
-391.    int: 123462
-392.    int: 123463
-393.    int: 123464
-394.    int: 123465
-395.    -------- test long arrays
-396.    null pointer check: long array store
-397.    exception: null pointer
-398.    null pointer check: long array load
-399.    exception: null pointer
-400.    array bound check: long array store
-401.    exception: out of bounds: -1
-402.    array bound check: long array load
-403.    exception: out of bounds: -1
-404.    long: 1234567890123
-405.    long: 1234567890124
-406.    long: 1234567890125
-407.    long: 1234567890126
-408.    long: 1234567890127
-409.    long: 1234567890128
-410.    long: 1234567890129
-411.    long: 1234567890130
-412.    long: 1234567890131
-413.    long: 1234567890132
-414.    -------- test char arrays
-415.    null pointer check: char array store
-416.    exception: null pointer
-417.    null pointer check: char array load
-418.    exception: null pointer
-419.    array bound check: char array store
-420.    exception: out of bounds: -1
-421.    array bound check: char array load
-422.    exception: out of bounds: -1
-423.    char: 65
-424.    char: 66
-425.    char: 67
-426.    char: 68
-427.    char: 69
-428.    char: 70
-429.    char: 71
-430.    char: 72
-431.    char: 73
-432.    char: 74
-433.    char: 75
-434.    char: 76
-435.    char: 77
-436.    char: 78
-437.    char: 79
-438.    char: 80
-439.    char: 81
-440.    char: 82
-441.    char: 83
-442.    char: 84
-443.    char: 85
-444.    char: 86
-445.    char: 87
-446.    char: 88
-447.    char: 89
-448.    char: 90
-449.    char: 91
-450.    char: 92
-451.    char: 93
-452.    char: 94
-453.    char: 95
-454.    char: 96
-455.    char: 97
-456.    char: 98
-457.    char: 99
-458.    char: 100
-459.    char: 101
-460.    char: 102
-461.    char: 103
-462.    char: 104
-463.    char: 105
-464.    char: 106
-465.    char: 107
-466.    char: 108
-467.    char: 109
-468.    char: 110
-469.    char: 111
-470.    char: 112
-471.    char: 113
-472.    char: 114
-473.    -------- test address arrays
-474.    null pointer check: address array store
-475.    exception: null pointer
-476.    null pointer check: address array load
-477.    exception: null pointer
-478.    negative array size check: address array
-479.    exception: negative array size
-480.    array bound check: address array store
-481.    exception: out of bounds: -1
-482.    array bound check: address array load
-483.    exception: out of bounds: -1
-484.    0. Zeile
-485.    1. Zeile
-486.    2. Zeile
-487.    3. Zeile
-488.    4. Zeile
-489.    -------- test multi dimensional arrays
-490.    negative array size check: multi dimensional array
-491.    exception: negative array size
-492.    int: 0
-493.    long: 7
-494.    float: 1053609165
-495.    double: -4591560543633932288
-496.    int: 1
-497.    long: 8
-498.    float: 1068708659
-499.    double: -4591701281122287616
-500.    int: 2
-501.    long: 9
-502.    float: 1075419546
-503.    double: -4591842018610642944
-504.    int: 3
-505.    long: 10
-506.    float: 1079613850
-507.    double: -4591982756098998272
-508.    int: 1
-509.    long: 8
-510.    float: 1068708659
-511.    double: -4591701281122287616
-512.    int: 2
-513.    long: 9
-514.    float: 1075419546
-515.    double: -4591842018610642944
-516.    int: 3
-517.    long: 10
-518.    float: 1079613850
-519.    double: -4591982756098998272
-520.    int: 4
-521.    long: 11
-522.    float: 1082969293
-523.    double: -4592123493587353600
-524.    int: 4
-525.    long: 11
-526.    float: 1082969293
-527.    double: -4592123493587353600
-528.    int: 5
-529.    long: 12
-530.    float: 1085066445
-531.    double: -4592264231075708928
-532.    int: 6
-533.    long: 13
-534.    float: 1087163597
-535.    double: -4592404968564064256
-536.    int: 7
-537.    long: 14
-538.    float: 1089260749
-539.    double: -4592545706052419584
-540.    int: 1
-541.    long: 8
-542.    float: 1068708659
-543.    double: -4591701281122287616
-544.    int: 2
-545.    long: 9
-546.    float: 1075419546
-547.    double: -4591842018610642944
-548.    int: 3
-549.    long: 10
-550.    float: 1079613850
-551.    double: -4591982756098998272
-552.    int: 4
-553.    long: 11
-554.    float: 1082969293
-555.    double: -4592123493587353600
-556.    int: 2
-557.    long: 9
-558.    float: 1075419546
-559.    double: -4591842018610642944
-560.    int: 3
-561.    long: 10
-562.    float: 1079613850
-563.    double: -4591982756098998272
-564.    int: 4
-565.    long: 11
-566.    float: 1082969293
-567.    double: -4592123493587353600
-568.    int: 5
-569.    long: 12
-570.    float: 1085066445
-571.    double: -4592264231075708928
-572.    int: 5
-573.    long: 12
-574.    float: 1085066445
-575.    double: -4592264231075708928
-576.    int: 6
-577.    long: 13
-578.    float: 1087163597
-579.    double: -4592404968564064256
-580.    int: 7
-581.    long: 14
-582.    float: 1089260749
-583.    double: -4592545706052419584
-584.    int: 8
-585.    long: 15
-586.    float: 1090938470
-587.    double: -4592686443540774912
-588.    ------------------- test consts
-589.    TESTCONST CALLED WITH int: 1
-590.                      AND long: 1
-591.    not IF_ICMPEQint: 0
-592.    not IF_ICMPLTint: 0
-593.    not IF_ICMPLEint: 0
-594.    not IF_LCMPEQint: 0
-595.    not IF_LCMPLTint: 0
-596.    not IF_LCMPLEint: 0
-597.    IADDCONST:  int: 0
-598.    ISUBCONST:  int: 2
-599.    IMULCONST:  int: -1
-600.    ISHLCONST:  int: -2147483648
-601.    ISHRCONST:  int: 0
-602.    IUSHRCONST: int: 0
-603.    IANDCONST:  int: 1
-604.    IORCONST:   int: -1
-605.    IXORCONST:  int: -2
-606.    not IF_ICMPEQint: -1
-607.    not IF_ICMPLTint: -1
-608.    not IF_ICMPLEint: -1
-609.    LADDCONST:  long: 0
-610.    LSUBCONST:  long: 2
-611.    LMULCONST:  long: -1
-612.    LSHLCONST:  long: -9223372036854775808
-613.    LSHRCONST:  long: 0
-614.    LUSHRCONST: long: 0
-615.    LANDCONST:  long: 1
-616.    LORCONST:   long: -1
-617.    LXORCONST:  long: -2
-618.    not IF_LCMPEQint: -1
-619.    not IF_LCMPLTint: -1
-620.    not IF_LCMPLEint: -1
-621.    IADDCONST:  int: 2
-622.    ISUBCONST:  int: 0
-623.    IMULCONST:  int: 1
-624.    ISHLCONST:  int: 2
-625.    ISHRCONST:  int: 0
-626.    IUSHRCONST: int: 0
-627.    IANDCONST:  int: 1
-628.    IORCONST:   int: 1
-629.    IXORCONST:  int: 0
-630.    not IF_ICMPNEint: 1
-631.    not IF_ICMPLTint: 1
-632.    not IF_ICMPGTint: 1
-633.    LADDCONST:  long: 2
-634.    LSUBCONST:  long: 0
-635.    LMULCONST:  long: 1
-636.    LSHLCONST:  long: 2
-637.    LSHRCONST:  long: 0
-638.    LUSHRCONST: long: 0
-639.    LANDCONST:  long: 1
-640.    LORCONST:   long: 1
-641.    LXORCONST:  long: 0
-642.    not IF_LCMPNEint: 1
-643.    not IF_LCMPLTint: 1
-644.    not IF_LCMPGTint: 1
-645.    IADDCONST:  int: 256
-646.    ISUBCONST:  int: -254
-647.    IMULCONST:  int: 255
-648.    ISHLCONST:  int: -2147483648
-649.    ISHRCONST:  int: 0
-650.    IUSHRCONST: int: 0
-651.    IANDCONST:  int: 1
-652.    IORCONST:   int: 255
-653.    IXORCONST:  int: 254
-654.    not IF_ICMPEQint: 255
-655.    not IF_ICMPGTint: 255
-656.    not IF_ICMPGEint: 255
-657.    LADDCONST:  long: 256
-658.    LSUBCONST:  long: -254
-659.    LMULCONST:  long: 255
-660.    LSHLCONST:  long: -9223372036854775808
-661.    LSHRCONST:  long: 0
-662.    LUSHRCONST: long: 0
-663.    LANDCONST:  long: 1
-664.    LORCONST:   long: 255
-665.    LXORCONST:  long: 254
-666.    not IF_LCMPEQint: 255
-667.    not IF_LCMPGTint: 255
-668.    not IF_LCMPGEint: 255
-669.    IADDCONST:  int: 257
-670.    ISUBCONST:  int: -255
-671.    IMULCONST:  int: 256
-672.    ISHLCONST:  int: 1
-673.    ISHRCONST:  int: 1
-674.    IUSHRCONST: int: 1
-675.    IANDCONST:  int: 0
-676.    IORCONST:   int: 257
-677.    IXORCONST:  int: 257
-678.    not IF_ICMPEQint: 256
-679.    not IF_ICMPGTint: 256
-680.    not IF_ICMPGEint: 256
-681.    LADDCONST:  long: 257
-682.    LSUBCONST:  long: -255
-683.    LMULCONST:  long: 256
-684.    LSHLCONST:  long: 1
-685.    LSHRCONST:  long: 1
-686.    LUSHRCONST: long: 1
-687.    LANDCONST:  long: 0
-688.    LORCONST:   long: 257
-689.    LXORCONST:  long: 257
-690.    not IF_LCMPEQint: 256
-691.    not IF_LCMPGTint: 256
-692.    not IF_LCMPGEint: 256
-693.    IADDCONST:  int: 32768
-694.    ISUBCONST:  int: -32766
-695.    IMULCONST:  int: 32767
-696.    ISHLCONST:  int: -2147483648
-697.    ISHRCONST:  int: 0
-698.    IUSHRCONST: int: 0
-699.    IANDCONST:  int: 1
-700.    IORCONST:   int: 32767
-701.    IXORCONST:  int: 32766
-702.    not IF_ICMPEQint: 32767
-703.    not IF_ICMPGTint: 32767
-704.    not IF_ICMPGEint: 32767
-705.    LADDCONST:  long: 32768
-706.    LSUBCONST:  long: -32766
-707.    LMULCONST:  long: 32767
-708.    LSHLCONST:  long: -9223372036854775808
-709.    LSHRCONST:  long: 0
-710.    LUSHRCONST: long: 0
-711.    LANDCONST:  long: 1
-712.    LORCONST:   long: 32767
-713.    LXORCONST:  long: 32766
-714.    not IF_LCMPEQint: 32767
-715.    not IF_LCMPGTint: 32767
-716.    not IF_LCMPGEint: 32767
-717.    IADDCONST:  int: 32769
-718.    ISUBCONST:  int: -32767
-719.    IMULCONST:  int: 32768
-720.    ISHLCONST:  int: 1
-721.    ISHRCONST:  int: 1
-722.    IUSHRCONST: int: 1
-723.    IANDCONST:  int: 0
-724.    IORCONST:   int: 32769
-725.    IXORCONST:  int: 32769
-726.    not IF_ICMPEQint: 32768
-727.    not IF_ICMPGTint: 32768
-728.    not IF_ICMPGEint: 32768
-729.    LADDCONST:  long: 32769
-730.    LSUBCONST:  long: -32767
-731.    LMULCONST:  long: 32768
-732.    LSHLCONST:  long: 1
-733.    LSHRCONST:  long: 1
-734.    LUSHRCONST: long: 1
-735.    LANDCONST:  long: 0
-736.    LORCONST:   long: 32769
-737.    LXORCONST:  long: 32769
-738.    not IF_LCMPEQint: 32768
-739.    not IF_LCMPGTint: 32768
-740.    not IF_LCMPGEint: 32768
-741.    IADDCONST:  int: -32767
-742.    ISUBCONST:  int: 32769
-743.    IMULCONST:  int: -32768
-744.    ISHLCONST:  int: 1
-745.    ISHRCONST:  int: 1
-746.    IUSHRCONST: int: 1
-747.    IANDCONST:  int: 0
-748.    IORCONST:   int: -32767
-749.    IXORCONST:  int: -32767
-750.    not IF_ICMPEQint: -32768
-751.    not IF_ICMPLTint: -32768
-752.    not IF_ICMPLEint: -32768
-753.    LADDCONST:  long: -32767
-754.    LSUBCONST:  long: 32769
-755.    LMULCONST:  long: -32768
-756.    LSHLCONST:  long: 1
-757.    LSHRCONST:  long: 1
-758.    LUSHRCONST: long: 1
-759.    LANDCONST:  long: 0
-760.    LORCONST:   long: -32767
-761.    LXORCONST:  long: -32767
-762.    not IF_LCMPEQint: -32768
-763.    not IF_LCMPLTint: -32768
-764.    not IF_LCMPLEint: -32768
-765.    IADDCONST:  int: -32768
-766.    ISUBCONST:  int: 32770
-767.    IMULCONST:  int: -32769
-768.    ISHLCONST:  int: -2147483648
-769.    ISHRCONST:  int: 0
-770.    IUSHRCONST: int: 0
-771.    IANDCONST:  int: 1
-772.    IORCONST:   int: -32769
-773.    IXORCONST:  int: -32770
-774.    not IF_ICMPEQint: -32769
-775.    not IF_ICMPLTint: -32769
-776.    not IF_ICMPLEint: -32769
-777.    LADDCONST:  long: -32768
-778.    LSUBCONST:  long: 32770
-779.    LMULCONST:  long: -32769
-780.    LSHLCONST:  long: -9223372036854775808
-781.    LSHRCONST:  long: 0
-782.    LUSHRCONST: long: 0
-783.    LANDCONST:  long: 1
-784.    LORCONST:   long: -32769
-785.    LXORCONST:  long: -32770
-786.    not IF_LCMPEQint: -32769
-787.    not IF_LCMPLTint: -32769
-788.    not IF_LCMPLEint: -32769
-789.    TESTCONST CALLED WITH int: -1
-790.                      AND long: -1
-791.    not IF_ICMPEQint: 0
-792.    not IF_ICMPGTint: 0
-793.    not IF_ICMPGEint: 0
-794.    not IF_LCMPEQint: 0
-795.    not IF_LCMPGTint: 0
-796.    not IF_LCMPGEint: 0
-797.    IADDCONST:  int: -2
-798.    ISUBCONST:  int: 0
-799.    IMULCONST:  int: 1
-800.    ISHLCONST:  int: -2147483648
-801.    ISHRCONST:  int: -1
-802.    IUSHRCONST: int: 1
-803.    IANDCONST:  int: -1
-804.    IORCONST:   int: -1
-805.    IXORCONST:  int: 0
-806.    not IF_ICMPNEint: -1
-807.    not IF_ICMPLTint: -1
-808.    not IF_ICMPGTint: -1
-809.    LADDCONST:  long: -2
-810.    LSUBCONST:  long: 0
-811.    LMULCONST:  long: 1
-812.    LSHLCONST:  long: -9223372036854775808
-813.    LSHRCONST:  long: -1
-814.    LUSHRCONST: long: 1
-815.    LANDCONST:  long: -1
-816.    LORCONST:   long: -1
-817.    LXORCONST:  long: 0
-818.    not IF_LCMPNEint: -1
-819.    not IF_LCMPLTint: -1
-820.    not IF_LCMPGTint: -1
-821.    IADDCONST:  int: 0
-822.    ISUBCONST:  int: -2
-823.    IMULCONST:  int: -1
-824.    ISHLCONST:  int: -2
-825.    ISHRCONST:  int: -1
-826.    IUSHRCONST: int: 2147483647
-827.    IANDCONST:  int: 1
-828.    IORCONST:   int: -1
-829.    IXORCONST:  int: -2
-830.    not IF_ICMPEQint: 1
-831.    not IF_ICMPGTint: 1
-832.    not IF_ICMPGEint: 1
-833.    LADDCONST:  long: 0
-834.    LSUBCONST:  long: -2
-835.    LMULCONST:  long: -1
-836.    LSHLCONST:  long: -2
-837.    LSHRCONST:  long: -1
-838.    LUSHRCONST: long: 9223372036854775807
-839.    LANDCONST:  long: 1
-840.    LORCONST:   long: -1
-841.    LXORCONST:  long: -2
-842.    not IF_LCMPEQint: 1
-843.    not IF_LCMPGTint: 1
-844.    not IF_LCMPGEint: 1
-845.    IADDCONST:  int: 254
-846.    ISUBCONST:  int: -256
-847.    IMULCONST:  int: -255
-848.    ISHLCONST:  int: -2147483648
-849.    ISHRCONST:  int: -1
-850.    IUSHRCONST: int: 1
-851.    IANDCONST:  int: 255
-852.    IORCONST:   int: -1
-853.    IXORCONST:  int: -256
-854.    not IF_ICMPEQint: 255
-855.    not IF_ICMPGTint: 255
-856.    not IF_ICMPGEint: 255
-857.    LADDCONST:  long: 254
-858.    LSUBCONST:  long: -256
-859.    LMULCONST:  long: -255
-860.    LSHLCONST:  long: -9223372036854775808
-861.    LSHRCONST:  long: -1
-862.    LUSHRCONST: long: 1
-863.    LANDCONST:  long: 255
-864.    LORCONST:   long: -1
-865.    LXORCONST:  long: -256
-866.    not IF_LCMPEQint: 255
-867.    not IF_LCMPGTint: 255
-868.    not IF_LCMPGEint: 255
-869.    IADDCONST:  int: 255
-870.    ISUBCONST:  int: -257
-871.    IMULCONST:  int: -256
-872.    ISHLCONST:  int: -1
-873.    ISHRCONST:  int: -1
-874.    IUSHRCONST: int: -1
-875.    IANDCONST:  int: 256
-876.    IORCONST:   int: -1
-877.    IXORCONST:  int: -257
-878.    not IF_ICMPEQint: 256
-879.    not IF_ICMPGTint: 256
-880.    not IF_ICMPGEint: 256
-881.    LADDCONST:  long: 255
-882.    LSUBCONST:  long: -257
-883.    LMULCONST:  long: -256
-884.    LSHLCONST:  long: -1
-885.    LSHRCONST:  long: -1
-886.    LUSHRCONST: long: -1
-887.    LANDCONST:  long: 256
-888.    LORCONST:   long: -1
-889.    LXORCONST:  long: -257
-890.    not IF_LCMPEQint: 256
-891.    not IF_LCMPGTint: 256
-892.    not IF_LCMPGEint: 256
-893.    IADDCONST:  int: 32766
-894.    ISUBCONST:  int: -32768
-895.    IMULCONST:  int: -32767
-896.    ISHLCONST:  int: -2147483648
-897.    ISHRCONST:  int: -1
-898.    IUSHRCONST: int: 1
-899.    IANDCONST:  int: 32767
-900.    IORCONST:   int: -1
-901.    IXORCONST:  int: -32768
-902.    not IF_ICMPEQint: 32767
-903.    not IF_ICMPGTint: 32767
-904.    not IF_ICMPGEint: 32767
-905.    LADDCONST:  long: 32766
-906.    LSUBCONST:  long: -32768
-907.    LMULCONST:  long: -32767
-908.    LSHLCONST:  long: -9223372036854775808
-909.    LSHRCONST:  long: -1
-910.    LUSHRCONST: long: 1
-911.    LANDCONST:  long: 32767
-912.    LORCONST:   long: -1
-913.    LXORCONST:  long: -32768
-914.    not IF_LCMPEQint: 32767
-915.    not IF_LCMPGTint: 32767
-916.    not IF_LCMPGEint: 32767
-917.    IADDCONST:  int: 32767
-918.    ISUBCONST:  int: -32769
-919.    IMULCONST:  int: -32768
-920.    ISHLCONST:  int: -1
-921.    ISHRCONST:  int: -1
-922.    IUSHRCONST: int: -1
-923.    IANDCONST:  int: 32768
-924.    IORCONST:   int: -1
-925.    IXORCONST:  int: -32769
-926.    not IF_ICMPEQint: 32768
-927.    not IF_ICMPGTint: 32768
-928.    not IF_ICMPGEint: 32768
-929.    LADDCONST:  long: 32767
-930.    LSUBCONST:  long: -32769
-931.    LMULCONST:  long: -32768
-932.    LSHLCONST:  long: -1
-933.    LSHRCONST:  long: -1
-934.    LUSHRCONST: long: -1
-935.    LANDCONST:  long: 32768
-936.    LORCONST:   long: -1
-937.    LXORCONST:  long: -32769
-938.    not IF_LCMPEQint: 32768
-939.    not IF_LCMPGTint: 32768
-940.    not IF_LCMPGEint: 32768
-941.    IADDCONST:  int: -32769
-942.    ISUBCONST:  int: 32767
-943.    IMULCONST:  int: 32768
-944.    ISHLCONST:  int: -1
-945.    ISHRCONST:  int: -1
-946.    IUSHRCONST: int: -1
-947.    IANDCONST:  int: -32768
-948.    IORCONST:   int: -1
-949.    IXORCONST:  int: 32767
-950.    not IF_ICMPEQint: -32768
-951.    not IF_ICMPLTint: -32768
-952.    not IF_ICMPLEint: -32768
-953.    LADDCONST:  long: -32769
-954.    LSUBCONST:  long: 32767
-955.    LMULCONST:  long: 32768
-956.    LSHLCONST:  long: -1
-957.    LSHRCONST:  long: -1
-958.    LUSHRCONST: long: -1
-959.    LANDCONST:  long: -32768
-960.    LORCONST:   long: -1
-961.    LXORCONST:  long: 32767
-962.    not IF_LCMPEQint: -32768
-963.    not IF_LCMPLTint: -32768
-964.    not IF_LCMPLEint: -32768
-965.    IADDCONST:  int: -32770
-966.    ISUBCONST:  int: 32768
-967.    IMULCONST:  int: 32769
-968.    ISHLCONST:  int: -2147483648
-969.    ISHRCONST:  int: -1
-970.    IUSHRCONST: int: 1
-971.    IANDCONST:  int: -32769
-972.    IORCONST:   int: -1
-973.    IXORCONST:  int: 32768
-974.    not IF_ICMPEQint: -32769
-975.    not IF_ICMPLTint: -32769
-976.    not IF_ICMPLEint: -32769
-977.    LADDCONST:  long: -32770
-978.    LSUBCONST:  long: 32768
-979.    LMULCONST:  long: 32769
-980.    LSHLCONST:  long: -9223372036854775808
-981.    LSHRCONST:  long: -1
-982.    LUSHRCONST: long: 1
-983.    LANDCONST:  long: -32769
-984.    LORCONST:   long: -1
-985.    LXORCONST:  long: 32768
-986.    not IF_LCMPEQint: -32769
-987.    not IF_LCMPLTint: -32769
-988.    not IF_LCMPLEint: -32769
-989.    TESTCONST CALLED WITH int: -24123
-990.                      AND long: -4918923241323
-991.    not IF_ICMPEQint: 0
-992.    not IF_ICMPGTint: 0
-993.    not IF_ICMPGEint: 0
-994.    not IF_LCMPEQint: 0
-995.    not IF_LCMPGTint: 0
-996.    not IF_LCMPGEint: 0
-997.    IADDCONST:  int: -24124
-998.    ISUBCONST:  int: -24122
-999.    IMULCONST:  int: 24123
-1000.    ISHLCONST:  int: -2147483648
-1001.    ISHRCONST:  int: -1
-1002.    IUSHRCONST: int: 1
-1003.    IANDCONST:  int: -24123
-1004.    IORCONST:   int: -1
-1005.    IXORCONST:  int: 24122
-1006.    not IF_ICMPEQint: -1
-1007.    not IF_ICMPGTint: -1
-1008.    not IF_ICMPGEint: -1
-1009.    LADDCONST:  long: -4918923241324
-1010.    LSUBCONST:  long: -4918923241322
-1011.    LMULCONST:  long: 4918923241323
-1012.    LSHLCONST:  long: -9223372036854775808
-1013.    LSHRCONST:  long: -1
-1014.    LUSHRCONST: long: 1
-1015.    LANDCONST:  long: -4918923241323
-1016.    LORCONST:   long: -1
-1017.    LXORCONST:  long: 4918923241322
-1018.    not IF_LCMPEQint: -1
-1019.    not IF_LCMPGTint: -1
-1020.    not IF_LCMPGEint: -1
-1021.    IADDCONST:  int: -24122
-1022.    ISUBCONST:  int: -24124
-1023.    IMULCONST:  int: -24123
-1024.    ISHLCONST:  int: -48246
-1025.    ISHRCONST:  int: -12062
-1026.    IUSHRCONST: int: 2147471586
-1027.    IANDCONST:  int: 1
-1028.    IORCONST:   int: -24123
-1029.    IXORCONST:  int: -24124
-1030.    not IF_ICMPEQint: 1
-1031.    not IF_ICMPGTint: 1
-1032.    not IF_ICMPGEint: 1
-1033.    LADDCONST:  long: -4918923241322
-1034.    LSUBCONST:  long: -4918923241324
-1035.    LMULCONST:  long: -4918923241323
-1036.    LSHLCONST:  long: -9837846482646
-1037.    LSHRCONST:  long: -2459461620662
-1038.    LUSHRCONST: long: 9223369577393155146
-1039.    LANDCONST:  long: 1
-1040.    LORCONST:   long: -4918923241323
-1041.    LXORCONST:  long: -4918923241324
-1042.    not IF_LCMPEQint: 1
-1043.    not IF_LCMPGTint: 1
-1044.    not IF_LCMPGEint: 1
-1045.    IADDCONST:  int: -23868
-1046.    ISUBCONST:  int: -24378
-1047.    IMULCONST:  int: -6151365
-1048.    ISHLCONST:  int: -2147483648
-1049.    ISHRCONST:  int: -1
-1050.    IUSHRCONST: int: 1
-1051.    IANDCONST:  int: 197
-1052.    IORCONST:   int: -24065
-1053.    IXORCONST:  int: -24262
-1054.    not IF_ICMPEQint: 255
-1055.    not IF_ICMPGTint: 255
-1056.    not IF_ICMPGEint: 255
-1057.    LADDCONST:  long: -4918923241068
-1058.    LSUBCONST:  long: -4918923241578
-1059.    LMULCONST:  long: -1254325426537365
-1060.    LSHLCONST:  long: -9223372036854775808
-1061.    LSHRCONST:  long: -1
-1062.    LUSHRCONST: long: 1
-1063.    LANDCONST:  long: 149
-1064.    LORCONST:   long: -4918923241217
-1065.    LXORCONST:  long: -4918923241366
-1066.    not IF_LCMPEQint: 255
-1067.    not IF_LCMPGTint: 255
-1068.    not IF_LCMPGEint: 255
-1069.    IADDCONST:  int: -23867
-1070.    ISUBCONST:  int: -24379
-1071.    IMULCONST:  int: -6175488
-1072.    ISHLCONST:  int: -24123
-1073.    ISHRCONST:  int: -24123
-1074.    IUSHRCONST: int: -24123
-1075.    IANDCONST:  int: 256
-1076.    IORCONST:   int: -24123
-1077.    IXORCONST:  int: -24379
-1078.    not IF_ICMPEQint: 256
-1079.    not IF_ICMPGTint: 256
-1080.    not IF_ICMPGEint: 256
-1081.    LADDCONST:  long: -4918923241067
-1082.    LSUBCONST:  long: -4918923241579
-1083.    LMULCONST:  long: -1259244349778688
-1084.    LSHLCONST:  long: -4918923241323
-1085.    LSHRCONST:  long: -4918923241323
-1086.    LUSHRCONST: long: -4918923241323
-1087.    LANDCONST:  long: 0
-1088.    LORCONST:   long: -4918923241067
-1089.    LXORCONST:  long: -4918923241067
-1090.    not IF_LCMPEQint: 256
-1091.    not IF_LCMPGTint: 256
-1092.    not IF_LCMPGEint: 256
-1093.    IADDCONST:  int: 8644
-1094.    ISUBCONST:  int: -56890
-1095.    IMULCONST:  int: -790438341
-1096.    ISHLCONST:  int: -2147483648
-1097.    ISHRCONST:  int: -1
-1098.    IUSHRCONST: int: 1
-1099.    IANDCONST:  int: 8645
-1100.    IORCONST:   int: -1
-1101.    IXORCONST:  int: -8646
-1102.    not IF_ICMPEQint: 32767
-1103.    not IF_ICMPGTint: 32767
-1104.    not IF_ICMPGEint: 32767
-1105.    LADDCONST:  long: -4918923208556
-1106.    LSUBCONST:  long: -4918923274090
-1107.    LMULCONST:  long: -161178357848430741
-1108.    LSHLCONST:  long: -9223372036854775808
-1109.    LSHRCONST:  long: -1
-1110.    LUSHRCONST: long: 1
-1111.    LANDCONST:  long: 22677
-1112.    LORCONST:   long: -4918923231233
-1113.    LXORCONST:  long: -4918923253910
-1114.    not IF_LCMPEQint: 32767
-1115.    not IF_LCMPGTint: 32767
-1116.    not IF_LCMPGEint: 32767
-1117.    IADDCONST:  int: 8645
-1118.    ISUBCONST:  int: -56891
-1119.    IMULCONST:  int: -790462464
-1120.    ISHLCONST:  int: -24123
-1121.    ISHRCONST:  int: -24123
-1122.    IUSHRCONST: int: -24123
-1123.    IANDCONST:  int: 32768
-1124.    IORCONST:   int: -24123
-1125.    IXORCONST:  int: -56891
-1126.    not IF_ICMPEQint: 32768
-1127.    not IF_ICMPGTint: 32768
-1128.    not IF_ICMPGEint: 32768
-1129.    LADDCONST:  long: -4918923208555
-1130.    LSUBCONST:  long: -4918923274091
-1131.    LMULCONST:  long: -161183276771672064
-1132.    LSHLCONST:  long: -4918923241323
-1133.    LSHRCONST:  long: -4918923241323
-1134.    LUSHRCONST: long: -4918923241323
-1135.    LANDCONST:  long: 32768
-1136.    LORCONST:   long: -4918923241323
-1137.    LXORCONST:  long: -4918923274091
-1138.    not IF_LCMPEQint: 32768
-1139.    not IF_LCMPGTint: 32768
-1140.    not IF_LCMPGEint: 32768
-1141.    IADDCONST:  int: -56891
-1142.    ISUBCONST:  int: 8645
-1143.    IMULCONST:  int: 790462464
-1144.    ISHLCONST:  int: -24123
-1145.    ISHRCONST:  int: -24123
-1146.    IUSHRCONST: int: -24123
-1147.    IANDCONST:  int: -32768
-1148.    IORCONST:   int: -24123
-1149.    IXORCONST:  int: 8645
-1150.    not IF_ICMPEQint: -32768
-1151.    not IF_ICMPLTint: -32768
-1152.    not IF_ICMPLEint: -32768
-1153.    LADDCONST:  long: -4918923274091
-1154.    LSUBCONST:  long: -4918923208555
-1155.    LMULCONST:  long: 161183276771672064
-1156.    LSHLCONST:  long: -4918923241323
-1157.    LSHRCONST:  long: -4918923241323
-1158.    LUSHRCONST: long: -4918923241323
-1159.    LANDCONST:  long: -4918923264000
-1160.    LORCONST:   long: -10091
-1161.    LXORCONST:  long: 4918923253909
-1162.    not IF_LCMPEQint: -32768
-1163.    not IF_LCMPGTint: -32768
-1164.    not IF_LCMPGEint: -32768
-1165.    IADDCONST:  int: -56892
-1166.    ISUBCONST:  int: 8646
-1167.    IMULCONST:  int: 790486587
-1168.    ISHLCONST:  int: -2147483648
-1169.    ISHRCONST:  int: -1
-1170.    IUSHRCONST: int: 1
-1171.    IANDCONST:  int: -56891
-1172.    IORCONST:   int: -1
-1173.    IXORCONST:  int: 56890
-1174.    not IF_ICMPEQint: -32769
-1175.    not IF_ICMPLTint: -32769
-1176.    not IF_ICMPLEint: -32769
-1177.    LADDCONST:  long: -4918923274092
-1178.    LSUBCONST:  long: -4918923208554
-1179.    LMULCONST:  long: 161188195694913387
-1180.    LSHLCONST:  long: -9223372036854775808
-1181.    LSHRCONST:  long: -1
-1182.    LUSHRCONST: long: 1
-1183.    LANDCONST:  long: -4918923274091
-1184.    LORCONST:   long: -1
-1185.    LXORCONST:  long: 4918923274090
-1186.    not IF_LCMPEQint: -32769
-1187.    not IF_LCMPGTint: -32769
-1188.    not IF_LCMPGEint: -32769
-1189.    TESTCONST CALLED WITH int: -243511
-1190.                      AND long: -4423423234231423
-1191.    not IF_ICMPEQint: 0
-1192.    not IF_ICMPGTint: 0
-1193.    not IF_ICMPGEint: 0
-1194.    not IF_LCMPEQint: 0
-1195.    not IF_LCMPGTint: 0
-1196.    not IF_LCMPGEint: 0
-1197.    IADDCONST:  int: -243512
-1198.    ISUBCONST:  int: -243510
-1199.    IMULCONST:  int: 243511
-1200.    ISHLCONST:  int: -2147483648
-1201.    ISHRCONST:  int: -1
-1202.    IUSHRCONST: int: 1
-1203.    IANDCONST:  int: -243511
-1204.    IORCONST:   int: -1
-1205.    IXORCONST:  int: 243510
-1206.    not IF_ICMPEQint: -1
-1207.    not IF_ICMPGTint: -1
-1208.    not IF_ICMPGEint: -1
-1209.    LADDCONST:  long: -4423423234231424
-1210.    LSUBCONST:  long: -4423423234231422
-1211.    LMULCONST:  long: 4423423234231423
-1212.    LSHLCONST:  long: -9223372036854775808
-1213.    LSHRCONST:  long: -1
-1214.    LUSHRCONST: long: 1
-1215.    LANDCONST:  long: -4423423234231423
-1216.    LORCONST:   long: -1
-1217.    LXORCONST:  long: 4423423234231422
-1218.    not IF_LCMPEQint: -1
-1219.    not IF_LCMPGTint: -1
-1220.    not IF_LCMPGEint: -1
-1221.    IADDCONST:  int: -243510
-1222.    ISUBCONST:  int: -243512
-1223.    IMULCONST:  int: -243511
-1224.    ISHLCONST:  int: -487022
-1225.    ISHRCONST:  int: -121756
-1226.    IUSHRCONST: int: 2147361892
-1227.    IANDCONST:  int: 1
-1228.    IORCONST:   int: -243511
-1229.    IXORCONST:  int: -243512
-1230.    not IF_ICMPEQint: 1
-1231.    not IF_ICMPGTint: 1
-1232.    not IF_ICMPGEint: 1
-1233.    LADDCONST:  long: -4423423234231422
-1234.    LSUBCONST:  long: -4423423234231424
-1235.    LMULCONST:  long: -4423423234231423
-1236.    LSHLCONST:  long: -8846846468462846
-1237.    LSHRCONST:  long: -2211711617115712
-1238.    LUSHRCONST: long: 9221160325237660096
-1239.    LANDCONST:  long: 1
-1240.    LORCONST:   long: -4423423234231423
-1241.    LXORCONST:  long: -4423423234231424
-1242.    not IF_LCMPEQint: 1
-1243.    not IF_LCMPGTint: 1
-1244.    not IF_LCMPGEint: 1
-1245.    IADDCONST:  int: -243256
-1246.    ISUBCONST:  int: -243766
-1247.    IMULCONST:  int: -62095305
-1248.    ISHLCONST:  int: -2147483648
-1249.    ISHRCONST:  int: -1
-1250.    IUSHRCONST: int: 1
-1251.    IANDCONST:  int: 201
-1252.    IORCONST:   int: -243457
-1253.    IXORCONST:  int: -243658
-1254.    not IF_ICMPEQint: 255
-1255.    not IF_ICMPGTint: 255
-1256.    not IF_ICMPGEint: 255
-1257.    LADDCONST:  long: -4423423234231168
-1258.    LSUBCONST:  long: -4423423234231678
-1259.    LMULCONST:  long: -1127972924729012865
-1260.    LSHLCONST:  long: -9223372036854775808
-1261.    LSHRCONST:  long: -1
-1262.    LUSHRCONST: long: 1
-1263.    LANDCONST:  long: 129
-1264.    LORCONST:   long: -4423423234231297
-1265.    LXORCONST:  long: -4423423234231426
-1266.    not IF_LCMPEQint: 255
-1267.    not IF_LCMPGTint: 255
-1268.    not IF_LCMPGEint: 255
-1269.    IADDCONST:  int: -243255
-1270.    ISUBCONST:  int: -243767
-1271.    IMULCONST:  int: -62338816
-1272.    ISHLCONST:  int: -243511
-1273.    ISHRCONST:  int: -243511
-1274.    IUSHRCONST: int: -243511
-1275.    IANDCONST:  int: 0
-1276.    IORCONST:   int: -243255
-1277.    IXORCONST:  int: -243255
-1278.    not IF_ICMPEQint: 256
-1279.    not IF_ICMPGTint: 256
-1280.    not IF_ICMPGEint: 256
-1281.    LADDCONST:  long: -4423423234231167
-1282.    LSUBCONST:  long: -4423423234231679
-1283.    LMULCONST:  long: -1132396347963244288
-1284.    LSHLCONST:  long: -4423423234231423
-1285.    LSHRCONST:  long: -4423423234231423
-1286.    LUSHRCONST: long: -4423423234231423
-1287.    LANDCONST:  long: 256
-1288.    LORCONST:   long: -4423423234231423
-1289.    LXORCONST:  long: -4423423234231679
-1290.    not IF_LCMPEQint: 256
-1291.    not IF_LCMPGTint: 256
-1292.    not IF_LCMPGEint: 256
-1293.    IADDCONST:  int: -210744
-1294.    ISUBCONST:  int: -276278
-1295.    IMULCONST:  int: 610809655
-1296.    ISHLCONST:  int: -2147483648
-1297.    ISHRCONST:  int: -1
-1298.    IUSHRCONST: int: 1
-1299.    IANDCONST:  int: 18633
-1300.    IORCONST:   int: -229377
-1301.    IXORCONST:  int: -248010
-1302.    not IF_ICMPEQint: 32767
-1303.    not IF_ICMPGTint: 32767
-1304.    not IF_ICMPGEint: 32767
-1305.    LADDCONST:  long: -4423423234198656
-1306.    LSUBCONST:  long: -4423423234264190
-1307.    LMULCONST:  long: 2631643473615375487
-1308.    LSHLCONST:  long: -9223372036854775808
-1309.    LSHRCONST:  long: -1
-1310.    LUSHRCONST: long: 1
-1311.    LANDCONST:  long: 13185
-1312.    LORCONST:   long: -4423423234211841
-1313.    LXORCONST:  long: -4423423234225026
-1314.    not IF_LCMPEQint: 32767
-1315.    not IF_LCMPGTint: 32767
-1316.    not IF_LCMPGEint: 32767
-1317.    IADDCONST:  int: -210743
-1318.    ISUBCONST:  int: -276279
-1319.    IMULCONST:  int: 610566144
-1320.    ISHLCONST:  int: -243511
-1321.    ISHRCONST:  int: -243511
-1322.    IUSHRCONST: int: -243511
-1323.    IANDCONST:  int: 0
-1324.    IORCONST:   int: -210743
-1325.    IXORCONST:  int: -210743
-1326.    not IF_ICMPEQint: 32768
-1327.    not IF_ICMPGTint: 32768
-1328.    not IF_ICMPGEint: 32768
-1329.    LADDCONST:  long: -4423423234198655
-1330.    LSUBCONST:  long: -4423423234264191
-1331.    LMULCONST:  long: 2627220050381144064
-1332.    LSHLCONST:  long: -4423423234231423
-1333.    LSHRCONST:  long: -4423423234231423
-1334.    LUSHRCONST: long: -4423423234231423
-1335.    LANDCONST:  long: 32768
-1336.    LORCONST:   long: -4423423234231423
-1337.    LXORCONST:  long: -4423423234264191
-1338.    not IF_LCMPEQint: 32768
-1339.    not IF_LCMPGTint: 32768
-1340.    not IF_LCMPGEint: 32768
-1341.    IADDCONST:  int: -276279
-1342.    ISUBCONST:  int: -210743
-1343.    IMULCONST:  int: -610566144
-1344.    ISHLCONST:  int: -243511
-1345.    ISHRCONST:  int: -243511
-1346.    IUSHRCONST: int: -243511
-1347.    IANDCONST:  int: -262144
-1348.    IORCONST:   int: -14135
-1349.    IXORCONST:  int: 248009
-1350.    not IF_ICMPEQint: -32768
-1351.    not IF_ICMPGTint: -32768
-1352.    not IF_ICMPGEint: -32768
-1353.    LADDCONST:  long: -4423423234264191
-1354.    LSUBCONST:  long: -4423423234198655
-1355.    LMULCONST:  long: -2627220050381144064
-1356.    LSHLCONST:  long: -4423423234231423
-1357.    LSHRCONST:  long: -4423423234231423
-1358.    LUSHRCONST: long: -4423423234231423
-1359.    LANDCONST:  long: -4423423234244608
-1360.    LORCONST:   long: -19583
-1361.    LXORCONST:  long: 4423423234225025
-1362.    not IF_LCMPEQint: -32768
-1363.    not IF_LCMPGTint: -32768
-1364.    not IF_LCMPGEint: -32768
-1365.    IADDCONST:  int: -276280
-1366.    ISUBCONST:  int: -210742
-1367.    IMULCONST:  int: -610322633
-1368.    ISHLCONST:  int: -2147483648
-1369.    ISHRCONST:  int: -1
-1370.    IUSHRCONST: int: 1
-1371.    IANDCONST:  int: -243511
-1372.    IORCONST:   int: -32769
-1373.    IXORCONST:  int: 210742
-1374.    not IF_ICMPEQint: -32769
-1375.    not IF_ICMPGTint: -32769
-1376.    not IF_ICMPGEint: -32769
-1377.    LADDCONST:  long: -4423423234264192
-1378.    LSUBCONST:  long: -4423423234198654
-1379.    LMULCONST:  long: -2622796627146912641
-1380.    LSHLCONST:  long: -9223372036854775808
-1381.    LSHRCONST:  long: -1
-1382.    LUSHRCONST: long: 1
-1383.    LANDCONST:  long: -4423423234264191
-1384.    LORCONST:   long: -1
-1385.    LXORCONST:  long: 4423423234264190
-1386.    not IF_LCMPEQint: -32769
-1387.    not IF_LCMPGTint: -32769
-1388.    not IF_LCMPGEint: -32769
-1389.    TESTCONST CALLED WITH int: 2147483647
-1390.                      AND long: 9223372036854775807
-1391.    not IF_ICMPEQint: 0
-1392.    not IF_ICMPLTint: 0
-1393.    not IF_ICMPLEint: 0
-1394.    not IF_LCMPEQint: 0
-1395.    not IF_LCMPLTint: 0
-1396.    not IF_LCMPLEint: 0
-1397.    IADDCONST:  int: 2147483646
-1398.    ISUBCONST:  int: -2147483648
-1399.    IMULCONST:  int: -2147483647
-1400.    ISHLCONST:  int: -2147483648
-1401.    ISHRCONST:  int: 0
-1402.    IUSHRCONST: int: 0
-1403.    IANDCONST:  int: 2147483647
-1404.    IORCONST:   int: -1
-1405.    IXORCONST:  int: -2147483648
-1406.    not IF_ICMPEQint: -1
-1407.    not IF_ICMPLTint: -1
-1408.    not IF_ICMPLEint: -1
-1409.    LADDCONST:  long: 9223372036854775806
-1410.    LSUBCONST:  long: -9223372036854775808
-1411.    LMULCONST:  long: -9223372036854775807
-1412.    LSHLCONST:  long: -9223372036854775808
-1413.    LSHRCONST:  long: 0
-1414.    LUSHRCONST: long: 0
-1415.    LANDCONST:  long: 9223372036854775807
-1416.    LORCONST:   long: -1
-1417.    LXORCONST:  long: -9223372036854775808
-1418.    not IF_LCMPEQint: -1
-1419.    not IF_LCMPLTint: -1
-1420.    not IF_LCMPLEint: -1
-1421.    IADDCONST:  int: -2147483648
-1422.    ISUBCONST:  int: 2147483646
-1423.    IMULCONST:  int: 2147483647
-1424.    ISHLCONST:  int: -2
-1425.    ISHRCONST:  int: 1073741823
-1426.    IUSHRCONST: int: 1073741823
-1427.    IANDCONST:  int: 1
-1428.    IORCONST:   int: 2147483647
-1429.    IXORCONST:  int: 2147483646
-1430.    not IF_ICMPEQint: 1
-1431.    not IF_ICMPLTint: 1
-1432.    not IF_ICMPLEint: 1
-1433.    LADDCONST:  long: -9223372036854775808
-1434.    LSUBCONST:  long: 9223372036854775806
-1435.    LMULCONST:  long: 9223372036854775807
-1436.    LSHLCONST:  long: -2
-1437.    LSHRCONST:  long: 4611686018427387903
-1438.    LUSHRCONST: long: 4611686018427387903
-1439.    LANDCONST:  long: 1
-1440.    LORCONST:   long: 9223372036854775807
-1441.    LXORCONST:  long: 9223372036854775806
-1442.    not IF_LCMPEQint: 1
-1443.    not IF_LCMPLTint: 1
-1444.    not IF_LCMPLEint: 1
-1445.    IADDCONST:  int: -2147483394
-1446.    ISUBCONST:  int: 2147483392
-1447.    IMULCONST:  int: 2147483393
-1448.    ISHLCONST:  int: -2147483648
-1449.    ISHRCONST:  int: 0
-1450.    IUSHRCONST: int: 0
-1451.    IANDCONST:  int: 255
-1452.    IORCONST:   int: 2147483647
-1453.    IXORCONST:  int: 2147483392
-1454.    not IF_ICMPEQint: 255
-1455.    not IF_ICMPLTint: 255
-1456.    not IF_ICMPLEint: 255
-1457.    LADDCONST:  long: -9223372036854775554
-1458.    LSUBCONST:  long: 9223372036854775552
-1459.    LMULCONST:  long: 9223372036854775553
-1460.    LSHLCONST:  long: -9223372036854775808
-1461.    LSHRCONST:  long: 0
-1462.    LUSHRCONST: long: 0
-1463.    LANDCONST:  long: 255
-1464.    LORCONST:   long: 9223372036854775807
-1465.    LXORCONST:  long: 9223372036854775552
-1466.    not IF_LCMPEQint: 255
-1467.    not IF_LCMPLTint: 255
-1468.    not IF_LCMPLEint: 255
-1469.    IADDCONST:  int: -2147483393
-1470.    ISUBCONST:  int: 2147483391
-1471.    IMULCONST:  int: -256
-1472.    ISHLCONST:  int: 2147483647
-1473.    ISHRCONST:  int: 2147483647
-1474.    IUSHRCONST: int: 2147483647
-1475.    IANDCONST:  int: 256
-1476.    IORCONST:   int: 2147483647
-1477.    IXORCONST:  int: 2147483391
-1478.    not IF_ICMPEQint: 256
-1479.    not IF_ICMPLTint: 256
-1480.    not IF_ICMPLEint: 256
-1481.    LADDCONST:  long: -9223372036854775553
-1482.    LSUBCONST:  long: 9223372036854775551
-1483.    LMULCONST:  long: -256
-1484.    LSHLCONST:  long: 9223372036854775807
-1485.    LSHRCONST:  long: 9223372036854775807
-1486.    LUSHRCONST: long: 9223372036854775807
-1487.    LANDCONST:  long: 256
-1488.    LORCONST:   long: 9223372036854775807
-1489.    LXORCONST:  long: 9223372036854775551
-1490.    not IF_LCMPEQint: 256
-1491.    not IF_LCMPLTint: 256
-1492.    not IF_LCMPLEint: 256
-1493.    IADDCONST:  int: -2147450882
-1494.    ISUBCONST:  int: 2147450880
-1495.    IMULCONST:  int: 2147450881
-1496.    ISHLCONST:  int: -2147483648
-1497.    ISHRCONST:  int: 0
-1498.    IUSHRCONST: int: 0
-1499.    IANDCONST:  int: 32767
-1500.    IORCONST:   int: 2147483647
-1501.    IXORCONST:  int: 2147450880
-1502.    not IF_ICMPEQint: 32767
-1503.    not IF_ICMPLTint: 32767
-1504.    not IF_ICMPLEint: 32767
-1505.    LADDCONST:  long: -9223372036854743042
-1506.    LSUBCONST:  long: 9223372036854743040
-1507.    LMULCONST:  long: 9223372036854743041
-1508.    LSHLCONST:  long: -9223372036854775808
-1509.    LSHRCONST:  long: 0
-1510.    LUSHRCONST: long: 0
-1511.    LANDCONST:  long: 32767
-1512.    LORCONST:   long: 9223372036854775807
-1513.    LXORCONST:  long: 9223372036854743040
-1514.    not IF_LCMPEQint: 32767
-1515.    not IF_LCMPLTint: 32767
-1516.    not IF_LCMPLEint: 32767
-1517.    IADDCONST:  int: -2147450881
-1518.    ISUBCONST:  int: 2147450879
-1519.    IMULCONST:  int: -32768
-1520.    ISHLCONST:  int: 2147483647
-1521.    ISHRCONST:  int: 2147483647
-1522.    IUSHRCONST: int: 2147483647
-1523.    IANDCONST:  int: 32768
-1524.    IORCONST:   int: 2147483647
-1525.    IXORCONST:  int: 2147450879
-1526.    not IF_ICMPEQint: 32768
-1527.    not IF_ICMPLTint: 32768
-1528.    not IF_ICMPLEint: 32768
-1529.    LADDCONST:  long: -9223372036854743041
-1530.    LSUBCONST:  long: 9223372036854743039
-1531.    LMULCONST:  long: -32768
-1532.    LSHLCONST:  long: 9223372036854775807
-1533.    LSHRCONST:  long: 9223372036854775807
-1534.    LUSHRCONST: long: 9223372036854775807
-1535.    LANDCONST:  long: 32768
-1536.    LORCONST:   long: 9223372036854775807
-1537.    LXORCONST:  long: 9223372036854743039
-1538.    not IF_LCMPEQint: 32768
-1539.    not IF_LCMPLTint: 32768
-1540.    not IF_LCMPLEint: 32768
-1541.    IADDCONST:  int: 2147450879
-1542.    ISUBCONST:  int: -2147450881
-1543.    IMULCONST:  int: 32768
-1544.    ISHLCONST:  int: 2147483647
-1545.    ISHRCONST:  int: 2147483647
-1546.    IUSHRCONST: int: 2147483647
-1547.    IANDCONST:  int: 2147450880
-1548.    IORCONST:   int: -1
-1549.    IXORCONST:  int: -2147450881
-1550.    not IF_ICMPEQint: -32768
-1551.    not IF_ICMPLTint: -32768
-1552.    not IF_ICMPLEint: -32768
-1553.    LADDCONST:  long: 9223372036854743039
-1554.    LSUBCONST:  long: -9223372036854743041
-1555.    LMULCONST:  long: 32768
-1556.    LSHLCONST:  long: 9223372036854775807
-1557.    LSHRCONST:  long: 9223372036854775807
-1558.    LUSHRCONST: long: 9223372036854775807
-1559.    LANDCONST:  long: 9223372036854743040
-1560.    LORCONST:   long: -1
-1561.    LXORCONST:  long: -9223372036854743041
-1562.    not IF_LCMPEQint: -32768
-1563.    not IF_LCMPLTint: -32768
-1564.    not IF_LCMPLEint: -32768
-1565.    IADDCONST:  int: 2147450878
-1566.    ISUBCONST:  int: -2147450880
-1567.    IMULCONST:  int: -2147450879
-1568.    ISHLCONST:  int: -2147483648
-1569.    ISHRCONST:  int: 0
-1570.    IUSHRCONST: int: 0
-1571.    IANDCONST:  int: 2147450879
-1572.    IORCONST:   int: -1
-1573.    IXORCONST:  int: -2147450880
-1574.    not IF_ICMPEQint: -32769
-1575.    not IF_ICMPLTint: -32769
-1576.    not IF_ICMPLEint: -32769
-1577.    LADDCONST:  long: 9223372036854743038
-1578.    LSUBCONST:  long: -9223372036854743040
-1579.    LMULCONST:  long: -9223372036854743039
-1580.    LSHLCONST:  long: -9223372036854775808
-1581.    LSHRCONST:  long: 0
-1582.    LUSHRCONST: long: 0
-1583.    LANDCONST:  long: 9223372036854743039
-1584.    LORCONST:   long: -1
-1585.    LXORCONST:  long: -9223372036854743040
-1586.    not IF_LCMPEQint: -32769
-1587.    not IF_LCMPLTint: -32769
-1588.    not IF_LCMPLEint: -32769
-1589.    TESTCONST CALLED WITH int: -2147483648
-1590.                      AND long: -9223372036854775808
-1591.    not IF_ICMPEQint: 0
-1592.    not IF_ICMPGTint: 0
-1593.    not IF_ICMPGEint: 0
-1594.    not IF_LCMPEQint: 0
-1595.    not IF_LCMPGTint: 0
-1596.    not IF_LCMPGEint: 0
-1597.    IADDCONST:  int: 2147483647
-1598.    ISUBCONST:  int: -2147483647
-1599.    IMULCONST:  int: -2147483648
-1600.    ISHLCONST:  int: 0
-1601.    ISHRCONST:  int: -1
-1602.    IUSHRCONST: int: 1
-1603.    IANDCONST:  int: -2147483648
-1604.    IORCONST:   int: -1
-1605.    IXORCONST:  int: 2147483647
-1606.    not IF_ICMPEQint: -1
-1607.    not IF_ICMPGTint: -1
-1608.    not IF_ICMPGEint: -1
-1609.    LADDCONST:  long: 9223372036854775807
-1610.    LSUBCONST:  long: -9223372036854775807
-1611.    LMULCONST:  long: -9223372036854775808
-1612.    LSHLCONST:  long: 0
-1613.    LSHRCONST:  long: -1
-1614.    LUSHRCONST: long: 1
-1615.    LANDCONST:  long: -9223372036854775808
-1616.    LORCONST:   long: -1
-1617.    LXORCONST:  long: 9223372036854775807
-1618.    not IF_LCMPEQint: -1
-1619.    not IF_LCMPGTint: -1
-1620.    not IF_LCMPGEint: -1
-1621.    IADDCONST:  int: -2147483647
-1622.    ISUBCONST:  int: 2147483647
-1623.    IMULCONST:  int: -2147483648
-1624.    ISHLCONST:  int: 0
-1625.    ISHRCONST:  int: -1073741824
-1626.    IUSHRCONST: int: 1073741824
-1627.    IANDCONST:  int: 0
-1628.    IORCONST:   int: -2147483647
-1629.    IXORCONST:  int: -2147483647
-1630.    not IF_ICMPEQint: 1
-1631.    not IF_ICMPGTint: 1
-1632.    not IF_ICMPGEint: 1
-1633.    LADDCONST:  long: -9223372036854775807
-1634.    LSUBCONST:  long: 9223372036854775807
-1635.    LMULCONST:  long: -9223372036854775808
-1636.    LSHLCONST:  long: 0
-1637.    LSHRCONST:  long: -4611686018427387904
-1638.    LUSHRCONST: long: 4611686018427387904
-1639.    LANDCONST:  long: 0
-1640.    LORCONST:   long: -9223372036854775807
-1641.    LXORCONST:  long: -9223372036854775807
-1642.    not IF_LCMPEQint: 1
-1643.    not IF_LCMPGTint: 1
-1644.    not IF_LCMPGEint: 1
-1645.    IADDCONST:  int: -2147483393
-1646.    ISUBCONST:  int: 2147483393
-1647.    IMULCONST:  int: -2147483648
-1648.    ISHLCONST:  int: 0
-1649.    ISHRCONST:  int: -1
-1650.    IUSHRCONST: int: 1
-1651.    IANDCONST:  int: 0
-1652.    IORCONST:   int: -2147483393
-1653.    IXORCONST:  int: -2147483393
-1654.    not IF_ICMPEQint: 255
-1655.    not IF_ICMPGTint: 255
-1656.    not IF_ICMPGEint: 255
-1657.    LADDCONST:  long: -9223372036854775553
-1658.    LSUBCONST:  long: 9223372036854775553
-1659.    LMULCONST:  long: -9223372036854775808
-1660.    LSHLCONST:  long: 0
-1661.    LSHRCONST:  long: -1
-1662.    LUSHRCONST: long: 1
-1663.    LANDCONST:  long: 0
-1664.    LORCONST:   long: -9223372036854775553
-1665.    LXORCONST:  long: -9223372036854775553
-1666.    not IF_LCMPEQint: 255
-1667.    not IF_LCMPGTint: 255
-1668.    not IF_LCMPGEint: 255
-1669.    IADDCONST:  int: -2147483392
-1670.    ISUBCONST:  int: 2147483392
-1671.    IMULCONST:  int: 0
-1672.    ISHLCONST:  int: -2147483648
-1673.    ISHRCONST:  int: -2147483648
-1674.    IUSHRCONST: int: -2147483648
-1675.    IANDCONST:  int: 0
-1676.    IORCONST:   int: -2147483392
-1677.    IXORCONST:  int: -2147483392
-1678.    not IF_ICMPEQint: 256
-1679.    not IF_ICMPGTint: 256
-1680.    not IF_ICMPGEint: 256
-1681.    LADDCONST:  long: -9223372036854775552
-1682.    LSUBCONST:  long: 9223372036854775552
-1683.    LMULCONST:  long: 0
-1684.    LSHLCONST:  long: -9223372036854775808
-1685.    LSHRCONST:  long: -9223372036854775808
-1686.    LUSHRCONST: long: -9223372036854775808
-1687.    LANDCONST:  long: 0
-1688.    LORCONST:   long: -9223372036854775552
-1689.    LXORCONST:  long: -9223372036854775552
-1690.    not IF_LCMPEQint: 256
-1691.    not IF_LCMPGTint: 256
-1692.    not IF_LCMPGEint: 256
-1693.    IADDCONST:  int: -2147450881
-1694.    ISUBCONST:  int: 2147450881
-1695.    IMULCONST:  int: -2147483648
-1696.    ISHLCONST:  int: 0
-1697.    ISHRCONST:  int: -1
-1698.    IUSHRCONST: int: 1
-1699.    IANDCONST:  int: 0
-1700.    IORCONST:   int: -2147450881
-1701.    IXORCONST:  int: -2147450881
-1702.    not IF_ICMPEQint: 32767
-1703.    not IF_ICMPGTint: 32767
-1704.    not IF_ICMPGEint: 32767
-1705.    LADDCONST:  long: -9223372036854743041
-1706.    LSUBCONST:  long: 9223372036854743041
-1707.    LMULCONST:  long: -9223372036854775808
-1708.    LSHLCONST:  long: 0
-1709.    LSHRCONST:  long: -1
-1710.    LUSHRCONST: long: 1
-1711.    LANDCONST:  long: 0
-1712.    LORCONST:   long: -9223372036854743041
-1713.    LXORCONST:  long: -9223372036854743041
-1714.    not IF_LCMPEQint: 32767
-1715.    not IF_LCMPGTint: 32767
-1716.    not IF_LCMPGEint: 32767
-1717.    IADDCONST:  int: -2147450880
-1718.    ISUBCONST:  int: 2147450880
-1719.    IMULCONST:  int: 0
-1720.    ISHLCONST:  int: -2147483648
-1721.    ISHRCONST:  int: -2147483648
-1722.    IUSHRCONST: int: -2147483648
-1723.    IANDCONST:  int: 0
-1724.    IORCONST:   int: -2147450880
-1725.    IXORCONST:  int: -2147450880
-1726.    not IF_ICMPEQint: 32768
-1727.    not IF_ICMPGTint: 32768
-1728.    not IF_ICMPGEint: 32768
-1729.    LADDCONST:  long: -9223372036854743040
-1730.    LSUBCONST:  long: 9223372036854743040
-1731.    LMULCONST:  long: 0
-1732.    LSHLCONST:  long: -9223372036854775808
-1733.    LSHRCONST:  long: -9223372036854775808
-1734.    LUSHRCONST: long: -9223372036854775808
-1735.    LANDCONST:  long: 0
-1736.    LORCONST:   long: -9223372036854743040
-1737.    LXORCONST:  long: -9223372036854743040
-1738.    not IF_LCMPEQint: 32768
-1739.    not IF_LCMPGTint: 32768
-1740.    not IF_LCMPGEint: 32768
-1741.    IADDCONST:  int: 2147450880
-1742.    ISUBCONST:  int: -2147450880
-1743.    IMULCONST:  int: 0
-1744.    ISHLCONST:  int: -2147483648
-1745.    ISHRCONST:  int: -2147483648
-1746.    IUSHRCONST: int: -2147483648
-1747.    IANDCONST:  int: -2147483648
-1748.    IORCONST:   int: -32768
-1749.    IXORCONST:  int: 2147450880
-1750.    not IF_ICMPEQint: -32768
-1751.    not IF_ICMPGTint: -32768
-1752.    not IF_ICMPGEint: -32768
-1753.    LADDCONST:  long: 9223372036854743040
-1754.    LSUBCONST:  long: -9223372036854743040
-1755.    LMULCONST:  long: 0
-1756.    LSHLCONST:  long: -9223372036854775808
-1757.    LSHRCONST:  long: -9223372036854775808
-1758.    LUSHRCONST: long: -9223372036854775808
-1759.    LANDCONST:  long: -9223372036854775808
-1760.    LORCONST:   long: -32768
-1761.    LXORCONST:  long: 9223372036854743040
-1762.    not IF_LCMPEQint: -32768
-1763.    not IF_LCMPGTint: -32768
-1764.    not IF_LCMPGEint: -32768
-1765.    IADDCONST:  int: 2147450879
-1766.    ISUBCONST:  int: -2147450879
-1767.    IMULCONST:  int: -2147483648
-1768.    ISHLCONST:  int: 0
-1769.    ISHRCONST:  int: -1
-1770.    IUSHRCONST: int: 1
-1771.    IANDCONST:  int: -2147483648
-1772.    IORCONST:   int: -32769
-1773.    IXORCONST:  int: 2147450879
-1774.    not IF_ICMPEQint: -32769
-1775.    not IF_ICMPGTint: -32769
-1776.    not IF_ICMPGEint: -32769
-1777.    LADDCONST:  long: 9223372036854743039
-1778.    LSUBCONST:  long: -9223372036854743039
-1779.    LMULCONST:  long: -9223372036854775808
-1780.    LSHLCONST:  long: 0
-1781.    LSHRCONST:  long: -1
-1782.    LUSHRCONST: long: 1
-1783.    LANDCONST:  long: -9223372036854775808
-1784.    LORCONST:   long: -32769
-1785.    LXORCONST:  long: 9223372036854743039
-1786.    not IF_LCMPEQint: -32769
-1787.    not IF_LCMPGTint: -32769
-1788.    not IF_LCMPGEint: -32769
-1789.    ------------------- test div and rem consts
-1790.    IDIVPOW2 (17 / 0x00000002):  int: 8
-1791.    IDIVPOW2 (17 / 0x00000004):  int: 4
-1792.    IDIVPOW2 (17 / 0x00000008):  int: 2
-1793.    IDIVPOW2 (17 / 0x00000010):  int: 1
-1794.    IDIVPOW2 (17 / 0x00000020):  int: 0
-1795.    IDIVPOW2 (17 / 0x00000040):  int: 0
-1796.    IDIVPOW2 (17 / 0x00000080):  int: 0
-1797.    IDIVPOW2 (17 / 0x00000100):  int: 0
-1798.    IDIVPOW2 (17 / 0x00000200):  int: 0
-1799.    IDIVPOW2 (17 / 0x00000400):  int: 0
-1800.    IDIVPOW2 (17 / 0x00000800):  int: 0
-1801.    IDIVPOW2 (17 / 0x00001000):  int: 0
-1802.    IDIVPOW2 (17 / 0x00002000):  int: 0
-1803.    IDIVPOW2 (17 / 0x00004000):  int: 0
-1804.    IDIVPOW2 (17 / 0x00008000):  int: 0
-1805.    IDIVPOW2 (17 / 0x00010000):  int: 0
-1806.    IDIVPOW2 (17 / 0x00020000):  int: 0
-1807.    IDIVPOW2 (17 / 0x00040000):  int: 0
-1808.    IDIVPOW2 (17 / 0x00080000):  int: 0
-1809.    IDIVPOW2 (17 / 0x00100000):  int: 0
-1810.    IDIVPOW2 (17 / 0x00200000):  int: 0
-1811.    IDIVPOW2 (17 / 0x00400000):  int: 0
-1812.    IDIVPOW2 (17 / 0x00800000):  int: 0
-1813.    IDIVPOW2 (17 / 0x01000000):  int: 0
-1814.    IDIVPOW2 (17 / 0x02000000):  int: 0
-1815.    IDIVPOW2 (17 / 0x04000000):  int: 0
-1816.    IDIVPOW2 (17 / 0x08000000):  int: 0
-1817.    IDIVPOW2 (17 / 0x10000000):  int: 0
-1818.    IDIVPOW2 (17 / 0x20000000):  int: 0
-1819.    IDIVPOW2 (17 / 0x40000000):  int: 0
-1820.    IDIVPOW2 (17 / 0x80000000):  int: 0
-1821.    IREMPOW2 (17 % 0x00000002):  int: 1
-1822.    IREMPOW2 (17 % 0x00000004):  int: 1
-1823.    IREMPOW2 (17 % 0x00000008):  int: 1
-1824.    IREMPOW2 (17 % 0x00000010):  int: 1
-1825.    IREMPOW2 (17 % 0x00000020):  int: 17
-1826.    IREMPOW2 (17 % 0x00000040):  int: 17
-1827.    IREMPOW2 (17 % 0x00000080):  int: 17
-1828.    IREMPOW2 (17 % 0x00000100):  int: 17
-1829.    IREMPOW2 (17 % 0x00000200):  int: 17
-1830.    IREMPOW2 (17 % 0x00000400):  int: 17
-1831.    IREMPOW2 (17 % 0x00000800):  int: 17
-1832.    IREMPOW2 (17 % 0x00001000):  int: 17
-1833.    IREMPOW2 (17 % 0x00002000):  int: 17
-1834.    IREMPOW2 (17 % 0x00004000):  int: 17
-1835.    IREMPOW2 (17 % 0x00008000):  int: 17
-1836.    IREMPOW2 (17 % 0x00010000):  int: 17
-1837.    IREMPOW2 (17 % 0x00020000):  int: 17
-1838.    IREMPOW2 (17 % 0x00040000):  int: 17
-1839.    IREMPOW2 (17 % 0x00080000):  int: 17
-1840.    IREMPOW2 (17 % 0x00100000):  int: 17
-1841.    IREMPOW2 (17 % 0x00200000):  int: 17
-1842.    IREMPOW2 (17 % 0x00400000):  int: 17
-1843.    IREMPOW2 (17 % 0x00800000):  int: 17
-1844.    IREMPOW2 (17 % 0x01000000):  int: 17
-1845.    IREMPOW2 (17 % 0x02000000):  int: 17
-1846.    IREMPOW2 (17 % 0x04000000):  int: 17
-1847.    IREMPOW2 (17 % 0x08000000):  int: 17
-1848.    IREMPOW2 (17 % 0x10000000):  int: 17
-1849.    IREMPOW2 (17 % 0x20000000):  int: 17
-1850.    IREMPOW2 (17 % 0x40000000):  int: 17
-1851.    IREMPOW2 (17 % 0x80000000):  int: 17
-1852.    IDIVPOW2 (12347 / 0x00000002):  int: 6173
-1853.    IDIVPOW2 (12347 / 0x00000004):  int: 3086
-1854.    IDIVPOW2 (12347 / 0x00000008):  int: 1543
-1855.    IDIVPOW2 (12347 / 0x00000010):  int: 771
-1856.    IDIVPOW2 (12347 / 0x00000020):  int: 385
-1857.    IDIVPOW2 (12347 / 0x00000040):  int: 192
-1858.    IDIVPOW2 (12347 / 0x00000080):  int: 96
-1859.    IDIVPOW2 (12347 / 0x00000100):  int: 48
-1860.    IDIVPOW2 (12347 / 0x00000200):  int: 24
-1861.    IDIVPOW2 (12347 / 0x00000400):  int: 12
-1862.    IDIVPOW2 (12347 / 0x00000800):  int: 6
-1863.    IDIVPOW2 (12347 / 0x00001000):  int: 3
-1864.    IDIVPOW2 (12347 / 0x00002000):  int: 1
-1865.    IDIVPOW2 (12347 / 0x00004000):  int: 0
-1866.    IDIVPOW2 (12347 / 0x00008000):  int: 0
-1867.    IDIVPOW2 (12347 / 0x00010000):  int: 0
-1868.    IDIVPOW2 (12347 / 0x00020000):  int: 0
-1869.    IDIVPOW2 (12347 / 0x00040000):  int: 0
-1870.    IDIVPOW2 (12347 / 0x00080000):  int: 0
-1871.    IDIVPOW2 (12347 / 0x00100000):  int: 0
-1872.    IDIVPOW2 (12347 / 0x00200000):  int: 0
-1873.    IDIVPOW2 (12347 / 0x00400000):  int: 0
-1874.    IDIVPOW2 (12347 / 0x00800000):  int: 0
-1875.    IDIVPOW2 (12347 / 0x01000000):  int: 0
-1876.    IDIVPOW2 (12347 / 0x02000000):  int: 0
-1877.    IDIVPOW2 (12347 / 0x04000000):  int: 0
-1878.    IDIVPOW2 (12347 / 0x08000000):  int: 0
-1879.    IDIVPOW2 (12347 / 0x10000000):  int: 0
-1880.    IDIVPOW2 (12347 / 0x20000000):  int: 0
-1881.    IDIVPOW2 (12347 / 0x40000000):  int: 0
-1882.    IDIVPOW2 (12347 / 0x80000000):  int: 0
-1883.    IREMPOW2 (12347 % 0x00000002):  int: 1
-1884.    IREMPOW2 (12347 % 0x00000004):  int: 3
-1885.    IREMPOW2 (12347 % 0x00000008):  int: 3
-1886.    IREMPOW2 (12347 % 0x00000010):  int: 11
-1887.    IREMPOW2 (12347 % 0x00000020):  int: 27
-1888.    IREMPOW2 (12347 % 0x00000040):  int: 59
-1889.    IREMPOW2 (12347 % 0x00000080):  int: 59
-1890.    IREMPOW2 (12347 % 0x00000100):  int: 59
-1891.    IREMPOW2 (12347 % 0x00000200):  int: 59
-1892.    IREMPOW2 (12347 % 0x00000400):  int: 59
-1893.    IREMPOW2 (12347 % 0x00000800):  int: 59
-1894.    IREMPOW2 (12347 % 0x00001000):  int: 59
-1895.    IREMPOW2 (12347 % 0x00002000):  int: 4155
-1896.    IREMPOW2 (12347 % 0x00004000):  int: 12347
-1897.    IREMPOW2 (12347 % 0x00008000):  int: 12347
-1898.    IREMPOW2 (12347 % 0x00010000):  int: 12347
-1899.    IREMPOW2 (12347 % 0x00020000):  int: 12347
-1900.    IREMPOW2 (12347 % 0x00040000):  int: 12347
-1901.    IREMPOW2 (12347 % 0x00080000):  int: 12347
-1902.    IREMPOW2 (12347 % 0x00100000):  int: 12347
-1903.    IREMPOW2 (12347 % 0x00200000):  int: 12347
-1904.    IREMPOW2 (12347 % 0x00400000):  int: 12347
-1905.    IREMPOW2 (12347 % 0x00800000):  int: 12347
-1906.    IREMPOW2 (12347 % 0x01000000):  int: 12347
-1907.    IREMPOW2 (12347 % 0x02000000):  int: 12347
-1908.    IREMPOW2 (12347 % 0x04000000):  int: 12347
-1909.    IREMPOW2 (12347 % 0x08000000):  int: 12347
-1910.    IREMPOW2 (12347 % 0x10000000):  int: 12347
-1911.    IREMPOW2 (12347 % 0x20000000):  int: 12347
-1912.    IREMPOW2 (12347 % 0x40000000):  int: 12347
-1913.    IREMPOW2 (12347 % 0x80000000):  int: 12347
-1914.    IDIVPOW2 (8893427 / 0x00000002):  int: 4446713
-1915.    IDIVPOW2 (8893427 / 0x00000004):  int: 2223356
-1916.    IDIVPOW2 (8893427 / 0x00000008):  int: 1111678
-1917.    IDIVPOW2 (8893427 / 0x00000010):  int: 555839
-1918.    IDIVPOW2 (8893427 / 0x00000020):  int: 277919
-1919.    IDIVPOW2 (8893427 / 0x00000040):  int: 138959
-1920.    IDIVPOW2 (8893427 / 0x00000080):  int: 69479
-1921.    IDIVPOW2 (8893427 / 0x00000100):  int: 34739
-1922.    IDIVPOW2 (8893427 / 0x00000200):  int: 17369
-1923.    IDIVPOW2 (8893427 / 0x00000400):  int: 8684
-1924.    IDIVPOW2 (8893427 / 0x00000800):  int: 4342
-1925.    IDIVPOW2 (8893427 / 0x00001000):  int: 2171
-1926.    IDIVPOW2 (8893427 / 0x00002000):  int: 1085
-1927.    IDIVPOW2 (8893427 / 0x00004000):  int: 542
-1928.    IDIVPOW2 (8893427 / 0x00008000):  int: 271
-1929.    IDIVPOW2 (8893427 / 0x00010000):  int: 135
-1930.    IDIVPOW2 (8893427 / 0x00020000):  int: 67
-1931.    IDIVPOW2 (8893427 / 0x00040000):  int: 33
-1932.    IDIVPOW2 (8893427 / 0x00080000):  int: 16
-1933.    IDIVPOW2 (8893427 / 0x00100000):  int: 8
-1934.    IDIVPOW2 (8893427 / 0x00200000):  int: 4
-1935.    IDIVPOW2 (8893427 / 0x00400000):  int: 2
-1936.    IDIVPOW2 (8893427 / 0x00800000):  int: 1
-1937.    IDIVPOW2 (8893427 / 0x01000000):  int: 0
-1938.    IDIVPOW2 (8893427 / 0x02000000):  int: 0
-1939.    IDIVPOW2 (8893427 / 0x04000000):  int: 0
-1940.    IDIVPOW2 (8893427 / 0x08000000):  int: 0
-1941.    IDIVPOW2 (8893427 / 0x10000000):  int: 0
-1942.    IDIVPOW2 (8893427 / 0x20000000):  int: 0
-1943.    IDIVPOW2 (8893427 / 0x40000000):  int: 0
-1944.    IDIVPOW2 (8893427 / 0x80000000):  int: 0
-1945.    IREMPOW2 (8893427 % 0x00000002):  int: 1
-1946.    IREMPOW2 (8893427 % 0x00000004):  int: 3
-1947.    IREMPOW2 (8893427 % 0x00000008):  int: 3
-1948.    IREMPOW2 (8893427 % 0x00000010):  int: 3
-1949.    IREMPOW2 (8893427 % 0x00000020):  int: 19
-1950.    IREMPOW2 (8893427 % 0x00000040):  int: 51
-1951.    IREMPOW2 (8893427 % 0x00000080):  int: 115
-1952.    IREMPOW2 (8893427 % 0x00000100):  int: 243
-1953.    IREMPOW2 (8893427 % 0x00000200):  int: 499
-1954.    IREMPOW2 (8893427 % 0x00000400):  int: 1011
-1955.    IREMPOW2 (8893427 % 0x00000800):  int: 1011
-1956.    IREMPOW2 (8893427 % 0x00001000):  int: 1011
-1957.    IREMPOW2 (8893427 % 0x00002000):  int: 5107
-1958.    IREMPOW2 (8893427 % 0x00004000):  int: 13299
-1959.    IREMPOW2 (8893427 % 0x00008000):  int: 13299
-1960.    IREMPOW2 (8893427 % 0x00010000):  int: 46067
-1961.    IREMPOW2 (8893427 % 0x00020000):  int: 111603
-1962.    IREMPOW2 (8893427 % 0x00040000):  int: 242675
-1963.    IREMPOW2 (8893427 % 0x00080000):  int: 504819
-1964.    IREMPOW2 (8893427 % 0x00100000):  int: 504819
-1965.    IREMPOW2 (8893427 % 0x00200000):  int: 504819
-1966.    IREMPOW2 (8893427 % 0x00400000):  int: 504819
-1967.    IREMPOW2 (8893427 % 0x00800000):  int: 504819
-1968.    IREMPOW2 (8893427 % 0x01000000):  int: 8893427
-1969.    IREMPOW2 (8893427 % 0x02000000):  int: 8893427
-1970.    IREMPOW2 (8893427 % 0x04000000):  int: 8893427
-1971.    IREMPOW2 (8893427 % 0x08000000):  int: 8893427
-1972.    IREMPOW2 (8893427 % 0x10000000):  int: 8893427
-1973.    IREMPOW2 (8893427 % 0x20000000):  int: 8893427
-1974.    IREMPOW2 (8893427 % 0x40000000):  int: 8893427
-1975.    IREMPOW2 (8893427 % 0x80000000):  int: 8893427
-1976.    IDIVPOW2 (1005234562 / 0x00000002):  int: 502617281
-1977.    IDIVPOW2 (1005234562 / 0x00000004):  int: 251308640
-1978.    IDIVPOW2 (1005234562 / 0x00000008):  int: 125654320
-1979.    IDIVPOW2 (1005234562 / 0x00000010):  int: 62827160
-1980.    IDIVPOW2 (1005234562 / 0x00000020):  int: 31413580
-1981.    IDIVPOW2 (1005234562 / 0x00000040):  int: 15706790
-1982.    IDIVPOW2 (1005234562 / 0x00000080):  int: 7853395
-1983.    IDIVPOW2 (1005234562 / 0x00000100):  int: 3926697
-1984.    IDIVPOW2 (1005234562 / 0x00000200):  int: 1963348
-1985.    IDIVPOW2 (1005234562 / 0x00000400):  int: 981674
-1986.    IDIVPOW2 (1005234562 / 0x00000800):  int: 490837
-1987.    IDIVPOW2 (1005234562 / 0x00001000):  int: 245418
-1988.    IDIVPOW2 (1005234562 / 0x00002000):  int: 122709
-1989.    IDIVPOW2 (1005234562 / 0x00004000):  int: 61354
-1990.    IDIVPOW2 (1005234562 / 0x00008000):  int: 30677
-1991.    IDIVPOW2 (1005234562 / 0x00010000):  int: 15338
-1992.    IDIVPOW2 (1005234562 / 0x00020000):  int: 7669
-1993.    IDIVPOW2 (1005234562 / 0x00040000):  int: 3834
-1994.    IDIVPOW2 (1005234562 / 0x00080000):  int: 1917
-1995.    IDIVPOW2 (1005234562 / 0x00100000):  int: 958
-1996.    IDIVPOW2 (1005234562 / 0x00200000):  int: 479
-1997.    IDIVPOW2 (1005234562 / 0x00400000):  int: 239
-1998.    IDIVPOW2 (1005234562 / 0x00800000):  int: 119
-1999.    IDIVPOW2 (1005234562 / 0x01000000):  int: 59
-2000.    IDIVPOW2 (1005234562 / 0x02000000):  int: 29
-2001.    IDIVPOW2 (1005234562 / 0x04000000):  int: 14
-2002.    IDIVPOW2 (1005234562 / 0x08000000):  int: 7
-2003.    IDIVPOW2 (1005234562 / 0x10000000):  int: 3
-2004.    IDIVPOW2 (1005234562 / 0x20000000):  int: 1
-2005.    IDIVPOW2 (1005234562 / 0x40000000):  int: 0
-2006.    IDIVPOW2 (1005234562 / 0x80000000):  int: 0
-2007.    IREMPOW2 (1005234562 % 0x00000002):  int: 0
-2008.    IREMPOW2 (1005234562 % 0x00000004):  int: 2
-2009.    IREMPOW2 (1005234562 % 0x00000008):  int: 2
-2010.    IREMPOW2 (1005234562 % 0x00000010):  int: 2
-2011.    IREMPOW2 (1005234562 % 0x00000020):  int: 2
-2012.    IREMPOW2 (1005234562 % 0x00000040):  int: 2
-2013.    IREMPOW2 (1005234562 % 0x00000080):  int: 2
-2014.    IREMPOW2 (1005234562 % 0x00000100):  int: 130
-2015.    IREMPOW2 (1005234562 % 0x00000200):  int: 386
-2016.    IREMPOW2 (1005234562 % 0x00000400):  int: 386
-2017.    IREMPOW2 (1005234562 % 0x00000800):  int: 386
-2018.    IREMPOW2 (1005234562 % 0x00001000):  int: 2434
-2019.    IREMPOW2 (1005234562 % 0x00002000):  int: 2434
-2020.    IREMPOW2 (1005234562 % 0x00004000):  int: 10626
-2021.    IREMPOW2 (1005234562 % 0x00008000):  int: 10626
-2022.    IREMPOW2 (1005234562 % 0x00010000):  int: 43394
-2023.    IREMPOW2 (1005234562 % 0x00020000):  int: 43394
-2024.    IREMPOW2 (1005234562 % 0x00040000):  int: 174466
-2025.    IREMPOW2 (1005234562 % 0x00080000):  int: 174466
-2026.    IREMPOW2 (1005234562 % 0x00100000):  int: 698754
-2027.    IREMPOW2 (1005234562 % 0x00200000):  int: 698754
-2028.    IREMPOW2 (1005234562 % 0x00400000):  int: 2795906
-2029.    IREMPOW2 (1005234562 % 0x00800000):  int: 6990210
-2030.    IREMPOW2 (1005234562 % 0x01000000):  int: 15378818
-2031.    IREMPOW2 (1005234562 % 0x02000000):  int: 32156034
-2032.    IREMPOW2 (1005234562 % 0x04000000):  int: 65710466
-2033.    IREMPOW2 (1005234562 % 0x08000000):  int: 65710466
-2034.    IREMPOW2 (1005234562 % 0x10000000):  int: 199928194
-2035.    IREMPOW2 (1005234562 % 0x20000000):  int: 468363650
-2036.    IREMPOW2 (1005234562 % 0x40000000):  int: 1005234562
-2037.    IREMPOW2 (1005234562 % 0x80000000):  int: 1005234562
-2038.    IDIVPOW2 (-17 / 0x00000002):  int: -8
-2039.    IDIVPOW2 (-17 / 0x00000004):  int: -4
-2040.    IDIVPOW2 (-17 / 0x00000008):  int: -2
-2041.    IDIVPOW2 (-17 / 0x00000010):  int: -1
-2042.    IDIVPOW2 (-17 / 0x00000020):  int: 0
-2043.    IDIVPOW2 (-17 / 0x00000040):  int: 0
-2044.    IDIVPOW2 (-17 / 0x00000080):  int: 0
-2045.    IDIVPOW2 (-17 / 0x00000100):  int: 0
-2046.    IDIVPOW2 (-17 / 0x00000200):  int: 0
-2047.    IDIVPOW2 (-17 / 0x00000400):  int: 0
-2048.    IDIVPOW2 (-17 / 0x00000800):  int: 0
-2049.    IDIVPOW2 (-17 / 0x00001000):  int: 0
-2050.    IDIVPOW2 (-17 / 0x00002000):  int: 0
-2051.    IDIVPOW2 (-17 / 0x00004000):  int: 0
-2052.    IDIVPOW2 (-17 / 0x00008000):  int: 0
-2053.    IDIVPOW2 (-17 / 0x00010000):  int: 0
-2054.    IDIVPOW2 (-17 / 0x00020000):  int: 0
-2055.    IDIVPOW2 (-17 / 0x00040000):  int: 0
-2056.    IDIVPOW2 (-17 / 0x00080000):  int: 0
-2057.    IDIVPOW2 (-17 / 0x00100000):  int: 0
-2058.    IDIVPOW2 (-17 / 0x00200000):  int: 0
-2059.    IDIVPOW2 (-17 / 0x00400000):  int: 0
-2060.    IDIVPOW2 (-17 / 0x00800000):  int: 0
-2061.    IDIVPOW2 (-17 / 0x01000000):  int: 0
-2062.    IDIVPOW2 (-17 / 0x02000000):  int: 0
-2063.    IDIVPOW2 (-17 / 0x04000000):  int: 0
-2064.    IDIVPOW2 (-17 / 0x08000000):  int: 0
-2065.    IDIVPOW2 (-17 / 0x10000000):  int: 0
-2066.    IDIVPOW2 (-17 / 0x20000000):  int: 0
-2067.    IDIVPOW2 (-17 / 0x40000000):  int: 0
-2068.    IDIVPOW2 (-17 / 0x80000000):  int: 0
-2069.    IREMPOW2 (-17 % 0x00000002):  int: -1
-2070.    IREMPOW2 (-17 % 0x00000004):  int: -1
-2071.    IREMPOW2 (-17 % 0x00000008):  int: -1
-2072.    IREMPOW2 (-17 % 0x00000010):  int: -1
-2073.    IREMPOW2 (-17 % 0x00000020):  int: -17
-2074.    IREMPOW2 (-17 % 0x00000040):  int: -17
-2075.    IREMPOW2 (-17 % 0x00000080):  int: -17
-2076.    IREMPOW2 (-17 % 0x00000100):  int: -17
-2077.    IREMPOW2 (-17 % 0x00000200):  int: -17
-2078.    IREMPOW2 (-17 % 0x00000400):  int: -17
-2079.    IREMPOW2 (-17 % 0x00000800):  int: -17
-2080.    IREMPOW2 (-17 % 0x00001000):  int: -17
-2081.    IREMPOW2 (-17 % 0x00002000):  int: -17
-2082.    IREMPOW2 (-17 % 0x00004000):  int: -17
-2083.    IREMPOW2 (-17 % 0x00008000):  int: -17
-2084.    IREMPOW2 (-17 % 0x00010000):  int: -17
-2085.    IREMPOW2 (-17 % 0x00020000):  int: -17
-2086.    IREMPOW2 (-17 % 0x00040000):  int: -17
-2087.    IREMPOW2 (-17 % 0x00080000):  int: -17
-2088.    IREMPOW2 (-17 % 0x00100000):  int: -17
-2089.    IREMPOW2 (-17 % 0x00200000):  int: -17
-2090.    IREMPOW2 (-17 % 0x00400000):  int: -17
-2091.    IREMPOW2 (-17 % 0x00800000):  int: -17
-2092.    IREMPOW2 (-17 % 0x01000000):  int: -17
-2093.    IREMPOW2 (-17 % 0x02000000):  int: -17
-2094.    IREMPOW2 (-17 % 0x04000000):  int: -17
-2095.    IREMPOW2 (-17 % 0x08000000):  int: -17
-2096.    IREMPOW2 (-17 % 0x10000000):  int: -17
-2097.    IREMPOW2 (-17 % 0x20000000):  int: -17
-2098.    IREMPOW2 (-17 % 0x40000000):  int: -17
-2099.    IREMPOW2 (-17 % 0x80000000):  int: -17
-2100.    IDIVPOW2 (-12347 / 0x00000002):  int: -6173
-2101.    IDIVPOW2 (-12347 / 0x00000004):  int: -3086
-2102.    IDIVPOW2 (-12347 / 0x00000008):  int: -1543
-2103.    IDIVPOW2 (-12347 / 0x00000010):  int: -771
-2104.    IDIVPOW2 (-12347 / 0x00000020):  int: -385
-2105.    IDIVPOW2 (-12347 / 0x00000040):  int: -192
-2106.    IDIVPOW2 (-12347 / 0x00000080):  int: -96
-2107.    IDIVPOW2 (-12347 / 0x00000100):  int: -48
-2108.    IDIVPOW2 (-12347 / 0x00000200):  int: -24
-2109.    IDIVPOW2 (-12347 / 0x00000400):  int: -12
-2110.    IDIVPOW2 (-12347 / 0x00000800):  int: -6
-2111.    IDIVPOW2 (-12347 / 0x00001000):  int: -3
-2112.    IDIVPOW2 (-12347 / 0x00002000):  int: -1
-2113.    IDIVPOW2 (-12347 / 0x00004000):  int: 0
-2114.    IDIVPOW2 (-12347 / 0x00008000):  int: 0
-2115.    IDIVPOW2 (-12347 / 0x00010000):  int: 0
-2116.    IDIVPOW2 (-12347 / 0x00020000):  int: 0
-2117.    IDIVPOW2 (-12347 / 0x00040000):  int: 0
-2118.    IDIVPOW2 (-12347 / 0x00080000):  int: 0
-2119.    IDIVPOW2 (-12347 / 0x00100000):  int: 0
-2120.    IDIVPOW2 (-12347 / 0x00200000):  int: 0
-2121.    IDIVPOW2 (-12347 / 0x00400000):  int: 0
-2122.    IDIVPOW2 (-12347 / 0x00800000):  int: 0
-2123.    IDIVPOW2 (-12347 / 0x01000000):  int: 0
-2124.    IDIVPOW2 (-12347 / 0x02000000):  int: 0
-2125.    IDIVPOW2 (-12347 / 0x04000000):  int: 0
-2126.    IDIVPOW2 (-12347 / 0x08000000):  int: 0
-2127.    IDIVPOW2 (-12347 / 0x10000000):  int: 0
-2128.    IDIVPOW2 (-12347 / 0x20000000):  int: 0
-2129.    IDIVPOW2 (-12347 / 0x40000000):  int: 0
-2130.    IDIVPOW2 (-12347 / 0x80000000):  int: 0
-2131.    IREMPOW2 (-12347 % 0x00000002):  int: -1
-2132.    IREMPOW2 (-12347 % 0x00000004):  int: -3
-2133.    IREMPOW2 (-12347 % 0x00000008):  int: -3
-2134.    IREMPOW2 (-12347 % 0x00000010):  int: -11
-2135.    IREMPOW2 (-12347 % 0x00000020):  int: -27
-2136.    IREMPOW2 (-12347 % 0x00000040):  int: -59
-2137.    IREMPOW2 (-12347 % 0x00000080):  int: -59
-2138.    IREMPOW2 (-12347 % 0x00000100):  int: -59
-2139.    IREMPOW2 (-12347 % 0x00000200):  int: -59
-2140.    IREMPOW2 (-12347 % 0x00000400):  int: -59
-2141.    IREMPOW2 (-12347 % 0x00000800):  int: -59
-2142.    IREMPOW2 (-12347 % 0x00001000):  int: -59
-2143.    IREMPOW2 (-12347 % 0x00002000):  int: -4155
-2144.    IREMPOW2 (-12347 % 0x00004000):  int: -12347
-2145.    IREMPOW2 (-12347 % 0x00008000):  int: -12347
-2146.    IREMPOW2 (-12347 % 0x00010000):  int: -12347
-2147.    IREMPOW2 (-12347 % 0x00020000):  int: -12347
-2148.    IREMPOW2 (-12347 % 0x00040000):  int: -12347
-2149.    IREMPOW2 (-12347 % 0x00080000):  int: -12347
-2150.    IREMPOW2 (-12347 % 0x00100000):  int: -12347
-2151.    IREMPOW2 (-12347 % 0x00200000):  int: -12347
-2152.    IREMPOW2 (-12347 % 0x00400000):  int: -12347
-2153.    IREMPOW2 (-12347 % 0x00800000):  int: -12347
-2154.    IREMPOW2 (-12347 % 0x01000000):  int: -12347
-2155.    IREMPOW2 (-12347 % 0x02000000):  int: -12347
-2156.    IREMPOW2 (-12347 % 0x04000000):  int: -12347
-2157.    IREMPOW2 (-12347 % 0x08000000):  int: -12347
-2158.    IREMPOW2 (-12347 % 0x10000000):  int: -12347
-2159.    IREMPOW2 (-12347 % 0x20000000):  int: -12347
-2160.    IREMPOW2 (-12347 % 0x40000000):  int: -12347
-2161.    IREMPOW2 (-12347 % 0x80000000):  int: -12347
-2162.    IDIVPOW2 (-8893427 / 0x00000002):  int: -4446713
-2163.    IDIVPOW2 (-8893427 / 0x00000004):  int: -2223356
-2164.    IDIVPOW2 (-8893427 / 0x00000008):  int: -1111678
-2165.    IDIVPOW2 (-8893427 / 0x00000010):  int: -555839
-2166.    IDIVPOW2 (-8893427 / 0x00000020):  int: -277919
-2167.    IDIVPOW2 (-8893427 / 0x00000040):  int: -138959
-2168.    IDIVPOW2 (-8893427 / 0x00000080):  int: -69479
-2169.    IDIVPOW2 (-8893427 / 0x00000100):  int: -34739
-2170.    IDIVPOW2 (-8893427 / 0x00000200):  int: -17369
-2171.    IDIVPOW2 (-8893427 / 0x00000400):  int: -8684
-2172.    IDIVPOW2 (-8893427 / 0x00000800):  int: -4342
-2173.    IDIVPOW2 (-8893427 / 0x00001000):  int: -2171
-2174.    IDIVPOW2 (-8893427 / 0x00002000):  int: -1085
-2175.    IDIVPOW2 (-8893427 / 0x00004000):  int: -542
-2176.    IDIVPOW2 (-8893427 / 0x00008000):  int: -271
-2177.    IDIVPOW2 (-8893427 / 0x00010000):  int: -135
-2178.    IDIVPOW2 (-8893427 / 0x00020000):  int: -67
-2179.    IDIVPOW2 (-8893427 / 0x00040000):  int: -33
-2180.    IDIVPOW2 (-8893427 / 0x00080000):  int: -16
-2181.    IDIVPOW2 (-8893427 / 0x00100000):  int: -8
-2182.    IDIVPOW2 (-8893427 / 0x00200000):  int: -4
-2183.    IDIVPOW2 (-8893427 / 0x00400000):  int: -2
-2184.    IDIVPOW2 (-8893427 / 0x00800000):  int: -1
-2185.    IDIVPOW2 (-8893427 / 0x01000000):  int: 0
-2186.    IDIVPOW2 (-8893427 / 0x02000000):  int: 0
-2187.    IDIVPOW2 (-8893427 / 0x04000000):  int: 0
-2188.    IDIVPOW2 (-8893427 / 0x08000000):  int: 0
-2189.    IDIVPOW2 (-8893427 / 0x10000000):  int: 0
-2190.    IDIVPOW2 (-8893427 / 0x20000000):  int: 0
-2191.    IDIVPOW2 (-8893427 / 0x40000000):  int: 0
-2192.    IDIVPOW2 (-8893427 / 0x80000000):  int: 0
-2193.    IREMPOW2 (-8893427 % 0x00000002):  int: -1
-2194.    IREMPOW2 (-8893427 % 0x00000004):  int: -3
-2195.    IREMPOW2 (-8893427 % 0x00000008):  int: -3
-2196.    IREMPOW2 (-8893427 % 0x00000010):  int: -3
-2197.    IREMPOW2 (-8893427 % 0x00000020):  int: -19
-2198.    IREMPOW2 (-8893427 % 0x00000040):  int: -51
-2199.    IREMPOW2 (-8893427 % 0x00000080):  int: -115
-2200.    IREMPOW2 (-8893427 % 0x00000100):  int: -243
-2201.    IREMPOW2 (-8893427 % 0x00000200):  int: -499
-2202.    IREMPOW2 (-8893427 % 0x00000400):  int: -1011
-2203.    IREMPOW2 (-8893427 % 0x00000800):  int: -1011
-2204.    IREMPOW2 (-8893427 % 0x00001000):  int: -1011
-2205.    IREMPOW2 (-8893427 % 0x00002000):  int: -5107
-2206.    IREMPOW2 (-8893427 % 0x00004000):  int: -13299
-2207.    IREMPOW2 (-8893427 % 0x00008000):  int: -13299
-2208.    IREMPOW2 (-8893427 % 0x00010000):  int: -46067
-2209.    IREMPOW2 (-8893427 % 0x00020000):  int: -111603
-2210.    IREMPOW2 (-8893427 % 0x00040000):  int: -242675
-2211.    IREMPOW2 (-8893427 % 0x00080000):  int: -504819
-2212.    IREMPOW2 (-8893427 % 0x00100000):  int: -504819
-2213.    IREMPOW2 (-8893427 % 0x00200000):  int: -504819
-2214.    IREMPOW2 (-8893427 % 0x00400000):  int: -504819
-2215.    IREMPOW2 (-8893427 % 0x00800000):  int: -504819
-2216.    IREMPOW2 (-8893427 % 0x01000000):  int: -8893427
-2217.    IREMPOW2 (-8893427 % 0x02000000):  int: -8893427
-2218.    IREMPOW2 (-8893427 % 0x04000000):  int: -8893427
-2219.    IREMPOW2 (-8893427 % 0x08000000):  int: -8893427
-2220.    IREMPOW2 (-8893427 % 0x10000000):  int: -8893427
-2221.    IREMPOW2 (-8893427 % 0x20000000):  int: -8893427
-2222.    IREMPOW2 (-8893427 % 0x40000000):  int: -8893427
-2223.    IREMPOW2 (-8893427 % 0x80000000):  int: -8893427
-2224.    IDIVPOW2 (-1005234562 / 0x00000002):  int: -502617281
-2225.    IDIVPOW2 (-1005234562 / 0x00000004):  int: -251308640
-2226.    IDIVPOW2 (-1005234562 / 0x00000008):  int: -125654320
-2227.    IDIVPOW2 (-1005234562 / 0x00000010):  int: -62827160
-2228.    IDIVPOW2 (-1005234562 / 0x00000020):  int: -31413580
-2229.    IDIVPOW2 (-1005234562 / 0x00000040):  int: -15706790
-2230.    IDIVPOW2 (-1005234562 / 0x00000080):  int: -7853395
-2231.    IDIVPOW2 (-1005234562 / 0x00000100):  int: -3926697
-2232.    IDIVPOW2 (-1005234562 / 0x00000200):  int: -1963348
-2233.    IDIVPOW2 (-1005234562 / 0x00000400):  int: -981674
-2234.    IDIVPOW2 (-1005234562 / 0x00000800):  int: -490837
-2235.    IDIVPOW2 (-1005234562 / 0x00001000):  int: -245418
-2236.    IDIVPOW2 (-1005234562 / 0x00002000):  int: -122709
-2237.    IDIVPOW2 (-1005234562 / 0x00004000):  int: -61354
-2238.    IDIVPOW2 (-1005234562 / 0x00008000):  int: -30677
-2239.    IDIVPOW2 (-1005234562 / 0x00010000):  int: -15338
-2240.    IDIVPOW2 (-1005234562 / 0x00020000):  int: -7669
-2241.    IDIVPOW2 (-1005234562 / 0x00040000):  int: -3834
-2242.    IDIVPOW2 (-1005234562 / 0x00080000):  int: -1917
-2243.    IDIVPOW2 (-1005234562 / 0x00100000):  int: -958
-2244.    IDIVPOW2 (-1005234562 / 0x00200000):  int: -479
-2245.    IDIVPOW2 (-1005234562 / 0x00400000):  int: -239
-2246.    IDIVPOW2 (-1005234562 / 0x00800000):  int: -119
-2247.    IDIVPOW2 (-1005234562 / 0x01000000):  int: -59
-2248.    IDIVPOW2 (-1005234562 / 0x02000000):  int: -29
-2249.    IDIVPOW2 (-1005234562 / 0x04000000):  int: -14
-2250.    IDIVPOW2 (-1005234562 / 0x08000000):  int: -7
-2251.    IDIVPOW2 (-1005234562 / 0x10000000):  int: -3
-2252.    IDIVPOW2 (-1005234562 / 0x20000000):  int: -1
-2253.    IDIVPOW2 (-1005234562 / 0x40000000):  int: 0
-2254.    IDIVPOW2 (-1005234562 / 0x80000000):  int: 0
-2255.    IREMPOW2 (-1005234562 % 0x00000002):  int: 0
-2256.    IREMPOW2 (-1005234562 % 0x00000004):  int: -2
-2257.    IREMPOW2 (-1005234562 % 0x00000008):  int: -2
-2258.    IREMPOW2 (-1005234562 % 0x00000010):  int: -2
-2259.    IREMPOW2 (-1005234562 % 0x00000020):  int: -2
-2260.    IREMPOW2 (-1005234562 % 0x00000040):  int: -2
-2261.    IREMPOW2 (-1005234562 % 0x00000080):  int: -2
-2262.    IREMPOW2 (-1005234562 % 0x00000100):  int: -130
-2263.    IREMPOW2 (-1005234562 % 0x00000200):  int: -386
-2264.    IREMPOW2 (-1005234562 % 0x00000400):  int: -386
-2265.    IREMPOW2 (-1005234562 % 0x00000800):  int: -386
-2266.    IREMPOW2 (-1005234562 % 0x00001000):  int: -2434
-2267.    IREMPOW2 (-1005234562 % 0x00002000):  int: -2434
-2268.    IREMPOW2 (-1005234562 % 0x00004000):  int: -10626
-2269.    IREMPOW2 (-1005234562 % 0x00008000):  int: -10626
-2270.    IREMPOW2 (-1005234562 % 0x00010000):  int: -43394
-2271.    IREMPOW2 (-1005234562 % 0x00020000):  int: -43394
-2272.    IREMPOW2 (-1005234562 % 0x00040000):  int: -174466
-2273.    IREMPOW2 (-1005234562 % 0x00080000):  int: -174466
-2274.    IREMPOW2 (-1005234562 % 0x00100000):  int: -698754
-2275.    IREMPOW2 (-1005234562 % 0x00200000):  int: -698754
-2276.    IREMPOW2 (-1005234562 % 0x00400000):  int: -2795906
-2277.    IREMPOW2 (-1005234562 % 0x00800000):  int: -6990210
-2278.    IREMPOW2 (-1005234562 % 0x01000000):  int: -15378818
-2279.    IREMPOW2 (-1005234562 % 0x02000000):  int: -32156034
-2280.    IREMPOW2 (-1005234562 % 0x04000000):  int: -65710466
-2281.    IREMPOW2 (-1005234562 % 0x08000000):  int: -65710466
-2282.    IREMPOW2 (-1005234562 % 0x10000000):  int: -199928194
-2283.    IREMPOW2 (-1005234562 % 0x20000000):  int: -468363650
-2284.    IREMPOW2 (-1005234562 % 0x40000000):  int: -1005234562
-2285.    IREMPOW2 (-1005234562 % 0x80000000):  int: -1005234562
-2286.    LDIVPOW2 (17 / 0x00000002):  long: 8
-2287.    LDIVPOW2 (17 / 0x00000004):  long: 4
-2288.    LDIVPOW2 (17 / 0x00000008):  long: 2
-2289.    LDIVPOW2 (17 / 0x00000010):  long: 1
-2290.    LDIVPOW2 (17 / 0x00000020):  long: 0
-2291.    LDIVPOW2 (17 / 0x00000040):  long: 0
-2292.    LDIVPOW2 (17 / 0x00000080):  long: 0
-2293.    LDIVPOW2 (17 / 0x00000100):  long: 0
-2294.    LDIVPOW2 (17 / 0x00000200):  long: 0
-2295.    LDIVPOW2 (17 / 0x00000400):  long: 0
-2296.    LDIVPOW2 (17 / 0x00000800):  long: 0
-2297.    LDIVPOW2 (17 / 0x00001000):  long: 0
-2298.    LDIVPOW2 (17 / 0x00002000):  long: 0
-2299.    LDIVPOW2 (17 / 0x00004000):  long: 0
-2300.    LDIVPOW2 (17 / 0x00008000):  long: 0
-2301.    LDIVPOW2 (17 / 0x00010000):  long: 0
-2302.    LDIVPOW2 (17 / 0x00020000):  long: 0
-2303.    LDIVPOW2 (17 / 0x00040000):  long: 0
-2304.    LDIVPOW2 (17 / 0x00080000):  long: 0
-2305.    LDIVPOW2 (17 / 0x00100000):  long: 0
-2306.    LDIVPOW2 (17 / 0x00200000):  long: 0
-2307.    LDIVPOW2 (17 / 0x00400000):  long: 0
-2308.    LDIVPOW2 (17 / 0x00800000):  long: 0
-2309.    LDIVPOW2 (17 / 0x01000000):  long: 0
-2310.    LDIVPOW2 (17 / 0x02000000):  long: 0
-2311.    LDIVPOW2 (17 / 0x04000000):  long: 0
-2312.    LDIVPOW2 (17 / 0x08000000):  long: 0
-2313.    LDIVPOW2 (17 / 0x10000000):  long: 0
-2314.    LDIVPOW2 (17 / 0x20000000):  long: 0
-2315.    LDIVPOW2 (17 / 0x40000000):  long: 0
-2316.    LDIVPOW2 (17 / 0x80000000):  long: 0
-2317.    LREMPOW2 (17 % 0x00000002):  long: 1
-2318.    LREMPOW2 (17 % 0x00000004):  long: 1
-2319.    LREMPOW2 (17 % 0x00000008):  long: 1
-2320.    LREMPOW2 (17 % 0x00000010):  long: 1
-2321.    LREMPOW2 (17 % 0x00000020):  long: 17
-2322.    LREMPOW2 (17 % 0x00000040):  long: 17
-2323.    LREMPOW2 (17 % 0x00000080):  long: 17
-2324.    LREMPOW2 (17 % 0x00000100):  long: 17
-2325.    LREMPOW2 (17 % 0x00000200):  long: 17
-2326.    LREMPOW2 (17 % 0x00000400):  long: 17
-2327.    LREMPOW2 (17 % 0x00000800):  long: 17
-2328.    LREMPOW2 (17 % 0x00001000):  long: 17
-2329.    LREMPOW2 (17 % 0x00002000):  long: 17
-2330.    LREMPOW2 (17 % 0x00004000):  long: 17
-2331.    LREMPOW2 (17 % 0x00008000):  long: 17
-2332.    LREMPOW2 (17 % 0x00010000):  long: 17
-2333.    LREMPOW2 (17 % 0x00020000):  long: 17
-2334.    LREMPOW2 (17 % 0x00040000):  long: 17
-2335.    LREMPOW2 (17 % 0x00080000):  long: 17
-2336.    LREMPOW2 (17 % 0x00100000):  long: 17
-2337.    LREMPOW2 (17 % 0x00200000):  long: 17
-2338.    LREMPOW2 (17 % 0x00400000):  long: 17
-2339.    LREMPOW2 (17 % 0x00800000):  long: 17
-2340.    LREMPOW2 (17 % 0x01000000):  long: 17
-2341.    LREMPOW2 (17 % 0x02000000):  long: 17
-2342.    LREMPOW2 (17 % 0x04000000):  long: 17
-2343.    LREMPOW2 (17 % 0x08000000):  long: 17
-2344.    LREMPOW2 (17 % 0x10000000):  long: 17
-2345.    LREMPOW2 (17 % 0x20000000):  long: 17
-2346.    LREMPOW2 (17 % 0x40000000):  long: 17
-2347.    LREMPOW2 (17 % 0x80000000):  long: 17
-2348.    LDIVPOW2 (12347 / 0x00000002):  long: 6173
-2349.    LDIVPOW2 (12347 / 0x00000004):  long: 3086
-2350.    LDIVPOW2 (12347 / 0x00000008):  long: 1543
-2351.    LDIVPOW2 (12347 / 0x00000010):  long: 771
-2352.    LDIVPOW2 (12347 / 0x00000020):  long: 385
-2353.    LDIVPOW2 (12347 / 0x00000040):  long: 192
-2354.    LDIVPOW2 (12347 / 0x00000080):  long: 96
-2355.    LDIVPOW2 (12347 / 0x00000100):  long: 48
-2356.    LDIVPOW2 (12347 / 0x00000200):  long: 24
-2357.    LDIVPOW2 (12347 / 0x00000400):  long: 12
-2358.    LDIVPOW2 (12347 / 0x00000800):  long: 6
-2359.    LDIVPOW2 (12347 / 0x00001000):  long: 3
-2360.    LDIVPOW2 (12347 / 0x00002000):  long: 1
-2361.    LDIVPOW2 (12347 / 0x00004000):  long: 0
-2362.    LDIVPOW2 (12347 / 0x00008000):  long: 0
-2363.    LDIVPOW2 (12347 / 0x00010000):  long: 0
-2364.    LDIVPOW2 (12347 / 0x00020000):  long: 0
-2365.    LDIVPOW2 (12347 / 0x00040000):  long: 0
-2366.    LDIVPOW2 (12347 / 0x00080000):  long: 0
-2367.    LDIVPOW2 (12347 / 0x00100000):  long: 0
-2368.    LDIVPOW2 (12347 / 0x00200000):  long: 0
-2369.    LDIVPOW2 (12347 / 0x00400000):  long: 0
-2370.    LDIVPOW2 (12347 / 0x00800000):  long: 0
-2371.    LDIVPOW2 (12347 / 0x01000000):  long: 0
-2372.    LDIVPOW2 (12347 / 0x02000000):  long: 0
-2373.    LDIVPOW2 (12347 / 0x04000000):  long: 0
-2374.    LDIVPOW2 (12347 / 0x08000000):  long: 0
-2375.    LDIVPOW2 (12347 / 0x10000000):  long: 0
-2376.    LDIVPOW2 (12347 / 0x20000000):  long: 0
-2377.    LDIVPOW2 (12347 / 0x40000000):  long: 0
-2378.    LDIVPOW2 (12347 / 0x80000000):  long: 0
-2379.    LREMPOW2 (12347 % 0x00000002):  long: 1
-2380.    LREMPOW2 (12347 % 0x00000004):  long: 3
-2381.    LREMPOW2 (12347 % 0x00000008):  long: 3
-2382.    LREMPOW2 (12347 % 0x00000010):  long: 11
-2383.    LREMPOW2 (12347 % 0x00000020):  long: 27
-2384.    LREMPOW2 (12347 % 0x00000040):  long: 59
-2385.    LREMPOW2 (12347 % 0x00000080):  long: 59
-2386.    LREMPOW2 (12347 % 0x00000100):  long: 59
-2387.    LREMPOW2 (12347 % 0x00000200):  long: 59
-2388.    LREMPOW2 (12347 % 0x00000400):  long: 59
-2389.    LREMPOW2 (12347 % 0x00000800):  long: 59
-2390.    LREMPOW2 (12347 % 0x00001000):  long: 59
-2391.    LREMPOW2 (12347 % 0x00002000):  long: 4155
-2392.    LREMPOW2 (12347 % 0x00004000):  long: 12347
-2393.    LREMPOW2 (12347 % 0x00008000):  long: 12347
-2394.    LREMPOW2 (12347 % 0x00010000):  long: 12347
-2395.    LREMPOW2 (12347 % 0x00020000):  long: 12347
-2396.    LREMPOW2 (12347 % 0x00040000):  long: 12347
-2397.    LREMPOW2 (12347 % 0x00080000):  long: 12347
-2398.    LREMPOW2 (12347 % 0x00100000):  long: 12347
-2399.    LREMPOW2 (12347 % 0x00200000):  long: 12347
-2400.    LREMPOW2 (12347 % 0x00400000):  long: 12347
-2401.    LREMPOW2 (12347 % 0x00800000):  long: 12347
-2402.    LREMPOW2 (12347 % 0x01000000):  long: 12347
-2403.    LREMPOW2 (12347 % 0x02000000):  long: 12347
-2404.    LREMPOW2 (12347 % 0x04000000):  long: 12347
-2405.    LREMPOW2 (12347 % 0x08000000):  long: 12347
-2406.    LREMPOW2 (12347 % 0x10000000):  long: 12347
-2407.    LREMPOW2 (12347 % 0x20000000):  long: 12347
-2408.    LREMPOW2 (12347 % 0x40000000):  long: 12347
-2409.    LREMPOW2 (12347 % 0x80000000):  long: 12347
-2410.    LDIVPOW2 (8893427 / 0x00000002):  long: 4446713
-2411.    LDIVPOW2 (8893427 / 0x00000004):  long: 2223356
-2412.    LDIVPOW2 (8893427 / 0x00000008):  long: 1111678
-2413.    LDIVPOW2 (8893427 / 0x00000010):  long: 555839
-2414.    LDIVPOW2 (8893427 / 0x00000020):  long: 277919
-2415.    LDIVPOW2 (8893427 / 0x00000040):  long: 138959
-2416.    LDIVPOW2 (8893427 / 0x00000080):  long: 69479
-2417.    LDIVPOW2 (8893427 / 0x00000100):  long: 34739
-2418.    LDIVPOW2 (8893427 / 0x00000200):  long: 17369
-2419.    LDIVPOW2 (8893427 / 0x00000400):  long: 8684
-2420.    LDIVPOW2 (8893427 / 0x00000800):  long: 4342
-2421.    LDIVPOW2 (8893427 / 0x00001000):  long: 2171
-2422.    LDIVPOW2 (8893427 / 0x00002000):  long: 1085
-2423.    LDIVPOW2 (8893427 / 0x00004000):  long: 542
-2424.    LDIVPOW2 (8893427 / 0x00008000):  long: 271
-2425.    LDIVPOW2 (8893427 / 0x00010000):  long: 135
-2426.    LDIVPOW2 (8893427 / 0x00020000):  long: 67
-2427.    LDIVPOW2 (8893427 / 0x00040000):  long: 33
-2428.    LDIVPOW2 (8893427 / 0x00080000):  long: 16
-2429.    LDIVPOW2 (8893427 / 0x00100000):  long: 8
-2430.    LDIVPOW2 (8893427 / 0x00200000):  long: 4
-2431.    LDIVPOW2 (8893427 / 0x00400000):  long: 2
-2432.    LDIVPOW2 (8893427 / 0x00800000):  long: 1
-2433.    LDIVPOW2 (8893427 / 0x01000000):  long: 0
-2434.    LDIVPOW2 (8893427 / 0x02000000):  long: 0
-2435.    LDIVPOW2 (8893427 / 0x04000000):  long: 0
-2436.    LDIVPOW2 (8893427 / 0x08000000):  long: 0
-2437.    LDIVPOW2 (8893427 / 0x10000000):  long: 0
-2438.    LDIVPOW2 (8893427 / 0x20000000):  long: 0
-2439.    LDIVPOW2 (8893427 / 0x40000000):  long: 0
-2440.    LDIVPOW2 (8893427 / 0x80000000):  long: 0
-2441.    LREMPOW2 (8893427 % 0x00000002):  long: 1
-2442.    LREMPOW2 (8893427 % 0x00000004):  long: 3
-2443.    LREMPOW2 (8893427 % 0x00000008):  long: 3
-2444.    LREMPOW2 (8893427 % 0x00000010):  long: 3
-2445.    LREMPOW2 (8893427 % 0x00000020):  long: 19
-2446.    LREMPOW2 (8893427 % 0x00000040):  long: 51
-2447.    LREMPOW2 (8893427 % 0x00000080):  long: 115
-2448.    LREMPOW2 (8893427 % 0x00000100):  long: 243
-2449.    LREMPOW2 (8893427 % 0x00000200):  long: 499
-2450.    LREMPOW2 (8893427 % 0x00000400):  long: 1011
-2451.    LREMPOW2 (8893427 % 0x00000800):  long: 1011
-2452.    LREMPOW2 (8893427 % 0x00001000):  long: 1011
-2453.    LREMPOW2 (8893427 % 0x00002000):  long: 5107
-2454.    LREMPOW2 (8893427 % 0x00004000):  long: 13299
-2455.    LREMPOW2 (8893427 % 0x00008000):  long: 13299
-2456.    LREMPOW2 (8893427 % 0x00010000):  long: 46067
-2457.    LREMPOW2 (8893427 % 0x00020000):  long: 111603
-2458.    LREMPOW2 (8893427 % 0x00040000):  long: 242675
-2459.    LREMPOW2 (8893427 % 0x00080000):  long: 504819
-2460.    LREMPOW2 (8893427 % 0x00100000):  long: 504819
-2461.    LREMPOW2 (8893427 % 0x00200000):  long: 504819
-2462.    LREMPOW2 (8893427 % 0x00400000):  long: 504819
-2463.    LREMPOW2 (8893427 % 0x00800000):  long: 504819
-2464.    LREMPOW2 (8893427 % 0x01000000):  long: 8893427
-2465.    LREMPOW2 (8893427 % 0x02000000):  long: 8893427
-2466.    LREMPOW2 (8893427 % 0x04000000):  long: 8893427
-2467.    LREMPOW2 (8893427 % 0x08000000):  long: 8893427
-2468.    LREMPOW2 (8893427 % 0x10000000):  long: 8893427
-2469.    LREMPOW2 (8893427 % 0x20000000):  long: 8893427
-2470.    LREMPOW2 (8893427 % 0x40000000):  long: 8893427
-2471.    LREMPOW2 (8893427 % 0x80000000):  long: 8893427
-2472.    LDIVPOW2 (1005234562 / 0x00000002):  long: 502617281
-2473.    LDIVPOW2 (1005234562 / 0x00000004):  long: 251308640
-2474.    LDIVPOW2 (1005234562 / 0x00000008):  long: 125654320
-2475.    LDIVPOW2 (1005234562 / 0x00000010):  long: 62827160
-2476.    LDIVPOW2 (1005234562 / 0x00000020):  long: 31413580
-2477.    LDIVPOW2 (1005234562 / 0x00000040):  long: 15706790
-2478.    LDIVPOW2 (1005234562 / 0x00000080):  long: 7853395
-2479.    LDIVPOW2 (1005234562 / 0x00000100):  long: 3926697
-2480.    LDIVPOW2 (1005234562 / 0x00000200):  long: 1963348
-2481.    LDIVPOW2 (1005234562 / 0x00000400):  long: 981674
-2482.    LDIVPOW2 (1005234562 / 0x00000800):  long: 490837
-2483.    LDIVPOW2 (1005234562 / 0x00001000):  long: 245418
-2484.    LDIVPOW2 (1005234562 / 0x00002000):  long: 122709
-2485.    LDIVPOW2 (1005234562 / 0x00004000):  long: 61354
-2486.    LDIVPOW2 (1005234562 / 0x00008000):  long: 30677
-2487.    LDIVPOW2 (1005234562 / 0x00010000):  long: 15338
-2488.    LDIVPOW2 (1005234562 / 0x00020000):  long: 7669
-2489.    LDIVPOW2 (1005234562 / 0x00040000):  long: 3834
-2490.    LDIVPOW2 (1005234562 / 0x00080000):  long: 1917
-2491.    LDIVPOW2 (1005234562 / 0x00100000):  long: 958
-2492.    LDIVPOW2 (1005234562 / 0x00200000):  long: 479
-2493.    LDIVPOW2 (1005234562 / 0x00400000):  long: 239
-2494.    LDIVPOW2 (1005234562 / 0x00800000):  long: 119
-2495.    LDIVPOW2 (1005234562 / 0x01000000):  long: 59
-2496.    LDIVPOW2 (1005234562 / 0x02000000):  long: 29
-2497.    LDIVPOW2 (1005234562 / 0x04000000):  long: 14
-2498.    LDIVPOW2 (1005234562 / 0x08000000):  long: 7
-2499.    LDIVPOW2 (1005234562 / 0x10000000):  long: 3
-2500.    LDIVPOW2 (1005234562 / 0x20000000):  long: 1
-2501.    LDIVPOW2 (1005234562 / 0x40000000):  long: 0
-2502.    LDIVPOW2 (1005234562 / 0x80000000):  long: 0
-2503.    LREMPOW2 (1005234562 % 0x00000002):  long: 0
-2504.    LREMPOW2 (1005234562 % 0x00000004):  long: 2
-2505.    LREMPOW2 (1005234562 % 0x00000008):  long: 2
-2506.    LREMPOW2 (1005234562 % 0x00000010):  long: 2
-2507.    LREMPOW2 (1005234562 % 0x00000020):  long: 2
-2508.    LREMPOW2 (1005234562 % 0x00000040):  long: 2
-2509.    LREMPOW2 (1005234562 % 0x00000080):  long: 2
-2510.    LREMPOW2 (1005234562 % 0x00000100):  long: 130
-2511.    LREMPOW2 (1005234562 % 0x00000200):  long: 386
-2512.    LREMPOW2 (1005234562 % 0x00000400):  long: 386
-2513.    LREMPOW2 (1005234562 % 0x00000800):  long: 386
-2514.    LREMPOW2 (1005234562 % 0x00001000):  long: 2434
-2515.    LREMPOW2 (1005234562 % 0x00002000):  long: 2434
-2516.    LREMPOW2 (1005234562 % 0x00004000):  long: 10626
-2517.    LREMPOW2 (1005234562 % 0x00008000):  long: 10626
-2518.    LREMPOW2 (1005234562 % 0x00010000):  long: 43394
-2519.    LREMPOW2 (1005234562 % 0x00020000):  long: 43394
-2520.    LREMPOW2 (1005234562 % 0x00040000):  long: 174466
-2521.    LREMPOW2 (1005234562 % 0x00080000):  long: 174466
-2522.    LREMPOW2 (1005234562 % 0x00100000):  long: 698754
-2523.    LREMPOW2 (1005234562 % 0x00200000):  long: 698754
-2524.    LREMPOW2 (1005234562 % 0x00400000):  long: 2795906
-2525.    LREMPOW2 (1005234562 % 0x00800000):  long: 6990210
-2526.    LREMPOW2 (1005234562 % 0x01000000):  long: 15378818
-2527.    LREMPOW2 (1005234562 % 0x02000000):  long: 32156034
-2528.    LREMPOW2 (1005234562 % 0x04000000):  long: 65710466
-2529.    LREMPOW2 (1005234562 % 0x08000000):  long: 65710466
-2530.    LREMPOW2 (1005234562 % 0x10000000):  long: 199928194
-2531.    LREMPOW2 (1005234562 % 0x20000000):  long: 468363650
-2532.    LREMPOW2 (1005234562 % 0x40000000):  long: 1005234562
-2533.    LREMPOW2 (1005234562 % 0x80000000):  long: 1005234562
-2534.    LDIVPOW2 (12135005234562 / 0x00000002):  long: 6067502617281
-2535.    LDIVPOW2 (12135005234562 / 0x00000004):  long: 3033751308640
-2536.    LDIVPOW2 (12135005234562 / 0x00000008):  long: 1516875654320
-2537.    LDIVPOW2 (12135005234562 / 0x00000010):  long: 758437827160
-2538.    LDIVPOW2 (12135005234562 / 0x00000020):  long: 379218913580
-2539.    LDIVPOW2 (12135005234562 / 0x00000040):  long: 189609456790
-2540.    LDIVPOW2 (12135005234562 / 0x00000080):  long: 94804728395
-2541.    LDIVPOW2 (12135005234562 / 0x00000100):  long: 47402364197
-2542.    LDIVPOW2 (12135005234562 / 0x00000200):  long: 23701182098
-2543.    LDIVPOW2 (12135005234562 / 0x00000400):  long: 11850591049
-2544.    LDIVPOW2 (12135005234562 / 0x00000800):  long: 5925295524
-2545.    LDIVPOW2 (12135005234562 / 0x00001000):  long: 2962647762
-2546.    LDIVPOW2 (12135005234562 / 0x00002000):  long: 1481323881
-2547.    LDIVPOW2 (12135005234562 / 0x00004000):  long: 740661940
-2548.    LDIVPOW2 (12135005234562 / 0x00008000):  long: 370330970
-2549.    LDIVPOW2 (12135005234562 / 0x00010000):  long: 185165485
-2550.    LDIVPOW2 (12135005234562 / 0x00020000):  long: 92582742
-2551.    LDIVPOW2 (12135005234562 / 0x00040000):  long: 46291371
-2552.    LDIVPOW2 (12135005234562 / 0x00080000):  long: 23145685
-2553.    LDIVPOW2 (12135005234562 / 0x00100000):  long: 11572842
-2554.    LDIVPOW2 (12135005234562 / 0x00200000):  long: 5786421
-2555.    LDIVPOW2 (12135005234562 / 0x00400000):  long: 2893210
-2556.    LDIVPOW2 (12135005234562 / 0x00800000):  long: 1446605
-2557.    LDIVPOW2 (12135005234562 / 0x01000000):  long: 723302
-2558.    LDIVPOW2 (12135005234562 / 0x02000000):  long: 361651
-2559.    LDIVPOW2 (12135005234562 / 0x04000000):  long: 180825
-2560.    LDIVPOW2 (12135005234562 / 0x08000000):  long: 90412
-2561.    LDIVPOW2 (12135005234562 / 0x10000000):  long: 45206
-2562.    LDIVPOW2 (12135005234562 / 0x20000000):  long: 22603
-2563.    LDIVPOW2 (12135005234562 / 0x40000000):  long: 11301
-2564.    LDIVPOW2 (12135005234562 / 0x80000000):  long: -5650
-2565.    LREMPOW2 (12135005234562 % 0x00000002):  long: 0
-2566.    LREMPOW2 (12135005234562 % 0x00000004):  long: 2
-2567.    LREMPOW2 (12135005234562 % 0x00000008):  long: 2
-2568.    LREMPOW2 (12135005234562 % 0x00000010):  long: 2
-2569.    LREMPOW2 (12135005234562 % 0x00000020):  long: 2
-2570.    LREMPOW2 (12135005234562 % 0x00000040):  long: 2
-2571.    LREMPOW2 (12135005234562 % 0x00000080):  long: 2
-2572.    LREMPOW2 (12135005234562 % 0x00000100):  long: 130
-2573.    LREMPOW2 (12135005234562 % 0x00000200):  long: 386
-2574.    LREMPOW2 (12135005234562 % 0x00000400):  long: 386
-2575.    LREMPOW2 (12135005234562 % 0x00000800):  long: 1410
-2576.    LREMPOW2 (12135005234562 % 0x00001000):  long: 1410
-2577.    LREMPOW2 (12135005234562 % 0x00002000):  long: 1410
-2578.    LREMPOW2 (12135005234562 % 0x00004000):  long: 9602
-2579.    LREMPOW2 (12135005234562 % 0x00008000):  long: 9602
-2580.    LREMPOW2 (12135005234562 % 0x00010000):  long: 9602
-2581.    LREMPOW2 (12135005234562 % 0x00020000):  long: 75138
-2582.    LREMPOW2 (12135005234562 % 0x00040000):  long: 75138
-2583.    LREMPOW2 (12135005234562 % 0x00080000):  long: 337282
-2584.    LREMPOW2 (12135005234562 % 0x00100000):  long: 861570
-2585.    LREMPOW2 (12135005234562 % 0x00200000):  long: 861570
-2586.    LREMPOW2 (12135005234562 % 0x00400000):  long: 2958722
-2587.    LREMPOW2 (12135005234562 % 0x00800000):  long: 2958722
-2588.    LREMPOW2 (12135005234562 % 0x01000000):  long: 11347330
-2589.    LREMPOW2 (12135005234562 % 0x02000000):  long: 11347330
-2590.    LREMPOW2 (12135005234562 % 0x04000000):  long: 44901762
-2591.    LREMPOW2 (12135005234562 % 0x08000000):  long: 112010626
-2592.    LREMPOW2 (12135005234562 % 0x10000000):  long: 112010626
-2593.    LREMPOW2 (12135005234562 % 0x20000000):  long: 112010626
-2594.    LREMPOW2 (12135005234562 % 0x40000000):  long: 648881538
-2595.    LREMPOW2 (12135005234562 % 0x80000000):  long: 1722623362
-2596.    LDIVPOW2 (2343552355623464626 / 0x00000002):  long: 1171776177811732313
-2597.    LDIVPOW2 (2343552355623464626 / 0x00000004):  long: 585888088905866156
-2598.    LDIVPOW2 (2343552355623464626 / 0x00000008):  long: 292944044452933078
-2599.    LDIVPOW2 (2343552355623464626 / 0x00000010):  long: 146472022226466539
-2600.    LDIVPOW2 (2343552355623464626 / 0x00000020):  long: 73236011113233269
-2601.    LDIVPOW2 (2343552355623464626 / 0x00000040):  long: 36618005556616634
-2602.    LDIVPOW2 (2343552355623464626 / 0x00000080):  long: 18309002778308317
-2603.    LDIVPOW2 (2343552355623464626 / 0x00000100):  long: 9154501389154158
-2604.    LDIVPOW2 (2343552355623464626 / 0x00000200):  long: 4577250694577079
-2605.    LDIVPOW2 (2343552355623464626 / 0x00000400):  long: 2288625347288539
-2606.    LDIVPOW2 (2343552355623464626 / 0x00000800):  long: 1144312673644269
-2607.    LDIVPOW2 (2343552355623464626 / 0x00001000):  long: 572156336822134
-2608.    LDIVPOW2 (2343552355623464626 / 0x00002000):  long: 286078168411067
-2609.    LDIVPOW2 (2343552355623464626 / 0x00004000):  long: 143039084205533
-2610.    LDIVPOW2 (2343552355623464626 / 0x00008000):  long: 71519542102766
-2611.    LDIVPOW2 (2343552355623464626 / 0x00010000):  long: 35759771051383
-2612.    LDIVPOW2 (2343552355623464626 / 0x00020000):  long: 17879885525691
-2613.    LDIVPOW2 (2343552355623464626 / 0x00040000):  long: 8939942762845
-2614.    LDIVPOW2 (2343552355623464626 / 0x00080000):  long: 4469971381422
-2615.    LDIVPOW2 (2343552355623464626 / 0x00100000):  long: 2234985690711
-2616.    LDIVPOW2 (2343552355623464626 / 0x00200000):  long: 1117492845355
-2617.    LDIVPOW2 (2343552355623464626 / 0x00400000):  long: 558746422677
-2618.    LDIVPOW2 (2343552355623464626 / 0x00800000):  long: 279373211338
-2619.    LDIVPOW2 (2343552355623464626 / 0x01000000):  long: 139686605669
-2620.    LDIVPOW2 (2343552355623464626 / 0x02000000):  long: 69843302834
-2621.    LDIVPOW2 (2343552355623464626 / 0x04000000):  long: 34921651417
-2622.    LDIVPOW2 (2343552355623464626 / 0x08000000):  long: 17460825708
-2623.    LDIVPOW2 (2343552355623464626 / 0x10000000):  long: 8730412854
-2624.    LDIVPOW2 (2343552355623464626 / 0x20000000):  long: 4365206427
-2625.    LDIVPOW2 (2343552355623464626 / 0x40000000):  long: 2182603213
-2626.    LDIVPOW2 (2343552355623464626 / 0x80000000):  long: -1091301606
-2627.    LREMPOW2 (2343552355623464626 % 0x00000002):  long: 0
-2628.    LREMPOW2 (2343552355623464626 % 0x00000004):  long: 2
-2629.    LREMPOW2 (2343552355623464626 % 0x00000008):  long: 2
-2630.    LREMPOW2 (2343552355623464626 % 0x00000010):  long: 2
-2631.    LREMPOW2 (2343552355623464626 % 0x00000020):  long: 18
-2632.    LREMPOW2 (2343552355623464626 % 0x00000040):  long: 50
-2633.    LREMPOW2 (2343552355623464626 % 0x00000080):  long: 50
-2634.    LREMPOW2 (2343552355623464626 % 0x00000100):  long: 178
-2635.    LREMPOW2 (2343552355623464626 % 0x00000200):  long: 178
-2636.    LREMPOW2 (2343552355623464626 % 0x00000400):  long: 690
-2637.    LREMPOW2 (2343552355623464626 % 0x00000800):  long: 1714
-2638.    LREMPOW2 (2343552355623464626 % 0x00001000):  long: 3762
-2639.    LREMPOW2 (2343552355623464626 % 0x00002000):  long: 3762
-2640.    LREMPOW2 (2343552355623464626 % 0x00004000):  long: 11954
-2641.    LREMPOW2 (2343552355623464626 % 0x00008000):  long: 28338
-2642.    LREMPOW2 (2343552355623464626 % 0x00010000):  long: 28338
-2643.    LREMPOW2 (2343552355623464626 % 0x00020000):  long: 93874
-2644.    LREMPOW2 (2343552355623464626 % 0x00040000):  long: 224946
-2645.    LREMPOW2 (2343552355623464626 % 0x00080000):  long: 487090
-2646.    LREMPOW2 (2343552355623464626 % 0x00100000):  long: 487090
-2647.    LREMPOW2 (2343552355623464626 % 0x00200000):  long: 1535666
-2648.    LREMPOW2 (2343552355623464626 % 0x00400000):  long: 3632818
-2649.    LREMPOW2 (2343552355623464626 % 0x00800000):  long: 7827122
-2650.    LREMPOW2 (2343552355623464626 % 0x01000000):  long: 7827122
-2651.    LREMPOW2 (2343552355623464626 % 0x02000000):  long: 24604338
-2652.    LREMPOW2 (2343552355623464626 % 0x04000000):  long: 24604338
-2653.    LREMPOW2 (2343552355623464626 % 0x08000000):  long: 91713202
-2654.    LREMPOW2 (2343552355623464626 % 0x10000000):  long: 91713202
-2655.    LREMPOW2 (2343552355623464626 % 0x20000000):  long: 91713202
-2656.    LREMPOW2 (2343552355623464626 % 0x40000000):  long: 628584114
-2657.    LREMPOW2 (2343552355623464626 % 0x80000000):  long: 1702325938
-2658.    LDIVPOW2 (-17 / 0x00000002):  long: -8
-2659.    LDIVPOW2 (-17 / 0x00000004):  long: -4
-2660.    LDIVPOW2 (-17 / 0x00000008):  long: -2
-2661.    LDIVPOW2 (-17 / 0x00000010):  long: -1
-2662.    LDIVPOW2 (-17 / 0x00000020):  long: 0
-2663.    LDIVPOW2 (-17 / 0x00000040):  long: 0
-2664.    LDIVPOW2 (-17 / 0x00000080):  long: 0
-2665.    LDIVPOW2 (-17 / 0x00000100):  long: 0
-2666.    LDIVPOW2 (-17 / 0x00000200):  long: 0
-2667.    LDIVPOW2 (-17 / 0x00000400):  long: 0
-2668.    LDIVPOW2 (-17 / 0x00000800):  long: 0
-2669.    LDIVPOW2 (-17 / 0x00001000):  long: 0
-2670.    LDIVPOW2 (-17 / 0x00002000):  long: 0
-2671.    LDIVPOW2 (-17 / 0x00004000):  long: 0
-2672.    LDIVPOW2 (-17 / 0x00008000):  long: 0
-2673.    LDIVPOW2 (-17 / 0x00010000):  long: 0
-2674.    LDIVPOW2 (-17 / 0x00020000):  long: 0
-2675.    LDIVPOW2 (-17 / 0x00040000):  long: 0
-2676.    LDIVPOW2 (-17 / 0x00080000):  long: 0
-2677.    LDIVPOW2 (-17 / 0x00100000):  long: 0
-2678.    LDIVPOW2 (-17 / 0x00200000):  long: 0
-2679.    LDIVPOW2 (-17 / 0x00400000):  long: 0
-2680.    LDIVPOW2 (-17 / 0x00800000):  long: 0
-2681.    LDIVPOW2 (-17 / 0x01000000):  long: 0
-2682.    LDIVPOW2 (-17 / 0x02000000):  long: 0
-2683.    LDIVPOW2 (-17 / 0x04000000):  long: 0
-2684.    LDIVPOW2 (-17 / 0x08000000):  long: 0
-2685.    LDIVPOW2 (-17 / 0x10000000):  long: 0
-2686.    LDIVPOW2 (-17 / 0x20000000):  long: 0
-2687.    LDIVPOW2 (-17 / 0x40000000):  long: 0
-2688.    LDIVPOW2 (-17 / 0x80000000):  long: 0
-2689.    LREMPOW2 (-17 % 0x00000002):  long: -1
-2690.    LREMPOW2 (-17 % 0x00000004):  long: -1
-2691.    LREMPOW2 (-17 % 0x00000008):  long: -1
-2692.    LREMPOW2 (-17 % 0x00000010):  long: -1
-2693.    LREMPOW2 (-17 % 0x00000020):  long: -17
-2694.    LREMPOW2 (-17 % 0x00000040):  long: -17
-2695.    LREMPOW2 (-17 % 0x00000080):  long: -17
-2696.    LREMPOW2 (-17 % 0x00000100):  long: -17
-2697.    LREMPOW2 (-17 % 0x00000200):  long: -17
-2698.    LREMPOW2 (-17 % 0x00000400):  long: -17
-2699.    LREMPOW2 (-17 % 0x00000800):  long: -17
-2700.    LREMPOW2 (-17 % 0x00001000):  long: -17
-2701.    LREMPOW2 (-17 % 0x00002000):  long: -17
-2702.    LREMPOW2 (-17 % 0x00004000):  long: -17
-2703.    LREMPOW2 (-17 % 0x00008000):  long: -17
-2704.    LREMPOW2 (-17 % 0x00010000):  long: -17
-2705.    LREMPOW2 (-17 % 0x00020000):  long: -17
-2706.    LREMPOW2 (-17 % 0x00040000):  long: -17
-2707.    LREMPOW2 (-17 % 0x00080000):  long: -17
-2708.    LREMPOW2 (-17 % 0x00100000):  long: -17
-2709.    LREMPOW2 (-17 % 0x00200000):  long: -17
-2710.    LREMPOW2 (-17 % 0x00400000):  long: -17
-2711.    LREMPOW2 (-17 % 0x00800000):  long: -17
-2712.    LREMPOW2 (-17 % 0x01000000):  long: -17
-2713.    LREMPOW2 (-17 % 0x02000000):  long: -17
-2714.    LREMPOW2 (-17 % 0x04000000):  long: -17
-2715.    LREMPOW2 (-17 % 0x08000000):  long: -17
-2716.    LREMPOW2 (-17 % 0x10000000):  long: -17
-2717.    LREMPOW2 (-17 % 0x20000000):  long: -17
-2718.    LREMPOW2 (-17 % 0x40000000):  long: -17
-2719.    LREMPOW2 (-17 % 0x80000000):  long: -17
-2720.    LDIVPOW2 (-12347 / 0x00000002):  long: -6173
-2721.    LDIVPOW2 (-12347 / 0x00000004):  long: -3086
-2722.    LDIVPOW2 (-12347 / 0x00000008):  long: -1543
-2723.    LDIVPOW2 (-12347 / 0x00000010):  long: -771
-2724.    LDIVPOW2 (-12347 / 0x00000020):  long: -385
-2725.    LDIVPOW2 (-12347 / 0x00000040):  long: -192
-2726.    LDIVPOW2 (-12347 / 0x00000080):  long: -96
-2727.    LDIVPOW2 (-12347 / 0x00000100):  long: -48
-2728.    LDIVPOW2 (-12347 / 0x00000200):  long: -24
-2729.    LDIVPOW2 (-12347 / 0x00000400):  long: -12
-2730.    LDIVPOW2 (-12347 / 0x00000800):  long: -6
-2731.    LDIVPOW2 (-12347 / 0x00001000):  long: -3
-2732.    LDIVPOW2 (-12347 / 0x00002000):  long: -1
-2733.    LDIVPOW2 (-12347 / 0x00004000):  long: 0
-2734.    LDIVPOW2 (-12347 / 0x00008000):  long: 0
-2735.    LDIVPOW2 (-12347 / 0x00010000):  long: 0
-2736.    LDIVPOW2 (-12347 / 0x00020000):  long: 0
-2737.    LDIVPOW2 (-12347 / 0x00040000):  long: 0
-2738.    LDIVPOW2 (-12347 / 0x00080000):  long: 0
-2739.    LDIVPOW2 (-12347 / 0x00100000):  long: 0
-2740.    LDIVPOW2 (-12347 / 0x00200000):  long: 0
-2741.    LDIVPOW2 (-12347 / 0x00400000):  long: 0
-2742.    LDIVPOW2 (-12347 / 0x00800000):  long: 0
-2743.    LDIVPOW2 (-12347 / 0x01000000):  long: 0
-2744.    LDIVPOW2 (-12347 / 0x02000000):  long: 0
-2745.    LDIVPOW2 (-12347 / 0x04000000):  long: 0
-2746.    LDIVPOW2 (-12347 / 0x08000000):  long: 0
-2747.    LDIVPOW2 (-12347 / 0x10000000):  long: 0
-2748.    LDIVPOW2 (-12347 / 0x20000000):  long: 0
-2749.    LDIVPOW2 (-12347 / 0x40000000):  long: 0
-2750.    LDIVPOW2 (-12347 / 0x80000000):  long: 0
-2751.    LREMPOW2 (-12347 % 0x00000002):  long: -1
-2752.    LREMPOW2 (-12347 % 0x00000004):  long: -3
-2753.    LREMPOW2 (-12347 % 0x00000008):  long: -3
-2754.    LREMPOW2 (-12347 % 0x00000010):  long: -11
-2755.    LREMPOW2 (-12347 % 0x00000020):  long: -27
-2756.    LREMPOW2 (-12347 % 0x00000040):  long: -59
-2757.    LREMPOW2 (-12347 % 0x00000080):  long: -59
-2758.    LREMPOW2 (-12347 % 0x00000100):  long: -59
-2759.    LREMPOW2 (-12347 % 0x00000200):  long: -59
-2760.    LREMPOW2 (-12347 % 0x00000400):  long: -59
-2761.    LREMPOW2 (-12347 % 0x00000800):  long: -59
-2762.    LREMPOW2 (-12347 % 0x00001000):  long: -59
-2763.    LREMPOW2 (-12347 % 0x00002000):  long: -4155
-2764.    LREMPOW2 (-12347 % 0x00004000):  long: -12347
-2765.    LREMPOW2 (-12347 % 0x00008000):  long: -12347
-2766.    LREMPOW2 (-12347 % 0x00010000):  long: -12347
-2767.    LREMPOW2 (-12347 % 0x00020000):  long: -12347
-2768.    LREMPOW2 (-12347 % 0x00040000):  long: -12347
-2769.    LREMPOW2 (-12347 % 0x00080000):  long: -12347
-2770.    LREMPOW2 (-12347 % 0x00100000):  long: -12347
-2771.    LREMPOW2 (-12347 % 0x00200000):  long: -12347
-2772.    LREMPOW2 (-12347 % 0x00400000):  long: -12347
-2773.    LREMPOW2 (-12347 % 0x00800000):  long: -12347
-2774.    LREMPOW2 (-12347 % 0x01000000):  long: -12347
-2775.    LREMPOW2 (-12347 % 0x02000000):  long: -12347
-2776.    LREMPOW2 (-12347 % 0x04000000):  long: -12347
-2777.    LREMPOW2 (-12347 % 0x08000000):  long: -12347
-2778.    LREMPOW2 (-12347 % 0x10000000):  long: -12347
-2779.    LREMPOW2 (-12347 % 0x20000000):  long: -12347
-2780.    LREMPOW2 (-12347 % 0x40000000):  long: -12347
-2781.    LREMPOW2 (-12347 % 0x80000000):  long: -12347
-2782.    LDIVPOW2 (-8893427 / 0x00000002):  long: -4446713
-2783.    LDIVPOW2 (-8893427 / 0x00000004):  long: -2223356
-2784.    LDIVPOW2 (-8893427 / 0x00000008):  long: -1111678
-2785.    LDIVPOW2 (-8893427 / 0x00000010):  long: -555839
-2786.    LDIVPOW2 (-8893427 / 0x00000020):  long: -277919
-2787.    LDIVPOW2 (-8893427 / 0x00000040):  long: -138959
-2788.    LDIVPOW2 (-8893427 / 0x00000080):  long: -69479
-2789.    LDIVPOW2 (-8893427 / 0x00000100):  long: -34739
-2790.    LDIVPOW2 (-8893427 / 0x00000200):  long: -17369
-2791.    LDIVPOW2 (-8893427 / 0x00000400):  long: -8684
-2792.    LDIVPOW2 (-8893427 / 0x00000800):  long: -4342
-2793.    LDIVPOW2 (-8893427 / 0x00001000):  long: -2171
-2794.    LDIVPOW2 (-8893427 / 0x00002000):  long: -1085
-2795.    LDIVPOW2 (-8893427 / 0x00004000):  long: -542
-2796.    LDIVPOW2 (-8893427 / 0x00008000):  long: -271
-2797.    LDIVPOW2 (-8893427 / 0x00010000):  long: -135
-2798.    LDIVPOW2 (-8893427 / 0x00020000):  long: -67
-2799.    LDIVPOW2 (-8893427 / 0x00040000):  long: -33
-2800.    LDIVPOW2 (-8893427 / 0x00080000):  long: -16
-2801.    LDIVPOW2 (-8893427 / 0x00100000):  long: -8
-2802.    LDIVPOW2 (-8893427 / 0x00200000):  long: -4
-2803.    LDIVPOW2 (-8893427 / 0x00400000):  long: -2
-2804.    LDIVPOW2 (-8893427 / 0x00800000):  long: -1
-2805.    LDIVPOW2 (-8893427 / 0x01000000):  long: 0
-2806.    LDIVPOW2 (-8893427 / 0x02000000):  long: 0
-2807.    LDIVPOW2 (-8893427 / 0x04000000):  long: 0
-2808.    LDIVPOW2 (-8893427 / 0x08000000):  long: 0
-2809.    LDIVPOW2 (-8893427 / 0x10000000):  long: 0
-2810.    LDIVPOW2 (-8893427 / 0x20000000):  long: 0
-2811.    LDIVPOW2 (-8893427 / 0x40000000):  long: 0
-2812.    LDIVPOW2 (-8893427 / 0x80000000):  long: 0
-2813.    LREMPOW2 (-8893427 % 0x00000002):  long: -1
-2814.    LREMPOW2 (-8893427 % 0x00000004):  long: -3
-2815.    LREMPOW2 (-8893427 % 0x00000008):  long: -3
-2816.    LREMPOW2 (-8893427 % 0x00000010):  long: -3
-2817.    LREMPOW2 (-8893427 % 0x00000020):  long: -19
-2818.    LREMPOW2 (-8893427 % 0x00000040):  long: -51
-2819.    LREMPOW2 (-8893427 % 0x00000080):  long: -115
-2820.    LREMPOW2 (-8893427 % 0x00000100):  long: -243
-2821.    LREMPOW2 (-8893427 % 0x00000200):  long: -499
-2822.    LREMPOW2 (-8893427 % 0x00000400):  long: -1011
-2823.    LREMPOW2 (-8893427 % 0x00000800):  long: -1011
-2824.    LREMPOW2 (-8893427 % 0x00001000):  long: -1011
-2825.    LREMPOW2 (-8893427 % 0x00002000):  long: -5107
-2826.    LREMPOW2 (-8893427 % 0x00004000):  long: -13299
-2827.    LREMPOW2 (-8893427 % 0x00008000):  long: -13299
-2828.    LREMPOW2 (-8893427 % 0x00010000):  long: -46067
-2829.    LREMPOW2 (-8893427 % 0x00020000):  long: -111603
-2830.    LREMPOW2 (-8893427 % 0x00040000):  long: -242675
-2831.    LREMPOW2 (-8893427 % 0x00080000):  long: -504819
-2832.    LREMPOW2 (-8893427 % 0x00100000):  long: -504819
-2833.    LREMPOW2 (-8893427 % 0x00200000):  long: -504819
-2834.    LREMPOW2 (-8893427 % 0x00400000):  long: -504819
-2835.    LREMPOW2 (-8893427 % 0x00800000):  long: -504819
-2836.    LREMPOW2 (-8893427 % 0x01000000):  long: -8893427
-2837.    LREMPOW2 (-8893427 % 0x02000000):  long: -8893427
-2838.    LREMPOW2 (-8893427 % 0x04000000):  long: -8893427
-2839.    LREMPOW2 (-8893427 % 0x08000000):  long: -8893427
-2840.    LREMPOW2 (-8893427 % 0x10000000):  long: -8893427
-2841.    LREMPOW2 (-8893427 % 0x20000000):  long: -8893427
-2842.    LREMPOW2 (-8893427 % 0x40000000):  long: -8893427
-2843.    LREMPOW2 (-8893427 % 0x80000000):  long: -8893427
-2844.    LDIVPOW2 (-1005234562 / 0x00000002):  long: -502617281
-2845.    LDIVPOW2 (-1005234562 / 0x00000004):  long: -251308640
-2846.    LDIVPOW2 (-1005234562 / 0x00000008):  long: -125654320
-2847.    LDIVPOW2 (-1005234562 / 0x00000010):  long: -62827160
-2848.    LDIVPOW2 (-1005234562 / 0x00000020):  long: -31413580
-2849.    LDIVPOW2 (-1005234562 / 0x00000040):  long: -15706790
-2850.    LDIVPOW2 (-1005234562 / 0x00000080):  long: -7853395
-2851.    LDIVPOW2 (-1005234562 / 0x00000100):  long: -3926697
-2852.    LDIVPOW2 (-1005234562 / 0x00000200):  long: -1963348
-2853.    LDIVPOW2 (-1005234562 / 0x00000400):  long: -981674
-2854.    LDIVPOW2 (-1005234562 / 0x00000800):  long: -490837
-2855.    LDIVPOW2 (-1005234562 / 0x00001000):  long: -245418
-2856.    LDIVPOW2 (-1005234562 / 0x00002000):  long: -122709
-2857.    LDIVPOW2 (-1005234562 / 0x00004000):  long: -61354
-2858.    LDIVPOW2 (-1005234562 / 0x00008000):  long: -30677
-2859.    LDIVPOW2 (-1005234562 / 0x00010000):  long: -15338
-2860.    LDIVPOW2 (-1005234562 / 0x00020000):  long: -7669
-2861.    LDIVPOW2 (-1005234562 / 0x00040000):  long: -3834
-2862.    LDIVPOW2 (-1005234562 / 0x00080000):  long: -1917
-2863.    LDIVPOW2 (-1005234562 / 0x00100000):  long: -958
-2864.    LDIVPOW2 (-1005234562 / 0x00200000):  long: -479
-2865.    LDIVPOW2 (-1005234562 / 0x00400000):  long: -239
-2866.    LDIVPOW2 (-1005234562 / 0x00800000):  long: -119
-2867.    LDIVPOW2 (-1005234562 / 0x01000000):  long: -59
-2868.    LDIVPOW2 (-1005234562 / 0x02000000):  long: -29
-2869.    LDIVPOW2 (-1005234562 / 0x04000000):  long: -14
-2870.    LDIVPOW2 (-1005234562 / 0x08000000):  long: -7
-2871.    LDIVPOW2 (-1005234562 / 0x10000000):  long: -3
-2872.    LDIVPOW2 (-1005234562 / 0x20000000):  long: -1
-2873.    LDIVPOW2 (-1005234562 / 0x40000000):  long: 0
-2874.    LDIVPOW2 (-1005234562 / 0x80000000):  long: 0
-2875.    LREMPOW2 (-1005234562 % 0x00000002):  long: 0
-2876.    LREMPOW2 (-1005234562 % 0x00000004):  long: -2
-2877.    LREMPOW2 (-1005234562 % 0x00000008):  long: -2
-2878.    LREMPOW2 (-1005234562 % 0x00000010):  long: -2
-2879.    LREMPOW2 (-1005234562 % 0x00000020):  long: -2
-2880.    LREMPOW2 (-1005234562 % 0x00000040):  long: -2
-2881.    LREMPOW2 (-1005234562 % 0x00000080):  long: -2
-2882.    LREMPOW2 (-1005234562 % 0x00000100):  long: -130
-2883.    LREMPOW2 (-1005234562 % 0x00000200):  long: -386
-2884.    LREMPOW2 (-1005234562 % 0x00000400):  long: -386
-2885.    LREMPOW2 (-1005234562 % 0x00000800):  long: -386
-2886.    LREMPOW2 (-1005234562 % 0x00001000):  long: -2434
-2887.    LREMPOW2 (-1005234562 % 0x00002000):  long: -2434
-2888.    LREMPOW2 (-1005234562 % 0x00004000):  long: -10626
-2889.    LREMPOW2 (-1005234562 % 0x00008000):  long: -10626
-2890.    LREMPOW2 (-1005234562 % 0x00010000):  long: -43394
-2891.    LREMPOW2 (-1005234562 % 0x00020000):  long: -43394
-2892.    LREMPOW2 (-1005234562 % 0x00040000):  long: -174466
-2893.    LREMPOW2 (-1005234562 % 0x00080000):  long: -174466
-2894.    LREMPOW2 (-1005234562 % 0x00100000):  long: -698754
-2895.    LREMPOW2 (-1005234562 % 0x00200000):  long: -698754
-2896.    LREMPOW2 (-1005234562 % 0x00400000):  long: -2795906
-2897.    LREMPOW2 (-1005234562 % 0x00800000):  long: -6990210
-2898.    LREMPOW2 (-1005234562 % 0x01000000):  long: -15378818
-2899.    LREMPOW2 (-1005234562 % 0x02000000):  long: -32156034
-2900.    LREMPOW2 (-1005234562 % 0x04000000):  long: -65710466
-2901.    LREMPOW2 (-1005234562 % 0x08000000):  long: -65710466
-2902.    LREMPOW2 (-1005234562 % 0x10000000):  long: -199928194
-2903.    LREMPOW2 (-1005234562 % 0x20000000):  long: -468363650
-2904.    LREMPOW2 (-1005234562 % 0x40000000):  long: -1005234562
-2905.    LREMPOW2 (-1005234562 % 0x80000000):  long: -1005234562
-2906.    LDIVPOW2 (-12135005234562 / 0x00000002):  long: -6067502617281
-2907.    LDIVPOW2 (-12135005234562 / 0x00000004):  long: -3033751308640
-2908.    LDIVPOW2 (-12135005234562 / 0x00000008):  long: -1516875654320
-2909.    LDIVPOW2 (-12135005234562 / 0x00000010):  long: -758437827160
-2910.    LDIVPOW2 (-12135005234562 / 0x00000020):  long: -379218913580
-2911.    LDIVPOW2 (-12135005234562 / 0x00000040):  long: -189609456790
-2912.    LDIVPOW2 (-12135005234562 / 0x00000080):  long: -94804728395
-2913.    LDIVPOW2 (-12135005234562 / 0x00000100):  long: -47402364197
-2914.    LDIVPOW2 (-12135005234562 / 0x00000200):  long: -23701182098
-2915.    LDIVPOW2 (-12135005234562 / 0x00000400):  long: -11850591049
-2916.    LDIVPOW2 (-12135005234562 / 0x00000800):  long: -5925295524
-2917.    LDIVPOW2 (-12135005234562 / 0x00001000):  long: -2962647762
-2918.    LDIVPOW2 (-12135005234562 / 0x00002000):  long: -1481323881
-2919.    LDIVPOW2 (-12135005234562 / 0x00004000):  long: -740661940
-2920.    LDIVPOW2 (-12135005234562 / 0x00008000):  long: -370330970
-2921.    LDIVPOW2 (-12135005234562 / 0x00010000):  long: -185165485
-2922.    LDIVPOW2 (-12135005234562 / 0x00020000):  long: -92582742
-2923.    LDIVPOW2 (-12135005234562 / 0x00040000):  long: -46291371
-2924.    LDIVPOW2 (-12135005234562 / 0x00080000):  long: -23145685
-2925.    LDIVPOW2 (-12135005234562 / 0x00100000):  long: -11572842
-2926.    LDIVPOW2 (-12135005234562 / 0x00200000):  long: -5786421
-2927.    LDIVPOW2 (-12135005234562 / 0x00400000):  long: -2893210
-2928.    LDIVPOW2 (-12135005234562 / 0x00800000):  long: -1446605
-2929.    LDIVPOW2 (-12135005234562 / 0x01000000):  long: -723302
-2930.    LDIVPOW2 (-12135005234562 / 0x02000000):  long: -361651
-2931.    LDIVPOW2 (-12135005234562 / 0x04000000):  long: -180825
-2932.    LDIVPOW2 (-12135005234562 / 0x08000000):  long: -90412
-2933.    LDIVPOW2 (-12135005234562 / 0x10000000):  long: -45206
-2934.    LDIVPOW2 (-12135005234562 / 0x20000000):  long: -22603
-2935.    LDIVPOW2 (-12135005234562 / 0x40000000):  long: -11301
-2936.    LDIVPOW2 (-12135005234562 / 0x80000000):  long: 5650
-2937.    LREMPOW2 (-12135005234562 % 0x00000002):  long: 0
-2938.    LREMPOW2 (-12135005234562 % 0x00000004):  long: -2
-2939.    LREMPOW2 (-12135005234562 % 0x00000008):  long: -2
-2940.    LREMPOW2 (-12135005234562 % 0x00000010):  long: -2
-2941.    LREMPOW2 (-12135005234562 % 0x00000020):  long: -2
-2942.    LREMPOW2 (-12135005234562 % 0x00000040):  long: -2
-2943.    LREMPOW2 (-12135005234562 % 0x00000080):  long: -2
-2944.    LREMPOW2 (-12135005234562 % 0x00000100):  long: -130
-2945.    LREMPOW2 (-12135005234562 % 0x00000200):  long: -386
-2946.    LREMPOW2 (-12135005234562 % 0x00000400):  long: -386
-2947.    LREMPOW2 (-12135005234562 % 0x00000800):  long: -1410
-2948.    LREMPOW2 (-12135005234562 % 0x00001000):  long: -1410
-2949.    LREMPOW2 (-12135005234562 % 0x00002000):  long: -1410
-2950.    LREMPOW2 (-12135005234562 % 0x00004000):  long: -9602
-2951.    LREMPOW2 (-12135005234562 % 0x00008000):  long: -9602
-2952.    LREMPOW2 (-12135005234562 % 0x00010000):  long: -9602
-2953.    LREMPOW2 (-12135005234562 % 0x00020000):  long: -75138
-2954.    LREMPOW2 (-12135005234562 % 0x00040000):  long: -75138
-2955.    LREMPOW2 (-12135005234562 % 0x00080000):  long: -337282
-2956.    LREMPOW2 (-12135005234562 % 0x00100000):  long: -861570
-2957.    LREMPOW2 (-12135005234562 % 0x00200000):  long: -861570
-2958.    LREMPOW2 (-12135005234562 % 0x00400000):  long: -2958722
-2959.    LREMPOW2 (-12135005234562 % 0x00800000):  long: -2958722
-2960.    LREMPOW2 (-12135005234562 % 0x01000000):  long: -11347330
-2961.    LREMPOW2 (-12135005234562 % 0x02000000):  long: -11347330
-2962.    LREMPOW2 (-12135005234562 % 0x04000000):  long: -44901762
-2963.    LREMPOW2 (-12135005234562 % 0x08000000):  long: -112010626
-2964.    LREMPOW2 (-12135005234562 % 0x10000000):  long: -112010626
-2965.    LREMPOW2 (-12135005234562 % 0x20000000):  long: -112010626
-2966.    LREMPOW2 (-12135005234562 % 0x40000000):  long: -648881538
-2967.    LREMPOW2 (-12135005234562 % 0x80000000):  long: -1722623362
-2968.    LDIVPOW2 (-2343552355623464626 / 0x00000002):  long: -1171776177811732313
-2969.    LDIVPOW2 (-2343552355623464626 / 0x00000004):  long: -585888088905866156
-2970.    LDIVPOW2 (-2343552355623464626 / 0x00000008):  long: -292944044452933078
-2971.    LDIVPOW2 (-2343552355623464626 / 0x00000010):  long: -146472022226466539
-2972.    LDIVPOW2 (-2343552355623464626 / 0x00000020):  long: -73236011113233269
-2973.    LDIVPOW2 (-2343552355623464626 / 0x00000040):  long: -36618005556616634
-2974.    LDIVPOW2 (-2343552355623464626 / 0x00000080):  long: -18309002778308317
-2975.    LDIVPOW2 (-2343552355623464626 / 0x00000100):  long: -9154501389154158
-2976.    LDIVPOW2 (-2343552355623464626 / 0x00000200):  long: -4577250694577079
-2977.    LDIVPOW2 (-2343552355623464626 / 0x00000400):  long: -2288625347288539
-2978.    LDIVPOW2 (-2343552355623464626 / 0x00000800):  long: -1144312673644269
-2979.    LDIVPOW2 (-2343552355623464626 / 0x00001000):  long: -572156336822134
-2980.    LDIVPOW2 (-2343552355623464626 / 0x00002000):  long: -286078168411067
-2981.    LDIVPOW2 (-2343552355623464626 / 0x00004000):  long: -143039084205533
-2982.    LDIVPOW2 (-2343552355623464626 / 0x00008000):  long: -71519542102766
-2983.    LDIVPOW2 (-2343552355623464626 / 0x00010000):  long: -35759771051383
-2984.    LDIVPOW2 (-2343552355623464626 / 0x00020000):  long: -17879885525691
-2985.    LDIVPOW2 (-2343552355623464626 / 0x00040000):  long: -8939942762845
-2986.    LDIVPOW2 (-2343552355623464626 / 0x00080000):  long: -4469971381422
-2987.    LDIVPOW2 (-2343552355623464626 / 0x00100000):  long: -2234985690711
-2988.    LDIVPOW2 (-2343552355623464626 / 0x00200000):  long: -1117492845355
-2989.    LDIVPOW2 (-2343552355623464626 / 0x00400000):  long: -558746422677
-2990.    LDIVPOW2 (-2343552355623464626 / 0x00800000):  long: -279373211338
-2991.    LDIVPOW2 (-2343552355623464626 / 0x01000000):  long: -139686605669
-2992.    LDIVPOW2 (-2343552355623464626 / 0x02000000):  long: -69843302834
-2993.    LDIVPOW2 (-2343552355623464626 / 0x04000000):  long: -34921651417
-2994.    LDIVPOW2 (-2343552355623464626 / 0x08000000):  long: -17460825708
-2995.    LDIVPOW2 (-2343552355623464626 / 0x10000000):  long: -8730412854
-2996.    LDIVPOW2 (-2343552355623464626 / 0x20000000):  long: -4365206427
-2997.    LDIVPOW2 (-2343552355623464626 / 0x40000000):  long: -2182603213
-2998.    LDIVPOW2 (-2343552355623464626 / 0x80000000):  long: 1091301606
-2999.    LREMPOW2 (-2343552355623464626 % 0x00000002):  long: 0
-3000.    LREMPOW2 (-2343552355623464626 % 0x00000004):  long: -2
-3001.    LREMPOW2 (-2343552355623464626 % 0x00000008):  long: -2
-3002.    LREMPOW2 (-2343552355623464626 % 0x00000010):  long: -2
-3003.    LREMPOW2 (-2343552355623464626 % 0x00000020):  long: -18
-3004.    LREMPOW2 (-2343552355623464626 % 0x00000040):  long: -50
-3005.    LREMPOW2 (-2343552355623464626 % 0x00000080):  long: -50
-3006.    LREMPOW2 (-2343552355623464626 % 0x00000100):  long: -178
-3007.    LREMPOW2 (-2343552355623464626 % 0x00000200):  long: -178
-3008.    LREMPOW2 (-2343552355623464626 % 0x00000400):  long: -690
-3009.    LREMPOW2 (-2343552355623464626 % 0x00000800):  long: -1714
-3010.    LREMPOW2 (-2343552355623464626 % 0x00001000):  long: -3762
-3011.    LREMPOW2 (-2343552355623464626 % 0x00002000):  long: -3762
-3012.    LREMPOW2 (-2343552355623464626 % 0x00004000):  long: -11954
-3013.    LREMPOW2 (-2343552355623464626 % 0x00008000):  long: -28338
-3014.    LREMPOW2 (-2343552355623464626 % 0x00010000):  long: -28338
-3015.    LREMPOW2 (-2343552355623464626 % 0x00020000):  long: -93874
-3016.    LREMPOW2 (-2343552355623464626 % 0x00040000):  long: -224946
-3017.    LREMPOW2 (-2343552355623464626 % 0x00080000):  long: -487090
-3018.    LREMPOW2 (-2343552355623464626 % 0x00100000):  long: -487090
-3019.    LREMPOW2 (-2343552355623464626 % 0x00200000):  long: -1535666
-3020.    LREMPOW2 (-2343552355623464626 % 0x00400000):  long: -3632818
-3021.    LREMPOW2 (-2343552355623464626 % 0x00800000):  long: -7827122
-3022.    LREMPOW2 (-2343552355623464626 % 0x01000000):  long: -7827122
-3023.    LREMPOW2 (-2343552355623464626 % 0x02000000):  long: -24604338
-3024.    LREMPOW2 (-2343552355623464626 % 0x04000000):  long: -24604338
-3025.    LREMPOW2 (-2343552355623464626 % 0x08000000):  long: -91713202
-3026.    LREMPOW2 (-2343552355623464626 % 0x10000000):  long: -91713202
-3027.    LREMPOW2 (-2343552355623464626 % 0x20000000):  long: -91713202
-3028.    LREMPOW2 (-2343552355623464626 % 0x40000000):  long: -628584114
-3029.    LREMPOW2 (-2343552355623464626 % 0x80000000):  long: -1702325938
-3030.    ------------------- test rem 0x10001
-3031.    IREM0X10001 (0 % 0x10001):  int: 0
-3032.    IREM0X10001 (1 % 0x10001):  int: 1
-3033.    IREM0X10001 (17 % 0x10001):  int: 17
-3034.    IREM0X10001 (123 % 0x10001):  int: 123
-3035.    IREM0X10001 (1234 % 0x10001):  int: 1234
-3036.    IREM0X10001 (13247 % 0x10001):  int: 13247
-3037.    IREM0X10001 (563467 % 0x10001):  int: 39171
-3038.    IREM0X10001 (7456774 % 0x10001):  int: 51093
-3039.    IREM0X10001 (34523525 % 0x10001):  int: 51063
-3040.    IREM0X10001 (234523456 % 0x10001):  int: 32070
-3041.    IREM0X10001 (1005234562 % 0x10001):  int: 28056
-3042.    IREM0X10001 (2147483647 % 0x10001):  int: 32768
-3043.    IREM0X10001 (-1 % 0x10001):  int: -1
-3044.    IREM0X10001 (-17 % 0x10001):  int: -17
-3045.    IREM0X10001 (-123 % 0x10001):  int: -123
-3046.    IREM0X10001 (-1234 % 0x10001):  int: -1234
-3047.    IREM0X10001 (-13247 % 0x10001):  int: -13247
-3048.    IREM0X10001 (-563467 % 0x10001):  int: -39171
-3049.    IREM0X10001 (-7456774 % 0x10001):  int: -51093
-3050.    IREM0X10001 (-34523525 % 0x10001):  int: -51063
-3051.    IREM0X10001 (-234523456 % 0x10001):  int: -32070
-3052.    IREM0X10001 (-1005234562 % 0x10001):  int: -28056
-3053.    IREM0X10001 (-2147483647 % 0x10001):  int: -32768
-3054.    IREM0X10001 (-2147483648 % 0x10001):  int: -32769
-3055.    LREM0X10001 (0 % 0x10001):  long: 0
-3056.    LREM0X10001 (1 % 0x10001):  long: 1
-3057.    LREM0X10001 (17 % 0x10001):  long: 17
-3058.    LREM0X10001 (123 % 0x10001):  long: 123
-3059.    LREM0X10001 (1234 % 0x10001):  long: 1234
-3060.    LREM0X10001 (13247 % 0x10001):  long: 13247
-3061.    LREM0X10001 (563467 % 0x10001):  long: 39171
-3062.    LREM0X10001 (7456774 % 0x10001):  long: 51093
-3063.    LREM0X10001 (34523525 % 0x10001):  long: 51063
-3064.    LREM0X10001 (234523456 % 0x10001):  long: 32070
-3065.    LREM0X10001 (1005234562 % 0x10001):  long: 28056
-3066.    LREM0X10001 (1983223864 % 0x10001):  long: 8707
-3067.    LREM0X10001 (2147483646 % 0x10001):  long: 32767
-3068.    LREM0X10001 (2147483647 % 0x10001):  long: 32768
-3069.    LREM0X10001 (2147483648 % 0x10001):  long: 32769
-3070.    LREM0X10001 (10052234562 % 0x10001):  long: 38428
-3071.    LREM0X10001 (561005234562 % 0x10001):  long: 60289
-3072.    LREM0X10001 (2100527345962 % 0x10001):  long: 41444
-3073.    LREM0X10001 (34600523456287 % 0x10001):  long: 61103
-3074.    LREM0X10001 (546805234456882 % 0x10001):  long: 50879
-3075.    LREM0X10001 (1360052334734722 % 0x10001):  long: 42538
-3076.    LREM0X10001 (23456705569626354 % 0x10001):  long: 37707
-3077.    LREM0X10001 (9223372036854775807 % 0x10001):  long: 32768
-3078.    LREM0X10001 (-1 % 0x10001):  long: -1
-3079.    LREM0X10001 (-17 % 0x10001):  long: -17
-3080.    LREM0X10001 (-123 % 0x10001):  long: -123
-3081.    LREM0X10001 (-1234 % 0x10001):  long: -1234
-3082.    LREM0X10001 (-13247 % 0x10001):  long: -13247
-3083.    LREM0X10001 (-563467 % 0x10001):  long: -39171
-3084.    LREM0X10001 (-7456774 % 0x10001):  long: -51093
-3085.    LREM0X10001 (-34523525 % 0x10001):  long: -51063
-3086.    LREM0X10001 (-234523456 % 0x10001):  long: -32070
-3087.    LREM0X10001 (-1005234562 % 0x10001):  long: -28056
-3088.    LREM0X10001 (-1983223864 % 0x10001):  long: -8707
-3089.    LREM0X10001 (-2147483647 % 0x10001):  long: -32768
-3090.    LREM0X10001 (-2147483648 % 0x10001):  long: -32769
-3091.    LREM0X10001 (-10052234562 % 0x10001):  long: -38428
-3092.    LREM0X10001 (-561005234562 % 0x10001):  long: -60289
-3093.    LREM0X10001 (-2100527345962 % 0x10001):  long: -41444
-3094.    LREM0X10001 (-34600523456287 % 0x10001):  long: -61103
-3095.    LREM0X10001 (-546805234456882 % 0x10001):  long: -50879
-3096.    LREM0X10001 (-1360052334734722 % 0x10001):  long: -42538
-3097.    LREM0X10001 (-23456705569626354 % 0x10001):  long: -37707
-3098.    LREM0X10001 (-9223372036854775807 % 0x10001):  long: -32768
-3099.    LREM0X10001 (-9223372036854775808 % 0x10001):  long: -32769
-3100.    ------------------- test ints
-3101.    TESTINT CALLED WITH int: 1
-3102.                    AND int: 2
-3103.    IADD:  int: 3
-3104.    ISUB:  int: -1
-3105.    IMUL:  int: 2
-3106.    IDIV:  int: 0
-3107.    IREM:  int: 1
-3108.    INEG:  int: -1
-3109.    ISHL:  int: 4
-3110.    ISHR:  int: 0
-3111.    IUSHR: int: 0
-3112.    IAND:  int: 0
-3113.    IOR:   int: 3
-3114.    IXOR:  int: 3
-3115.    I2L:   long: 1
-3116.    I2F:   float: 1065353216
-3117.    I2D:   double: 4607182418800017408
-3118.    INT2BYTE: byte: 1
-3119.    INT2CHAR: char: 1
-3120.    INT2SHORT: short: 1
-3121.    not IFEQ
-3122.    not IFLT
-3123.    not IFLE
-3124.    not IF_ICMPEQ
-3125.    not IF_ICMPGT
-3126.    not IF_ICMPGE
-3127.    COND_ICMPEQ 1 == 0: 1
-3128.    COND_ICMPNE 1 != 0: 0
-3129.    COND_ICMPLT 1 <  0: 1
-3130.    COND_ICMPLE 1 <= 0: 1
-3131.    COND_ICMPGT 1 >  0: 0
-3132.    COND_ICMPGE 1 >= 0: 0
-3133.    COND_ICMPEQ 1 == 0: 0
-3134.    COND_ICMPNE 1 != 0: 1
-3135.    COND_ICMPLT 1 <  0: 0
-3136.    COND_ICMPLE 1 <= 0: 0
-3137.    COND_ICMPGT 1 >  0: 1
-3138.    COND_ICMPGE 1 >= 0: 1
-3139.    COND_ICMPEQ 1 == 0: 3
-3140.    COND_ICMPNE 1 != 0: 2
-3141.    COND_ICMPLT 1 <  0: 3
-3142.    COND_ICMPLE 1 <= 0: 3
-3143.    COND_ICMPGT 1 >  0: 2
-3144.    COND_ICMPGE 1 >= 0: 2
-3145.    COND_ICMPEQ 1 == 2: false
-3146.    COND_ICMPNE 1 != 2: true
-3147.    COND_ICMPLT 1 <  2: true
-3148.    COND_ICMPLE 1 <= 2: true
-3149.    COND_ICMPGT 1 >  2: false
-3150.    COND_ICMPGE 1 >= 2: false
-3151.    TESTINT CALLED WITH int: -1
-3152.                    AND int: 17
-3153.    IADD:  int: 16
-3154.    ISUB:  int: -18
-3155.    IMUL:  int: -17
-3156.    IDIV:  int: 0
-3157.    IREM:  int: -1
-3158.    INEG:  int: 1
-3159.    ISHL:  int: -131072
-3160.    ISHR:  int: -1
-3161.    IUSHR: int: 32767
-3162.    IAND:  int: 17
-3163.    IOR:   int: -1
-3164.    IXOR:  int: -18
-3165.    I2L:   long: -1
-3166.    I2F:   float: -1082130432
-3167.    I2D:   double: -4616189618054758400
-3168.    INT2BYTE: byte: -1
-3169.    INT2CHAR: char: 65535
-3170.    INT2SHORT: short: -1
-3171.    not IFEQ
-3172.    not IFGT
-3173.    not IFGE
-3174.    not IF_ICMPEQ
-3175.    not IF_ICMPGT
-3176.    not IF_ICMPGE
-3177.    COND_ICMPEQ -1 == 0: 1
-3178.    COND_ICMPNE -1 != 0: 0
-3179.    COND_ICMPLT -1 <  0: 0
-3180.    COND_ICMPLE -1 <= 0: 0
-3181.    COND_ICMPGT -1 >  0: 1
-3182.    COND_ICMPGE -1 >= 0: 1
-3183.    COND_ICMPEQ -1 == 0: 0
-3184.    COND_ICMPNE -1 != 0: 1
-3185.    COND_ICMPLT -1 <  0: 1
-3186.    COND_ICMPLE -1 <= 0: 1
-3187.    COND_ICMPGT -1 >  0: 0
-3188.    COND_ICMPGE -1 >= 0: 0
-3189.    COND_ICMPEQ -1 == 0: 3
-3190.    COND_ICMPNE -1 != 0: 2
-3191.    COND_ICMPLT -1 <  0: 2
-3192.    COND_ICMPLE -1 <= 0: 2
-3193.    COND_ICMPGT -1 >  0: 3
-3194.    COND_ICMPGE -1 >= 0: 3
-3195.    COND_ICMPEQ -1 == 17: false
-3196.    COND_ICMPNE -1 != 17: true
-3197.    COND_ICMPLT -1 <  17: true
-3198.    COND_ICMPLE -1 <= 17: true
-3199.    COND_ICMPGT -1 >  17: false
-3200.    COND_ICMPGE -1 >= 17: false
-3201.    TESTINT CALLED WITH int: -24351
-3202.                    AND int: 24123
-3203.    IADD:  int: -228
-3204.    ISUB:  int: -48474
-3205.    IMUL:  int: -587419173
-3206.    IDIV:  int: -1
-3207.    IREM:  int: -228
-3208.    INEG:  int: 24351
-3209.    ISHL:  int: 134217728
-3210.    ISHR:  int: -1
-3211.    IUSHR: int: 31
-3212.    IAND:  int: 33
-3213.    IOR:   int: -261
-3214.    IXOR:  int: -294
-3215.    I2L:   long: -24351
-3216.    I2F:   float: -960610816
-3217.    I2D:   double: -4550949270986948608
-3218.    INT2BYTE: byte: -31
-3219.    INT2CHAR: char: 41185
-3220.    INT2SHORT: short: -24351
-3221.    not IFEQ
-3222.    not IFGT
-3223.    not IFGE
-3224.    not IF_ICMPEQ
-3225.    not IF_ICMPGT
-3226.    not IF_ICMPGE
-3227.    COND_ICMPEQ -24351 == 0: 1
-3228.    COND_ICMPNE -24351 != 0: 0
-3229.    COND_ICMPLT -24351 <  0: 0
-3230.    COND_ICMPLE -24351 <= 0: 0
-3231.    COND_ICMPGT -24351 >  0: 1
-3232.    COND_ICMPGE -24351 >= 0: 1
-3233.    COND_ICMPEQ -24351 == 0: 0
-3234.    COND_ICMPNE -24351 != 0: 1
-3235.    COND_ICMPLT -24351 <  0: 1
-3236.    COND_ICMPLE -24351 <= 0: 1
-3237.    COND_ICMPGT -24351 >  0: 0
-3238.    COND_ICMPGE -24351 >= 0: 0
-3239.    COND_ICMPEQ -24351 == 0: 3
-3240.    COND_ICMPNE -24351 != 0: 2
-3241.    COND_ICMPLT -24351 <  0: 2
-3242.    COND_ICMPLE -24351 <= 0: 2
-3243.    COND_ICMPGT -24351 >  0: 3
-3244.    COND_ICMPGE -24351 >= 0: 3
-3245.    COND_ICMPEQ -24351 == 24123: false
-3246.    COND_ICMPNE -24351 != 24123: true
-3247.    COND_ICMPLT -24351 <  24123: true
-3248.    COND_ICMPLE -24351 <= 24123: true
-3249.    COND_ICMPGT -24351 >  24123: false
-3250.    COND_ICMPGE -24351 >= 24123: false
-3251.    TESTINT CALLED WITH int: 4918923
-3252.                    AND int: -441423
-3253.    IADD:  int: 4477500
-3254.    ISUB:  int: 5360346
-3255.    IMUL:  int: 1927704347
-3256.    IDIV:  int: -11
-3257.    IREM:  int: 63270
-3258.    INEG:  int: -4918923
-3259.    ISHL:  int: 487981056
-3260.    ISHR:  int: 37
-3261.    IUSHR: int: 37
-3262.    IAND:  int: 4784769
-3263.    IOR:   int: -307269
-3264.    IXOR:  int: -5092038
-3265.    I2L:   long: 4918923
-3266.    I2F:   float: 1251351830
-3267.    I2D:   double: 4707039664328933376
-3268.    INT2BYTE: byte: -117
-3269.    INT2CHAR: char: 3723
-3270.    INT2SHORT: short: 3723
-3271.    not IFEQ
-3272.    not IFLT
-3273.    not IFLE
-3274.    not IF_ICMPEQ
-3275.    not IF_ICMPLT
-3276.    not IF_ICMPLE
-3277.    COND_ICMPEQ 4918923 == 0: 1
-3278.    COND_ICMPNE 4918923 != 0: 0
-3279.    COND_ICMPLT 4918923 <  0: 1
-3280.    COND_ICMPLE 4918923 <= 0: 1
-3281.    COND_ICMPGT 4918923 >  0: 0
-3282.    COND_ICMPGE 4918923 >= 0: 0
-3283.    COND_ICMPEQ 4918923 == 0: 0
-3284.    COND_ICMPNE 4918923 != 0: 1
-3285.    COND_ICMPLT 4918923 <  0: 0
-3286.    COND_ICMPLE 4918923 <= 0: 0
-3287.    COND_ICMPGT 4918923 >  0: 1
-3288.    COND_ICMPGE 4918923 >= 0: 1
-3289.    COND_ICMPEQ 4918923 == 0: 3
-3290.    COND_ICMPNE 4918923 != 0: 2
-3291.    COND_ICMPLT 4918923 <  0: 3
-3292.    COND_ICMPLE 4918923 <= 0: 3
-3293.    COND_ICMPGT 4918923 >  0: 2
-3294.    COND_ICMPGE 4918923 >= 0: 2
-3295.    COND_ICMPEQ 4918923 == -441423: false
-3296.    COND_ICMPNE 4918923 != -441423: true
-3297.    COND_ICMPLT 4918923 <  -441423: false
-3298.    COND_ICMPLE 4918923 <= -441423: false
-3299.    COND_ICMPGT 4918923 >  -441423: true
-3300.    COND_ICMPGE 4918923 >= -441423: true
-3301.    TESTINT CALLED WITH int: 0
-3302.                    AND int: 0
-3303.    IADD:  int: 0
-3304.    ISUB:  int: 0
-3305.    IMUL:  int: 0
-3306.    divison by zero
-3307.    divison by zero
-3308.    INEG:  int: 0
-3309.    ISHL:  int: 0
-3310.    ISHR:  int: 0
-3311.    IUSHR: int: 0
-3312.    IAND:  int: 0
-3313.    IOR:   int: 0
-3314.    IXOR:  int: 0
-3315.    I2L:   long: 0
-3316.    I2F:   float: 0
-3317.    I2D:   double: 0
-3318.    INT2BYTE: byte: 0
-3319.    INT2CHAR: char: 0
-3320.    INT2SHORT: short: 0
-3321.    not IFNE
-3322.    not IFLT
-3323.    not IFGT
-3324.    not IF_ICMPNE
-3325.    not IF_ICMPLT
-3326.    not IF_ICMPGT
-3327.    COND_ICMPEQ 0 == 0: 0
-3328.    COND_ICMPNE 0 != 0: 1
-3329.    COND_ICMPLT 0 <  0: 1
-3330.    COND_ICMPLE 0 <= 0: 0
-3331.    COND_ICMPGT 0 >  0: 1
-3332.    COND_ICMPGE 0 >= 0: 0
-3333.    COND_ICMPEQ 0 == 0: 1
-3334.    COND_ICMPNE 0 != 0: 0
-3335.    COND_ICMPLT 0 <  0: 0
-3336.    COND_ICMPLE 0 <= 0: 1
-3337.    COND_ICMPGT 0 >  0: 0
-3338.    COND_ICMPGE 0 >= 0: 1
-3339.    COND_ICMPEQ 0 == 0: 2
-3340.    COND_ICMPNE 0 != 0: 3
-3341.    COND_ICMPLT 0 <  0: 3
-3342.    COND_ICMPLE 0 <= 0: 2
-3343.    COND_ICMPGT 0 >  0: 3
-3344.    COND_ICMPGE 0 >= 0: 2
-3345.    COND_ICMPEQ 0 == 0: true
-3346.    COND_ICMPNE 0 != 0: false
-3347.    COND_ICMPLT 0 <  0: false
-3348.    COND_ICMPLE 0 <= 0: true
-3349.    COND_ICMPGT 0 >  0: false
-3350.    COND_ICMPGE 0 >= 0: true
-3351.    TESTINT CALLED WITH int: -1
-3352.                    AND int: -1
-3353.    IADD:  int: -2
-3354.    ISUB:  int: 0
-3355.    IMUL:  int: 1
-3356.    IDIV:  int: 1
-3357.    IREM:  int: 0
-3358.    INEG:  int: 1
-3359.    ISHL:  int: -2147483648
-3360.    ISHR:  int: -1
-3361.    IUSHR: int: 1
-3362.    IAND:  int: -1
-3363.    IOR:   int: -1
-3364.    IXOR:  int: 0
-3365.    I2L:   long: -1
-3366.    I2F:   float: -1082130432
-3367.    I2D:   double: -4616189618054758400
-3368.    INT2BYTE: byte: -1
-3369.    INT2CHAR: char: 65535
-3370.    INT2SHORT: short: -1
-3371.    not IFEQ
-3372.    not IFGT
-3373.    not IFGE
-3374.    not IF_ICMPNE
-3375.    not IF_ICMPLT
-3376.    not IF_ICMPGT
-3377.    COND_ICMPEQ -1 == 0: 1
-3378.    COND_ICMPNE -1 != 0: 0
-3379.    COND_ICMPLT -1 <  0: 0
-3380.    COND_ICMPLE -1 <= 0: 0
-3381.    COND_ICMPGT -1 >  0: 1
-3382.    COND_ICMPGE -1 >= 0: 1
-3383.    COND_ICMPEQ -1 == 0: 0
-3384.    COND_ICMPNE -1 != 0: 1
-3385.    COND_ICMPLT -1 <  0: 1
-3386.    COND_ICMPLE -1 <= 0: 1
-3387.    COND_ICMPGT -1 >  0: 0
-3388.    COND_ICMPGE -1 >= 0: 0
-3389.    COND_ICMPEQ -1 == 0: 3
-3390.    COND_ICMPNE -1 != 0: 2
-3391.    COND_ICMPLT -1 <  0: 2
-3392.    COND_ICMPLE -1 <= 0: 2
-3393.    COND_ICMPGT -1 >  0: 3
-3394.    COND_ICMPGE -1 >= 0: 3
-3395.    COND_ICMPEQ -1 == -1: true
-3396.    COND_ICMPNE -1 != -1: false
-3397.    COND_ICMPLT -1 <  -1: false
-3398.    COND_ICMPLE -1 <= -1: true
-3399.    COND_ICMPGT -1 >  -1: false
-3400.    COND_ICMPGE -1 >= -1: true
-3401.    TESTINT CALLED WITH int: 1423487
-3402.                    AND int: 123444444
-3403.    IADD:  int: 124867931
-3404.    ISUB:  int: -122020957
-3405.    IMUL:  int: 1564274980
-3406.    IDIV:  int: 0
-3407.    IREM:  int: 1423487
-3408.    INEG:  int: -1423487
-3409.    ISHL:  int: -268435456
-3410.    ISHR:  int: 0
-3411.    IUSHR: int: 0
-3412.    IAND:  int: 1153116
-3413.    IOR:   int: 123714815
-3414.    IXOR:  int: 122561699
-3415.    I2L:   long: 1423487
-3416.    I2F:   float: 1236124664
-3417.    I2D:   double: 4698864641831337984
-3418.    INT2BYTE: byte: 127
-3419.    INT2CHAR: char: 47231
-3420.    INT2SHORT: short: -18305
-3421.    not IFEQ
-3422.    not IFLT
-3423.    not IFLE
-3424.    not IF_ICMPEQ
-3425.    not IF_ICMPGT
-3426.    not IF_ICMPGE
-3427.    COND_ICMPEQ 1423487 == 0: 1
-3428.    COND_ICMPNE 1423487 != 0: 0
-3429.    COND_ICMPLT 1423487 <  0: 1
-3430.    COND_ICMPLE 1423487 <= 0: 1
-3431.    COND_ICMPGT 1423487 >  0: 0
-3432.    COND_ICMPGE 1423487 >= 0: 0
-3433.    COND_ICMPEQ 1423487 == 0: 0
-3434.    COND_ICMPNE 1423487 != 0: 1
-3435.    COND_ICMPLT 1423487 <  0: 0
-3436.    COND_ICMPLE 1423487 <= 0: 0
-3437.    COND_ICMPGT 1423487 >  0: 1
-3438.    COND_ICMPGE 1423487 >= 0: 1
-3439.    COND_ICMPEQ 1423487 == 0: 3
-3440.    COND_ICMPNE 1423487 != 0: 2
-3441.    COND_ICMPLT 1423487 <  0: 3
-3442.    COND_ICMPLE 1423487 <= 0: 3
-3443.    COND_ICMPGT 1423487 >  0: 2
-3444.    COND_ICMPGE 1423487 >= 0: 2
-3445.    COND_ICMPEQ 1423487 == 123444444: false
-3446.    COND_ICMPNE 1423487 != 123444444: true
-3447.    COND_ICMPLT 1423487 <  123444444: true
-3448.    COND_ICMPLE 1423487 <= 123444444: true
-3449.    COND_ICMPGT 1423487 >  123444444: false
-3450.    COND_ICMPGE 1423487 >= 123444444: false
-3451.    TESTINT CALLED WITH int: 2147483647
-3452.                    AND int: 1
-3453.    IADD:  int: -2147483648
-3454.    ISUB:  int: 2147483646
-3455.    IMUL:  int: 2147483647
-3456.    IDIV:  int: 2147483647
-3457.    IREM:  int: 0
-3458.    INEG:  int: -2147483647
-3459.    ISHL:  int: -2
-3460.    ISHR:  int: 1073741823
-3461.    IUSHR: int: 1073741823
-3462.    IAND:  int: 1
-3463.    IOR:   int: 2147483647
-3464.    IXOR:  int: 2147483646
-3465.    I2L:   long: 2147483647
-3466.    I2F:   float: 1325400064
-3467.    I2D:   double: 4746794007244308480
-3468.    INT2BYTE: byte: -1
-3469.    INT2CHAR: char: 65535
-3470.    INT2SHORT: short: -1
-3471.    not IFEQ
-3472.    not IFLT
-3473.    not IFLE
-3474.    not IF_ICMPEQ
-3475.    not IF_ICMPLT
-3476.    not IF_ICMPLE
-3477.    COND_ICMPEQ 2147483647 == 0: 1
-3478.    COND_ICMPNE 2147483647 != 0: 0
-3479.    COND_ICMPLT 2147483647 <  0: 1
-3480.    COND_ICMPLE 2147483647 <= 0: 1
-3481.    COND_ICMPGT 2147483647 >  0: 0
-3482.    COND_ICMPGE 2147483647 >= 0: 0
-3483.    COND_ICMPEQ 2147483647 == 0: 0
-3484.    COND_ICMPNE 2147483647 != 0: 1
-3485.    COND_ICMPLT 2147483647 <  0: 0
-3486.    COND_ICMPLE 2147483647 <= 0: 0
-3487.    COND_ICMPGT 2147483647 >  0: 1
-3488.    COND_ICMPGE 2147483647 >= 0: 1
-3489.    COND_ICMPEQ 2147483647 == 0: 3
-3490.    COND_ICMPNE 2147483647 != 0: 2
-3491.    COND_ICMPLT 2147483647 <  0: 3
-3492.    COND_ICMPLE 2147483647 <= 0: 3
-3493.    COND_ICMPGT 2147483647 >  0: 2
-3494.    COND_ICMPGE 2147483647 >= 0: 2
-3495.    COND_ICMPEQ 2147483647 == 1: false
-3496.    COND_ICMPNE 2147483647 != 1: true
-3497.    COND_ICMPLT 2147483647 <  1: false
-3498.    COND_ICMPLE 2147483647 <= 1: false
-3499.    COND_ICMPGT 2147483647 >  1: true
-3500.    COND_ICMPGE 2147483647 >= 1: true
-3501.    TESTINT CALLED WITH int: 0
-3502.                    AND int: 2147483647
-3503.    IADD:  int: 2147483647
-3504.    ISUB:  int: -2147483647
-3505.    IMUL:  int: 0
-3506.    IDIV:  int: 0
-3507.    IREM:  int: 0
-3508.    INEG:  int: 0
-3509.    ISHL:  int: 0
-3510.    ISHR:  int: 0
-3511.    IUSHR: int: 0
-3512.    IAND:  int: 0
-3513.    IOR:   int: 2147483647
-3514.    IXOR:  int: 2147483647
-3515.    I2L:   long: 0
-3516.    I2F:   float: 0
-3517.    I2D:   double: 0
-3518.    INT2BYTE: byte: 0
-3519.    INT2CHAR: char: 0
-3520.    INT2SHORT: short: 0
-3521.    not IFNE
-3522.    not IFLT
-3523.    not IFGT
-3524.    not IF_ICMPEQ
-3525.    not IF_ICMPGT
-3526.    not IF_ICMPGE
-3527.    COND_ICMPEQ 0 == 0: 0
-3528.    COND_ICMPNE 0 != 0: 1
-3529.    COND_ICMPLT 0 <  0: 1
-3530.    COND_ICMPLE 0 <= 0: 0
-3531.    COND_ICMPGT 0 >  0: 1
-3532.    COND_ICMPGE 0 >= 0: 0
-3533.    COND_ICMPEQ 0 == 0: 1
-3534.    COND_ICMPNE 0 != 0: 0
-3535.    COND_ICMPLT 0 <  0: 0
-3536.    COND_ICMPLE 0 <= 0: 1
-3537.    COND_ICMPGT 0 >  0: 0
-3538.    COND_ICMPGE 0 >= 0: 1
-3539.    COND_ICMPEQ 0 == 0: 2
-3540.    COND_ICMPNE 0 != 0: 3
-3541.    COND_ICMPLT 0 <  0: 3
-3542.    COND_ICMPLE 0 <= 0: 2
-3543.    COND_ICMPGT 0 >  0: 3
-3544.    COND_ICMPGE 0 >= 0: 2
-3545.    COND_ICMPEQ 0 == 2147483647: false
-3546.    COND_ICMPNE 0 != 2147483647: true
-3547.    COND_ICMPLT 0 <  2147483647: true
-3548.    COND_ICMPLE 0 <= 2147483647: true
-3549.    COND_ICMPGT 0 >  2147483647: false
-3550.    COND_ICMPGE 0 >= 2147483647: false
-3551.    TESTINT CALLED WITH int: 13107
-3552.                    AND int: 143444
-3553.    IADD:  int: 156551
-3554.    ISUB:  int: -130337
-3555.    IMUL:  int: 1880120508
-3556.    IDIV:  int: 0
-3557.    IREM:  int: 13107
-3558.    INEG:  int: -13107
-3559.    ISHL:  int: 858783744
-3560.    ISHR:  int: 0
-3561.    IUSHR: int: 0
-3562.    IAND:  int: 12304
-3563.    IOR:   int: 144247
-3564.    IXOR:  int: 131943
-3565.    I2L:   long: 13107
-3566.    I2F:   float: 1179438080
-3567.    I2D:   double: 4668431263781093376
-3568.    INT2BYTE: byte: 51
-3569.    INT2CHAR: char: 13107
-3570.    INT2SHORT: short: 13107
-3571.    not IFEQ
-3572.    not IFLT
-3573.    not IFLE
-3574.    not IF_ICMPEQ
-3575.    not IF_ICMPGT
-3576.    not IF_ICMPGE
-3577.    COND_ICMPEQ 13107 == 0: 1
-3578.    COND_ICMPNE 13107 != 0: 0
-3579.    COND_ICMPLT 13107 <  0: 1
-3580.    COND_ICMPLE 13107 <= 0: 1
-3581.    COND_ICMPGT 13107 >  0: 0
-3582.    COND_ICMPGE 13107 >= 0: 0
-3583.    COND_ICMPEQ 13107 == 0: 0
-3584.    COND_ICMPNE 13107 != 0: 1
-3585.    COND_ICMPLT 13107 <  0: 0
-3586.    COND_ICMPLE 13107 <= 0: 0
-3587.    COND_ICMPGT 13107 >  0: 1
-3588.    COND_ICMPGE 13107 >= 0: 1
-3589.    COND_ICMPEQ 13107 == 0: 3
-3590.    COND_ICMPNE 13107 != 0: 2
-3591.    COND_ICMPLT 13107 <  0: 3
-3592.    COND_ICMPLE 13107 <= 0: 3
-3593.    COND_ICMPGT 13107 >  0: 2
-3594.    COND_ICMPGE 13107 >= 0: 2
-3595.    COND_ICMPEQ 13107 == 143444: false
-3596.    COND_ICMPNE 13107 != 143444: true
-3597.    COND_ICMPLT 13107 <  143444: true
-3598.    COND_ICMPLE 13107 <= 143444: true
-3599.    COND_ICMPGT 13107 >  143444: false
-3600.    COND_ICMPGE 13107 >= 143444: false
-3601.    TESTINT CALLED WITH int: 4444441
-3602.                    AND int: 12342
-3603.    IADD:  int: 4456783
-3604.    ISUB:  int: 4432099
-3605.    IMUL:  int: -981284026
-3606.    IDIV:  int: 360
-3607.    IREM:  int: 1321
-3608.    INEG:  int: -4444441
-3609.    ISHL:  int: 1178599424
-3610.    ISHR:  int: 1
-3611.    IUSHR: int: 1
-3612.    IAND:  int: 4112
-3613.    IOR:   int: 4452671
-3614.    IXOR:  int: 4448559
-3615.    I2L:   long: 4444441
-3616.    I2F:   float: 1250402866
-3617.    I2D:   double: 4706530193160798208
-3618.    INT2BYTE: byte: 25
-3619.    INT2CHAR: char: 53529
-3620.    INT2SHORT: short: -12007
-3621.    not IFEQ
-3622.    not IFLT
-3623.    not IFLE
-3624.    not IF_ICMPEQ
-3625.    not IF_ICMPLT
-3626.    not IF_ICMPLE
-3627.    COND_ICMPEQ 4444441 == 0: 1
-3628.    COND_ICMPNE 4444441 != 0: 0
-3629.    COND_ICMPLT 4444441 <  0: 1
-3630.    COND_ICMPLE 4444441 <= 0: 1
-3631.    COND_ICMPGT 4444441 >  0: 0
-3632.    COND_ICMPGE 4444441 >= 0: 0
-3633.    COND_ICMPEQ 4444441 == 0: 0
-3634.    COND_ICMPNE 4444441 != 0: 1
-3635.    COND_ICMPLT 4444441 <  0: 0
-3636.    COND_ICMPLE 4444441 <= 0: 0
-3637.    COND_ICMPGT 4444441 >  0: 1
-3638.    COND_ICMPGE 4444441 >= 0: 1
-3639.    COND_ICMPEQ 4444441 == 0: 3
-3640.    COND_ICMPNE 4444441 != 0: 2
-3641.    COND_ICMPLT 4444441 <  0: 3
-3642.    COND_ICMPLE 4444441 <= 0: 3
-3643.    COND_ICMPGT 4444441 >  0: 2
-3644.    COND_ICMPGE 4444441 >= 0: 2
-3645.    COND_ICMPEQ 4444441 == 12342: false
-3646.    COND_ICMPNE 4444441 != 12342: true
-3647.    COND_ICMPLT 4444441 <  12342: false
-3648.    COND_ICMPLE 4444441 <= 12342: false
-3649.    COND_ICMPGT 4444441 >  12342: true
-3650.    COND_ICMPGE 4444441 >= 12342: true
-3651.    ------------------- test longs
-3652.    TESTLONG called with long: 1
-3653.                     AND long: 2
-3654.    LADD:  long: 3
-3655.    LSUB:  long: -1
-3656.    LMUL:  long: 2
-3657.    LDIV:  long: 0
-3658.    LREM:  long: 1
-3659.    LNEG:  long: -1
-3660.    LSHL:  long: 4
-3661.    LSHR:  long: 0
-3662.    LUSHR: long: 0
-3663.    LAND:  long: 0
-3664.    LOR:   long: 3
-3665.    LXOR:  long: 3
-3666.    L2I:   int: 1
-3667.    L2F:   float: 1065353216
-3668.    L2D:   double: 4607182418800017408
-3669.    LCMP a == b : false
-3670.    LCMP a != b : true
-3671.    LCMP a <  b : true
-3672.    LCMP a <= b : true
-3673.    LCMP a >  b : false
-3674.    LCMP a >= b : false
-3675.    not IF_LCMPNE
-3676.    not IF_LCMPLT
-3677.    not IF_LCMPLE
-3678.    TESTLONG called with long: -1
-3679.                     AND long: 17
-3680.    LADD:  long: 16
-3681.    LSUB:  long: -18
-3682.    LMUL:  long: -17
-3683.    LDIV:  long: 0
-3684.    LREM:  long: -1
-3685.    LNEG:  long: 1
-3686.    LSHL:  long: -131072
-3687.    LSHR:  long: -1
-3688.    LUSHR: long: 140737488355327
-3689.    LAND:  long: 17
-3690.    LOR:   long: -1
-3691.    LXOR:  long: -18
-3692.    L2I:   int: -1
-3693.    L2F:   float: -1082130432
-3694.    L2D:   double: -4616189618054758400
-3695.    LCMP a == b : false
-3696.    LCMP a != b : true
-3697.    LCMP a <  b : true
-3698.    LCMP a <= b : true
-3699.    LCMP a >  b : false
-3700.    LCMP a >= b : false
-3701.    not IF_LCMPNE
-3702.    not IF_LCMPLT
-3703.    not IF_LCMPLE
-3704.    TESTLONG called with long: -24351
-3705.                     AND long: 24123
-3706.    LADD:  long: -228
-3707.    LSUB:  long: -48474
-3708.    LMUL:  long: -587419173
-3709.    LDIV:  long: -1
-3710.    LREM:  long: -228
-3711.    LNEG:  long: 24351
-3712.    LSHL:  long: 576460752303423488
-3713.    LSHR:  long: -1
-3714.    LUSHR: long: 31
-3715.    LAND:  long: 33
-3716.    LOR:   long: -261
-3717.    LXOR:  long: -294
-3718.    L2I:   int: -24351
-3719.    L2F:   float: -960610816
-3720.    L2D:   double: -4550949270986948608
-3721.    LCMP a == b : false
-3722.    LCMP a != b : true
-3723.    LCMP a <  b : true
-3724.    LCMP a <= b : true
-3725.    LCMP a >  b : false
-3726.    LCMP a >= b : false
-3727.    not IF_LCMPNE
-3728.    not IF_LCMPLT
-3729.    not IF_LCMPLE
-3730.    TESTLONG called with long: 4918923241323
-3731.                     AND long: -4423423234231423
-3732.    LADD:  long: -4418504310990100
-3733.    LSUB:  long: 4428342157472746
-3734.    LMUL:  long: -4222930371437023765
-3735.    LDIV:  long: 0
-3736.    LREM:  long: 4918923241323
-3737.    LNEG:  long: -4918923241323
-3738.    LSHL:  long: 9837846482646
-3739.    LSHR:  long: 2459461620661
-3740.    LUSHR: long: 2459461620661
-3741.    LAND:  long: 451041567489
-3742.    LOR:   long: -4418955352557589
-3743.    LXOR:  long: -4419406394125078
-3744.    L2I:   int: 1185687403
-3745.    L2F:   float: 1418668246
-3746.    L2D:   double: 4796866980921322496
-3747.    LCMP a == b : false
-3748.    LCMP a != b : true
-3749.    LCMP a <  b : false
-3750.    LCMP a <= b : false
-3751.    LCMP a >  b : true
-3752.    LCMP a >= b : true
-3753.    not IF_LCMPNE
-3754.    not IF_LCMPGT
-3755.    not IF_LCMPGE
-3756.    TESTLONG called with long: 0
-3757.                     AND long: 0
-3758.    LADD:  long: 0
-3759.    LSUB:  long: 0
-3760.    LMUL:  long: 0
-3761.    divison by zero
-3762.    divison by zero
-3763.    LNEG:  long: 0
-3764.    LSHL:  long: 0
-3765.    LSHR:  long: 0
-3766.    LUSHR: long: 0
-3767.    LAND:  long: 0
-3768.    LOR:   long: 0
-3769.    LXOR:  long: 0
-3770.    L2I:   int: 0
-3771.    L2F:   float: 0
-3772.    L2D:   double: 0
-3773.    LCMP a == b : true
-3774.    LCMP a != b : false
-3775.    LCMP a <  b : false
-3776.    LCMP a <= b : true
-3777.    LCMP a >  b : false
-3778.    LCMP a >= b : true
-3779.    not IF_LCMPEQ
-3780.    not IF_LCMPLE
-3781.    not IF_LCMPGE
-3782.    TESTLONG called with long: -1
-3783.                     AND long: -1
-3784.    LADD:  long: -2
-3785.    LSUB:  long: 0
-3786.    LMUL:  long: 1
-3787.    LDIV:  long: 1
-3788.    LREM:  long: 0
-3789.    LNEG:  long: 1
-3790.    LSHL:  long: -9223372036854775808
-3791.    LSHR:  long: -1
-3792.    LUSHR: long: 1
-3793.    LAND:  long: -1
-3794.    LOR:   long: -1
-3795.    LXOR:  long: 0
-3796.    L2I:   int: -1
-3797.    L2F:   float: -1082130432
-3798.    L2D:   double: -4616189618054758400
-3799.    LCMP a == b : true
-3800.    LCMP a != b : false
-3801.    LCMP a <  b : false
-3802.    LCMP a <= b : true
-3803.    LCMP a >  b : false
-3804.    LCMP a >= b : true
-3805.    not IF_LCMPEQ
-3806.    not IF_LCMPLE
-3807.    not IF_LCMPGE
-3808.    TESTLONG called with long: 1423487
-3809.                     AND long: 123444442344
-3810.    LADD:  long: 123445865831
-3811.    LSUB:  long: -123443018857
-3812.    LMUL:  long: 175721558898933528
-3813.    LDIV:  long: 0
-3814.    LREM:  long: 1423487
-3815.    LNEG:  long: -1423487
-3816.    LSHL:  long: 1565140508487974912
-3817.    LSHR:  long: 0
-3818.    LUSHR: long: 0
-3819.    LAND:  long: 1355880
-3820.    LOR:   long: 123444509951
-3821.    LXOR:  long: 123443154071
-3822.    L2I:   int: 1423487
-3823.    L2F:   float: 1236124664
-3824.    L2D:   double: 4698864641831337984
-3825.    LCMP a == b : false
-3826.    LCMP a != b : true
-3827.    LCMP a <  b : true
-3828.    LCMP a <= b : true
-3829.    LCMP a >  b : false
-3830.    LCMP a >= b : false
-3831.    not IF_LCMPNE
-3832.    not IF_LCMPLT
-3833.    not IF_LCMPLE
-3834.    TESTLONG called with long: 9223372036854775807
-3835.                     AND long: 1
-3836.    LADD:  long: -9223372036854775808
-3837.    LSUB:  long: 9223372036854775806
-3838.    LMUL:  long: 9223372036854775807
-3839.    LDIV:  long: 9223372036854775807
-3840.    LREM:  long: 0
-3841.    LNEG:  long: -9223372036854775807
-3842.    LSHL:  long: -2
-3843.    LSHR:  long: 4611686018427387903
-3844.    LUSHR: long: 4611686018427387903
-3845.    LAND:  long: 1
-3846.    LOR:   long: 9223372036854775807
-3847.    LXOR:  long: 9223372036854775806
-3848.    L2I:   int: -1
-3849.    L2F:   float: 1593835520
-3850.    L2D:   double: 4890909195324358656
-3851.    LCMP a == b : false
-3852.    LCMP a != b : true
-3853.    LCMP a <  b : false
-3854.    LCMP a <= b : false
-3855.    LCMP a >  b : true
-3856.    LCMP a >= b : true
-3857.    not IF_LCMPNE
-3858.    not IF_LCMPGT
-3859.    not IF_LCMPGE
-3860.    TESTLONG called with long: 0
-3861.                     AND long: 9223372036854775807
-3862.    LADD:  long: 9223372036854775807
-3863.    LSUB:  long: -9223372036854775807
-3864.    LMUL:  long: 0
-3865.    LDIV:  long: 0
-3866.    LREM:  long: 0
-3867.    LNEG:  long: 0
-3868.    LSHL:  long: 0
-3869.    LSHR:  long: 0
-3870.    LUSHR: long: 0
-3871.    LAND:  long: 0
-3872.    LOR:   long: 9223372036854775807
-3873.    LXOR:  long: 9223372036854775807
-3874.    L2I:   int: 0
-3875.    L2F:   float: 0
-3876.    L2D:   double: 0
-3877.    LCMP a == b : false
-3878.    LCMP a != b : true
-3879.    LCMP a <  b : true
-3880.    LCMP a <= b : true
-3881.    LCMP a >  b : false
-3882.    LCMP a >= b : false
-3883.    not IF_LCMPNE
-3884.    not IF_LCMPLT
-3885.    not IF_LCMPLE
-3886.    TESTLONG called with long: 13107
-3887.                     AND long: 143444
-3888.    LADD:  long: 156551
-3889.    LSUB:  long: -130337
-3890.    LMUL:  long: 1880120508
-3891.    LDIV:  long: 0
-3892.    LREM:  long: 13107
-3893.    LNEG:  long: -13107
-3894.    LSHL:  long: 13743685632
-3895.    LSHR:  long: 0
-3896.    LUSHR: long: 0
-3897.    LAND:  long: 12304
-3898.    LOR:   long: 144247
-3899.    LXOR:  long: 131943
-3900.    L2I:   int: 13107
-3901.    L2F:   float: 1179438080
-3902.    L2D:   double: 4668431263781093376
-3903.    LCMP a == b : false
-3904.    LCMP a != b : true
-3905.    LCMP a <  b : true
-3906.    LCMP a <= b : true
-3907.    LCMP a >  b : false
-3908.    LCMP a >= b : false
-3909.    not IF_LCMPNE
-3910.    not IF_LCMPLT
-3911.    not IF_LCMPLE
-3912.    TESTLONG called with long: 4444441
-3913.                     AND long: 12342
-3914.    LADD:  long: 4456783
-3915.    LSUB:  long: 4432099
-3916.    LMUL:  long: 54853290822
-3917.    LDIV:  long: 360
-3918.    LREM:  long: 1321
-3919.    LNEG:  long: -4444441
-3920.    LSHL:  long: 5062045981164437504
-3921.    LSHR:  long: 0
-3922.    LUSHR: long: 0
-3923.    LAND:  long: 4112
-3924.    LOR:   long: 4452671
-3925.    LXOR:  long: 4448559
-3926.    L2I:   int: 4444441
-3927.    L2F:   float: 1250402866
-3928.    L2D:   double: 4706530193160798208
-3929.    LCMP a == b : false
-3930.    LCMP a != b : true
-3931.    LCMP a <  b : false
-3932.    LCMP a <= b : false
-3933.    LCMP a >  b : true
-3934.    LCMP a >= b : true
-3935.    not IF_LCMPNE
-3936.    not IF_LCMPGT
-3937.    not IF_LCMPGE
-3938.    ------------------- test floats
-3939.    TESTFLOAT called with float: 1065353216
-3940.                      AND float: 1073917985
-3941.    FADD:  float: 1078112289
-3942.    FSUB:  float: -1081778110
-3943.    FMUL:  float: 1073917985
-3944.    FDIV:  float: 1056619533
-3945.    FREM:  float: 1065353216
-3946.    F2I:   int: 1
-3947.    F2L:   long: 1
-3948.    F2D:   double: 4607182418800017408
-3949.    FCMP a!=b
-3950.    FCMP a<b
-3951.    FCMP a<=b
-3952.    TESTFLOAT called with float: -1080167498
-3953.                      AND float: 1099662623
-3954.    FADD:  float: 1099015652
-3955.    FSUB:  float: -1047174054
-3956.    FMUL:  float: -1045681427
-3957.    FDIV:  float: -1114576645
-3958.    FREM:  float: -1080167498
-3959.    F2I:   int: -1
-3960.    F2L:   long: -1
-3961.    F2D:   double: -4615135775887982592
-3962.    FCMP a!=b
-3963.    FCMP a<b
-3964.    FCMP a<=b
-3965.    TESTFLOAT called with float: -960610816
-3966.                      AND float: 1186756096
-3967.    FADD:  float: -1016856576
-3968.    FSUB:  float: -952280576
-3969.    FMUL:  float: -838070983
-3970.    FDIV:  float: -1082051147
-3971.    FREM:  float: -1016856576
-3972.    F2I:   int: -24351
-3973.    F2L:   long: -24351
-3974.    F2D:   double: -4550949270986948608
-3975.    FCMP a!=b
-3976.    FCMP a<b
-3977.    FCMP a<=b
-3978.    TESTFLOAT called with float: 1036831949
-3979.                      AND float: 1151033344
-3980.    FADD:  float: 1151034163
-3981.    FSUB:  float: -996451123
-3982.    FMUL:  float: 1123588506
-3983.    FDIV:  float: 950581132
-3984.    FREM:  float: 1036831949
-3985.    F2I:   int: 0
-3986.    F2L:   long: 0
-3987.    F2D:   double: 4591870180174331904
-3988.    FCMP a!=b
-3989.    FCMP a<b
-3990.    FCMP a<=b
-3991.    TESTFLOAT called with float: 0
-3992.                      AND float: -1005921678
-3993.    FADD:  float: -1005921678
-3994.    FSUB:  float: 1141561970
-3995.    FMUL:  float: -2147483648
-3996.    FDIV:  float: -2147483648
-3997.    FREM:  float: 0
-3998.    F2I:   int: 0
-3999.    F2L:   long: 0
-4000.    F2D:   double: 0
-4001.    FCMP a!=b
-4002.    FCMP a>b
-4003.    FCMP a>=b
-4004.    TESTFLOAT called with float: 1117388800
-4005.                      AND float: -1005928448
-4006.    FADD:  float: -1007747072
-4007.    FSUB:  float: 1142816768
-4008.    FMUL:  float: -953749760
-4009.    FDIV:  float: -1106374265
-4010.    FREM:  float: 1117388800
-4011.    F2I:   int: 77
-4012.    F2L:   long: 77
-4013.    F2D:   double: 4635118810238550016
-4014.    FCMP a!=b
-4015.    FCMP a>b
-4016.    FCMP a>=b
-4017.    TESTFLOAT called with float: 1325400059
-4018.                      AND float: -922251744
-4019.    FADD:  float: 1325395721
-4020.    FSUB:  float: 1325402230
-4021.    FMUL:  float: -662204899
-4022.    FDIV:  float: -982402220
-4023.    FREM:  float: 1220539712
-4024.    F2I:   int: 2147483008
-4025.    F2L:   long: 2147483008
-4026.    F2D:   double: 4746794004564148224
-4027.    FCMP a!=b
-4028.    FCMP a>b
-4029.    FCMP a>=b
-4030.    ------------------- test doubles
-4031.    TESTDOUBLE called with double: 4607182418800017408
-4032.                       AND double: 4611780594144116736
-4033.    DADD:  double: 4614032393957801984
-4034.    DSUB:  double: -4616000466621300736
-4035.    DMUL:  double: 4611780594144116736
-4036.    DDIV:  double: 4602493558224229689
-4037.    DREM:  double: 4607182418800017408
-4038.    D2I:   int: 1
-4039.    D2L:   long: 1
-4040.    D2F:   float: 1065353216
-4041.    DCMP a!=b
-4042.    DCMP a<b
-4043.    DCMP a<=b
-4044.    TESTDOUBLE called with double: -4615135775887982592
-4045.                       AND double: 4625602141426286592
-4046.    DADD:  double: 4625254801314152448
-4047.    DSUB:  double: -4597422555316355072
-4048.    DMUL:  double: -4596621207431527808
-4049.    DDIV:  double: -4633609045894396972
-4050.    DREM:  double: -4615135775887982592
-4051.    D2I:   int: -1
-4052.    D2L:   long: -1
-4053.    D2F:   float: -1080167498
-4054.    DCMP a!=b
-4055.    DCMP a<b
-4056.    DCMP a<=b
-4057.    TESTDOUBLE called with double: -4550949270986948608
-4058.                       AND double: 4672360093705043968
-4059.    DADD:  double: -4581145983454281728
-4060.    DSUB:  double: -4546477007440969728
-4061.    DMUL:  double: -4485161199314403328
-4062.    DDIV:  double: -4616147052009281450
-4063.    DREM:  double: -4581145983454281728
-4064.    D2I:   int: -24351
-4065.    D2L:   long: -24351
-4066.    D2F:   float: -960610816
-4067.    DCMP a!=b
-4068.    DCMP a<b
-4069.    DCMP a<=b
-4070.    TESTDOUBLE called with double: 4591870180174331904
-4071.                       AND double: 4653181587259654144
-4072.    DADD:  double: 4653182027064311808
-4073.    DSUB:  double: -4570190889399779328
-4074.    DMUL:  double: 4638447251968491520
-4075.    DDIV:  double: 4545564625306141371
-4076.    DREM:  double: 4591870180174331904
-4077.    D2I:   int: 0
-4078.    D2L:   long: 0
-4079.    D2F:   float: 1036831949
-4080.    DCMP a!=b
-4081.    DCMP a<b
-4082.    DCMP a<=b
-4083.    TESTDOUBLE called with double: 0
-4084.                       AND double: -4575275354792394752
-4085.    DADD:  double: -4575275354792394752
-4086.    DSUB:  double: 4648096682062381056
-4087.    DMUL:  double: -9223372036854775808
-4088.    DDIV:  double: -9223372036854775808
-4089.    DREM:  double: 0
-4090.    D2I:   int: 0
-4091.    D2L:   long: 0
-4092.    D2F:   float: 0
-4093.    DCMP a!=b
-4094.    DCMP a>b
-4095.    DCMP a>=b
-4096.    TESTDOUBLE called with double: 4635118810238550016
-4097.                       AND double: -4575278989408468992
-4098.    DADD:  double: -4576255355733934080
-4099.    DSUB:  double: 4648770346609016832
-4100.    DMUL:  double: -4547265769594945536
-4101.    DDIV:  double: -4629205426707555293
-4102.    DREM:  double: 4635118810238550016
-4103.    D2I:   int: 77
-4104.    D2L:   long: 77
-4105.    D2F:   float: 1117388800
-4106.    DCMP a!=b
-4107.    DCMP a>b
-4108.    DCMP a>=b
-4109.    TESTDOUBLE called with double: 4746794004564148224
-4110.                       AND double: -4530355401018834944
-4111.    DADD:  double: 4746791675743961088
-4112.    DSUB:  double: 4746795170316419072
-4113.    DMUL:  double: -4390743813991748608
-4114.    DDIV:  double: -4562648441847017049
-4115.    DREM:  double: 4690497534437621760
-4116.    D2I:   int: 2147483008
-4117.    D2L:   long: 2147483008
-4118.    D2F:   float: 1325400059
-4119.    DCMP a!=b
-4120.    DCMP a>b
-4121.    DCMP a>=b
-4122.    =================== end of test =========================
-4123.    
\ No newline at end of file
+137.    null pointer check: get field
+138.    exception: null pointer
+139.    null pointer check: invokevirtual
+140.    exception: null pointer
+141.    null pointer check: invokeinterface
+142.    exception: null pointer
+143.    null pointer check: monitorenter
+144.    exception: null pointer
+145.    ------------------- test byte arrays
+146.    null pointer check: byte array store
+147.    exception: null pointer
+148.    null pointer check: byte array load
+149.    exception: null pointer
+150.    negative array size check: byte array
+151.    exception: negative array size
+152.    array bound check: byte array store
+153.    exception: out of bounds: -1
+154.    array bound check: byte array load
+155.    exception: out of bounds: -1
+156.    testarraybounds: -5
+157.    exception: out of bounds: 5
+158.    testarraybounds: 40
+159.    testarraybounds: 45
+160.    testarraybounds: 50
+161.    testarraybounds: 55
+162.    testarraybounds: 60
+163.    testarraybounds: 90
+164.    testarraybounds: 95
+165.    testarraybounds: 100
+166.    exception: out of bounds: 100
+167.    exception: out of bounds: -4
+168.    exception: out of bounds: -3
+169.    exception: out of bounds: -2
+170.    exception: out of bounds: -1
+171.    exception: out of bounds: 100
+172.    exception: out of bounds: 101
+173.    exception: out of bounds: 102
+174.    exception: out of bounds: 103
+175.    byte: -50
+176.    byte: -49
+177.    byte: -48
+178.    byte: -47
+179.    byte: -46
+180.    byte: -45
+181.    byte: -44
+182.    byte: -43
+183.    byte: -42
+184.    byte: -41
+185.    byte: -40
+186.    byte: -39
+187.    byte: -38
+188.    byte: -37
+189.    byte: -36
+190.    byte: -35
+191.    byte: -34
+192.    byte: -33
+193.    byte: -32
+194.    byte: -31
+195.    byte: -30
+196.    byte: -29
+197.    byte: -28
+198.    byte: -27
+199.    byte: -26
+200.    byte: -25
+201.    byte: -24
+202.    byte: -23
+203.    byte: -22
+204.    byte: -21
+205.    byte: -20
+206.    byte: -19
+207.    byte: -18
+208.    byte: -17
+209.    byte: -16
+210.    byte: -15
+211.    byte: -14
+212.    byte: -13
+213.    byte: -12
+214.    byte: -11
+215.    byte: -10
+216.    byte: -9
+217.    byte: -8
+218.    byte: -7
+219.    byte: -6
+220.    byte: -5
+221.    byte: -4
+222.    byte: -3
+223.    byte: -2
+224.    byte: -1
+225.    byte: 0
+226.    byte: 1
+227.    byte: 2
+228.    byte: 3
+229.    byte: 4
+230.    byte: 5
+231.    byte: 6
+232.    byte: 7
+233.    byte: 8
+234.    byte: 9
+235.    byte: 10
+236.    byte: 11
+237.    byte: 12
+238.    byte: 13
+239.    byte: 14
+240.    byte: 15
+241.    byte: 16
+242.    byte: 17
+243.    byte: 18
+244.    byte: 19
+245.    byte: 20
+246.    byte: 21
+247.    byte: 22
+248.    byte: 23
+249.    byte: 24
+250.    byte: 25
+251.    byte: 26
+252.    byte: 27
+253.    byte: 28
+254.    byte: 29
+255.    byte: 30
+256.    byte: 31
+257.    byte: 32
+258.    byte: 33
+259.    byte: 34
+260.    byte: 35
+261.    byte: 36
+262.    byte: 37
+263.    byte: 38
+264.    byte: 39
+265.    byte: 40
+266.    byte: 41
+267.    byte: 42
+268.    byte: 43
+269.    byte: 44
+270.    byte: 45
+271.    byte: 46
+272.    byte: 47
+273.    byte: 48
+274.    byte: 49
+275.    -------- test short arrays
+276.    null pointer check: short array store
+277.    exception: null pointer
+278.    null pointer check: short array load
+279.    exception: null pointer
+280.    array bound check: short array store
+281.    exception: out of bounds: -1
+282.    array bound check: short array load
+283.    exception: out of bounds: -1
+284.    short: -50
+285.    short: -49
+286.    short: -48
+287.    short: -47
+288.    short: -46
+289.    short: -45
+290.    short: -44
+291.    short: -43
+292.    short: -42
+293.    short: -41
+294.    short: -40
+295.    short: -39
+296.    short: -38
+297.    short: -37
+298.    short: -36
+299.    short: -35
+300.    short: -34
+301.    short: -33
+302.    short: -32
+303.    short: -31
+304.    short: -30
+305.    short: -29
+306.    short: -28
+307.    short: -27
+308.    short: -26
+309.    short: -25
+310.    short: -24
+311.    short: -23
+312.    short: -22
+313.    short: -21
+314.    short: -20
+315.    short: -19
+316.    short: -18
+317.    short: -17
+318.    short: -16
+319.    short: -15
+320.    short: -14
+321.    short: -13
+322.    short: -12
+323.    short: -11
+324.    short: -10
+325.    short: -9
+326.    short: -8
+327.    short: -7
+328.    short: -6
+329.    short: -5
+330.    short: -4
+331.    short: -3
+332.    short: -2
+333.    short: -1
+334.    short: 0
+335.    short: 1
+336.    short: 2
+337.    short: 3
+338.    short: 4
+339.    short: 5
+340.    short: 6
+341.    short: 7
+342.    short: 8
+343.    short: 9
+344.    short: 10
+345.    short: 11
+346.    short: 12
+347.    short: 13
+348.    short: 14
+349.    short: 15
+350.    short: 16
+351.    short: 17
+352.    short: 18
+353.    short: 19
+354.    short: 20
+355.    short: 21
+356.    short: 22
+357.    short: 23
+358.    short: 24
+359.    short: 25
+360.    short: 26
+361.    short: 27
+362.    short: 28
+363.    short: 29
+364.    short: 30
+365.    short: 31
+366.    short: 32
+367.    short: 33
+368.    short: 34
+369.    short: 35
+370.    short: 36
+371.    short: 37
+372.    short: 38
+373.    short: 39
+374.    short: 40
+375.    short: 41
+376.    short: 42
+377.    short: 43
+378.    short: 44
+379.    short: 45
+380.    short: 46
+381.    short: 47
+382.    short: 48
+383.    short: 49
+384.    -------- test int arrays
+385.    null pointer check: int array store
+386.    exception: null pointer
+387.    null pointer check: int array load
+388.    exception: null pointer
+389.    array bound check: int array store
+390.    exception: out of bounds: -1
+391.    array bound check: int array load
+392.    exception: out of bounds: -1
+393.    int: 123456
+394.    int: 123457
+395.    int: 123458
+396.    int: 123459
+397.    int: 123460
+398.    int: 123461
+399.    int: 123462
+400.    int: 123463
+401.    int: 123464
+402.    int: 123465
+403.    -------- test long arrays
+404.    null pointer check: long array store
+405.    exception: null pointer
+406.    null pointer check: long array load
+407.    exception: null pointer
+408.    array bound check: long array store
+409.    exception: out of bounds: -1
+410.    array bound check: long array load
+411.    exception: out of bounds: -1
+412.    long: 1234567890123
+413.    long: 1234567890124
+414.    long: 1234567890125
+415.    long: 1234567890126
+416.    long: 1234567890127
+417.    long: 1234567890128
+418.    long: 1234567890129
+419.    long: 1234567890130
+420.    long: 1234567890131
+421.    long: 1234567890132
+422.    -------- test char arrays
+423.    null pointer check: char array store
+424.    exception: null pointer
+425.    null pointer check: char array load
+426.    exception: null pointer
+427.    array bound check: char array store
+428.    exception: out of bounds: -1
+429.    array bound check: char array load
+430.    exception: out of bounds: -1
+431.    char: 65
+432.    char: 66
+433.    char: 67
+434.    char: 68
+435.    char: 69
+436.    char: 70
+437.    char: 71
+438.    char: 72
+439.    char: 73
+440.    char: 74
+441.    char: 75
+442.    char: 76
+443.    char: 77
+444.    char: 78
+445.    char: 79
+446.    char: 80
+447.    char: 81
+448.    char: 82
+449.    char: 83
+450.    char: 84
+451.    char: 85
+452.    char: 86
+453.    char: 87
+454.    char: 88
+455.    char: 89
+456.    char: 90
+457.    char: 91
+458.    char: 92
+459.    char: 93
+460.    char: 94
+461.    char: 95
+462.    char: 96
+463.    char: 97
+464.    char: 98
+465.    char: 99
+466.    char: 100
+467.    char: 101
+468.    char: 102
+469.    char: 103
+470.    char: 104
+471.    char: 105
+472.    char: 106
+473.    char: 107
+474.    char: 108
+475.    char: 109
+476.    char: 110
+477.    char: 111
+478.    char: 112
+479.    char: 113
+480.    char: 114
+481.    -------- test address arrays
+482.    null pointer check: address array store
+483.    exception: null pointer
+484.    null pointer check: address array load
+485.    exception: null pointer
+486.    negative array size check: address array
+487.    exception: negative array size
+488.    array bound check: address array store
+489.    exception: out of bounds: -1
+490.    array bound check: address array load
+491.    exception: out of bounds: -1
+492.    0. Zeile
+493.    1. Zeile
+494.    2. Zeile
+495.    3. Zeile
+496.    4. Zeile
+497.    -------- test multi dimensional arrays
+498.    negative array size check: multi dimensional array
+499.    exception: negative array size
+500.    int: 0
+501.    long: 7
+502.    float: 1053609165
+503.    double: -4591560543633932288
+504.    int: 1
+505.    long: 8
+506.    float: 1068708659
+507.    double: -4591701281122287616
+508.    int: 2
+509.    long: 9
+510.    float: 1075419546
+511.    double: -4591842018610642944
+512.    int: 3
+513.    long: 10
+514.    float: 1079613850
+515.    double: -4591982756098998272
+516.    int: 1
+517.    long: 8
+518.    float: 1068708659
+519.    double: -4591701281122287616
+520.    int: 2
+521.    long: 9
+522.    float: 1075419546
+523.    double: -4591842018610642944
+524.    int: 3
+525.    long: 10
+526.    float: 1079613850
+527.    double: -4591982756098998272
+528.    int: 4
+529.    long: 11
+530.    float: 1082969293
+531.    double: -4592123493587353600
+532.    int: 4
+533.    long: 11
+534.    float: 1082969293
+535.    double: -4592123493587353600
+536.    int: 5
+537.    long: 12
+538.    float: 1085066445
+539.    double: -4592264231075708928
+540.    int: 6
+541.    long: 13
+542.    float: 1087163597
+543.    double: -4592404968564064256
+544.    int: 7
+545.    long: 14
+546.    float: 1089260749
+547.    double: -4592545706052419584
+548.    int: 1
+549.    long: 8
+550.    float: 1068708659
+551.    double: -4591701281122287616
+552.    int: 2
+553.    long: 9
+554.    float: 1075419546
+555.    double: -4591842018610642944
+556.    int: 3
+557.    long: 10
+558.    float: 1079613850
+559.    double: -4591982756098998272
+560.    int: 4
+561.    long: 11
+562.    float: 1082969293
+563.    double: -4592123493587353600
+564.    int: 2
+565.    long: 9
+566.    float: 1075419546
+567.    double: -4591842018610642944
+568.    int: 3
+569.    long: 10
+570.    float: 1079613850
+571.    double: -4591982756098998272
+572.    int: 4
+573.    long: 11
+574.    float: 1082969293
+575.    double: -4592123493587353600
+576.    int: 5
+577.    long: 12
+578.    float: 1085066445
+579.    double: -4592264231075708928
+580.    int: 5
+581.    long: 12
+582.    float: 1085066445
+583.    double: -4592264231075708928
+584.    int: 6
+585.    long: 13
+586.    float: 1087163597
+587.    double: -4592404968564064256
+588.    int: 7
+589.    long: 14
+590.    float: 1089260749
+591.    double: -4592545706052419584
+592.    int: 8
+593.    long: 15
+594.    float: 1090938470
+595.    double: -4592686443540774912
+596.    ------------------- test consts
+597.    TESTCONST CALLED WITH int: 1
+598.                      AND long: 1
+599.    not IF_ICMPEQint: 0
+600.    not IF_ICMPLTint: 0
+601.    not IF_ICMPLEint: 0
+602.    not IF_LCMPEQint: 0
+603.    not IF_LCMPLTint: 0
+604.    not IF_LCMPLEint: 0
+605.    IADDCONST:  int: 0
+606.    ISUBCONST:  int: 2
+607.    IMULCONST:  int: -1
+608.    ISHLCONST:  int: -2147483648
+609.    ISHRCONST:  int: 0
+610.    IUSHRCONST: int: 0
+611.    IANDCONST:  int: 1
+612.    IORCONST:   int: -1
+613.    IXORCONST:  int: -2
+614.    not IF_ICMPEQint: -1
+615.    not IF_ICMPLTint: -1
+616.    not IF_ICMPLEint: -1
+617.    LADDCONST:  long: 0
+618.    LSUBCONST:  long: 2
+619.    LMULCONST:  long: -1
+620.    LSHLCONST:  long: -9223372036854775808
+621.    LSHRCONST:  long: 0
+622.    LUSHRCONST: long: 0
+623.    LANDCONST:  long: 1
+624.    LORCONST:   long: -1
+625.    LXORCONST:  long: -2
+626.    not IF_LCMPEQint: -1
+627.    not IF_LCMPLTint: -1
+628.    not IF_LCMPLEint: -1
+629.    IADDCONST:  int: 2
+630.    ISUBCONST:  int: 0
+631.    IMULCONST:  int: 1
+632.    ISHLCONST:  int: 2
+633.    ISHRCONST:  int: 0
+634.    IUSHRCONST: int: 0
+635.    IANDCONST:  int: 1
+636.    IORCONST:   int: 1
+637.    IXORCONST:  int: 0
+638.    not IF_ICMPNEint: 1
+639.    not IF_ICMPLTint: 1
+640.    not IF_ICMPGTint: 1
+641.    LADDCONST:  long: 2
+642.    LSUBCONST:  long: 0
+643.    LMULCONST:  long: 1
+644.    LSHLCONST:  long: 2
+645.    LSHRCONST:  long: 0
+646.    LUSHRCONST: long: 0
+647.    LANDCONST:  long: 1
+648.    LORCONST:   long: 1
+649.    LXORCONST:  long: 0
+650.    not IF_LCMPNEint: 1
+651.    not IF_LCMPLTint: 1
+652.    not IF_LCMPGTint: 1
+653.    IADDCONST:  int: 256
+654.    ISUBCONST:  int: -254
+655.    IMULCONST:  int: 255
+656.    ISHLCONST:  int: -2147483648
+657.    ISHRCONST:  int: 0
+658.    IUSHRCONST: int: 0
+659.    IANDCONST:  int: 1
+660.    IORCONST:   int: 255
+661.    IXORCONST:  int: 254
+662.    not IF_ICMPEQint: 255
+663.    not IF_ICMPGTint: 255
+664.    not IF_ICMPGEint: 255
+665.    LADDCONST:  long: 256
+666.    LSUBCONST:  long: -254
+667.    LMULCONST:  long: 255
+668.    LSHLCONST:  long: -9223372036854775808
+669.    LSHRCONST:  long: 0
+670.    LUSHRCONST: long: 0
+671.    LANDCONST:  long: 1
+672.    LORCONST:   long: 255
+673.    LXORCONST:  long: 254
+674.    not IF_LCMPEQint: 255
+675.    not IF_LCMPGTint: 255
+676.    not IF_LCMPGEint: 255
+677.    IADDCONST:  int: 257
+678.    ISUBCONST:  int: -255
+679.    IMULCONST:  int: 256
+680.    ISHLCONST:  int: 1
+681.    ISHRCONST:  int: 1
+682.    IUSHRCONST: int: 1
+683.    IANDCONST:  int: 0
+684.    IORCONST:   int: 257
+685.    IXORCONST:  int: 257
+686.    not IF_ICMPEQint: 256
+687.    not IF_ICMPGTint: 256
+688.    not IF_ICMPGEint: 256
+689.    LADDCONST:  long: 257
+690.    LSUBCONST:  long: -255
+691.    LMULCONST:  long: 256
+692.    LSHLCONST:  long: 1
+693.    LSHRCONST:  long: 1
+694.    LUSHRCONST: long: 1
+695.    LANDCONST:  long: 0
+696.    LORCONST:   long: 257
+697.    LXORCONST:  long: 257
+698.    not IF_LCMPEQint: 256
+699.    not IF_LCMPGTint: 256
+700.    not IF_LCMPGEint: 256
+701.    IADDCONST:  int: 32768
+702.    ISUBCONST:  int: -32766
+703.    IMULCONST:  int: 32767
+704.    ISHLCONST:  int: -2147483648
+705.    ISHRCONST:  int: 0
+706.    IUSHRCONST: int: 0
+707.    IANDCONST:  int: 1
+708.    IORCONST:   int: 32767
+709.    IXORCONST:  int: 32766
+710.    not IF_ICMPEQint: 32767
+711.    not IF_ICMPGTint: 32767
+712.    not IF_ICMPGEint: 32767
+713.    LADDCONST:  long: 32768
+714.    LSUBCONST:  long: -32766
+715.    LMULCONST:  long: 32767
+716.    LSHLCONST:  long: -9223372036854775808
+717.    LSHRCONST:  long: 0
+718.    LUSHRCONST: long: 0
+719.    LANDCONST:  long: 1
+720.    LORCONST:   long: 32767
+721.    LXORCONST:  long: 32766
+722.    not IF_LCMPEQint: 32767
+723.    not IF_LCMPGTint: 32767
+724.    not IF_LCMPGEint: 32767
+725.    IADDCONST:  int: 32769
+726.    ISUBCONST:  int: -32767
+727.    IMULCONST:  int: 32768
+728.    ISHLCONST:  int: 1
+729.    ISHRCONST:  int: 1
+730.    IUSHRCONST: int: 1
+731.    IANDCONST:  int: 0
+732.    IORCONST:   int: 32769
+733.    IXORCONST:  int: 32769
+734.    not IF_ICMPEQint: 32768
+735.    not IF_ICMPGTint: 32768
+736.    not IF_ICMPGEint: 32768
+737.    LADDCONST:  long: 32769
+738.    LSUBCONST:  long: -32767
+739.    LMULCONST:  long: 32768
+740.    LSHLCONST:  long: 1
+741.    LSHRCONST:  long: 1
+742.    LUSHRCONST: long: 1
+743.    LANDCONST:  long: 0
+744.    LORCONST:   long: 32769
+745.    LXORCONST:  long: 32769
+746.    not IF_LCMPEQint: 32768
+747.    not IF_LCMPGTint: 32768
+748.    not IF_LCMPGEint: 32768
+749.    IADDCONST:  int: -32767
+750.    ISUBCONST:  int: 32769
+751.    IMULCONST:  int: -32768
+752.    ISHLCONST:  int: 1
+753.    ISHRCONST:  int: 1
+754.    IUSHRCONST: int: 1
+755.    IANDCONST:  int: 0
+756.    IORCONST:   int: -32767
+757.    IXORCONST:  int: -32767
+758.    not IF_ICMPEQint: -32768
+759.    not IF_ICMPLTint: -32768
+760.    not IF_ICMPLEint: -32768
+761.    LADDCONST:  long: -32767
+762.    LSUBCONST:  long: 32769
+763.    LMULCONST:  long: -32768
+764.    LSHLCONST:  long: 1
+765.    LSHRCONST:  long: 1
+766.    LUSHRCONST: long: 1
+767.    LANDCONST:  long: 0
+768.    LORCONST:   long: -32767
+769.    LXORCONST:  long: -32767
+770.    not IF_LCMPEQint: -32768
+771.    not IF_LCMPLTint: -32768
+772.    not IF_LCMPLEint: -32768
+773.    IADDCONST:  int: -32768
+774.    ISUBCONST:  int: 32770
+775.    IMULCONST:  int: -32769
+776.    ISHLCONST:  int: -2147483648
+777.    ISHRCONST:  int: 0
+778.    IUSHRCONST: int: 0
+779.    IANDCONST:  int: 1
+780.    IORCONST:   int: -32769
+781.    IXORCONST:  int: -32770
+782.    not IF_ICMPEQint: -32769
+783.    not IF_ICMPLTint: -32769
+784.    not IF_ICMPLEint: -32769
+785.    LADDCONST:  long: -32768
+786.    LSUBCONST:  long: 32770
+787.    LMULCONST:  long: -32769
+788.    LSHLCONST:  long: -9223372036854775808
+789.    LSHRCONST:  long: 0
+790.    LUSHRCONST: long: 0
+791.    LANDCONST:  long: 1
+792.    LORCONST:   long: -32769
+793.    LXORCONST:  long: -32770
+794.    not IF_LCMPEQint: -32769
+795.    not IF_LCMPLTint: -32769
+796.    not IF_LCMPLEint: -32769
+797.    TESTCONST CALLED WITH int: -1
+798.                      AND long: -1
+799.    not IF_ICMPEQint: 0
+800.    not IF_ICMPGTint: 0
+801.    not IF_ICMPGEint: 0
+802.    not IF_LCMPEQint: 0
+803.    not IF_LCMPGTint: 0
+804.    not IF_LCMPGEint: 0
+805.    IADDCONST:  int: -2
+806.    ISUBCONST:  int: 0
+807.    IMULCONST:  int: 1
+808.    ISHLCONST:  int: -2147483648
+809.    ISHRCONST:  int: -1
+810.    IUSHRCONST: int: 1
+811.    IANDCONST:  int: -1
+812.    IORCONST:   int: -1
+813.    IXORCONST:  int: 0
+814.    not IF_ICMPNEint: -1
+815.    not IF_ICMPLTint: -1
+816.    not IF_ICMPGTint: -1
+817.    LADDCONST:  long: -2
+818.    LSUBCONST:  long: 0
+819.    LMULCONST:  long: 1
+820.    LSHLCONST:  long: -9223372036854775808
+821.    LSHRCONST:  long: -1
+822.    LUSHRCONST: long: 1
+823.    LANDCONST:  long: -1
+824.    LORCONST:   long: -1
+825.    LXORCONST:  long: 0
+826.    not IF_LCMPNEint: -1
+827.    not IF_LCMPLTint: -1
+828.    not IF_LCMPGTint: -1
+829.    IADDCONST:  int: 0
+830.    ISUBCONST:  int: -2
+831.    IMULCONST:  int: -1
+832.    ISHLCONST:  int: -2
+833.    ISHRCONST:  int: -1
+834.    IUSHRCONST: int: 2147483647
+835.    IANDCONST:  int: 1
+836.    IORCONST:   int: -1
+837.    IXORCONST:  int: -2
+838.    not IF_ICMPEQint: 1
+839.    not IF_ICMPGTint: 1
+840.    not IF_ICMPGEint: 1
+841.    LADDCONST:  long: 0
+842.    LSUBCONST:  long: -2
+843.    LMULCONST:  long: -1
+844.    LSHLCONST:  long: -2
+845.    LSHRCONST:  long: -1
+846.    LUSHRCONST: long: 9223372036854775807
+847.    LANDCONST:  long: 1
+848.    LORCONST:   long: -1
+849.    LXORCONST:  long: -2
+850.    not IF_LCMPEQint: 1
+851.    not IF_LCMPGTint: 1
+852.    not IF_LCMPGEint: 1
+853.    IADDCONST:  int: 254
+854.    ISUBCONST:  int: -256
+855.    IMULCONST:  int: -255
+856.    ISHLCONST:  int: -2147483648
+857.    ISHRCONST:  int: -1
+858.    IUSHRCONST: int: 1
+859.    IANDCONST:  int: 255
+860.    IORCONST:   int: -1
+861.    IXORCONST:  int: -256
+862.    not IF_ICMPEQint: 255
+863.    not IF_ICMPGTint: 255
+864.    not IF_ICMPGEint: 255
+865.    LADDCONST:  long: 254
+866.    LSUBCONST:  long: -256
+867.    LMULCONST:  long: -255
+868.    LSHLCONST:  long: -9223372036854775808
+869.    LSHRCONST:  long: -1
+870.    LUSHRCONST: long: 1
+871.    LANDCONST:  long: 255
+872.    LORCONST:   long: -1
+873.    LXORCONST:  long: -256
+874.    not IF_LCMPEQint: 255
+875.    not IF_LCMPGTint: 255
+876.    not IF_LCMPGEint: 255
+877.    IADDCONST:  int: 255
+878.    ISUBCONST:  int: -257
+879.    IMULCONST:  int: -256
+880.    ISHLCONST:  int: -1
+881.    ISHRCONST:  int: -1
+882.    IUSHRCONST: int: -1
+883.    IANDCONST:  int: 256
+884.    IORCONST:   int: -1
+885.    IXORCONST:  int: -257
+886.    not IF_ICMPEQint: 256
+887.    not IF_ICMPGTint: 256
+888.    not IF_ICMPGEint: 256
+889.    LADDCONST:  long: 255
+890.    LSUBCONST:  long: -257
+891.    LMULCONST:  long: -256
+892.    LSHLCONST:  long: -1
+893.    LSHRCONST:  long: -1
+894.    LUSHRCONST: long: -1
+895.    LANDCONST:  long: 256
+896.    LORCONST:   long: -1
+897.    LXORCONST:  long: -257
+898.    not IF_LCMPEQint: 256
+899.    not IF_LCMPGTint: 256
+900.    not IF_LCMPGEint: 256
+901.    IADDCONST:  int: 32766
+902.    ISUBCONST:  int: -32768
+903.    IMULCONST:  int: -32767
+904.    ISHLCONST:  int: -2147483648
+905.    ISHRCONST:  int: -1
+906.    IUSHRCONST: int: 1
+907.    IANDCONST:  int: 32767
+908.    IORCONST:   int: -1
+909.    IXORCONST:  int: -32768
+910.    not IF_ICMPEQint: 32767
+911.    not IF_ICMPGTint: 32767
+912.    not IF_ICMPGEint: 32767
+913.    LADDCONST:  long: 32766
+914.    LSUBCONST:  long: -32768
+915.    LMULCONST:  long: -32767
+916.    LSHLCONST:  long: -9223372036854775808
+917.    LSHRCONST:  long: -1
+918.    LUSHRCONST: long: 1
+919.    LANDCONST:  long: 32767
+920.    LORCONST:   long: -1
+921.    LXORCONST:  long: -32768
+922.    not IF_LCMPEQint: 32767
+923.    not IF_LCMPGTint: 32767
+924.    not IF_LCMPGEint: 32767
+925.    IADDCONST:  int: 32767
+926.    ISUBCONST:  int: -32769
+927.    IMULCONST:  int: -32768
+928.    ISHLCONST:  int: -1
+929.    ISHRCONST:  int: -1
+930.    IUSHRCONST: int: -1
+931.    IANDCONST:  int: 32768
+932.    IORCONST:   int: -1
+933.    IXORCONST:  int: -32769
+934.    not IF_ICMPEQint: 32768
+935.    not IF_ICMPGTint: 32768
+936.    not IF_ICMPGEint: 32768
+937.    LADDCONST:  long: 32767
+938.    LSUBCONST:  long: -32769
+939.    LMULCONST:  long: -32768
+940.    LSHLCONST:  long: -1
+941.    LSHRCONST:  long: -1
+942.    LUSHRCONST: long: -1
+943.    LANDCONST:  long: 32768
+944.    LORCONST:   long: -1
+945.    LXORCONST:  long: -32769
+946.    not IF_LCMPEQint: 32768
+947.    not IF_LCMPGTint: 32768
+948.    not IF_LCMPGEint: 32768
+949.    IADDCONST:  int: -32769
+950.    ISUBCONST:  int: 32767
+951.    IMULCONST:  int: 32768
+952.    ISHLCONST:  int: -1
+953.    ISHRCONST:  int: -1
+954.    IUSHRCONST: int: -1
+955.    IANDCONST:  int: -32768
+956.    IORCONST:   int: -1
+957.    IXORCONST:  int: 32767
+958.    not IF_ICMPEQint: -32768
+959.    not IF_ICMPLTint: -32768
+960.    not IF_ICMPLEint: -32768
+961.    LADDCONST:  long: -32769
+962.    LSUBCONST:  long: 32767
+963.    LMULCONST:  long: 32768
+964.    LSHLCONST:  long: -1
+965.    LSHRCONST:  long: -1
+966.    LUSHRCONST: long: -1
+967.    LANDCONST:  long: -32768
+968.    LORCONST:   long: -1
+969.    LXORCONST:  long: 32767
+970.    not IF_LCMPEQint: -32768
+971.    not IF_LCMPLTint: -32768
+972.    not IF_LCMPLEint: -32768
+973.    IADDCONST:  int: -32770
+974.    ISUBCONST:  int: 32768
+975.    IMULCONST:  int: 32769
+976.    ISHLCONST:  int: -2147483648
+977.    ISHRCONST:  int: -1
+978.    IUSHRCONST: int: 1
+979.    IANDCONST:  int: -32769
+980.    IORCONST:   int: -1
+981.    IXORCONST:  int: 32768
+982.    not IF_ICMPEQint: -32769
+983.    not IF_ICMPLTint: -32769
+984.    not IF_ICMPLEint: -32769
+985.    LADDCONST:  long: -32770
+986.    LSUBCONST:  long: 32768
+987.    LMULCONST:  long: 32769
+988.    LSHLCONST:  long: -9223372036854775808
+989.    LSHRCONST:  long: -1
+990.    LUSHRCONST: long: 1
+991.    LANDCONST:  long: -32769
+992.    LORCONST:   long: -1
+993.    LXORCONST:  long: 32768
+994.    not IF_LCMPEQint: -32769
+995.    not IF_LCMPLTint: -32769
+996.    not IF_LCMPLEint: -32769
+997.    TESTCONST CALLED WITH int: -24123
+998.                      AND long: -4918923241323
+999.    not IF_ICMPEQint: 0
+1000.    not IF_ICMPGTint: 0
+1001.    not IF_ICMPGEint: 0
+1002.    not IF_LCMPEQint: 0
+1003.    not IF_LCMPGTint: 0
+1004.    not IF_LCMPGEint: 0
+1005.    IADDCONST:  int: -24124
+1006.    ISUBCONST:  int: -24122
+1007.    IMULCONST:  int: 24123
+1008.    ISHLCONST:  int: -2147483648
+1009.    ISHRCONST:  int: -1
+1010.    IUSHRCONST: int: 1
+1011.    IANDCONST:  int: -24123
+1012.    IORCONST:   int: -1
+1013.    IXORCONST:  int: 24122
+1014.    not IF_ICMPEQint: -1
+1015.    not IF_ICMPGTint: -1
+1016.    not IF_ICMPGEint: -1
+1017.    LADDCONST:  long: -4918923241324
+1018.    LSUBCONST:  long: -4918923241322
+1019.    LMULCONST:  long: 4918923241323
+1020.    LSHLCONST:  long: -9223372036854775808
+1021.    LSHRCONST:  long: -1
+1022.    LUSHRCONST: long: 1
+1023.    LANDCONST:  long: -4918923241323
+1024.    LORCONST:   long: -1
+1025.    LXORCONST:  long: 4918923241322
+1026.    not IF_LCMPEQint: -1
+1027.    not IF_LCMPGTint: -1
+1028.    not IF_LCMPGEint: -1
+1029.    IADDCONST:  int: -24122
+1030.    ISUBCONST:  int: -24124
+1031.    IMULCONST:  int: -24123
+1032.    ISHLCONST:  int: -48246
+1033.    ISHRCONST:  int: -12062
+1034.    IUSHRCONST: int: 2147471586
+1035.    IANDCONST:  int: 1
+1036.    IORCONST:   int: -24123
+1037.    IXORCONST:  int: -24124
+1038.    not IF_ICMPEQint: 1
+1039.    not IF_ICMPGTint: 1
+1040.    not IF_ICMPGEint: 1
+1041.    LADDCONST:  long: -4918923241322
+1042.    LSUBCONST:  long: -4918923241324
+1043.    LMULCONST:  long: -4918923241323
+1044.    LSHLCONST:  long: -9837846482646
+1045.    LSHRCONST:  long: -2459461620662
+1046.    LUSHRCONST: long: 9223369577393155146
+1047.    LANDCONST:  long: 1
+1048.    LORCONST:   long: -4918923241323
+1049.    LXORCONST:  long: -4918923241324
+1050.    not IF_LCMPEQint: 1
+1051.    not IF_LCMPGTint: 1
+1052.    not IF_LCMPGEint: 1
+1053.    IADDCONST:  int: -23868
+1054.    ISUBCONST:  int: -24378
+1055.    IMULCONST:  int: -6151365
+1056.    ISHLCONST:  int: -2147483648
+1057.    ISHRCONST:  int: -1
+1058.    IUSHRCONST: int: 1
+1059.    IANDCONST:  int: 197
+1060.    IORCONST:   int: -24065
+1061.    IXORCONST:  int: -24262
+1062.    not IF_ICMPEQint: 255
+1063.    not IF_ICMPGTint: 255
+1064.    not IF_ICMPGEint: 255
+1065.    LADDCONST:  long: -4918923241068
+1066.    LSUBCONST:  long: -4918923241578
+1067.    LMULCONST:  long: -1254325426537365
+1068.    LSHLCONST:  long: -9223372036854775808
+1069.    LSHRCONST:  long: -1
+1070.    LUSHRCONST: long: 1
+1071.    LANDCONST:  long: 149
+1072.    LORCONST:   long: -4918923241217
+1073.    LXORCONST:  long: -4918923241366
+1074.    not IF_LCMPEQint: 255
+1075.    not IF_LCMPGTint: 255
+1076.    not IF_LCMPGEint: 255
+1077.    IADDCONST:  int: -23867
+1078.    ISUBCONST:  int: -24379
+1079.    IMULCONST:  int: -6175488
+1080.    ISHLCONST:  int: -24123
+1081.    ISHRCONST:  int: -24123
+1082.    IUSHRCONST: int: -24123
+1083.    IANDCONST:  int: 256
+1084.    IORCONST:   int: -24123
+1085.    IXORCONST:  int: -24379
+1086.    not IF_ICMPEQint: 256
+1087.    not IF_ICMPGTint: 256
+1088.    not IF_ICMPGEint: 256
+1089.    LADDCONST:  long: -4918923241067
+1090.    LSUBCONST:  long: -4918923241579
+1091.    LMULCONST:  long: -1259244349778688
+1092.    LSHLCONST:  long: -4918923241323
+1093.    LSHRCONST:  long: -4918923241323
+1094.    LUSHRCONST: long: -4918923241323
+1095.    LANDCONST:  long: 0
+1096.    LORCONST:   long: -4918923241067
+1097.    LXORCONST:  long: -4918923241067
+1098.    not IF_LCMPEQint: 256
+1099.    not IF_LCMPGTint: 256
+1100.    not IF_LCMPGEint: 256
+1101.    IADDCONST:  int: 8644
+1102.    ISUBCONST:  int: -56890
+1103.    IMULCONST:  int: -790438341
+1104.    ISHLCONST:  int: -2147483648
+1105.    ISHRCONST:  int: -1
+1106.    IUSHRCONST: int: 1
+1107.    IANDCONST:  int: 8645
+1108.    IORCONST:   int: -1
+1109.    IXORCONST:  int: -8646
+1110.    not IF_ICMPEQint: 32767
+1111.    not IF_ICMPGTint: 32767
+1112.    not IF_ICMPGEint: 32767
+1113.    LADDCONST:  long: -4918923208556
+1114.    LSUBCONST:  long: -4918923274090
+1115.    LMULCONST:  long: -161178357848430741
+1116.    LSHLCONST:  long: -9223372036854775808
+1117.    LSHRCONST:  long: -1
+1118.    LUSHRCONST: long: 1
+1119.    LANDCONST:  long: 22677
+1120.    LORCONST:   long: -4918923231233
+1121.    LXORCONST:  long: -4918923253910
+1122.    not IF_LCMPEQint: 32767
+1123.    not IF_LCMPGTint: 32767
+1124.    not IF_LCMPGEint: 32767
+1125.    IADDCONST:  int: 8645
+1126.    ISUBCONST:  int: -56891
+1127.    IMULCONST:  int: -790462464
+1128.    ISHLCONST:  int: -24123
+1129.    ISHRCONST:  int: -24123
+1130.    IUSHRCONST: int: -24123
+1131.    IANDCONST:  int: 32768
+1132.    IORCONST:   int: -24123
+1133.    IXORCONST:  int: -56891
+1134.    not IF_ICMPEQint: 32768
+1135.    not IF_ICMPGTint: 32768
+1136.    not IF_ICMPGEint: 32768
+1137.    LADDCONST:  long: -4918923208555
+1138.    LSUBCONST:  long: -4918923274091
+1139.    LMULCONST:  long: -161183276771672064
+1140.    LSHLCONST:  long: -4918923241323
+1141.    LSHRCONST:  long: -4918923241323
+1142.    LUSHRCONST: long: -4918923241323
+1143.    LANDCONST:  long: 32768
+1144.    LORCONST:   long: -4918923241323
+1145.    LXORCONST:  long: -4918923274091
+1146.    not IF_LCMPEQint: 32768
+1147.    not IF_LCMPGTint: 32768
+1148.    not IF_LCMPGEint: 32768
+1149.    IADDCONST:  int: -56891
+1150.    ISUBCONST:  int: 8645
+1151.    IMULCONST:  int: 790462464
+1152.    ISHLCONST:  int: -24123
+1153.    ISHRCONST:  int: -24123
+1154.    IUSHRCONST: int: -24123
+1155.    IANDCONST:  int: -32768
+1156.    IORCONST:   int: -24123
+1157.    IXORCONST:  int: 8645
+1158.    not IF_ICMPEQint: -32768
+1159.    not IF_ICMPLTint: -32768
+1160.    not IF_ICMPLEint: -32768
+1161.    LADDCONST:  long: -4918923274091
+1162.    LSUBCONST:  long: -4918923208555
+1163.    LMULCONST:  long: 161183276771672064
+1164.    LSHLCONST:  long: -4918923241323
+1165.    LSHRCONST:  long: -4918923241323
+1166.    LUSHRCONST: long: -4918923241323
+1167.    LANDCONST:  long: -4918923264000
+1168.    LORCONST:   long: -10091
+1169.    LXORCONST:  long: 4918923253909
+1170.    not IF_LCMPEQint: -32768
+1171.    not IF_LCMPGTint: -32768
+1172.    not IF_LCMPGEint: -32768
+1173.    IADDCONST:  int: -56892
+1174.    ISUBCONST:  int: 8646
+1175.    IMULCONST:  int: 790486587
+1176.    ISHLCONST:  int: -2147483648
+1177.    ISHRCONST:  int: -1
+1178.    IUSHRCONST: int: 1
+1179.    IANDCONST:  int: -56891
+1180.    IORCONST:   int: -1
+1181.    IXORCONST:  int: 56890
+1182.    not IF_ICMPEQint: -32769
+1183.    not IF_ICMPLTint: -32769
+1184.    not IF_ICMPLEint: -32769
+1185.    LADDCONST:  long: -4918923274092
+1186.    LSUBCONST:  long: -4918923208554
+1187.    LMULCONST:  long: 161188195694913387
+1188.    LSHLCONST:  long: -9223372036854775808
+1189.    LSHRCONST:  long: -1
+1190.    LUSHRCONST: long: 1
+1191.    LANDCONST:  long: -4918923274091
+1192.    LORCONST:   long: -1
+1193.    LXORCONST:  long: 4918923274090
+1194.    not IF_LCMPEQint: -32769
+1195.    not IF_LCMPGTint: -32769
+1196.    not IF_LCMPGEint: -32769
+1197.    TESTCONST CALLED WITH int: -243511
+1198.                      AND long: -4423423234231423
+1199.    not IF_ICMPEQint: 0
+1200.    not IF_ICMPGTint: 0
+1201.    not IF_ICMPGEint: 0
+1202.    not IF_LCMPEQint: 0
+1203.    not IF_LCMPGTint: 0
+1204.    not IF_LCMPGEint: 0
+1205.    IADDCONST:  int: -243512
+1206.    ISUBCONST:  int: -243510
+1207.    IMULCONST:  int: 243511
+1208.    ISHLCONST:  int: -2147483648
+1209.    ISHRCONST:  int: -1
+1210.    IUSHRCONST: int: 1
+1211.    IANDCONST:  int: -243511
+1212.    IORCONST:   int: -1
+1213.    IXORCONST:  int: 243510
+1214.    not IF_ICMPEQint: -1
+1215.    not IF_ICMPGTint: -1
+1216.    not IF_ICMPGEint: -1
+1217.    LADDCONST:  long: -4423423234231424
+1218.    LSUBCONST:  long: -4423423234231422
+1219.    LMULCONST:  long: 4423423234231423
+1220.    LSHLCONST:  long: -9223372036854775808
+1221.    LSHRCONST:  long: -1
+1222.    LUSHRCONST: long: 1
+1223.    LANDCONST:  long: -4423423234231423
+1224.    LORCONST:   long: -1
+1225.    LXORCONST:  long: 4423423234231422
+1226.    not IF_LCMPEQint: -1
+1227.    not IF_LCMPGTint: -1
+1228.    not IF_LCMPGEint: -1
+1229.    IADDCONST:  int: -243510
+1230.    ISUBCONST:  int: -243512
+1231.    IMULCONST:  int: -243511
+1232.    ISHLCONST:  int: -487022
+1233.    ISHRCONST:  int: -121756
+1234.    IUSHRCONST: int: 2147361892
+1235.    IANDCONST:  int: 1
+1236.    IORCONST:   int: -243511
+1237.    IXORCONST:  int: -243512
+1238.    not IF_ICMPEQint: 1
+1239.    not IF_ICMPGTint: 1
+1240.    not IF_ICMPGEint: 1
+1241.    LADDCONST:  long: -4423423234231422
+1242.    LSUBCONST:  long: -4423423234231424
+1243.    LMULCONST:  long: -4423423234231423
+1244.    LSHLCONST:  long: -8846846468462846
+1245.    LSHRCONST:  long: -2211711617115712
+1246.    LUSHRCONST: long: 9221160325237660096
+1247.    LANDCONST:  long: 1
+1248.    LORCONST:   long: -4423423234231423
+1249.    LXORCONST:  long: -4423423234231424
+1250.    not IF_LCMPEQint: 1
+1251.    not IF_LCMPGTint: 1
+1252.    not IF_LCMPGEint: 1
+1253.    IADDCONST:  int: -243256
+1254.    ISUBCONST:  int: -243766
+1255.    IMULCONST:  int: -62095305
+1256.    ISHLCONST:  int: -2147483648
+1257.    ISHRCONST:  int: -1
+1258.    IUSHRCONST: int: 1
+1259.    IANDCONST:  int: 201
+1260.    IORCONST:   int: -243457
+1261.    IXORCONST:  int: -243658
+1262.    not IF_ICMPEQint: 255
+1263.    not IF_ICMPGTint: 255
+1264.    not IF_ICMPGEint: 255
+1265.    LADDCONST:  long: -4423423234231168
+1266.    LSUBCONST:  long: -4423423234231678
+1267.    LMULCONST:  long: -1127972924729012865
+1268.    LSHLCONST:  long: -9223372036854775808
+1269.    LSHRCONST:  long: -1
+1270.    LUSHRCONST: long: 1
+1271.    LANDCONST:  long: 129
+1272.    LORCONST:   long: -4423423234231297
+1273.    LXORCONST:  long: -4423423234231426
+1274.    not IF_LCMPEQint: 255
+1275.    not IF_LCMPGTint: 255
+1276.    not IF_LCMPGEint: 255
+1277.    IADDCONST:  int: -243255
+1278.    ISUBCONST:  int: -243767
+1279.    IMULCONST:  int: -62338816
+1280.    ISHLCONST:  int: -243511
+1281.    ISHRCONST:  int: -243511
+1282.    IUSHRCONST: int: -243511
+1283.    IANDCONST:  int: 0
+1284.    IORCONST:   int: -243255
+1285.    IXORCONST:  int: -243255
+1286.    not IF_ICMPEQint: 256
+1287.    not IF_ICMPGTint: 256
+1288.    not IF_ICMPGEint: 256
+1289.    LADDCONST:  long: -4423423234231167
+1290.    LSUBCONST:  long: -4423423234231679
+1291.    LMULCONST:  long: -1132396347963244288
+1292.    LSHLCONST:  long: -4423423234231423
+1293.    LSHRCONST:  long: -4423423234231423
+1294.    LUSHRCONST: long: -4423423234231423
+1295.    LANDCONST:  long: 256
+1296.    LORCONST:   long: -4423423234231423
+1297.    LXORCONST:  long: -4423423234231679
+1298.    not IF_LCMPEQint: 256
+1299.    not IF_LCMPGTint: 256
+1300.    not IF_LCMPGEint: 256
+1301.    IADDCONST:  int: -210744
+1302.    ISUBCONST:  int: -276278
+1303.    IMULCONST:  int: 610809655
+1304.    ISHLCONST:  int: -2147483648
+1305.    ISHRCONST:  int: -1
+1306.    IUSHRCONST: int: 1
+1307.    IANDCONST:  int: 18633
+1308.    IORCONST:   int: -229377
+1309.    IXORCONST:  int: -248010
+1310.    not IF_ICMPEQint: 32767
+1311.    not IF_ICMPGTint: 32767
+1312.    not IF_ICMPGEint: 32767
+1313.    LADDCONST:  long: -4423423234198656
+1314.    LSUBCONST:  long: -4423423234264190
+1315.    LMULCONST:  long: 2631643473615375487
+1316.    LSHLCONST:  long: -9223372036854775808
+1317.    LSHRCONST:  long: -1
+1318.    LUSHRCONST: long: 1
+1319.    LANDCONST:  long: 13185
+1320.    LORCONST:   long: -4423423234211841
+1321.    LXORCONST:  long: -4423423234225026
+1322.    not IF_LCMPEQint: 32767
+1323.    not IF_LCMPGTint: 32767
+1324.    not IF_LCMPGEint: 32767
+1325.    IADDCONST:  int: -210743
+1326.    ISUBCONST:  int: -276279
+1327.    IMULCONST:  int: 610566144
+1328.    ISHLCONST:  int: -243511
+1329.    ISHRCONST:  int: -243511
+1330.    IUSHRCONST: int: -243511
+1331.    IANDCONST:  int: 0
+1332.    IORCONST:   int: -210743
+1333.    IXORCONST:  int: -210743
+1334.    not IF_ICMPEQint: 32768
+1335.    not IF_ICMPGTint: 32768
+1336.    not IF_ICMPGEint: 32768
+1337.    LADDCONST:  long: -4423423234198655
+1338.    LSUBCONST:  long: -4423423234264191
+1339.    LMULCONST:  long: 2627220050381144064
+1340.    LSHLCONST:  long: -4423423234231423
+1341.    LSHRCONST:  long: -4423423234231423
+1342.    LUSHRCONST: long: -4423423234231423
+1343.    LANDCONST:  long: 32768
+1344.    LORCONST:   long: -4423423234231423
+1345.    LXORCONST:  long: -4423423234264191
+1346.    not IF_LCMPEQint: 32768
+1347.    not IF_LCMPGTint: 32768
+1348.    not IF_LCMPGEint: 32768
+1349.    IADDCONST:  int: -276279
+1350.    ISUBCONST:  int: -210743
+1351.    IMULCONST:  int: -610566144
+1352.    ISHLCONST:  int: -243511
+1353.    ISHRCONST:  int: -243511
+1354.    IUSHRCONST: int: -243511
+1355.    IANDCONST:  int: -262144
+1356.    IORCONST:   int: -14135
+1357.    IXORCONST:  int: 248009
+1358.    not IF_ICMPEQint: -32768
+1359.    not IF_ICMPGTint: -32768
+1360.    not IF_ICMPGEint: -32768
+1361.    LADDCONST:  long: -4423423234264191
+1362.    LSUBCONST:  long: -4423423234198655
+1363.    LMULCONST:  long: -2627220050381144064
+1364.    LSHLCONST:  long: -4423423234231423
+1365.    LSHRCONST:  long: -4423423234231423
+1366.    LUSHRCONST: long: -4423423234231423
+1367.    LANDCONST:  long: -4423423234244608
+1368.    LORCONST:   long: -19583
+1369.    LXORCONST:  long: 4423423234225025
+1370.    not IF_LCMPEQint: -32768
+1371.    not IF_LCMPGTint: -32768
+1372.    not IF_LCMPGEint: -32768
+1373.    IADDCONST:  int: -276280
+1374.    ISUBCONST:  int: -210742
+1375.    IMULCONST:  int: -610322633
+1376.    ISHLCONST:  int: -2147483648
+1377.    ISHRCONST:  int: -1
+1378.    IUSHRCONST: int: 1
+1379.    IANDCONST:  int: -243511
+1380.    IORCONST:   int: -32769
+1381.    IXORCONST:  int: 210742
+1382.    not IF_ICMPEQint: -32769
+1383.    not IF_ICMPGTint: -32769
+1384.    not IF_ICMPGEint: -32769
+1385.    LADDCONST:  long: -4423423234264192
+1386.    LSUBCONST:  long: -4423423234198654
+1387.    LMULCONST:  long: -2622796627146912641
+1388.    LSHLCONST:  long: -9223372036854775808
+1389.    LSHRCONST:  long: -1
+1390.    LUSHRCONST: long: 1
+1391.    LANDCONST:  long: -4423423234264191
+1392.    LORCONST:   long: -1
+1393.    LXORCONST:  long: 4423423234264190
+1394.    not IF_LCMPEQint: -32769
+1395.    not IF_LCMPGTint: -32769
+1396.    not IF_LCMPGEint: -32769
+1397.    TESTCONST CALLED WITH int: 2147483647
+1398.                      AND long: 9223372036854775807
+1399.    not IF_ICMPEQint: 0
+1400.    not IF_ICMPLTint: 0
+1401.    not IF_ICMPLEint: 0
+1402.    not IF_LCMPEQint: 0
+1403.    not IF_LCMPLTint: 0
+1404.    not IF_LCMPLEint: 0
+1405.    IADDCONST:  int: 2147483646
+1406.    ISUBCONST:  int: -2147483648
+1407.    IMULCONST:  int: -2147483647
+1408.    ISHLCONST:  int: -2147483648
+1409.    ISHRCONST:  int: 0
+1410.    IUSHRCONST: int: 0
+1411.    IANDCONST:  int: 2147483647
+1412.    IORCONST:   int: -1
+1413.    IXORCONST:  int: -2147483648
+1414.    not IF_ICMPEQint: -1
+1415.    not IF_ICMPLTint: -1
+1416.    not IF_ICMPLEint: -1
+1417.    LADDCONST:  long: 9223372036854775806
+1418.    LSUBCONST:  long: -9223372036854775808
+1419.    LMULCONST:  long: -9223372036854775807
+1420.    LSHLCONST:  long: -9223372036854775808
+1421.    LSHRCONST:  long: 0
+1422.    LUSHRCONST: long: 0
+1423.    LANDCONST:  long: 9223372036854775807
+1424.    LORCONST:   long: -1
+1425.    LXORCONST:  long: -9223372036854775808
+1426.    not IF_LCMPEQint: -1
+1427.    not IF_LCMPLTint: -1
+1428.    not IF_LCMPLEint: -1
+1429.    IADDCONST:  int: -2147483648
+1430.    ISUBCONST:  int: 2147483646
+1431.    IMULCONST:  int: 2147483647
+1432.    ISHLCONST:  int: -2
+1433.    ISHRCONST:  int: 1073741823
+1434.    IUSHRCONST: int: 1073741823
+1435.    IANDCONST:  int: 1
+1436.    IORCONST:   int: 2147483647
+1437.    IXORCONST:  int: 2147483646
+1438.    not IF_ICMPEQint: 1
+1439.    not IF_ICMPLTint: 1
+1440.    not IF_ICMPLEint: 1
+1441.    LADDCONST:  long: -9223372036854775808
+1442.    LSUBCONST:  long: 9223372036854775806
+1443.    LMULCONST:  long: 9223372036854775807
+1444.    LSHLCONST:  long: -2
+1445.    LSHRCONST:  long: 4611686018427387903
+1446.    LUSHRCONST: long: 4611686018427387903
+1447.    LANDCONST:  long: 1
+1448.    LORCONST:   long: 9223372036854775807
+1449.    LXORCONST:  long: 9223372036854775806
+1450.    not IF_LCMPEQint: 1
+1451.    not IF_LCMPLTint: 1
+1452.    not IF_LCMPLEint: 1
+1453.    IADDCONST:  int: -2147483394
+1454.    ISUBCONST:  int: 2147483392
+1455.    IMULCONST:  int: 2147483393
+1456.    ISHLCONST:  int: -2147483648
+1457.    ISHRCONST:  int: 0
+1458.    IUSHRCONST: int: 0
+1459.    IANDCONST:  int: 255
+1460.    IORCONST:   int: 2147483647
+1461.    IXORCONST:  int: 2147483392
+1462.    not IF_ICMPEQint: 255
+1463.    not IF_ICMPLTint: 255
+1464.    not IF_ICMPLEint: 255
+1465.    LADDCONST:  long: -9223372036854775554
+1466.    LSUBCONST:  long: 9223372036854775552
+1467.    LMULCONST:  long: 9223372036854775553
+1468.    LSHLCONST:  long: -9223372036854775808
+1469.    LSHRCONST:  long: 0
+1470.    LUSHRCONST: long: 0
+1471.    LANDCONST:  long: 255
+1472.    LORCONST:   long: 9223372036854775807
+1473.    LXORCONST:  long: 9223372036854775552
+1474.    not IF_LCMPEQint: 255
+1475.    not IF_LCMPLTint: 255
+1476.    not IF_LCMPLEint: 255
+1477.    IADDCONST:  int: -2147483393
+1478.    ISUBCONST:  int: 2147483391
+1479.    IMULCONST:  int: -256
+1480.    ISHLCONST:  int: 2147483647
+1481.    ISHRCONST:  int: 2147483647
+1482.    IUSHRCONST: int: 2147483647
+1483.    IANDCONST:  int: 256
+1484.    IORCONST:   int: 2147483647
+1485.    IXORCONST:  int: 2147483391
+1486.    not IF_ICMPEQint: 256
+1487.    not IF_ICMPLTint: 256
+1488.    not IF_ICMPLEint: 256
+1489.    LADDCONST:  long: -9223372036854775553
+1490.    LSUBCONST:  long: 9223372036854775551
+1491.    LMULCONST:  long: -256
+1492.    LSHLCONST:  long: 9223372036854775807
+1493.    LSHRCONST:  long: 9223372036854775807
+1494.    LUSHRCONST: long: 9223372036854775807
+1495.    LANDCONST:  long: 256
+1496.    LORCONST:   long: 9223372036854775807
+1497.    LXORCONST:  long: 9223372036854775551
+1498.    not IF_LCMPEQint: 256
+1499.    not IF_LCMPLTint: 256
+1500.    not IF_LCMPLEint: 256
+1501.    IADDCONST:  int: -2147450882
+1502.    ISUBCONST:  int: 2147450880
+1503.    IMULCONST:  int: 2147450881
+1504.    ISHLCONST:  int: -2147483648
+1505.    ISHRCONST:  int: 0
+1506.    IUSHRCONST: int: 0
+1507.    IANDCONST:  int: 32767
+1508.    IORCONST:   int: 2147483647
+1509.    IXORCONST:  int: 2147450880
+1510.    not IF_ICMPEQint: 32767
+1511.    not IF_ICMPLTint: 32767
+1512.    not IF_ICMPLEint: 32767
+1513.    LADDCONST:  long: -9223372036854743042
+1514.    LSUBCONST:  long: 9223372036854743040
+1515.    LMULCONST:  long: 9223372036854743041
+1516.    LSHLCONST:  long: -9223372036854775808
+1517.    LSHRCONST:  long: 0
+1518.    LUSHRCONST: long: 0
+1519.    LANDCONST:  long: 32767
+1520.    LORCONST:   long: 9223372036854775807
+1521.    LXORCONST:  long: 9223372036854743040
+1522.    not IF_LCMPEQint: 32767
+1523.    not IF_LCMPLTint: 32767
+1524.    not IF_LCMPLEint: 32767
+1525.    IADDCONST:  int: -2147450881
+1526.    ISUBCONST:  int: 2147450879
+1527.    IMULCONST:  int: -32768
+1528.    ISHLCONST:  int: 2147483647
+1529.    ISHRCONST:  int: 2147483647
+1530.    IUSHRCONST: int: 2147483647
+1531.    IANDCONST:  int: 32768
+1532.    IORCONST:   int: 2147483647
+1533.    IXORCONST:  int: 2147450879
+1534.    not IF_ICMPEQint: 32768
+1535.    not IF_ICMPLTint: 32768
+1536.    not IF_ICMPLEint: 32768
+1537.    LADDCONST:  long: -9223372036854743041
+1538.    LSUBCONST:  long: 9223372036854743039
+1539.    LMULCONST:  long: -32768
+1540.    LSHLCONST:  long: 9223372036854775807
+1541.    LSHRCONST:  long: 9223372036854775807
+1542.    LUSHRCONST: long: 9223372036854775807
+1543.    LANDCONST:  long: 32768
+1544.    LORCONST:   long: 9223372036854775807
+1545.    LXORCONST:  long: 9223372036854743039
+1546.    not IF_LCMPEQint: 32768
+1547.    not IF_LCMPLTint: 32768
+1548.    not IF_LCMPLEint: 32768
+1549.    IADDCONST:  int: 2147450879
+1550.    ISUBCONST:  int: -2147450881
+1551.    IMULCONST:  int: 32768
+1552.    ISHLCONST:  int: 2147483647
+1553.    ISHRCONST:  int: 2147483647
+1554.    IUSHRCONST: int: 2147483647
+1555.    IANDCONST:  int: 2147450880
+1556.    IORCONST:   int: -1
+1557.    IXORCONST:  int: -2147450881
+1558.    not IF_ICMPEQint: -32768
+1559.    not IF_ICMPLTint: -32768
+1560.    not IF_ICMPLEint: -32768
+1561.    LADDCONST:  long: 9223372036854743039
+1562.    LSUBCONST:  long: -9223372036854743041
+1563.    LMULCONST:  long: 32768
+1564.    LSHLCONST:  long: 9223372036854775807
+1565.    LSHRCONST:  long: 9223372036854775807
+1566.    LUSHRCONST: long: 9223372036854775807
+1567.    LANDCONST:  long: 9223372036854743040
+1568.    LORCONST:   long: -1
+1569.    LXORCONST:  long: -9223372036854743041
+1570.    not IF_LCMPEQint: -32768
+1571.    not IF_LCMPLTint: -32768
+1572.    not IF_LCMPLEint: -32768
+1573.    IADDCONST:  int: 2147450878
+1574.    ISUBCONST:  int: -2147450880
+1575.    IMULCONST:  int: -2147450879
+1576.    ISHLCONST:  int: -2147483648
+1577.    ISHRCONST:  int: 0
+1578.    IUSHRCONST: int: 0
+1579.    IANDCONST:  int: 2147450879
+1580.    IORCONST:   int: -1
+1581.    IXORCONST:  int: -2147450880
+1582.    not IF_ICMPEQint: -32769
+1583.    not IF_ICMPLTint: -32769
+1584.    not IF_ICMPLEint: -32769
+1585.    LADDCONST:  long: 9223372036854743038
+1586.    LSUBCONST:  long: -9223372036854743040
+1587.    LMULCONST:  long: -9223372036854743039
+1588.    LSHLCONST:  long: -9223372036854775808
+1589.    LSHRCONST:  long: 0
+1590.    LUSHRCONST: long: 0
+1591.    LANDCONST:  long: 9223372036854743039
+1592.    LORCONST:   long: -1
+1593.    LXORCONST:  long: -9223372036854743040
+1594.    not IF_LCMPEQint: -32769
+1595.    not IF_LCMPLTint: -32769
+1596.    not IF_LCMPLEint: -32769
+1597.    TESTCONST CALLED WITH int: -2147483648
+1598.                      AND long: -9223372036854775808
+1599.    not IF_ICMPEQint: 0
+1600.    not IF_ICMPGTint: 0
+1601.    not IF_ICMPGEint: 0
+1602.    not IF_LCMPEQint: 0
+1603.    not IF_LCMPGTint: 0
+1604.    not IF_LCMPGEint: 0
+1605.    IADDCONST:  int: 2147483647
+1606.    ISUBCONST:  int: -2147483647
+1607.    IMULCONST:  int: -2147483648
+1608.    ISHLCONST:  int: 0
+1609.    ISHRCONST:  int: -1
+1610.    IUSHRCONST: int: 1
+1611.    IANDCONST:  int: -2147483648
+1612.    IORCONST:   int: -1
+1613.    IXORCONST:  int: 2147483647
+1614.    not IF_ICMPEQint: -1
+1615.    not IF_ICMPGTint: -1
+1616.    not IF_ICMPGEint: -1
+1617.    LADDCONST:  long: 9223372036854775807
+1618.    LSUBCONST:  long: -9223372036854775807
+1619.    LMULCONST:  long: -9223372036854775808
+1620.    LSHLCONST:  long: 0
+1621.    LSHRCONST:  long: -1
+1622.    LUSHRCONST: long: 1
+1623.    LANDCONST:  long: -9223372036854775808
+1624.    LORCONST:   long: -1
+1625.    LXORCONST:  long: 9223372036854775807
+1626.    not IF_LCMPEQint: -1
+1627.    not IF_LCMPGTint: -1
+1628.    not IF_LCMPGEint: -1
+1629.    IADDCONST:  int: -2147483647
+1630.    ISUBCONST:  int: 2147483647
+1631.    IMULCONST:  int: -2147483648
+1632.    ISHLCONST:  int: 0
+1633.    ISHRCONST:  int: -1073741824
+1634.    IUSHRCONST: int: 1073741824
+1635.    IANDCONST:  int: 0
+1636.    IORCONST:   int: -2147483647
+1637.    IXORCONST:  int: -2147483647
+1638.    not IF_ICMPEQint: 1
+1639.    not IF_ICMPGTint: 1
+1640.    not IF_ICMPGEint: 1
+1641.    LADDCONST:  long: -9223372036854775807
+1642.    LSUBCONST:  long: 9223372036854775807
+1643.    LMULCONST:  long: -9223372036854775808
+1644.    LSHLCONST:  long: 0
+1645.    LSHRCONST:  long: -4611686018427387904
+1646.    LUSHRCONST: long: 4611686018427387904
+1647.    LANDCONST:  long: 0
+1648.    LORCONST:   long: -9223372036854775807
+1649.    LXORCONST:  long: -9223372036854775807
+1650.    not IF_LCMPEQint: 1
+1651.    not IF_LCMPGTint: 1
+1652.    not IF_LCMPGEint: 1
+1653.    IADDCONST:  int: -2147483393
+1654.    ISUBCONST:  int: 2147483393
+1655.    IMULCONST:  int: -2147483648
+1656.    ISHLCONST:  int: 0
+1657.    ISHRCONST:  int: -1
+1658.    IUSHRCONST: int: 1
+1659.    IANDCONST:  int: 0
+1660.    IORCONST:   int: -2147483393
+1661.    IXORCONST:  int: -2147483393
+1662.    not IF_ICMPEQint: 255
+1663.    not IF_ICMPGTint: 255
+1664.    not IF_ICMPGEint: 255
+1665.    LADDCONST:  long: -9223372036854775553
+1666.    LSUBCONST:  long: 9223372036854775553
+1667.    LMULCONST:  long: -9223372036854775808
+1668.    LSHLCONST:  long: 0
+1669.    LSHRCONST:  long: -1
+1670.    LUSHRCONST: long: 1
+1671.    LANDCONST:  long: 0
+1672.    LORCONST:   long: -9223372036854775553
+1673.    LXORCONST:  long: -9223372036854775553
+1674.    not IF_LCMPEQint: 255
+1675.    not IF_LCMPGTint: 255
+1676.    not IF_LCMPGEint: 255
+1677.    IADDCONST:  int: -2147483392
+1678.    ISUBCONST:  int: 2147483392
+1679.    IMULCONST:  int: 0
+1680.    ISHLCONST:  int: -2147483648
+1681.    ISHRCONST:  int: -2147483648
+1682.    IUSHRCONST: int: -2147483648
+1683.    IANDCONST:  int: 0
+1684.    IORCONST:   int: -2147483392
+1685.    IXORCONST:  int: -2147483392
+1686.    not IF_ICMPEQint: 256
+1687.    not IF_ICMPGTint: 256
+1688.    not IF_ICMPGEint: 256
+1689.    LADDCONST:  long: -9223372036854775552
+1690.    LSUBCONST:  long: 9223372036854775552
+1691.    LMULCONST:  long: 0
+1692.    LSHLCONST:  long: -9223372036854775808
+1693.    LSHRCONST:  long: -9223372036854775808
+1694.    LUSHRCONST: long: -9223372036854775808
+1695.    LANDCONST:  long: 0
+1696.    LORCONST:   long: -9223372036854775552
+1697.    LXORCONST:  long: -9223372036854775552
+1698.    not IF_LCMPEQint: 256
+1699.    not IF_LCMPGTint: 256
+1700.    not IF_LCMPGEint: 256
+1701.    IADDCONST:  int: -2147450881
+1702.    ISUBCONST:  int: 2147450881
+1703.    IMULCONST:  int: -2147483648
+1704.    ISHLCONST:  int: 0
+1705.    ISHRCONST:  int: -1
+1706.    IUSHRCONST: int: 1
+1707.    IANDCONST:  int: 0
+1708.    IORCONST:   int: -2147450881
+1709.    IXORCONST:  int: -2147450881
+1710.    not IF_ICMPEQint: 32767
+1711.    not IF_ICMPGTint: 32767
+1712.    not IF_ICMPGEint: 32767
+1713.    LADDCONST:  long: -9223372036854743041
+1714.    LSUBCONST:  long: 9223372036854743041
+1715.    LMULCONST:  long: -9223372036854775808
+1716.    LSHLCONST:  long: 0
+1717.    LSHRCONST:  long: -1
+1718.    LUSHRCONST: long: 1
+1719.    LANDCONST:  long: 0
+1720.    LORCONST:   long: -9223372036854743041
+1721.    LXORCONST:  long: -9223372036854743041
+1722.    not IF_LCMPEQint: 32767
+1723.    not IF_LCMPGTint: 32767
+1724.    not IF_LCMPGEint: 32767
+1725.    IADDCONST:  int: -2147450880
+1726.    ISUBCONST:  int: 2147450880
+1727.    IMULCONST:  int: 0
+1728.    ISHLCONST:  int: -2147483648
+1729.    ISHRCONST:  int: -2147483648
+1730.    IUSHRCONST: int: -2147483648
+1731.    IANDCONST:  int: 0
+1732.    IORCONST:   int: -2147450880
+1733.    IXORCONST:  int: -2147450880
+1734.    not IF_ICMPEQint: 32768
+1735.    not IF_ICMPGTint: 32768
+1736.    not IF_ICMPGEint: 32768
+1737.    LADDCONST:  long: -9223372036854743040
+1738.    LSUBCONST:  long: 9223372036854743040
+1739.    LMULCONST:  long: 0
+1740.    LSHLCONST:  long: -9223372036854775808
+1741.    LSHRCONST:  long: -9223372036854775808
+1742.    LUSHRCONST: long: -9223372036854775808
+1743.    LANDCONST:  long: 0
+1744.    LORCONST:   long: -9223372036854743040
+1745.    LXORCONST:  long: -9223372036854743040
+1746.    not IF_LCMPEQint: 32768
+1747.    not IF_LCMPGTint: 32768
+1748.    not IF_LCMPGEint: 32768
+1749.    IADDCONST:  int: 2147450880
+1750.    ISUBCONST:  int: -2147450880
+1751.    IMULCONST:  int: 0
+1752.    ISHLCONST:  int: -2147483648
+1753.    ISHRCONST:  int: -2147483648
+1754.    IUSHRCONST: int: -2147483648
+1755.    IANDCONST:  int: -2147483648
+1756.    IORCONST:   int: -32768
+1757.    IXORCONST:  int: 2147450880
+1758.    not IF_ICMPEQint: -32768
+1759.    not IF_ICMPGTint: -32768
+1760.    not IF_ICMPGEint: -32768
+1761.    LADDCONST:  long: 9223372036854743040
+1762.    LSUBCONST:  long: -9223372036854743040
+1763.    LMULCONST:  long: 0
+1764.    LSHLCONST:  long: -9223372036854775808
+1765.    LSHRCONST:  long: -9223372036854775808
+1766.    LUSHRCONST: long: -9223372036854775808
+1767.    LANDCONST:  long: -9223372036854775808
+1768.    LORCONST:   long: -32768
+1769.    LXORCONST:  long: 9223372036854743040
+1770.    not IF_LCMPEQint: -32768
+1771.    not IF_LCMPGTint: -32768
+1772.    not IF_LCMPGEint: -32768
+1773.    IADDCONST:  int: 2147450879
+1774.    ISUBCONST:  int: -2147450879
+1775.    IMULCONST:  int: -2147483648
+1776.    ISHLCONST:  int: 0
+1777.    ISHRCONST:  int: -1
+1778.    IUSHRCONST: int: 1
+1779.    IANDCONST:  int: -2147483648
+1780.    IORCONST:   int: -32769
+1781.    IXORCONST:  int: 2147450879
+1782.    not IF_ICMPEQint: -32769
+1783.    not IF_ICMPGTint: -32769
+1784.    not IF_ICMPGEint: -32769
+1785.    LADDCONST:  long: 9223372036854743039
+1786.    LSUBCONST:  long: -9223372036854743039
+1787.    LMULCONST:  long: -9223372036854775808
+1788.    LSHLCONST:  long: 0
+1789.    LSHRCONST:  long: -1
+1790.    LUSHRCONST: long: 1
+1791.    LANDCONST:  long: -9223372036854775808
+1792.    LORCONST:   long: -32769
+1793.    LXORCONST:  long: 9223372036854743039
+1794.    not IF_LCMPEQint: -32769
+1795.    not IF_LCMPGTint: -32769
+1796.    not IF_LCMPGEint: -32769
+1797.    ------------------- test div and rem consts
+1798.    IDIVPOW2 (17 / 0x00000002):  int: 8
+1799.    IDIVPOW2 (17 / 0x00000004):  int: 4
+1800.    IDIVPOW2 (17 / 0x00000008):  int: 2
+1801.    IDIVPOW2 (17 / 0x00000010):  int: 1
+1802.    IDIVPOW2 (17 / 0x00000020):  int: 0
+1803.    IDIVPOW2 (17 / 0x00000040):  int: 0
+1804.    IDIVPOW2 (17 / 0x00000080):  int: 0
+1805.    IDIVPOW2 (17 / 0x00000100):  int: 0
+1806.    IDIVPOW2 (17 / 0x00000200):  int: 0
+1807.    IDIVPOW2 (17 / 0x00000400):  int: 0
+1808.    IDIVPOW2 (17 / 0x00000800):  int: 0
+1809.    IDIVPOW2 (17 / 0x00001000):  int: 0
+1810.    IDIVPOW2 (17 / 0x00002000):  int: 0
+1811.    IDIVPOW2 (17 / 0x00004000):  int: 0
+1812.    IDIVPOW2 (17 / 0x00008000):  int: 0
+1813.    IDIVPOW2 (17 / 0x00010000):  int: 0
+1814.    IDIVPOW2 (17 / 0x00020000):  int: 0
+1815.    IDIVPOW2 (17 / 0x00040000):  int: 0
+1816.    IDIVPOW2 (17 / 0x00080000):  int: 0
+1817.    IDIVPOW2 (17 / 0x00100000):  int: 0
+1818.    IDIVPOW2 (17 / 0x00200000):  int: 0
+1819.    IDIVPOW2 (17 / 0x00400000):  int: 0
+1820.    IDIVPOW2 (17 / 0x00800000):  int: 0
+1821.    IDIVPOW2 (17 / 0x01000000):  int: 0
+1822.    IDIVPOW2 (17 / 0x02000000):  int: 0
+1823.    IDIVPOW2 (17 / 0x04000000):  int: 0
+1824.    IDIVPOW2 (17 / 0x08000000):  int: 0
+1825.    IDIVPOW2 (17 / 0x10000000):  int: 0
+1826.    IDIVPOW2 (17 / 0x20000000):  int: 0
+1827.    IDIVPOW2 (17 / 0x40000000):  int: 0
+1828.    IDIVPOW2 (17 / 0x80000000):  int: 0
+1829.    IREMPOW2 (17 % 0x00000002):  int: 1
+1830.    IREMPOW2 (17 % 0x00000004):  int: 1
+1831.    IREMPOW2 (17 % 0x00000008):  int: 1
+1832.    IREMPOW2 (17 % 0x00000010):  int: 1
+1833.    IREMPOW2 (17 % 0x00000020):  int: 17
+1834.    IREMPOW2 (17 % 0x00000040):  int: 17
+1835.    IREMPOW2 (17 % 0x00000080):  int: 17
+1836.    IREMPOW2 (17 % 0x00000100):  int: 17
+1837.    IREMPOW2 (17 % 0x00000200):  int: 17
+1838.    IREMPOW2 (17 % 0x00000400):  int: 17
+1839.    IREMPOW2 (17 % 0x00000800):  int: 17
+1840.    IREMPOW2 (17 % 0x00001000):  int: 17
+1841.    IREMPOW2 (17 % 0x00002000):  int: 17
+1842.    IREMPOW2 (17 % 0x00004000):  int: 17
+1843.    IREMPOW2 (17 % 0x00008000):  int: 17
+1844.    IREMPOW2 (17 % 0x00010000):  int: 17
+1845.    IREMPOW2 (17 % 0x00020000):  int: 17
+1846.    IREMPOW2 (17 % 0x00040000):  int: 17
+1847.    IREMPOW2 (17 % 0x00080000):  int: 17
+1848.    IREMPOW2 (17 % 0x00100000):  int: 17
+1849.    IREMPOW2 (17 % 0x00200000):  int: 17
+1850.    IREMPOW2 (17 % 0x00400000):  int: 17
+1851.    IREMPOW2 (17 % 0x00800000):  int: 17
+1852.    IREMPOW2 (17 % 0x01000000):  int: 17
+1853.    IREMPOW2 (17 % 0x02000000):  int: 17
+1854.    IREMPOW2 (17 % 0x04000000):  int: 17
+1855.    IREMPOW2 (17 % 0x08000000):  int: 17
+1856.    IREMPOW2 (17 % 0x10000000):  int: 17
+1857.    IREMPOW2 (17 % 0x20000000):  int: 17
+1858.    IREMPOW2 (17 % 0x40000000):  int: 17
+1859.    IREMPOW2 (17 % 0x80000000):  int: 17
+1860.    IDIVPOW2 (12347 / 0x00000002):  int: 6173
+1861.    IDIVPOW2 (12347 / 0x00000004):  int: 3086
+1862.    IDIVPOW2 (12347 / 0x00000008):  int: 1543
+1863.    IDIVPOW2 (12347 / 0x00000010):  int: 771
+1864.    IDIVPOW2 (12347 / 0x00000020):  int: 385
+1865.    IDIVPOW2 (12347 / 0x00000040):  int: 192
+1866.    IDIVPOW2 (12347 / 0x00000080):  int: 96
+1867.    IDIVPOW2 (12347 / 0x00000100):  int: 48
+1868.    IDIVPOW2 (12347 / 0x00000200):  int: 24
+1869.    IDIVPOW2 (12347 / 0x00000400):  int: 12
+1870.    IDIVPOW2 (12347 / 0x00000800):  int: 6
+1871.    IDIVPOW2 (12347 / 0x00001000):  int: 3
+1872.    IDIVPOW2 (12347 / 0x00002000):  int: 1
+1873.    IDIVPOW2 (12347 / 0x00004000):  int: 0
+1874.    IDIVPOW2 (12347 / 0x00008000):  int: 0
+1875.    IDIVPOW2 (12347 / 0x00010000):  int: 0
+1876.    IDIVPOW2 (12347 / 0x00020000):  int: 0
+1877.    IDIVPOW2 (12347 / 0x00040000):  int: 0
+1878.    IDIVPOW2 (12347 / 0x00080000):  int: 0
+1879.    IDIVPOW2 (12347 / 0x00100000):  int: 0
+1880.    IDIVPOW2 (12347 / 0x00200000):  int: 0
+1881.    IDIVPOW2 (12347 / 0x00400000):  int: 0
+1882.    IDIVPOW2 (12347 / 0x00800000):  int: 0
+1883.    IDIVPOW2 (12347 / 0x01000000):  int: 0
+1884.    IDIVPOW2 (12347 / 0x02000000):  int: 0
+1885.    IDIVPOW2 (12347 / 0x04000000):  int: 0
+1886.    IDIVPOW2 (12347 / 0x08000000):  int: 0
+1887.    IDIVPOW2 (12347 / 0x10000000):  int: 0
+1888.    IDIVPOW2 (12347 / 0x20000000):  int: 0
+1889.    IDIVPOW2 (12347 / 0x40000000):  int: 0
+1890.    IDIVPOW2 (12347 / 0x80000000):  int: 0
+1891.    IREMPOW2 (12347 % 0x00000002):  int: 1
+1892.    IREMPOW2 (12347 % 0x00000004):  int: 3
+1893.    IREMPOW2 (12347 % 0x00000008):  int: 3
+1894.    IREMPOW2 (12347 % 0x00000010):  int: 11
+1895.    IREMPOW2 (12347 % 0x00000020):  int: 27
+1896.    IREMPOW2 (12347 % 0x00000040):  int: 59
+1897.    IREMPOW2 (12347 % 0x00000080):  int: 59
+1898.    IREMPOW2 (12347 % 0x00000100):  int: 59
+1899.    IREMPOW2 (12347 % 0x00000200):  int: 59
+1900.    IREMPOW2 (12347 % 0x00000400):  int: 59
+1901.    IREMPOW2 (12347 % 0x00000800):  int: 59
+1902.    IREMPOW2 (12347 % 0x00001000):  int: 59
+1903.    IREMPOW2 (12347 % 0x00002000):  int: 4155
+1904.    IREMPOW2 (12347 % 0x00004000):  int: 12347
+1905.    IREMPOW2 (12347 % 0x00008000):  int: 12347
+1906.    IREMPOW2 (12347 % 0x00010000):  int: 12347
+1907.    IREMPOW2 (12347 % 0x00020000):  int: 12347
+1908.    IREMPOW2 (12347 % 0x00040000):  int: 12347
+1909.    IREMPOW2 (12347 % 0x00080000):  int: 12347
+1910.    IREMPOW2 (12347 % 0x00100000):  int: 12347
+1911.    IREMPOW2 (12347 % 0x00200000):  int: 12347
+1912.    IREMPOW2 (12347 % 0x00400000):  int: 12347
+1913.    IREMPOW2 (12347 % 0x00800000):  int: 12347
+1914.    IREMPOW2 (12347 % 0x01000000):  int: 12347
+1915.    IREMPOW2 (12347 % 0x02000000):  int: 12347
+1916.    IREMPOW2 (12347 % 0x04000000):  int: 12347
+1917.    IREMPOW2 (12347 % 0x08000000):  int: 12347
+1918.    IREMPOW2 (12347 % 0x10000000):  int: 12347
+1919.    IREMPOW2 (12347 % 0x20000000):  int: 12347
+1920.    IREMPOW2 (12347 % 0x40000000):  int: 12347
+1921.    IREMPOW2 (12347 % 0x80000000):  int: 12347
+1922.    IDIVPOW2 (8893427 / 0x00000002):  int: 4446713
+1923.    IDIVPOW2 (8893427 / 0x00000004):  int: 2223356
+1924.    IDIVPOW2 (8893427 / 0x00000008):  int: 1111678
+1925.    IDIVPOW2 (8893427 / 0x00000010):  int: 555839
+1926.    IDIVPOW2 (8893427 / 0x00000020):  int: 277919
+1927.    IDIVPOW2 (8893427 / 0x00000040):  int: 138959
+1928.    IDIVPOW2 (8893427 / 0x00000080):  int: 69479
+1929.    IDIVPOW2 (8893427 / 0x00000100):  int: 34739
+1930.    IDIVPOW2 (8893427 / 0x00000200):  int: 17369
+1931.    IDIVPOW2 (8893427 / 0x00000400):  int: 8684
+1932.    IDIVPOW2 (8893427 / 0x00000800):  int: 4342
+1933.    IDIVPOW2 (8893427 / 0x00001000):  int: 2171
+1934.    IDIVPOW2 (8893427 / 0x00002000):  int: 1085
+1935.    IDIVPOW2 (8893427 / 0x00004000):  int: 542
+1936.    IDIVPOW2 (8893427 / 0x00008000):  int: 271
+1937.    IDIVPOW2 (8893427 / 0x00010000):  int: 135
+1938.    IDIVPOW2 (8893427 / 0x00020000):  int: 67
+1939.    IDIVPOW2 (8893427 / 0x00040000):  int: 33
+1940.    IDIVPOW2 (8893427 / 0x00080000):  int: 16
+1941.    IDIVPOW2 (8893427 / 0x00100000):  int: 8
+1942.    IDIVPOW2 (8893427 / 0x00200000):  int: 4
+1943.    IDIVPOW2 (8893427 / 0x00400000):  int: 2
+1944.    IDIVPOW2 (8893427 / 0x00800000):  int: 1
+1945.    IDIVPOW2 (8893427 / 0x01000000):  int: 0
+1946.    IDIVPOW2 (8893427 / 0x02000000):  int: 0
+1947.    IDIVPOW2 (8893427 / 0x04000000):  int: 0
+1948.    IDIVPOW2 (8893427 / 0x08000000):  int: 0
+1949.    IDIVPOW2 (8893427 / 0x10000000):  int: 0
+1950.    IDIVPOW2 (8893427 / 0x20000000):  int: 0
+1951.    IDIVPOW2 (8893427 / 0x40000000):  int: 0
+1952.    IDIVPOW2 (8893427 / 0x80000000):  int: 0
+1953.    IREMPOW2 (8893427 % 0x00000002):  int: 1
+1954.    IREMPOW2 (8893427 % 0x00000004):  int: 3
+1955.    IREMPOW2 (8893427 % 0x00000008):  int: 3
+1956.    IREMPOW2 (8893427 % 0x00000010):  int: 3
+1957.    IREMPOW2 (8893427 % 0x00000020):  int: 19
+1958.    IREMPOW2 (8893427 % 0x00000040):  int: 51
+1959.    IREMPOW2 (8893427 % 0x00000080):  int: 115
+1960.    IREMPOW2 (8893427 % 0x00000100):  int: 243
+1961.    IREMPOW2 (8893427 % 0x00000200):  int: 499
+1962.    IREMPOW2 (8893427 % 0x00000400):  int: 1011
+1963.    IREMPOW2 (8893427 % 0x00000800):  int: 1011
+1964.    IREMPOW2 (8893427 % 0x00001000):  int: 1011
+1965.    IREMPOW2 (8893427 % 0x00002000):  int: 5107
+1966.    IREMPOW2 (8893427 % 0x00004000):  int: 13299
+1967.    IREMPOW2 (8893427 % 0x00008000):  int: 13299
+1968.    IREMPOW2 (8893427 % 0x00010000):  int: 46067
+1969.    IREMPOW2 (8893427 % 0x00020000):  int: 111603
+1970.    IREMPOW2 (8893427 % 0x00040000):  int: 242675
+1971.    IREMPOW2 (8893427 % 0x00080000):  int: 504819
+1972.    IREMPOW2 (8893427 % 0x00100000):  int: 504819
+1973.    IREMPOW2 (8893427 % 0x00200000):  int: 504819
+1974.    IREMPOW2 (8893427 % 0x00400000):  int: 504819
+1975.    IREMPOW2 (8893427 % 0x00800000):  int: 504819
+1976.    IREMPOW2 (8893427 % 0x01000000):  int: 8893427
+1977.    IREMPOW2 (8893427 % 0x02000000):  int: 8893427
+1978.    IREMPOW2 (8893427 % 0x04000000):  int: 8893427
+1979.    IREMPOW2 (8893427 % 0x08000000):  int: 8893427
+1980.    IREMPOW2 (8893427 % 0x10000000):  int: 8893427
+1981.    IREMPOW2 (8893427 % 0x20000000):  int: 8893427
+1982.    IREMPOW2 (8893427 % 0x40000000):  int: 8893427
+1983.    IREMPOW2 (8893427 % 0x80000000):  int: 8893427
+1984.    IDIVPOW2 (1005234562 / 0x00000002):  int: 502617281
+1985.    IDIVPOW2 (1005234562 / 0x00000004):  int: 251308640
+1986.    IDIVPOW2 (1005234562 / 0x00000008):  int: 125654320
+1987.    IDIVPOW2 (1005234562 / 0x00000010):  int: 62827160
+1988.    IDIVPOW2 (1005234562 / 0x00000020):  int: 31413580
+1989.    IDIVPOW2 (1005234562 / 0x00000040):  int: 15706790
+1990.    IDIVPOW2 (1005234562 / 0x00000080):  int: 7853395
+1991.    IDIVPOW2 (1005234562 / 0x00000100):  int: 3926697
+1992.    IDIVPOW2 (1005234562 / 0x00000200):  int: 1963348
+1993.    IDIVPOW2 (1005234562 / 0x00000400):  int: 981674
+1994.    IDIVPOW2 (1005234562 / 0x00000800):  int: 490837
+1995.    IDIVPOW2 (1005234562 / 0x00001000):  int: 245418
+1996.    IDIVPOW2 (1005234562 / 0x00002000):  int: 122709
+1997.    IDIVPOW2 (1005234562 / 0x00004000):  int: 61354
+1998.    IDIVPOW2 (1005234562 / 0x00008000):  int: 30677
+1999.    IDIVPOW2 (1005234562 / 0x00010000):  int: 15338
+2000.    IDIVPOW2 (1005234562 / 0x00020000):  int: 7669
+2001.    IDIVPOW2 (1005234562 / 0x00040000):  int: 3834
+2002.    IDIVPOW2 (1005234562 / 0x00080000):  int: 1917
+2003.    IDIVPOW2 (1005234562 / 0x00100000):  int: 958
+2004.    IDIVPOW2 (1005234562 / 0x00200000):  int: 479
+2005.    IDIVPOW2 (1005234562 / 0x00400000):  int: 239
+2006.    IDIVPOW2 (1005234562 / 0x00800000):  int: 119
+2007.    IDIVPOW2 (1005234562 / 0x01000000):  int: 59
+2008.    IDIVPOW2 (1005234562 / 0x02000000):  int: 29
+2009.    IDIVPOW2 (1005234562 / 0x04000000):  int: 14
+2010.    IDIVPOW2 (1005234562 / 0x08000000):  int: 7
+2011.    IDIVPOW2 (1005234562 / 0x10000000):  int: 3
+2012.    IDIVPOW2 (1005234562 / 0x20000000):  int: 1
+2013.    IDIVPOW2 (1005234562 / 0x40000000):  int: 0
+2014.    IDIVPOW2 (1005234562 / 0x80000000):  int: 0
+2015.    IREMPOW2 (1005234562 % 0x00000002):  int: 0
+2016.    IREMPOW2 (1005234562 % 0x00000004):  int: 2
+2017.    IREMPOW2 (1005234562 % 0x00000008):  int: 2
+2018.    IREMPOW2 (1005234562 % 0x00000010):  int: 2
+2019.    IREMPOW2 (1005234562 % 0x00000020):  int: 2
+2020.    IREMPOW2 (1005234562 % 0x00000040):  int: 2
+2021.    IREMPOW2 (1005234562 % 0x00000080):  int: 2
+2022.    IREMPOW2 (1005234562 % 0x00000100):  int: 130
+2023.    IREMPOW2 (1005234562 % 0x00000200):  int: 386
+2024.    IREMPOW2 (1005234562 % 0x00000400):  int: 386
+2025.    IREMPOW2 (1005234562 % 0x00000800):  int: 386
+2026.    IREMPOW2 (1005234562 % 0x00001000):  int: 2434
+2027.    IREMPOW2 (1005234562 % 0x00002000):  int: 2434
+2028.    IREMPOW2 (1005234562 % 0x00004000):  int: 10626
+2029.    IREMPOW2 (1005234562 % 0x00008000):  int: 10626
+2030.    IREMPOW2 (1005234562 % 0x00010000):  int: 43394
+2031.    IREMPOW2 (1005234562 % 0x00020000):  int: 43394
+2032.    IREMPOW2 (1005234562 % 0x00040000):  int: 174466
+2033.    IREMPOW2 (1005234562 % 0x00080000):  int: 174466
+2034.    IREMPOW2 (1005234562 % 0x00100000):  int: 698754
+2035.    IREMPOW2 (1005234562 % 0x00200000):  int: 698754
+2036.    IREMPOW2 (1005234562 % 0x00400000):  int: 2795906
+2037.    IREMPOW2 (1005234562 % 0x00800000):  int: 6990210
+2038.    IREMPOW2 (1005234562 % 0x01000000):  int: 15378818
+2039.    IREMPOW2 (1005234562 % 0x02000000):  int: 32156034
+2040.    IREMPOW2 (1005234562 % 0x04000000):  int: 65710466
+2041.    IREMPOW2 (1005234562 % 0x08000000):  int: 65710466
+2042.    IREMPOW2 (1005234562 % 0x10000000):  int: 199928194
+2043.    IREMPOW2 (1005234562 % 0x20000000):  int: 468363650
+2044.    IREMPOW2 (1005234562 % 0x40000000):  int: 1005234562
+2045.    IREMPOW2 (1005234562 % 0x80000000):  int: 1005234562
+2046.    IDIVPOW2 (-17 / 0x00000002):  int: -8
+2047.    IDIVPOW2 (-17 / 0x00000004):  int: -4
+2048.    IDIVPOW2 (-17 / 0x00000008):  int: -2
+2049.    IDIVPOW2 (-17 / 0x00000010):  int: -1
+2050.    IDIVPOW2 (-17 / 0x00000020):  int: 0
+2051.    IDIVPOW2 (-17 / 0x00000040):  int: 0
+2052.    IDIVPOW2 (-17 / 0x00000080):  int: 0
+2053.    IDIVPOW2 (-17 / 0x00000100):  int: 0
+2054.    IDIVPOW2 (-17 / 0x00000200):  int: 0
+2055.    IDIVPOW2 (-17 / 0x00000400):  int: 0
+2056.    IDIVPOW2 (-17 / 0x00000800):  int: 0
+2057.    IDIVPOW2 (-17 / 0x00001000):  int: 0
+2058.    IDIVPOW2 (-17 / 0x00002000):  int: 0
+2059.    IDIVPOW2 (-17 / 0x00004000):  int: 0
+2060.    IDIVPOW2 (-17 / 0x00008000):  int: 0
+2061.    IDIVPOW2 (-17 / 0x00010000):  int: 0
+2062.    IDIVPOW2 (-17 / 0x00020000):  int: 0
+2063.    IDIVPOW2 (-17 / 0x00040000):  int: 0
+2064.    IDIVPOW2 (-17 / 0x00080000):  int: 0
+2065.    IDIVPOW2 (-17 / 0x00100000):  int: 0
+2066.    IDIVPOW2 (-17 / 0x00200000):  int: 0
+2067.    IDIVPOW2 (-17 / 0x00400000):  int: 0
+2068.    IDIVPOW2 (-17 / 0x00800000):  int: 0
+2069.    IDIVPOW2 (-17 / 0x01000000):  int: 0
+2070.    IDIVPOW2 (-17 / 0x02000000):  int: 0
+2071.    IDIVPOW2 (-17 / 0x04000000):  int: 0
+2072.    IDIVPOW2 (-17 / 0x08000000):  int: 0
+2073.    IDIVPOW2 (-17 / 0x10000000):  int: 0
+2074.    IDIVPOW2 (-17 / 0x20000000):  int: 0
+2075.    IDIVPOW2 (-17 / 0x40000000):  int: 0
+2076.    IDIVPOW2 (-17 / 0x80000000):  int: 0
+2077.    IREMPOW2 (-17 % 0x00000002):  int: -1
+2078.    IREMPOW2 (-17 % 0x00000004):  int: -1
+2079.    IREMPOW2 (-17 % 0x00000008):  int: -1
+2080.    IREMPOW2 (-17 % 0x00000010):  int: -1
+2081.    IREMPOW2 (-17 % 0x00000020):  int: -17
+2082.    IREMPOW2 (-17 % 0x00000040):  int: -17
+2083.    IREMPOW2 (-17 % 0x00000080):  int: -17
+2084.    IREMPOW2 (-17 % 0x00000100):  int: -17
+2085.    IREMPOW2 (-17 % 0x00000200):  int: -17
+2086.    IREMPOW2 (-17 % 0x00000400):  int: -17
+2087.    IREMPOW2 (-17 % 0x00000800):  int: -17
+2088.    IREMPOW2 (-17 % 0x00001000):  int: -17
+2089.    IREMPOW2 (-17 % 0x00002000):  int: -17
+2090.    IREMPOW2 (-17 % 0x00004000):  int: -17
+2091.    IREMPOW2 (-17 % 0x00008000):  int: -17
+2092.    IREMPOW2 (-17 % 0x00010000):  int: -17
+2093.    IREMPOW2 (-17 % 0x00020000):  int: -17
+2094.    IREMPOW2 (-17 % 0x00040000):  int: -17
+2095.    IREMPOW2 (-17 % 0x00080000):  int: -17
+2096.    IREMPOW2 (-17 % 0x00100000):  int: -17
+2097.    IREMPOW2 (-17 % 0x00200000):  int: -17
+2098.    IREMPOW2 (-17 % 0x00400000):  int: -17
+2099.    IREMPOW2 (-17 % 0x00800000):  int: -17
+2100.    IREMPOW2 (-17 % 0x01000000):  int: -17
+2101.    IREMPOW2 (-17 % 0x02000000):  int: -17
+2102.    IREMPOW2 (-17 % 0x04000000):  int: -17
+2103.    IREMPOW2 (-17 % 0x08000000):  int: -17
+2104.    IREMPOW2 (-17 % 0x10000000):  int: -17
+2105.    IREMPOW2 (-17 % 0x20000000):  int: -17
+2106.    IREMPOW2 (-17 % 0x40000000):  int: -17
+2107.    IREMPOW2 (-17 % 0x80000000):  int: -17
+2108.    IDIVPOW2 (-12347 / 0x00000002):  int: -6173
+2109.    IDIVPOW2 (-12347 / 0x00000004):  int: -3086
+2110.    IDIVPOW2 (-12347 / 0x00000008):  int: -1543
+2111.    IDIVPOW2 (-12347 / 0x00000010):  int: -771
+2112.    IDIVPOW2 (-12347 / 0x00000020):  int: -385
+2113.    IDIVPOW2 (-12347 / 0x00000040):  int: -192
+2114.    IDIVPOW2 (-12347 / 0x00000080):  int: -96
+2115.    IDIVPOW2 (-12347 / 0x00000100):  int: -48
+2116.    IDIVPOW2 (-12347 / 0x00000200):  int: -24
+2117.    IDIVPOW2 (-12347 / 0x00000400):  int: -12
+2118.    IDIVPOW2 (-12347 / 0x00000800):  int: -6
+2119.    IDIVPOW2 (-12347 / 0x00001000):  int: -3
+2120.    IDIVPOW2 (-12347 / 0x00002000):  int: -1
+2121.    IDIVPOW2 (-12347 / 0x00004000):  int: 0
+2122.    IDIVPOW2 (-12347 / 0x00008000):  int: 0
+2123.    IDIVPOW2 (-12347 / 0x00010000):  int: 0
+2124.    IDIVPOW2 (-12347 / 0x00020000):  int: 0
+2125.    IDIVPOW2 (-12347 / 0x00040000):  int: 0
+2126.    IDIVPOW2 (-12347 / 0x00080000):  int: 0
+2127.    IDIVPOW2 (-12347 / 0x00100000):  int: 0
+2128.    IDIVPOW2 (-12347 / 0x00200000):  int: 0
+2129.    IDIVPOW2 (-12347 / 0x00400000):  int: 0
+2130.    IDIVPOW2 (-12347 / 0x00800000):  int: 0
+2131.    IDIVPOW2 (-12347 / 0x01000000):  int: 0
+2132.    IDIVPOW2 (-12347 / 0x02000000):  int: 0
+2133.    IDIVPOW2 (-12347 / 0x04000000):  int: 0
+2134.    IDIVPOW2 (-12347 / 0x08000000):  int: 0
+2135.    IDIVPOW2 (-12347 / 0x10000000):  int: 0
+2136.    IDIVPOW2 (-12347 / 0x20000000):  int: 0
+2137.    IDIVPOW2 (-12347 / 0x40000000):  int: 0
+2138.    IDIVPOW2 (-12347 / 0x80000000):  int: 0
+2139.    IREMPOW2 (-12347 % 0x00000002):  int: -1
+2140.    IREMPOW2 (-12347 % 0x00000004):  int: -3
+2141.    IREMPOW2 (-12347 % 0x00000008):  int: -3
+2142.    IREMPOW2 (-12347 % 0x00000010):  int: -11
+2143.    IREMPOW2 (-12347 % 0x00000020):  int: -27
+2144.    IREMPOW2 (-12347 % 0x00000040):  int: -59
+2145.    IREMPOW2 (-12347 % 0x00000080):  int: -59
+2146.    IREMPOW2 (-12347 % 0x00000100):  int: -59
+2147.    IREMPOW2 (-12347 % 0x00000200):  int: -59
+2148.    IREMPOW2 (-12347 % 0x00000400):  int: -59
+2149.    IREMPOW2 (-12347 % 0x00000800):  int: -59
+2150.    IREMPOW2 (-12347 % 0x00001000):  int: -59
+2151.    IREMPOW2 (-12347 % 0x00002000):  int: -4155
+2152.    IREMPOW2 (-12347 % 0x00004000):  int: -12347
+2153.    IREMPOW2 (-12347 % 0x00008000):  int: -12347
+2154.    IREMPOW2 (-12347 % 0x00010000):  int: -12347
+2155.    IREMPOW2 (-12347 % 0x00020000):  int: -12347
+2156.    IREMPOW2 (-12347 % 0x00040000):  int: -12347
+2157.    IREMPOW2 (-12347 % 0x00080000):  int: -12347
+2158.    IREMPOW2 (-12347 % 0x00100000):  int: -12347
+2159.    IREMPOW2 (-12347 % 0x00200000):  int: -12347
+2160.    IREMPOW2 (-12347 % 0x00400000):  int: -12347
+2161.    IREMPOW2 (-12347 % 0x00800000):  int: -12347
+2162.    IREMPOW2 (-12347 % 0x01000000):  int: -12347
+2163.    IREMPOW2 (-12347 % 0x02000000):  int: -12347
+2164.    IREMPOW2 (-12347 % 0x04000000):  int: -12347
+2165.    IREMPOW2 (-12347 % 0x08000000):  int: -12347
+2166.    IREMPOW2 (-12347 % 0x10000000):  int: -12347
+2167.    IREMPOW2 (-12347 % 0x20000000):  int: -12347
+2168.    IREMPOW2 (-12347 % 0x40000000):  int: -12347
+2169.    IREMPOW2 (-12347 % 0x80000000):  int: -12347
+2170.    IDIVPOW2 (-8893427 / 0x00000002):  int: -4446713
+2171.    IDIVPOW2 (-8893427 / 0x00000004):  int: -2223356
+2172.    IDIVPOW2 (-8893427 / 0x00000008):  int: -1111678
+2173.    IDIVPOW2 (-8893427 / 0x00000010):  int: -555839
+2174.    IDIVPOW2 (-8893427 / 0x00000020):  int: -277919
+2175.    IDIVPOW2 (-8893427 / 0x00000040):  int: -138959
+2176.    IDIVPOW2 (-8893427 / 0x00000080):  int: -69479
+2177.    IDIVPOW2 (-8893427 / 0x00000100):  int: -34739
+2178.    IDIVPOW2 (-8893427 / 0x00000200):  int: -17369
+2179.    IDIVPOW2 (-8893427 / 0x00000400):  int: -8684
+2180.    IDIVPOW2 (-8893427 / 0x00000800):  int: -4342
+2181.    IDIVPOW2 (-8893427 / 0x00001000):  int: -2171
+2182.    IDIVPOW2 (-8893427 / 0x00002000):  int: -1085
+2183.    IDIVPOW2 (-8893427 / 0x00004000):  int: -542
+2184.    IDIVPOW2 (-8893427 / 0x00008000):  int: -271
+2185.    IDIVPOW2 (-8893427 / 0x00010000):  int: -135
+2186.    IDIVPOW2 (-8893427 / 0x00020000):  int: -67
+2187.    IDIVPOW2 (-8893427 / 0x00040000):  int: -33
+2188.    IDIVPOW2 (-8893427 / 0x00080000):  int: -16
+2189.    IDIVPOW2 (-8893427 / 0x00100000):  int: -8
+2190.    IDIVPOW2 (-8893427 / 0x00200000):  int: -4
+2191.    IDIVPOW2 (-8893427 / 0x00400000):  int: -2
+2192.    IDIVPOW2 (-8893427 / 0x00800000):  int: -1
+2193.    IDIVPOW2 (-8893427 / 0x01000000):  int: 0
+2194.    IDIVPOW2 (-8893427 / 0x02000000):  int: 0
+2195.    IDIVPOW2 (-8893427 / 0x04000000):  int: 0
+2196.    IDIVPOW2 (-8893427 / 0x08000000):  int: 0
+2197.    IDIVPOW2 (-8893427 / 0x10000000):  int: 0
+2198.    IDIVPOW2 (-8893427 / 0x20000000):  int: 0
+2199.    IDIVPOW2 (-8893427 / 0x40000000):  int: 0
+2200.    IDIVPOW2 (-8893427 / 0x80000000):  int: 0
+2201.    IREMPOW2 (-8893427 % 0x00000002):  int: -1
+2202.    IREMPOW2 (-8893427 % 0x00000004):  int: -3
+2203.    IREMPOW2 (-8893427 % 0x00000008):  int: -3
+2204.    IREMPOW2 (-8893427 % 0x00000010):  int: -3
+2205.    IREMPOW2 (-8893427 % 0x00000020):  int: -19
+2206.    IREMPOW2 (-8893427 % 0x00000040):  int: -51
+2207.    IREMPOW2 (-8893427 % 0x00000080):  int: -115
+2208.    IREMPOW2 (-8893427 % 0x00000100):  int: -243
+2209.    IREMPOW2 (-8893427 % 0x00000200):  int: -499
+2210.    IREMPOW2 (-8893427 % 0x00000400):  int: -1011
+2211.    IREMPOW2 (-8893427 % 0x00000800):  int: -1011
+2212.    IREMPOW2 (-8893427 % 0x00001000):  int: -1011
+2213.    IREMPOW2 (-8893427 % 0x00002000):  int: -5107
+2214.    IREMPOW2 (-8893427 % 0x00004000):  int: -13299
+2215.    IREMPOW2 (-8893427 % 0x00008000):  int: -13299
+2216.    IREMPOW2 (-8893427 % 0x00010000):  int: -46067
+2217.    IREMPOW2 (-8893427 % 0x00020000):  int: -111603
+2218.    IREMPOW2 (-8893427 % 0x00040000):  int: -242675
+2219.    IREMPOW2 (-8893427 % 0x00080000):  int: -504819
+2220.    IREMPOW2 (-8893427 % 0x00100000):  int: -504819
+2221.    IREMPOW2 (-8893427 % 0x00200000):  int: -504819
+2222.    IREMPOW2 (-8893427 % 0x00400000):  int: -504819
+2223.    IREMPOW2 (-8893427 % 0x00800000):  int: -504819
+2224.    IREMPOW2 (-8893427 % 0x01000000):  int: -8893427
+2225.    IREMPOW2 (-8893427 % 0x02000000):  int: -8893427
+2226.    IREMPOW2 (-8893427 % 0x04000000):  int: -8893427
+2227.    IREMPOW2 (-8893427 % 0x08000000):  int: -8893427
+2228.    IREMPOW2 (-8893427 % 0x10000000):  int: -8893427
+2229.    IREMPOW2 (-8893427 % 0x20000000):  int: -8893427
+2230.    IREMPOW2 (-8893427 % 0x40000000):  int: -8893427
+2231.    IREMPOW2 (-8893427 % 0x80000000):  int: -8893427
+2232.    IDIVPOW2 (-1005234562 / 0x00000002):  int: -502617281
+2233.    IDIVPOW2 (-1005234562 / 0x00000004):  int: -251308640
+2234.    IDIVPOW2 (-1005234562 / 0x00000008):  int: -125654320
+2235.    IDIVPOW2 (-1005234562 / 0x00000010):  int: -62827160
+2236.    IDIVPOW2 (-1005234562 / 0x00000020):  int: -31413580
+2237.    IDIVPOW2 (-1005234562 / 0x00000040):  int: -15706790
+2238.    IDIVPOW2 (-1005234562 / 0x00000080):  int: -7853395
+2239.    IDIVPOW2 (-1005234562 / 0x00000100):  int: -3926697
+2240.    IDIVPOW2 (-1005234562 / 0x00000200):  int: -1963348
+2241.    IDIVPOW2 (-1005234562 / 0x00000400):  int: -981674
+2242.    IDIVPOW2 (-1005234562 / 0x00000800):  int: -490837
+2243.    IDIVPOW2 (-1005234562 / 0x00001000):  int: -245418
+2244.    IDIVPOW2 (-1005234562 / 0x00002000):  int: -122709
+2245.    IDIVPOW2 (-1005234562 / 0x00004000):  int: -61354
+2246.    IDIVPOW2 (-1005234562 / 0x00008000):  int: -30677
+2247.    IDIVPOW2 (-1005234562 / 0x00010000):  int: -15338
+2248.    IDIVPOW2 (-1005234562 / 0x00020000):  int: -7669
+2249.    IDIVPOW2 (-1005234562 / 0x00040000):  int: -3834
+2250.    IDIVPOW2 (-1005234562 / 0x00080000):  int: -1917
+2251.    IDIVPOW2 (-1005234562 / 0x00100000):  int: -958
+2252.    IDIVPOW2 (-1005234562 / 0x00200000):  int: -479
+2253.    IDIVPOW2 (-1005234562 / 0x00400000):  int: -239
+2254.    IDIVPOW2 (-1005234562 / 0x00800000):  int: -119
+2255.    IDIVPOW2 (-1005234562 / 0x01000000):  int: -59
+2256.    IDIVPOW2 (-1005234562 / 0x02000000):  int: -29
+2257.    IDIVPOW2 (-1005234562 / 0x04000000):  int: -14
+2258.    IDIVPOW2 (-1005234562 / 0x08000000):  int: -7
+2259.    IDIVPOW2 (-1005234562 / 0x10000000):  int: -3
+2260.    IDIVPOW2 (-1005234562 / 0x20000000):  int: -1
+2261.    IDIVPOW2 (-1005234562 / 0x40000000):  int: 0
+2262.    IDIVPOW2 (-1005234562 / 0x80000000):  int: 0
+2263.    IREMPOW2 (-1005234562 % 0x00000002):  int: 0
+2264.    IREMPOW2 (-1005234562 % 0x00000004):  int: -2
+2265.    IREMPOW2 (-1005234562 % 0x00000008):  int: -2
+2266.    IREMPOW2 (-1005234562 % 0x00000010):  int: -2
+2267.    IREMPOW2 (-1005234562 % 0x00000020):  int: -2
+2268.    IREMPOW2 (-1005234562 % 0x00000040):  int: -2
+2269.    IREMPOW2 (-1005234562 % 0x00000080):  int: -2
+2270.    IREMPOW2 (-1005234562 % 0x00000100):  int: -130
+2271.    IREMPOW2 (-1005234562 % 0x00000200):  int: -386
+2272.    IREMPOW2 (-1005234562 % 0x00000400):  int: -386
+2273.    IREMPOW2 (-1005234562 % 0x00000800):  int: -386
+2274.    IREMPOW2 (-1005234562 % 0x00001000):  int: -2434
+2275.    IREMPOW2 (-1005234562 % 0x00002000):  int: -2434
+2276.    IREMPOW2 (-1005234562 % 0x00004000):  int: -10626
+2277.    IREMPOW2 (-1005234562 % 0x00008000):  int: -10626
+2278.    IREMPOW2 (-1005234562 % 0x00010000):  int: -43394
+2279.    IREMPOW2 (-1005234562 % 0x00020000):  int: -43394
+2280.    IREMPOW2 (-1005234562 % 0x00040000):  int: -174466
+2281.    IREMPOW2 (-1005234562 % 0x00080000):  int: -174466
+2282.    IREMPOW2 (-1005234562 % 0x00100000):  int: -698754
+2283.    IREMPOW2 (-1005234562 % 0x00200000):  int: -698754
+2284.    IREMPOW2 (-1005234562 % 0x00400000):  int: -2795906
+2285.    IREMPOW2 (-1005234562 % 0x00800000):  int: -6990210
+2286.    IREMPOW2 (-1005234562 % 0x01000000):  int: -15378818
+2287.    IREMPOW2 (-1005234562 % 0x02000000):  int: -32156034
+2288.    IREMPOW2 (-1005234562 % 0x04000000):  int: -65710466
+2289.    IREMPOW2 (-1005234562 % 0x08000000):  int: -65710466
+2290.    IREMPOW2 (-1005234562 % 0x10000000):  int: -199928194
+2291.    IREMPOW2 (-1005234562 % 0x20000000):  int: -468363650
+2292.    IREMPOW2 (-1005234562 % 0x40000000):  int: -1005234562
+2293.    IREMPOW2 (-1005234562 % 0x80000000):  int: -1005234562
+2294.    LDIVPOW2 (17 / 0x00000002):  long: 8
+2295.    LDIVPOW2 (17 / 0x00000004):  long: 4
+2296.    LDIVPOW2 (17 / 0x00000008):  long: 2
+2297.    LDIVPOW2 (17 / 0x00000010):  long: 1
+2298.    LDIVPOW2 (17 / 0x00000020):  long: 0
+2299.    LDIVPOW2 (17 / 0x00000040):  long: 0
+2300.    LDIVPOW2 (17 / 0x00000080):  long: 0
+2301.    LDIVPOW2 (17 / 0x00000100):  long: 0
+2302.    LDIVPOW2 (17 / 0x00000200):  long: 0
+2303.    LDIVPOW2 (17 / 0x00000400):  long: 0
+2304.    LDIVPOW2 (17 / 0x00000800):  long: 0
+2305.    LDIVPOW2 (17 / 0x00001000):  long: 0
+2306.    LDIVPOW2 (17 / 0x00002000):  long: 0
+2307.    LDIVPOW2 (17 / 0x00004000):  long: 0
+2308.    LDIVPOW2 (17 / 0x00008000):  long: 0
+2309.    LDIVPOW2 (17 / 0x00010000):  long: 0
+2310.    LDIVPOW2 (17 / 0x00020000):  long: 0
+2311.    LDIVPOW2 (17 / 0x00040000):  long: 0
+2312.    LDIVPOW2 (17 / 0x00080000):  long: 0
+2313.    LDIVPOW2 (17 / 0x00100000):  long: 0
+2314.    LDIVPOW2 (17 / 0x00200000):  long: 0
+2315.    LDIVPOW2 (17 / 0x00400000):  long: 0
+2316.    LDIVPOW2 (17 / 0x00800000):  long: 0
+2317.    LDIVPOW2 (17 / 0x01000000):  long: 0
+2318.    LDIVPOW2 (17 / 0x02000000):  long: 0
+2319.    LDIVPOW2 (17 / 0x04000000):  long: 0
+2320.    LDIVPOW2 (17 / 0x08000000):  long: 0
+2321.    LDIVPOW2 (17 / 0x10000000):  long: 0
+2322.    LDIVPOW2 (17 / 0x20000000):  long: 0
+2323.    LDIVPOW2 (17 / 0x40000000):  long: 0
+2324.    LDIVPOW2 (17 / 0x80000000):  long: 0
+2325.    LREMPOW2 (17 % 0x00000002):  long: 1
+2326.    LREMPOW2 (17 % 0x00000004):  long: 1
+2327.    LREMPOW2 (17 % 0x00000008):  long: 1
+2328.    LREMPOW2 (17 % 0x00000010):  long: 1
+2329.    LREMPOW2 (17 % 0x00000020):  long: 17
+2330.    LREMPOW2 (17 % 0x00000040):  long: 17
+2331.    LREMPOW2 (17 % 0x00000080):  long: 17
+2332.    LREMPOW2 (17 % 0x00000100):  long: 17
+2333.    LREMPOW2 (17 % 0x00000200):  long: 17
+2334.    LREMPOW2 (17 % 0x00000400):  long: 17
+2335.    LREMPOW2 (17 % 0x00000800):  long: 17
+2336.    LREMPOW2 (17 % 0x00001000):  long: 17
+2337.    LREMPOW2 (17 % 0x00002000):  long: 17
+2338.    LREMPOW2 (17 % 0x00004000):  long: 17
+2339.    LREMPOW2 (17 % 0x00008000):  long: 17
+2340.    LREMPOW2 (17 % 0x00010000):  long: 17
+2341.    LREMPOW2 (17 % 0x00020000):  long: 17
+2342.    LREMPOW2 (17 % 0x00040000):  long: 17
+2343.    LREMPOW2 (17 % 0x00080000):  long: 17
+2344.    LREMPOW2 (17 % 0x00100000):  long: 17
+2345.    LREMPOW2 (17 % 0x00200000):  long: 17
+2346.    LREMPOW2 (17 % 0x00400000):  long: 17
+2347.    LREMPOW2 (17 % 0x00800000):  long: 17
+2348.    LREMPOW2 (17 % 0x01000000):  long: 17
+2349.    LREMPOW2 (17 % 0x02000000):  long: 17
+2350.    LREMPOW2 (17 % 0x04000000):  long: 17
+2351.    LREMPOW2 (17 % 0x08000000):  long: 17
+2352.    LREMPOW2 (17 % 0x10000000):  long: 17
+2353.    LREMPOW2 (17 % 0x20000000):  long: 17
+2354.    LREMPOW2 (17 % 0x40000000):  long: 17
+2355.    LREMPOW2 (17 % 0x80000000):  long: 17
+2356.    LDIVPOW2 (12347 / 0x00000002):  long: 6173
+2357.    LDIVPOW2 (12347 / 0x00000004):  long: 3086
+2358.    LDIVPOW2 (12347 / 0x00000008):  long: 1543
+2359.    LDIVPOW2 (12347 / 0x00000010):  long: 771
+2360.    LDIVPOW2 (12347 / 0x00000020):  long: 385
+2361.    LDIVPOW2 (12347 / 0x00000040):  long: 192
+2362.    LDIVPOW2 (12347 / 0x00000080):  long: 96
+2363.    LDIVPOW2 (12347 / 0x00000100):  long: 48
+2364.    LDIVPOW2 (12347 / 0x00000200):  long: 24
+2365.    LDIVPOW2 (12347 / 0x00000400):  long: 12
+2366.    LDIVPOW2 (12347 / 0x00000800):  long: 6
+2367.    LDIVPOW2 (12347 / 0x00001000):  long: 3
+2368.    LDIVPOW2 (12347 / 0x00002000):  long: 1
+2369.    LDIVPOW2 (12347 / 0x00004000):  long: 0
+2370.    LDIVPOW2 (12347 / 0x00008000):  long: 0
+2371.    LDIVPOW2 (12347 / 0x00010000):  long: 0
+2372.    LDIVPOW2 (12347 / 0x00020000):  long: 0
+2373.    LDIVPOW2 (12347 / 0x00040000):  long: 0
+2374.    LDIVPOW2 (12347 / 0x00080000):  long: 0
+2375.    LDIVPOW2 (12347 / 0x00100000):  long: 0
+2376.    LDIVPOW2 (12347 / 0x00200000):  long: 0
+2377.    LDIVPOW2 (12347 / 0x00400000):  long: 0
+2378.    LDIVPOW2 (12347 / 0x00800000):  long: 0
+2379.    LDIVPOW2 (12347 / 0x01000000):  long: 0
+2380.    LDIVPOW2 (12347 / 0x02000000):  long: 0
+2381.    LDIVPOW2 (12347 / 0x04000000):  long: 0
+2382.    LDIVPOW2 (12347 / 0x08000000):  long: 0
+2383.    LDIVPOW2 (12347 / 0x10000000):  long: 0
+2384.    LDIVPOW2 (12347 / 0x20000000):  long: 0
+2385.    LDIVPOW2 (12347 / 0x40000000):  long: 0
+2386.    LDIVPOW2 (12347 / 0x80000000):  long: 0
+2387.    LREMPOW2 (12347 % 0x00000002):  long: 1
+2388.    LREMPOW2 (12347 % 0x00000004):  long: 3
+2389.    LREMPOW2 (12347 % 0x00000008):  long: 3
+2390.    LREMPOW2 (12347 % 0x00000010):  long: 11
+2391.    LREMPOW2 (12347 % 0x00000020):  long: 27
+2392.    LREMPOW2 (12347 % 0x00000040):  long: 59
+2393.    LREMPOW2 (12347 % 0x00000080):  long: 59
+2394.    LREMPOW2 (12347 % 0x00000100):  long: 59
+2395.    LREMPOW2 (12347 % 0x00000200):  long: 59
+2396.    LREMPOW2 (12347 % 0x00000400):  long: 59
+2397.    LREMPOW2 (12347 % 0x00000800):  long: 59
+2398.    LREMPOW2 (12347 % 0x00001000):  long: 59
+2399.    LREMPOW2 (12347 % 0x00002000):  long: 4155
+2400.    LREMPOW2 (12347 % 0x00004000):  long: 12347
+2401.    LREMPOW2 (12347 % 0x00008000):  long: 12347
+2402.    LREMPOW2 (12347 % 0x00010000):  long: 12347
+2403.    LREMPOW2 (12347 % 0x00020000):  long: 12347
+2404.    LREMPOW2 (12347 % 0x00040000):  long: 12347
+2405.    LREMPOW2 (12347 % 0x00080000):  long: 12347
+2406.    LREMPOW2 (12347 % 0x00100000):  long: 12347
+2407.    LREMPOW2 (12347 % 0x00200000):  long: 12347
+2408.    LREMPOW2 (12347 % 0x00400000):  long: 12347
+2409.    LREMPOW2 (12347 % 0x00800000):  long: 12347
+2410.    LREMPOW2 (12347 % 0x01000000):  long: 12347
+2411.    LREMPOW2 (12347 % 0x02000000):  long: 12347
+2412.    LREMPOW2 (12347 % 0x04000000):  long: 12347
+2413.    LREMPOW2 (12347 % 0x08000000):  long: 12347
+2414.    LREMPOW2 (12347 % 0x10000000):  long: 12347
+2415.    LREMPOW2 (12347 % 0x20000000):  long: 12347
+2416.    LREMPOW2 (12347 % 0x40000000):  long: 12347
+2417.    LREMPOW2 (12347 % 0x80000000):  long: 12347
+2418.    LDIVPOW2 (8893427 / 0x00000002):  long: 4446713
+2419.    LDIVPOW2 (8893427 / 0x00000004):  long: 2223356
+2420.    LDIVPOW2 (8893427 / 0x00000008):  long: 1111678
+2421.    LDIVPOW2 (8893427 / 0x00000010):  long: 555839
+2422.    LDIVPOW2 (8893427 / 0x00000020):  long: 277919
+2423.    LDIVPOW2 (8893427 / 0x00000040):  long: 138959
+2424.    LDIVPOW2 (8893427 / 0x00000080):  long: 69479
+2425.    LDIVPOW2 (8893427 / 0x00000100):  long: 34739
+2426.    LDIVPOW2 (8893427 / 0x00000200):  long: 17369
+2427.    LDIVPOW2 (8893427 / 0x00000400):  long: 8684
+2428.    LDIVPOW2 (8893427 / 0x00000800):  long: 4342
+2429.    LDIVPOW2 (8893427 / 0x00001000):  long: 2171
+2430.    LDIVPOW2 (8893427 / 0x00002000):  long: 1085
+2431.    LDIVPOW2 (8893427 / 0x00004000):  long: 542
+2432.    LDIVPOW2 (8893427 / 0x00008000):  long: 271
+2433.    LDIVPOW2 (8893427 / 0x00010000):  long: 135
+2434.    LDIVPOW2 (8893427 / 0x00020000):  long: 67
+2435.    LDIVPOW2 (8893427 / 0x00040000):  long: 33
+2436.    LDIVPOW2 (8893427 / 0x00080000):  long: 16
+2437.    LDIVPOW2 (8893427 / 0x00100000):  long: 8
+2438.    LDIVPOW2 (8893427 / 0x00200000):  long: 4
+2439.    LDIVPOW2 (8893427 / 0x00400000):  long: 2
+2440.    LDIVPOW2 (8893427 / 0x00800000):  long: 1
+2441.    LDIVPOW2 (8893427 / 0x01000000):  long: 0
+2442.    LDIVPOW2 (8893427 / 0x02000000):  long: 0
+2443.    LDIVPOW2 (8893427 / 0x04000000):  long: 0
+2444.    LDIVPOW2 (8893427 / 0x08000000):  long: 0
+2445.    LDIVPOW2 (8893427 / 0x10000000):  long: 0
+2446.    LDIVPOW2 (8893427 / 0x20000000):  long: 0
+2447.    LDIVPOW2 (8893427 / 0x40000000):  long: 0
+2448.    LDIVPOW2 (8893427 / 0x80000000):  long: 0
+2449.    LREMPOW2 (8893427 % 0x00000002):  long: 1
+2450.    LREMPOW2 (8893427 % 0x00000004):  long: 3
+2451.    LREMPOW2 (8893427 % 0x00000008):  long: 3
+2452.    LREMPOW2 (8893427 % 0x00000010):  long: 3
+2453.    LREMPOW2 (8893427 % 0x00000020):  long: 19
+2454.    LREMPOW2 (8893427 % 0x00000040):  long: 51
+2455.    LREMPOW2 (8893427 % 0x00000080):  long: 115
+2456.    LREMPOW2 (8893427 % 0x00000100):  long: 243
+2457.    LREMPOW2 (8893427 % 0x00000200):  long: 499
+2458.    LREMPOW2 (8893427 % 0x00000400):  long: 1011
+2459.    LREMPOW2 (8893427 % 0x00000800):  long: 1011
+2460.    LREMPOW2 (8893427 % 0x00001000):  long: 1011
+2461.    LREMPOW2 (8893427 % 0x00002000):  long: 5107
+2462.    LREMPOW2 (8893427 % 0x00004000):  long: 13299
+2463.    LREMPOW2 (8893427 % 0x00008000):  long: 13299
+2464.    LREMPOW2 (8893427 % 0x00010000):  long: 46067
+2465.    LREMPOW2 (8893427 % 0x00020000):  long: 111603
+2466.    LREMPOW2 (8893427 % 0x00040000):  long: 242675
+2467.    LREMPOW2 (8893427 % 0x00080000):  long: 504819
+2468.    LREMPOW2 (8893427 % 0x00100000):  long: 504819
+2469.    LREMPOW2 (8893427 % 0x00200000):  long: 504819
+2470.    LREMPOW2 (8893427 % 0x00400000):  long: 504819
+2471.    LREMPOW2 (8893427 % 0x00800000):  long: 504819
+2472.    LREMPOW2 (8893427 % 0x01000000):  long: 8893427
+2473.    LREMPOW2 (8893427 % 0x02000000):  long: 8893427
+2474.    LREMPOW2 (8893427 % 0x04000000):  long: 8893427
+2475.    LREMPOW2 (8893427 % 0x08000000):  long: 8893427
+2476.    LREMPOW2 (8893427 % 0x10000000):  long: 8893427
+2477.    LREMPOW2 (8893427 % 0x20000000):  long: 8893427
+2478.    LREMPOW2 (8893427 % 0x40000000):  long: 8893427
+2479.    LREMPOW2 (8893427 % 0x80000000):  long: 8893427
+2480.    LDIVPOW2 (1005234562 / 0x00000002):  long: 502617281
+2481.    LDIVPOW2 (1005234562 / 0x00000004):  long: 251308640
+2482.    LDIVPOW2 (1005234562 / 0x00000008):  long: 125654320
+2483.    LDIVPOW2 (1005234562 / 0x00000010):  long: 62827160
+2484.    LDIVPOW2 (1005234562 / 0x00000020):  long: 31413580
+2485.    LDIVPOW2 (1005234562 / 0x00000040):  long: 15706790
+2486.    LDIVPOW2 (1005234562 / 0x00000080):  long: 7853395
+2487.    LDIVPOW2 (1005234562 / 0x00000100):  long: 3926697
+2488.    LDIVPOW2 (1005234562 / 0x00000200):  long: 1963348
+2489.    LDIVPOW2 (1005234562 / 0x00000400):  long: 981674
+2490.    LDIVPOW2 (1005234562 / 0x00000800):  long: 490837
+2491.    LDIVPOW2 (1005234562 / 0x00001000):  long: 245418
+2492.    LDIVPOW2 (1005234562 / 0x00002000):  long: 122709
+2493.    LDIVPOW2 (1005234562 / 0x00004000):  long: 61354
+2494.    LDIVPOW2 (1005234562 / 0x00008000):  long: 30677
+2495.    LDIVPOW2 (1005234562 / 0x00010000):  long: 15338
+2496.    LDIVPOW2 (1005234562 / 0x00020000):  long: 7669
+2497.    LDIVPOW2 (1005234562 / 0x00040000):  long: 3834
+2498.    LDIVPOW2 (1005234562 / 0x00080000):  long: 1917
+2499.    LDIVPOW2 (1005234562 / 0x00100000):  long: 958
+2500.    LDIVPOW2 (1005234562 / 0x00200000):  long: 479
+2501.    LDIVPOW2 (1005234562 / 0x00400000):  long: 239
+2502.    LDIVPOW2 (1005234562 / 0x00800000):  long: 119
+2503.    LDIVPOW2 (1005234562 / 0x01000000):  long: 59
+2504.    LDIVPOW2 (1005234562 / 0x02000000):  long: 29
+2505.    LDIVPOW2 (1005234562 / 0x04000000):  long: 14
+2506.    LDIVPOW2 (1005234562 / 0x08000000):  long: 7
+2507.    LDIVPOW2 (1005234562 / 0x10000000):  long: 3
+2508.    LDIVPOW2 (1005234562 / 0x20000000):  long: 1
+2509.    LDIVPOW2 (1005234562 / 0x40000000):  long: 0
+2510.    LDIVPOW2 (1005234562 / 0x80000000):  long: 0
+2511.    LREMPOW2 (1005234562 % 0x00000002):  long: 0
+2512.    LREMPOW2 (1005234562 % 0x00000004):  long: 2
+2513.    LREMPOW2 (1005234562 % 0x00000008):  long: 2
+2514.    LREMPOW2 (1005234562 % 0x00000010):  long: 2
+2515.    LREMPOW2 (1005234562 % 0x00000020):  long: 2
+2516.    LREMPOW2 (1005234562 % 0x00000040):  long: 2
+2517.    LREMPOW2 (1005234562 % 0x00000080):  long: 2
+2518.    LREMPOW2 (1005234562 % 0x00000100):  long: 130
+2519.    LREMPOW2 (1005234562 % 0x00000200):  long: 386
+2520.    LREMPOW2 (1005234562 % 0x00000400):  long: 386
+2521.    LREMPOW2 (1005234562 % 0x00000800):  long: 386
+2522.    LREMPOW2 (1005234562 % 0x00001000):  long: 2434
+2523.    LREMPOW2 (1005234562 % 0x00002000):  long: 2434
+2524.    LREMPOW2 (1005234562 % 0x00004000):  long: 10626
+2525.    LREMPOW2 (1005234562 % 0x00008000):  long: 10626
+2526.    LREMPOW2 (1005234562 % 0x00010000):  long: 43394
+2527.    LREMPOW2 (1005234562 % 0x00020000):  long: 43394
+2528.    LREMPOW2 (1005234562 % 0x00040000):  long: 174466
+2529.    LREMPOW2 (1005234562 % 0x00080000):  long: 174466
+2530.    LREMPOW2 (1005234562 % 0x00100000):  long: 698754
+2531.    LREMPOW2 (1005234562 % 0x00200000):  long: 698754
+2532.    LREMPOW2 (1005234562 % 0x00400000):  long: 2795906
+2533.    LREMPOW2 (1005234562 % 0x00800000):  long: 6990210
+2534.    LREMPOW2 (1005234562 % 0x01000000):  long: 15378818
+2535.    LREMPOW2 (1005234562 % 0x02000000):  long: 32156034
+2536.    LREMPOW2 (1005234562 % 0x04000000):  long: 65710466
+2537.    LREMPOW2 (1005234562 % 0x08000000):  long: 65710466
+2538.    LREMPOW2 (1005234562 % 0x10000000):  long: 199928194
+2539.    LREMPOW2 (1005234562 % 0x20000000):  long: 468363650
+2540.    LREMPOW2 (1005234562 % 0x40000000):  long: 1005234562
+2541.    LREMPOW2 (1005234562 % 0x80000000):  long: 1005234562
+2542.    LDIVPOW2 (12135005234562 / 0x00000002):  long: 6067502617281
+2543.    LDIVPOW2 (12135005234562 / 0x00000004):  long: 3033751308640
+2544.    LDIVPOW2 (12135005234562 / 0x00000008):  long: 1516875654320
+2545.    LDIVPOW2 (12135005234562 / 0x00000010):  long: 758437827160
+2546.    LDIVPOW2 (12135005234562 / 0x00000020):  long: 379218913580
+2547.    LDIVPOW2 (12135005234562 / 0x00000040):  long: 189609456790
+2548.    LDIVPOW2 (12135005234562 / 0x00000080):  long: 94804728395
+2549.    LDIVPOW2 (12135005234562 / 0x00000100):  long: 47402364197
+2550.    LDIVPOW2 (12135005234562 / 0x00000200):  long: 23701182098
+2551.    LDIVPOW2 (12135005234562 / 0x00000400):  long: 11850591049
+2552.    LDIVPOW2 (12135005234562 / 0x00000800):  long: 5925295524
+2553.    LDIVPOW2 (12135005234562 / 0x00001000):  long: 2962647762
+2554.    LDIVPOW2 (12135005234562 / 0x00002000):  long: 1481323881
+2555.    LDIVPOW2 (12135005234562 / 0x00004000):  long: 740661940
+2556.    LDIVPOW2 (12135005234562 / 0x00008000):  long: 370330970
+2557.    LDIVPOW2 (12135005234562 / 0x00010000):  long: 185165485
+2558.    LDIVPOW2 (12135005234562 / 0x00020000):  long: 92582742
+2559.    LDIVPOW2 (12135005234562 / 0x00040000):  long: 46291371
+2560.    LDIVPOW2 (12135005234562 / 0x00080000):  long: 23145685
+2561.    LDIVPOW2 (12135005234562 / 0x00100000):  long: 11572842
+2562.    LDIVPOW2 (12135005234562 / 0x00200000):  long: 5786421
+2563.    LDIVPOW2 (12135005234562 / 0x00400000):  long: 2893210
+2564.    LDIVPOW2 (12135005234562 / 0x00800000):  long: 1446605
+2565.    LDIVPOW2 (12135005234562 / 0x01000000):  long: 723302
+2566.    LDIVPOW2 (12135005234562 / 0x02000000):  long: 361651
+2567.    LDIVPOW2 (12135005234562 / 0x04000000):  long: 180825
+2568.    LDIVPOW2 (12135005234562 / 0x08000000):  long: 90412
+2569.    LDIVPOW2 (12135005234562 / 0x10000000):  long: 45206
+2570.    LDIVPOW2 (12135005234562 / 0x20000000):  long: 22603
+2571.    LDIVPOW2 (12135005234562 / 0x40000000):  long: 11301
+2572.    LDIVPOW2 (12135005234562 / 0x80000000):  long: -5650
+2573.    LREMPOW2 (12135005234562 % 0x00000002):  long: 0
+2574.    LREMPOW2 (12135005234562 % 0x00000004):  long: 2
+2575.    LREMPOW2 (12135005234562 % 0x00000008):  long: 2
+2576.    LREMPOW2 (12135005234562 % 0x00000010):  long: 2
+2577.    LREMPOW2 (12135005234562 % 0x00000020):  long: 2
+2578.    LREMPOW2 (12135005234562 % 0x00000040):  long: 2
+2579.    LREMPOW2 (12135005234562 % 0x00000080):  long: 2
+2580.    LREMPOW2 (12135005234562 % 0x00000100):  long: 130
+2581.    LREMPOW2 (12135005234562 % 0x00000200):  long: 386
+2582.    LREMPOW2 (12135005234562 % 0x00000400):  long: 386
+2583.    LREMPOW2 (12135005234562 % 0x00000800):  long: 1410
+2584.    LREMPOW2 (12135005234562 % 0x00001000):  long: 1410
+2585.    LREMPOW2 (12135005234562 % 0x00002000):  long: 1410
+2586.    LREMPOW2 (12135005234562 % 0x00004000):  long: 9602
+2587.    LREMPOW2 (12135005234562 % 0x00008000):  long: 9602
+2588.    LREMPOW2 (12135005234562 % 0x00010000):  long: 9602
+2589.    LREMPOW2 (12135005234562 % 0x00020000):  long: 75138
+2590.    LREMPOW2 (12135005234562 % 0x00040000):  long: 75138
+2591.    LREMPOW2 (12135005234562 % 0x00080000):  long: 337282
+2592.    LREMPOW2 (12135005234562 % 0x00100000):  long: 861570
+2593.    LREMPOW2 (12135005234562 % 0x00200000):  long: 861570
+2594.    LREMPOW2 (12135005234562 % 0x00400000):  long: 2958722
+2595.    LREMPOW2 (12135005234562 % 0x00800000):  long: 2958722
+2596.    LREMPOW2 (12135005234562 % 0x01000000):  long: 11347330
+2597.    LREMPOW2 (12135005234562 % 0x02000000):  long: 11347330
+2598.    LREMPOW2 (12135005234562 % 0x04000000):  long: 44901762
+2599.    LREMPOW2 (12135005234562 % 0x08000000):  long: 112010626
+2600.    LREMPOW2 (12135005234562 % 0x10000000):  long: 112010626
+2601.    LREMPOW2 (12135005234562 % 0x20000000):  long: 112010626
+2602.    LREMPOW2 (12135005234562 % 0x40000000):  long: 648881538
+2603.    LREMPOW2 (12135005234562 % 0x80000000):  long: 1722623362
+2604.    LDIVPOW2 (2343552355623464626 / 0x00000002):  long: 1171776177811732313
+2605.    LDIVPOW2 (2343552355623464626 / 0x00000004):  long: 585888088905866156
+2606.    LDIVPOW2 (2343552355623464626 / 0x00000008):  long: 292944044452933078
+2607.    LDIVPOW2 (2343552355623464626 / 0x00000010):  long: 146472022226466539
+2608.    LDIVPOW2 (2343552355623464626 / 0x00000020):  long: 73236011113233269
+2609.    LDIVPOW2 (2343552355623464626 / 0x00000040):  long: 36618005556616634
+2610.    LDIVPOW2 (2343552355623464626 / 0x00000080):  long: 18309002778308317
+2611.    LDIVPOW2 (2343552355623464626 / 0x00000100):  long: 9154501389154158
+2612.    LDIVPOW2 (2343552355623464626 / 0x00000200):  long: 4577250694577079
+2613.    LDIVPOW2 (2343552355623464626 / 0x00000400):  long: 2288625347288539
+2614.    LDIVPOW2 (2343552355623464626 / 0x00000800):  long: 1144312673644269
+2615.    LDIVPOW2 (2343552355623464626 / 0x00001000):  long: 572156336822134
+2616.    LDIVPOW2 (2343552355623464626 / 0x00002000):  long: 286078168411067
+2617.    LDIVPOW2 (2343552355623464626 / 0x00004000):  long: 143039084205533
+2618.    LDIVPOW2 (2343552355623464626 / 0x00008000):  long: 71519542102766
+2619.    LDIVPOW2 (2343552355623464626 / 0x00010000):  long: 35759771051383
+2620.    LDIVPOW2 (2343552355623464626 / 0x00020000):  long: 17879885525691
+2621.    LDIVPOW2 (2343552355623464626 / 0x00040000):  long: 8939942762845
+2622.    LDIVPOW2 (2343552355623464626 / 0x00080000):  long: 4469971381422
+2623.    LDIVPOW2 (2343552355623464626 / 0x00100000):  long: 2234985690711
+2624.    LDIVPOW2 (2343552355623464626 / 0x00200000):  long: 1117492845355
+2625.    LDIVPOW2 (2343552355623464626 / 0x00400000):  long: 558746422677
+2626.    LDIVPOW2 (2343552355623464626 / 0x00800000):  long: 279373211338
+2627.    LDIVPOW2 (2343552355623464626 / 0x01000000):  long: 139686605669
+2628.    LDIVPOW2 (2343552355623464626 / 0x02000000):  long: 69843302834
+2629.    LDIVPOW2 (2343552355623464626 / 0x04000000):  long: 34921651417
+2630.    LDIVPOW2 (2343552355623464626 / 0x08000000):  long: 17460825708
+2631.    LDIVPOW2 (2343552355623464626 / 0x10000000):  long: 8730412854
+2632.    LDIVPOW2 (2343552355623464626 / 0x20000000):  long: 4365206427
+2633.    LDIVPOW2 (2343552355623464626 / 0x40000000):  long: 2182603213
+2634.    LDIVPOW2 (2343552355623464626 / 0x80000000):  long: -1091301606
+2635.    LREMPOW2 (2343552355623464626 % 0x00000002):  long: 0
+2636.    LREMPOW2 (2343552355623464626 % 0x00000004):  long: 2
+2637.    LREMPOW2 (2343552355623464626 % 0x00000008):  long: 2
+2638.    LREMPOW2 (2343552355623464626 % 0x00000010):  long: 2
+2639.    LREMPOW2 (2343552355623464626 % 0x00000020):  long: 18
+2640.    LREMPOW2 (2343552355623464626 % 0x00000040):  long: 50
+2641.    LREMPOW2 (2343552355623464626 % 0x00000080):  long: 50
+2642.    LREMPOW2 (2343552355623464626 % 0x00000100):  long: 178
+2643.    LREMPOW2 (2343552355623464626 % 0x00000200):  long: 178
+2644.    LREMPOW2 (2343552355623464626 % 0x00000400):  long: 690
+2645.    LREMPOW2 (2343552355623464626 % 0x00000800):  long: 1714
+2646.    LREMPOW2 (2343552355623464626 % 0x00001000):  long: 3762
+2647.    LREMPOW2 (2343552355623464626 % 0x00002000):  long: 3762
+2648.    LREMPOW2 (2343552355623464626 % 0x00004000):  long: 11954
+2649.    LREMPOW2 (2343552355623464626 % 0x00008000):  long: 28338
+2650.    LREMPOW2 (2343552355623464626 % 0x00010000):  long: 28338
+2651.    LREMPOW2 (2343552355623464626 % 0x00020000):  long: 93874
+2652.    LREMPOW2 (2343552355623464626 % 0x00040000):  long: 224946
+2653.    LREMPOW2 (2343552355623464626 % 0x00080000):  long: 487090
+2654.    LREMPOW2 (2343552355623464626 % 0x00100000):  long: 487090
+2655.    LREMPOW2 (2343552355623464626 % 0x00200000):  long: 1535666
+2656.    LREMPOW2 (2343552355623464626 % 0x00400000):  long: 3632818
+2657.    LREMPOW2 (2343552355623464626 % 0x00800000):  long: 7827122
+2658.    LREMPOW2 (2343552355623464626 % 0x01000000):  long: 7827122
+2659.    LREMPOW2 (2343552355623464626 % 0x02000000):  long: 24604338
+2660.    LREMPOW2 (2343552355623464626 % 0x04000000):  long: 24604338
+2661.    LREMPOW2 (2343552355623464626 % 0x08000000):  long: 91713202
+2662.    LREMPOW2 (2343552355623464626 % 0x10000000):  long: 91713202
+2663.    LREMPOW2 (2343552355623464626 % 0x20000000):  long: 91713202
+2664.    LREMPOW2 (2343552355623464626 % 0x40000000):  long: 628584114
+2665.    LREMPOW2 (2343552355623464626 % 0x80000000):  long: 1702325938
+2666.    LDIVPOW2 (-17 / 0x00000002):  long: -8
+2667.    LDIVPOW2 (-17 / 0x00000004):  long: -4
+2668.    LDIVPOW2 (-17 / 0x00000008):  long: -2
+2669.    LDIVPOW2 (-17 / 0x00000010):  long: -1
+2670.    LDIVPOW2 (-17 / 0x00000020):  long: 0
+2671.    LDIVPOW2 (-17 / 0x00000040):  long: 0
+2672.    LDIVPOW2 (-17 / 0x00000080):  long: 0
+2673.    LDIVPOW2 (-17 / 0x00000100):  long: 0
+2674.    LDIVPOW2 (-17 / 0x00000200):  long: 0
+2675.    LDIVPOW2 (-17 / 0x00000400):  long: 0
+2676.    LDIVPOW2 (-17 / 0x00000800):  long: 0
+2677.    LDIVPOW2 (-17 / 0x00001000):  long: 0
+2678.    LDIVPOW2 (-17 / 0x00002000):  long: 0
+2679.    LDIVPOW2 (-17 / 0x00004000):  long: 0
+2680.    LDIVPOW2 (-17 / 0x00008000):  long: 0
+2681.    LDIVPOW2 (-17 / 0x00010000):  long: 0
+2682.    LDIVPOW2 (-17 / 0x00020000):  long: 0
+2683.    LDIVPOW2 (-17 / 0x00040000):  long: 0
+2684.    LDIVPOW2 (-17 / 0x00080000):  long: 0
+2685.    LDIVPOW2 (-17 / 0x00100000):  long: 0
+2686.    LDIVPOW2 (-17 / 0x00200000):  long: 0
+2687.    LDIVPOW2 (-17 / 0x00400000):  long: 0
+2688.    LDIVPOW2 (-17 / 0x00800000):  long: 0
+2689.    LDIVPOW2 (-17 / 0x01000000):  long: 0
+2690.    LDIVPOW2 (-17 / 0x02000000):  long: 0
+2691.    LDIVPOW2 (-17 / 0x04000000):  long: 0
+2692.    LDIVPOW2 (-17 / 0x08000000):  long: 0
+2693.    LDIVPOW2 (-17 / 0x10000000):  long: 0
+2694.    LDIVPOW2 (-17 / 0x20000000):  long: 0
+2695.    LDIVPOW2 (-17 / 0x40000000):  long: 0
+2696.    LDIVPOW2 (-17 / 0x80000000):  long: 0
+2697.    LREMPOW2 (-17 % 0x00000002):  long: -1
+2698.    LREMPOW2 (-17 % 0x00000004):  long: -1
+2699.    LREMPOW2 (-17 % 0x00000008):  long: -1
+2700.    LREMPOW2 (-17 % 0x00000010):  long: -1
+2701.    LREMPOW2 (-17 % 0x00000020):  long: -17
+2702.    LREMPOW2 (-17 % 0x00000040):  long: -17
+2703.    LREMPOW2 (-17 % 0x00000080):  long: -17
+2704.    LREMPOW2 (-17 % 0x00000100):  long: -17
+2705.    LREMPOW2 (-17 % 0x00000200):  long: -17
+2706.    LREMPOW2 (-17 % 0x00000400):  long: -17
+2707.    LREMPOW2 (-17 % 0x00000800):  long: -17
+2708.    LREMPOW2 (-17 % 0x00001000):  long: -17
+2709.    LREMPOW2 (-17 % 0x00002000):  long: -17
+2710.    LREMPOW2 (-17 % 0x00004000):  long: -17
+2711.    LREMPOW2 (-17 % 0x00008000):  long: -17
+2712.    LREMPOW2 (-17 % 0x00010000):  long: -17
+2713.    LREMPOW2 (-17 % 0x00020000):  long: -17
+2714.    LREMPOW2 (-17 % 0x00040000):  long: -17
+2715.    LREMPOW2 (-17 % 0x00080000):  long: -17
+2716.    LREMPOW2 (-17 % 0x00100000):  long: -17
+2717.    LREMPOW2 (-17 % 0x00200000):  long: -17
+2718.    LREMPOW2 (-17 % 0x00400000):  long: -17
+2719.    LREMPOW2 (-17 % 0x00800000):  long: -17
+2720.    LREMPOW2 (-17 % 0x01000000):  long: -17
+2721.    LREMPOW2 (-17 % 0x02000000):  long: -17
+2722.    LREMPOW2 (-17 % 0x04000000):  long: -17
+2723.    LREMPOW2 (-17 % 0x08000000):  long: -17
+2724.    LREMPOW2 (-17 % 0x10000000):  long: -17
+2725.    LREMPOW2 (-17 % 0x20000000):  long: -17
+2726.    LREMPOW2 (-17 % 0x40000000):  long: -17
+2727.    LREMPOW2 (-17 % 0x80000000):  long: -17
+2728.    LDIVPOW2 (-12347 / 0x00000002):  long: -6173
+2729.    LDIVPOW2 (-12347 / 0x00000004):  long: -3086
+2730.    LDIVPOW2 (-12347 / 0x00000008):  long: -1543
+2731.    LDIVPOW2 (-12347 / 0x00000010):  long: -771
+2732.    LDIVPOW2 (-12347 / 0x00000020):  long: -385
+2733.    LDIVPOW2 (-12347 / 0x00000040):  long: -192
+2734.    LDIVPOW2 (-12347 / 0x00000080):  long: -96
+2735.    LDIVPOW2 (-12347 / 0x00000100):  long: -48
+2736.    LDIVPOW2 (-12347 / 0x00000200):  long: -24
+2737.    LDIVPOW2 (-12347 / 0x00000400):  long: -12
+2738.    LDIVPOW2 (-12347 / 0x00000800):  long: -6
+2739.    LDIVPOW2 (-12347 / 0x00001000):  long: -3
+2740.    LDIVPOW2 (-12347 / 0x00002000):  long: -1
+2741.    LDIVPOW2 (-12347 / 0x00004000):  long: 0
+2742.    LDIVPOW2 (-12347 / 0x00008000):  long: 0
+2743.    LDIVPOW2 (-12347 / 0x00010000):  long: 0
+2744.    LDIVPOW2 (-12347 / 0x00020000):  long: 0
+2745.    LDIVPOW2 (-12347 / 0x00040000):  long: 0
+2746.    LDIVPOW2 (-12347 / 0x00080000):  long: 0
+2747.    LDIVPOW2 (-12347 / 0x00100000):  long: 0
+2748.    LDIVPOW2 (-12347 / 0x00200000):  long: 0
+2749.    LDIVPOW2 (-12347 / 0x00400000):  long: 0
+2750.    LDIVPOW2 (-12347 / 0x00800000):  long: 0
+2751.    LDIVPOW2 (-12347 / 0x01000000):  long: 0
+2752.    LDIVPOW2 (-12347 / 0x02000000):  long: 0
+2753.    LDIVPOW2 (-12347 / 0x04000000):  long: 0
+2754.    LDIVPOW2 (-12347 / 0x08000000):  long: 0
+2755.    LDIVPOW2 (-12347 / 0x10000000):  long: 0
+2756.    LDIVPOW2 (-12347 / 0x20000000):  long: 0
+2757.    LDIVPOW2 (-12347 / 0x40000000):  long: 0
+2758.    LDIVPOW2 (-12347 / 0x80000000):  long: 0
+2759.    LREMPOW2 (-12347 % 0x00000002):  long: -1
+2760.    LREMPOW2 (-12347 % 0x00000004):  long: -3
+2761.    LREMPOW2 (-12347 % 0x00000008):  long: -3
+2762.    LREMPOW2 (-12347 % 0x00000010):  long: -11
+2763.    LREMPOW2 (-12347 % 0x00000020):  long: -27
+2764.    LREMPOW2 (-12347 % 0x00000040):  long: -59
+2765.    LREMPOW2 (-12347 % 0x00000080):  long: -59
+2766.    LREMPOW2 (-12347 % 0x00000100):  long: -59
+2767.    LREMPOW2 (-12347 % 0x00000200):  long: -59
+2768.    LREMPOW2 (-12347 % 0x00000400):  long: -59
+2769.    LREMPOW2 (-12347 % 0x00000800):  long: -59
+2770.    LREMPOW2 (-12347 % 0x00001000):  long: -59
+2771.    LREMPOW2 (-12347 % 0x00002000):  long: -4155
+2772.    LREMPOW2 (-12347 % 0x00004000):  long: -12347
+2773.    LREMPOW2 (-12347 % 0x00008000):  long: -12347
+2774.    LREMPOW2 (-12347 % 0x00010000):  long: -12347
+2775.    LREMPOW2 (-12347 % 0x00020000):  long: -12347
+2776.    LREMPOW2 (-12347 % 0x00040000):  long: -12347
+2777.    LREMPOW2 (-12347 % 0x00080000):  long: -12347
+2778.    LREMPOW2 (-12347 % 0x00100000):  long: -12347
+2779.    LREMPOW2 (-12347 % 0x00200000):  long: -12347
+2780.    LREMPOW2 (-12347 % 0x00400000):  long: -12347
+2781.    LREMPOW2 (-12347 % 0x00800000):  long: -12347
+2782.    LREMPOW2 (-12347 % 0x01000000):  long: -12347
+2783.    LREMPOW2 (-12347 % 0x02000000):  long: -12347
+2784.    LREMPOW2 (-12347 % 0x04000000):  long: -12347
+2785.    LREMPOW2 (-12347 % 0x08000000):  long: -12347
+2786.    LREMPOW2 (-12347 % 0x10000000):  long: -12347
+2787.    LREMPOW2 (-12347 % 0x20000000):  long: -12347
+2788.    LREMPOW2 (-12347 % 0x40000000):  long: -12347
+2789.    LREMPOW2 (-12347 % 0x80000000):  long: -12347
+2790.    LDIVPOW2 (-8893427 / 0x00000002):  long: -4446713
+2791.    LDIVPOW2 (-8893427 / 0x00000004):  long: -2223356
+2792.    LDIVPOW2 (-8893427 / 0x00000008):  long: -1111678
+2793.    LDIVPOW2 (-8893427 / 0x00000010):  long: -555839
+2794.    LDIVPOW2 (-8893427 / 0x00000020):  long: -277919
+2795.    LDIVPOW2 (-8893427 / 0x00000040):  long: -138959
+2796.    LDIVPOW2 (-8893427 / 0x00000080):  long: -69479
+2797.    LDIVPOW2 (-8893427 / 0x00000100):  long: -34739
+2798.    LDIVPOW2 (-8893427 / 0x00000200):  long: -17369
+2799.    LDIVPOW2 (-8893427 / 0x00000400):  long: -8684
+2800.    LDIVPOW2 (-8893427 / 0x00000800):  long: -4342
+2801.    LDIVPOW2 (-8893427 / 0x00001000):  long: -2171
+2802.    LDIVPOW2 (-8893427 / 0x00002000):  long: -1085
+2803.    LDIVPOW2 (-8893427 / 0x00004000):  long: -542
+2804.    LDIVPOW2 (-8893427 / 0x00008000):  long: -271
+2805.    LDIVPOW2 (-8893427 / 0x00010000):  long: -135
+2806.    LDIVPOW2 (-8893427 / 0x00020000):  long: -67
+2807.    LDIVPOW2 (-8893427 / 0x00040000):  long: -33
+2808.    LDIVPOW2 (-8893427 / 0x00080000):  long: -16
+2809.    LDIVPOW2 (-8893427 / 0x00100000):  long: -8
+2810.    LDIVPOW2 (-8893427 / 0x00200000):  long: -4
+2811.    LDIVPOW2 (-8893427 / 0x00400000):  long: -2
+2812.    LDIVPOW2 (-8893427 / 0x00800000):  long: -1
+2813.    LDIVPOW2 (-8893427 / 0x01000000):  long: 0
+2814.    LDIVPOW2 (-8893427 / 0x02000000):  long: 0
+2815.    LDIVPOW2 (-8893427 / 0x04000000):  long: 0
+2816.    LDIVPOW2 (-8893427 / 0x08000000):  long: 0
+2817.    LDIVPOW2 (-8893427 / 0x10000000):  long: 0
+2818.    LDIVPOW2 (-8893427 / 0x20000000):  long: 0
+2819.    LDIVPOW2 (-8893427 / 0x40000000):  long: 0
+2820.    LDIVPOW2 (-8893427 / 0x80000000):  long: 0
+2821.    LREMPOW2 (-8893427 % 0x00000002):  long: -1
+2822.    LREMPOW2 (-8893427 % 0x00000004):  long: -3
+2823.    LREMPOW2 (-8893427 % 0x00000008):  long: -3
+2824.    LREMPOW2 (-8893427 % 0x00000010):  long: -3
+2825.    LREMPOW2 (-8893427 % 0x00000020):  long: -19
+2826.    LREMPOW2 (-8893427 % 0x00000040):  long: -51
+2827.    LREMPOW2 (-8893427 % 0x00000080):  long: -115
+2828.    LREMPOW2 (-8893427 % 0x00000100):  long: -243
+2829.    LREMPOW2 (-8893427 % 0x00000200):  long: -499
+2830.    LREMPOW2 (-8893427 % 0x00000400):  long: -1011
+2831.    LREMPOW2 (-8893427 % 0x00000800):  long: -1011
+2832.    LREMPOW2 (-8893427 % 0x00001000):  long: -1011
+2833.    LREMPOW2 (-8893427 % 0x00002000):  long: -5107
+2834.    LREMPOW2 (-8893427 % 0x00004000):  long: -13299
+2835.    LREMPOW2 (-8893427 % 0x00008000):  long: -13299
+2836.    LREMPOW2 (-8893427 % 0x00010000):  long: -46067
+2837.    LREMPOW2 (-8893427 % 0x00020000):  long: -111603
+2838.    LREMPOW2 (-8893427 % 0x00040000):  long: -242675
+2839.    LREMPOW2 (-8893427 % 0x00080000):  long: -504819
+2840.    LREMPOW2 (-8893427 % 0x00100000):  long: -504819
+2841.    LREMPOW2 (-8893427 % 0x00200000):  long: -504819
+2842.    LREMPOW2 (-8893427 % 0x00400000):  long: -504819
+2843.    LREMPOW2 (-8893427 % 0x00800000):  long: -504819
+2844.    LREMPOW2 (-8893427 % 0x01000000):  long: -8893427
+2845.    LREMPOW2 (-8893427 % 0x02000000):  long: -8893427
+2846.    LREMPOW2 (-8893427 % 0x04000000):  long: -8893427
+2847.    LREMPOW2 (-8893427 % 0x08000000):  long: -8893427
+2848.    LREMPOW2 (-8893427 % 0x10000000):  long: -8893427
+2849.    LREMPOW2 (-8893427 % 0x20000000):  long: -8893427
+2850.    LREMPOW2 (-8893427 % 0x40000000):  long: -8893427
+2851.    LREMPOW2 (-8893427 % 0x80000000):  long: -8893427
+2852.    LDIVPOW2 (-1005234562 / 0x00000002):  long: -502617281
+2853.    LDIVPOW2 (-1005234562 / 0x00000004):  long: -251308640
+2854.    LDIVPOW2 (-1005234562 / 0x00000008):  long: -125654320
+2855.    LDIVPOW2 (-1005234562 / 0x00000010):  long: -62827160
+2856.    LDIVPOW2 (-1005234562 / 0x00000020):  long: -31413580
+2857.    LDIVPOW2 (-1005234562 / 0x00000040):  long: -15706790
+2858.    LDIVPOW2 (-1005234562 / 0x00000080):  long: -7853395
+2859.    LDIVPOW2 (-1005234562 / 0x00000100):  long: -3926697
+2860.    LDIVPOW2 (-1005234562 / 0x00000200):  long: -1963348
+2861.    LDIVPOW2 (-1005234562 / 0x00000400):  long: -981674
+2862.    LDIVPOW2 (-1005234562 / 0x00000800):  long: -490837
+2863.    LDIVPOW2 (-1005234562 / 0x00001000):  long: -245418
+2864.    LDIVPOW2 (-1005234562 / 0x00002000):  long: -122709
+2865.    LDIVPOW2 (-1005234562 / 0x00004000):  long: -61354
+2866.    LDIVPOW2 (-1005234562 / 0x00008000):  long: -30677
+2867.    LDIVPOW2 (-1005234562 / 0x00010000):  long: -15338
+2868.    LDIVPOW2 (-1005234562 / 0x00020000):  long: -7669
+2869.    LDIVPOW2 (-1005234562 / 0x00040000):  long: -3834
+2870.    LDIVPOW2 (-1005234562 / 0x00080000):  long: -1917
+2871.    LDIVPOW2 (-1005234562 / 0x00100000):  long: -958
+2872.    LDIVPOW2 (-1005234562 / 0x00200000):  long: -479
+2873.    LDIVPOW2 (-1005234562 / 0x00400000):  long: -239
+2874.    LDIVPOW2 (-1005234562 / 0x00800000):  long: -119
+2875.    LDIVPOW2 (-1005234562 / 0x01000000):  long: -59
+2876.    LDIVPOW2 (-1005234562 / 0x02000000):  long: -29
+2877.    LDIVPOW2 (-1005234562 / 0x04000000):  long: -14
+2878.    LDIVPOW2 (-1005234562 / 0x08000000):  long: -7
+2879.    LDIVPOW2 (-1005234562 / 0x10000000):  long: -3
+2880.    LDIVPOW2 (-1005234562 / 0x20000000):  long: -1
+2881.    LDIVPOW2 (-1005234562 / 0x40000000):  long: 0
+2882.    LDIVPOW2 (-1005234562 / 0x80000000):  long: 0
+2883.    LREMPOW2 (-1005234562 % 0x00000002):  long: 0
+2884.    LREMPOW2 (-1005234562 % 0x00000004):  long: -2
+2885.    LREMPOW2 (-1005234562 % 0x00000008):  long: -2
+2886.    LREMPOW2 (-1005234562 % 0x00000010):  long: -2
+2887.    LREMPOW2 (-1005234562 % 0x00000020):  long: -2
+2888.    LREMPOW2 (-1005234562 % 0x00000040):  long: -2
+2889.    LREMPOW2 (-1005234562 % 0x00000080):  long: -2
+2890.    LREMPOW2 (-1005234562 % 0x00000100):  long: -130
+2891.    LREMPOW2 (-1005234562 % 0x00000200):  long: -386
+2892.    LREMPOW2 (-1005234562 % 0x00000400):  long: -386
+2893.    LREMPOW2 (-1005234562 % 0x00000800):  long: -386
+2894.    LREMPOW2 (-1005234562 % 0x00001000):  long: -2434
+2895.    LREMPOW2 (-1005234562 % 0x00002000):  long: -2434
+2896.    LREMPOW2 (-1005234562 % 0x00004000):  long: -10626
+2897.    LREMPOW2 (-1005234562 % 0x00008000):  long: -10626
+2898.    LREMPOW2 (-1005234562 % 0x00010000):  long: -43394
+2899.    LREMPOW2 (-1005234562 % 0x00020000):  long: -43394
+2900.    LREMPOW2 (-1005234562 % 0x00040000):  long: -174466
+2901.    LREMPOW2 (-1005234562 % 0x00080000):  long: -174466
+2902.    LREMPOW2 (-1005234562 % 0x00100000):  long: -698754
+2903.    LREMPOW2 (-1005234562 % 0x00200000):  long: -698754
+2904.    LREMPOW2 (-1005234562 % 0x00400000):  long: -2795906
+2905.    LREMPOW2 (-1005234562 % 0x00800000):  long: -6990210
+2906.    LREMPOW2 (-1005234562 % 0x01000000):  long: -15378818
+2907.    LREMPOW2 (-1005234562 % 0x02000000):  long: -32156034
+2908.    LREMPOW2 (-1005234562 % 0x04000000):  long: -65710466
+2909.    LREMPOW2 (-1005234562 % 0x08000000):  long: -65710466
+2910.    LREMPOW2 (-1005234562 % 0x10000000):  long: -199928194
+2911.    LREMPOW2 (-1005234562 % 0x20000000):  long: -468363650
+2912.    LREMPOW2 (-1005234562 % 0x40000000):  long: -1005234562
+2913.    LREMPOW2 (-1005234562 % 0x80000000):  long: -1005234562
+2914.    LDIVPOW2 (-12135005234562 / 0x00000002):  long: -6067502617281
+2915.    LDIVPOW2 (-12135005234562 / 0x00000004):  long: -3033751308640
+2916.    LDIVPOW2 (-12135005234562 / 0x00000008):  long: -1516875654320
+2917.    LDIVPOW2 (-12135005234562 / 0x00000010):  long: -758437827160
+2918.    LDIVPOW2 (-12135005234562 / 0x00000020):  long: -379218913580
+2919.    LDIVPOW2 (-12135005234562 / 0x00000040):  long: -189609456790
+2920.    LDIVPOW2 (-12135005234562 / 0x00000080):  long: -94804728395
+2921.    LDIVPOW2 (-12135005234562 / 0x00000100):  long: -47402364197
+2922.    LDIVPOW2 (-12135005234562 / 0x00000200):  long: -23701182098
+2923.    LDIVPOW2 (-12135005234562 / 0x00000400):  long: -11850591049
+2924.    LDIVPOW2 (-12135005234562 / 0x00000800):  long: -5925295524
+2925.    LDIVPOW2 (-12135005234562 / 0x00001000):  long: -2962647762
+2926.    LDIVPOW2 (-12135005234562 / 0x00002000):  long: -1481323881
+2927.    LDIVPOW2 (-12135005234562 / 0x00004000):  long: -740661940
+2928.    LDIVPOW2 (-12135005234562 / 0x00008000):  long: -370330970
+2929.    LDIVPOW2 (-12135005234562 / 0x00010000):  long: -185165485
+2930.    LDIVPOW2 (-12135005234562 / 0x00020000):  long: -92582742
+2931.    LDIVPOW2 (-12135005234562 / 0x00040000):  long: -46291371
+2932.    LDIVPOW2 (-12135005234562 / 0x00080000):  long: -23145685
+2933.    LDIVPOW2 (-12135005234562 / 0x00100000):  long: -11572842
+2934.    LDIVPOW2 (-12135005234562 / 0x00200000):  long: -5786421
+2935.    LDIVPOW2 (-12135005234562 / 0x00400000):  long: -2893210
+2936.    LDIVPOW2 (-12135005234562 / 0x00800000):  long: -1446605
+2937.    LDIVPOW2 (-12135005234562 / 0x01000000):  long: -723302
+2938.    LDIVPOW2 (-12135005234562 / 0x02000000):  long: -361651
+2939.    LDIVPOW2 (-12135005234562 / 0x04000000):  long: -180825
+2940.    LDIVPOW2 (-12135005234562 / 0x08000000):  long: -90412
+2941.    LDIVPOW2 (-12135005234562 / 0x10000000):  long: -45206
+2942.    LDIVPOW2 (-12135005234562 / 0x20000000):  long: -22603
+2943.    LDIVPOW2 (-12135005234562 / 0x40000000):  long: -11301
+2944.    LDIVPOW2 (-12135005234562 / 0x80000000):  long: 5650
+2945.    LREMPOW2 (-12135005234562 % 0x00000002):  long: 0
+2946.    LREMPOW2 (-12135005234562 % 0x00000004):  long: -2
+2947.    LREMPOW2 (-12135005234562 % 0x00000008):  long: -2
+2948.    LREMPOW2 (-12135005234562 % 0x00000010):  long: -2
+2949.    LREMPOW2 (-12135005234562 % 0x00000020):  long: -2
+2950.    LREMPOW2 (-12135005234562 % 0x00000040):  long: -2
+2951.    LREMPOW2 (-12135005234562 % 0x00000080):  long: -2
+2952.    LREMPOW2 (-12135005234562 % 0x00000100):  long: -130
+2953.    LREMPOW2 (-12135005234562 % 0x00000200):  long: -386
+2954.    LREMPOW2 (-12135005234562 % 0x00000400):  long: -386
+2955.    LREMPOW2 (-12135005234562 % 0x00000800):  long: -1410
+2956.    LREMPOW2 (-12135005234562 % 0x00001000):  long: -1410
+2957.    LREMPOW2 (-12135005234562 % 0x00002000):  long: -1410
+2958.    LREMPOW2 (-12135005234562 % 0x00004000):  long: -9602
+2959.    LREMPOW2 (-12135005234562 % 0x00008000):  long: -9602
+2960.    LREMPOW2 (-12135005234562 % 0x00010000):  long: -9602
+2961.    LREMPOW2 (-12135005234562 % 0x00020000):  long: -75138
+2962.    LREMPOW2 (-12135005234562 % 0x00040000):  long: -75138
+2963.    LREMPOW2 (-12135005234562 % 0x00080000):  long: -337282
+2964.    LREMPOW2 (-12135005234562 % 0x00100000):  long: -861570
+2965.    LREMPOW2 (-12135005234562 % 0x00200000):  long: -861570
+2966.    LREMPOW2 (-12135005234562 % 0x00400000):  long: -2958722
+2967.    LREMPOW2 (-12135005234562 % 0x00800000):  long: -2958722
+2968.    LREMPOW2 (-12135005234562 % 0x01000000):  long: -11347330
+2969.    LREMPOW2 (-12135005234562 % 0x02000000):  long: -11347330
+2970.    LREMPOW2 (-12135005234562 % 0x04000000):  long: -44901762
+2971.    LREMPOW2 (-12135005234562 % 0x08000000):  long: -112010626
+2972.    LREMPOW2 (-12135005234562 % 0x10000000):  long: -112010626
+2973.    LREMPOW2 (-12135005234562 % 0x20000000):  long: -112010626
+2974.    LREMPOW2 (-12135005234562 % 0x40000000):  long: -648881538
+2975.    LREMPOW2 (-12135005234562 % 0x80000000):  long: -1722623362
+2976.    LDIVPOW2 (-2343552355623464626 / 0x00000002):  long: -1171776177811732313
+2977.    LDIVPOW2 (-2343552355623464626 / 0x00000004):  long: -585888088905866156
+2978.    LDIVPOW2 (-2343552355623464626 / 0x00000008):  long: -292944044452933078
+2979.    LDIVPOW2 (-2343552355623464626 / 0x00000010):  long: -146472022226466539
+2980.    LDIVPOW2 (-2343552355623464626 / 0x00000020):  long: -73236011113233269
+2981.    LDIVPOW2 (-2343552355623464626 / 0x00000040):  long: -36618005556616634
+2982.    LDIVPOW2 (-2343552355623464626 / 0x00000080):  long: -18309002778308317
+2983.    LDIVPOW2 (-2343552355623464626 / 0x00000100):  long: -9154501389154158
+2984.    LDIVPOW2 (-2343552355623464626 / 0x00000200):  long: -4577250694577079
+2985.    LDIVPOW2 (-2343552355623464626 / 0x00000400):  long: -2288625347288539
+2986.    LDIVPOW2 (-2343552355623464626 / 0x00000800):  long: -1144312673644269
+2987.    LDIVPOW2 (-2343552355623464626 / 0x00001000):  long: -572156336822134
+2988.    LDIVPOW2 (-2343552355623464626 / 0x00002000):  long: -286078168411067
+2989.    LDIVPOW2 (-2343552355623464626 / 0x00004000):  long: -143039084205533
+2990.    LDIVPOW2 (-2343552355623464626 / 0x00008000):  long: -71519542102766
+2991.    LDIVPOW2 (-2343552355623464626 / 0x00010000):  long: -35759771051383
+2992.    LDIVPOW2 (-2343552355623464626 / 0x00020000):  long: -17879885525691
+2993.    LDIVPOW2 (-2343552355623464626 / 0x00040000):  long: -8939942762845
+2994.    LDIVPOW2 (-2343552355623464626 / 0x00080000):  long: -4469971381422
+2995.    LDIVPOW2 (-2343552355623464626 / 0x00100000):  long: -2234985690711
+2996.    LDIVPOW2 (-2343552355623464626 / 0x00200000):  long: -1117492845355
+2997.    LDIVPOW2 (-2343552355623464626 / 0x00400000):  long: -558746422677
+2998.    LDIVPOW2 (-2343552355623464626 / 0x00800000):  long: -279373211338
+2999.    LDIVPOW2 (-2343552355623464626 / 0x01000000):  long: -139686605669
+3000.    LDIVPOW2 (-2343552355623464626 / 0x02000000):  long: -69843302834
+3001.    LDIVPOW2 (-2343552355623464626 / 0x04000000):  long: -34921651417
+3002.    LDIVPOW2 (-2343552355623464626 / 0x08000000):  long: -17460825708
+3003.    LDIVPOW2 (-2343552355623464626 / 0x10000000):  long: -8730412854
+3004.    LDIVPOW2 (-2343552355623464626 / 0x20000000):  long: -4365206427
+3005.    LDIVPOW2 (-2343552355623464626 / 0x40000000):  long: -2182603213
+3006.    LDIVPOW2 (-2343552355623464626 / 0x80000000):  long: 1091301606
+3007.    LREMPOW2 (-2343552355623464626 % 0x00000002):  long: 0
+3008.    LREMPOW2 (-2343552355623464626 % 0x00000004):  long: -2
+3009.    LREMPOW2 (-2343552355623464626 % 0x00000008):  long: -2
+3010.    LREMPOW2 (-2343552355623464626 % 0x00000010):  long: -2
+3011.    LREMPOW2 (-2343552355623464626 % 0x00000020):  long: -18
+3012.    LREMPOW2 (-2343552355623464626 % 0x00000040):  long: -50
+3013.    LREMPOW2 (-2343552355623464626 % 0x00000080):  long: -50
+3014.    LREMPOW2 (-2343552355623464626 % 0x00000100):  long: -178
+3015.    LREMPOW2 (-2343552355623464626 % 0x00000200):  long: -178
+3016.    LREMPOW2 (-2343552355623464626 % 0x00000400):  long: -690
+3017.    LREMPOW2 (-2343552355623464626 % 0x00000800):  long: -1714
+3018.    LREMPOW2 (-2343552355623464626 % 0x00001000):  long: -3762
+3019.    LREMPOW2 (-2343552355623464626 % 0x00002000):  long: -3762
+3020.    LREMPOW2 (-2343552355623464626 % 0x00004000):  long: -11954
+3021.    LREMPOW2 (-2343552355623464626 % 0x00008000):  long: -28338
+3022.    LREMPOW2 (-2343552355623464626 % 0x00010000):  long: -28338
+3023.    LREMPOW2 (-2343552355623464626 % 0x00020000):  long: -93874
+3024.    LREMPOW2 (-2343552355623464626 % 0x00040000):  long: -224946
+3025.    LREMPOW2 (-2343552355623464626 % 0x00080000):  long: -487090
+3026.    LREMPOW2 (-2343552355623464626 % 0x00100000):  long: -487090
+3027.    LREMPOW2 (-2343552355623464626 % 0x00200000):  long: -1535666
+3028.    LREMPOW2 (-2343552355623464626 % 0x00400000):  long: -3632818
+3029.    LREMPOW2 (-2343552355623464626 % 0x00800000):  long: -7827122
+3030.    LREMPOW2 (-2343552355623464626 % 0x01000000):  long: -7827122
+3031.    LREMPOW2 (-2343552355623464626 % 0x02000000):  long: -24604338
+3032.    LREMPOW2 (-2343552355623464626 % 0x04000000):  long: -24604338
+3033.    LREMPOW2 (-2343552355623464626 % 0x08000000):  long: -91713202
+3034.    LREMPOW2 (-2343552355623464626 % 0x10000000):  long: -91713202
+3035.    LREMPOW2 (-2343552355623464626 % 0x20000000):  long: -91713202
+3036.    LREMPOW2 (-2343552355623464626 % 0x40000000):  long: -628584114
+3037.    LREMPOW2 (-2343552355623464626 % 0x80000000):  long: -1702325938
+3038.    ------------------- test rem 0x10001
+3039.    IREM0X10001 (0 % 0x10001):  int: 0
+3040.    IREM0X10001 (1 % 0x10001):  int: 1
+3041.    IREM0X10001 (17 % 0x10001):  int: 17
+3042.    IREM0X10001 (123 % 0x10001):  int: 123
+3043.    IREM0X10001 (1234 % 0x10001):  int: 1234
+3044.    IREM0X10001 (13247 % 0x10001):  int: 13247
+3045.    IREM0X10001 (563467 % 0x10001):  int: 39171
+3046.    IREM0X10001 (7456774 % 0x10001):  int: 51093
+3047.    IREM0X10001 (34523525 % 0x10001):  int: 51063
+3048.    IREM0X10001 (234523456 % 0x10001):  int: 32070
+3049.    IREM0X10001 (1005234562 % 0x10001):  int: 28056
+3050.    IREM0X10001 (2147483647 % 0x10001):  int: 32768
+3051.    IREM0X10001 (-1 % 0x10001):  int: -1
+3052.    IREM0X10001 (-17 % 0x10001):  int: -17
+3053.    IREM0X10001 (-123 % 0x10001):  int: -123
+3054.    IREM0X10001 (-1234 % 0x10001):  int: -1234
+3055.    IREM0X10001 (-13247 % 0x10001):  int: -13247
+3056.    IREM0X10001 (-563467 % 0x10001):  int: -39171
+3057.    IREM0X10001 (-7456774 % 0x10001):  int: -51093
+3058.    IREM0X10001 (-34523525 % 0x10001):  int: -51063
+3059.    IREM0X10001 (-234523456 % 0x10001):  int: -32070
+3060.    IREM0X10001 (-1005234562 % 0x10001):  int: -28056
+3061.    IREM0X10001 (-2147483647 % 0x10001):  int: -32768
+3062.    IREM0X10001 (-2147483648 % 0x10001):  int: -32769
+3063.    LREM0X10001 (0 % 0x10001):  long: 0
+3064.    LREM0X10001 (1 % 0x10001):  long: 1
+3065.    LREM0X10001 (17 % 0x10001):  long: 17
+3066.    LREM0X10001 (123 % 0x10001):  long: 123
+3067.    LREM0X10001 (1234 % 0x10001):  long: 1234
+3068.    LREM0X10001 (13247 % 0x10001):  long: 13247
+3069.    LREM0X10001 (563467 % 0x10001):  long: 39171
+3070.    LREM0X10001 (7456774 % 0x10001):  long: 51093
+3071.    LREM0X10001 (34523525 % 0x10001):  long: 51063
+3072.    LREM0X10001 (234523456 % 0x10001):  long: 32070
+3073.    LREM0X10001 (1005234562 % 0x10001):  long: 28056
+3074.    LREM0X10001 (1983223864 % 0x10001):  long: 8707
+3075.    LREM0X10001 (2147483646 % 0x10001):  long: 32767
+3076.    LREM0X10001 (2147483647 % 0x10001):  long: 32768
+3077.    LREM0X10001 (2147483648 % 0x10001):  long: 32769
+3078.    LREM0X10001 (10052234562 % 0x10001):  long: 38428
+3079.    LREM0X10001 (561005234562 % 0x10001):  long: 60289
+3080.    LREM0X10001 (2100527345962 % 0x10001):  long: 41444
+3081.    LREM0X10001 (34600523456287 % 0x10001):  long: 61103
+3082.    LREM0X10001 (546805234456882 % 0x10001):  long: 50879
+3083.    LREM0X10001 (1360052334734722 % 0x10001):  long: 42538
+3084.    LREM0X10001 (23456705569626354 % 0x10001):  long: 37707
+3085.    LREM0X10001 (9223372036854775807 % 0x10001):  long: 32768
+3086.    LREM0X10001 (-1 % 0x10001):  long: -1
+3087.    LREM0X10001 (-17 % 0x10001):  long: -17
+3088.    LREM0X10001 (-123 % 0x10001):  long: -123
+3089.    LREM0X10001 (-1234 % 0x10001):  long: -1234
+3090.    LREM0X10001 (-13247 % 0x10001):  long: -13247
+3091.    LREM0X10001 (-563467 % 0x10001):  long: -39171
+3092.    LREM0X10001 (-7456774 % 0x10001):  long: -51093
+3093.    LREM0X10001 (-34523525 % 0x10001):  long: -51063
+3094.    LREM0X10001 (-234523456 % 0x10001):  long: -32070
+3095.    LREM0X10001 (-1005234562 % 0x10001):  long: -28056
+3096.    LREM0X10001 (-1983223864 % 0x10001):  long: -8707
+3097.    LREM0X10001 (-2147483647 % 0x10001):  long: -32768
+3098.    LREM0X10001 (-2147483648 % 0x10001):  long: -32769
+3099.    LREM0X10001 (-10052234562 % 0x10001):  long: -38428
+3100.    LREM0X10001 (-561005234562 % 0x10001):  long: -60289
+3101.    LREM0X10001 (-2100527345962 % 0x10001):  long: -41444
+3102.    LREM0X10001 (-34600523456287 % 0x10001):  long: -61103
+3103.    LREM0X10001 (-546805234456882 % 0x10001):  long: -50879
+3104.    LREM0X10001 (-1360052334734722 % 0x10001):  long: -42538
+3105.    LREM0X10001 (-23456705569626354 % 0x10001):  long: -37707
+3106.    LREM0X10001 (-9223372036854775807 % 0x10001):  long: -32768
+3107.    LREM0X10001 (-9223372036854775808 % 0x10001):  long: -32769
+3108.    ------------------- test ints
+3109.    TESTINT CALLED WITH int: 1
+3110.                    AND int: 2
+3111.    IADD:  int: 3
+3112.    ISUB:  int: -1
+3113.    IMUL:  int: 2
+3114.    IDIV:  int: 0
+3115.    IREM:  int: 1
+3116.    INEG:  int: -1
+3117.    ISHL:  int: 4
+3118.    ISHR:  int: 0
+3119.    IUSHR: int: 0
+3120.    IAND:  int: 0
+3121.    IOR:   int: 3
+3122.    IXOR:  int: 3
+3123.    I2L:   long: 1
+3124.    I2F:   float: 1065353216
+3125.    I2D:   double: 4607182418800017408
+3126.    INT2BYTE: byte: 1
+3127.    INT2CHAR: char: 1
+3128.    INT2SHORT: short: 1
+3129.    not IFEQ
+3130.    not IFLT
+3131.    not IFLE
+3132.    not IF_ICMPEQ
+3133.    not IF_ICMPGT
+3134.    not IF_ICMPGE
+3135.    COND_ICMPEQ 1 == 0: 1
+3136.    COND_ICMPNE 1 != 0: 0
+3137.    COND_ICMPLT 1 <  0: 1
+3138.    COND_ICMPLE 1 <= 0: 1
+3139.    COND_ICMPGT 1 >  0: 0
+3140.    COND_ICMPGE 1 >= 0: 0
+3141.    COND_ICMPEQ 1 == 0: 0
+3142.    COND_ICMPNE 1 != 0: 1
+3143.    COND_ICMPLT 1 <  0: 0
+3144.    COND_ICMPLE 1 <= 0: 0
+3145.    COND_ICMPGT 1 >  0: 1
+3146.    COND_ICMPGE 1 >= 0: 1
+3147.    COND_ICMPEQ 1 == 0: 3
+3148.    COND_ICMPNE 1 != 0: 2
+3149.    COND_ICMPLT 1 <  0: 3
+3150.    COND_ICMPLE 1 <= 0: 3
+3151.    COND_ICMPGT 1 >  0: 2
+3152.    COND_ICMPGE 1 >= 0: 2
+3153.    COND_ICMPEQ 1 == 2: false
+3154.    COND_ICMPNE 1 != 2: true
+3155.    COND_ICMPLT 1 <  2: true
+3156.    COND_ICMPLE 1 <= 2: true
+3157.    COND_ICMPGT 1 >  2: false
+3158.    COND_ICMPGE 1 >= 2: false
+3159.    TESTINT CALLED WITH int: -1
+3160.                    AND int: 17
+3161.    IADD:  int: 16
+3162.    ISUB:  int: -18
+3163.    IMUL:  int: -17
+3164.    IDIV:  int: 0
+3165.    IREM:  int: -1
+3166.    INEG:  int: 1
+3167.    ISHL:  int: -131072
+3168.    ISHR:  int: -1
+3169.    IUSHR: int: 32767
+3170.    IAND:  int: 17
+3171.    IOR:   int: -1
+3172.    IXOR:  int: -18
+3173.    I2L:   long: -1
+3174.    I2F:   float: -1082130432
+3175.    I2D:   double: -4616189618054758400
+3176.    INT2BYTE: byte: -1
+3177.    INT2CHAR: char: 65535
+3178.    INT2SHORT: short: -1
+3179.    not IFEQ
+3180.    not IFGT
+3181.    not IFGE
+3182.    not IF_ICMPEQ
+3183.    not IF_ICMPGT
+3184.    not IF_ICMPGE
+3185.    COND_ICMPEQ -1 == 0: 1
+3186.    COND_ICMPNE -1 != 0: 0
+3187.    COND_ICMPLT -1 <  0: 0
+3188.    COND_ICMPLE -1 <= 0: 0
+3189.    COND_ICMPGT -1 >  0: 1
+3190.    COND_ICMPGE -1 >= 0: 1
+3191.    COND_ICMPEQ -1 == 0: 0
+3192.    COND_ICMPNE -1 != 0: 1
+3193.    COND_ICMPLT -1 <  0: 1
+3194.    COND_ICMPLE -1 <= 0: 1
+3195.    COND_ICMPGT -1 >  0: 0
+3196.    COND_ICMPGE -1 >= 0: 0
+3197.    COND_ICMPEQ -1 == 0: 3
+3198.    COND_ICMPNE -1 != 0: 2
+3199.    COND_ICMPLT -1 <  0: 2
+3200.    COND_ICMPLE -1 <= 0: 2
+3201.    COND_ICMPGT -1 >  0: 3
+3202.    COND_ICMPGE -1 >= 0: 3
+3203.    COND_ICMPEQ -1 == 17: false
+3204.    COND_ICMPNE -1 != 17: true
+3205.    COND_ICMPLT -1 <  17: true
+3206.    COND_ICMPLE -1 <= 17: true
+3207.    COND_ICMPGT -1 >  17: false
+3208.    COND_ICMPGE -1 >= 17: false
+3209.    TESTINT CALLED WITH int: -24351
+3210.                    AND int: 24123
+3211.    IADD:  int: -228
+3212.    ISUB:  int: -48474
+3213.    IMUL:  int: -587419173
+3214.    IDIV:  int: -1
+3215.    IREM:  int: -228
+3216.    INEG:  int: 24351
+3217.    ISHL:  int: 134217728
+3218.    ISHR:  int: -1
+3219.    IUSHR: int: 31
+3220.    IAND:  int: 33
+3221.    IOR:   int: -261
+3222.    IXOR:  int: -294
+3223.    I2L:   long: -24351
+3224.    I2F:   float: -960610816
+3225.    I2D:   double: -4550949270986948608
+3226.    INT2BYTE: byte: -31
+3227.    INT2CHAR: char: 41185
+3228.    INT2SHORT: short: -24351
+3229.    not IFEQ
+3230.    not IFGT
+3231.    not IFGE
+3232.    not IF_ICMPEQ
+3233.    not IF_ICMPGT
+3234.    not IF_ICMPGE
+3235.    COND_ICMPEQ -24351 == 0: 1
+3236.    COND_ICMPNE -24351 != 0: 0
+3237.    COND_ICMPLT -24351 <  0: 0
+3238.    COND_ICMPLE -24351 <= 0: 0
+3239.    COND_ICMPGT -24351 >  0: 1
+3240.    COND_ICMPGE -24351 >= 0: 1
+3241.    COND_ICMPEQ -24351 == 0: 0
+3242.    COND_ICMPNE -24351 != 0: 1
+3243.    COND_ICMPLT -24351 <  0: 1
+3244.    COND_ICMPLE -24351 <= 0: 1
+3245.    COND_ICMPGT -24351 >  0: 0
+3246.    COND_ICMPGE -24351 >= 0: 0
+3247.    COND_ICMPEQ -24351 == 0: 3
+3248.    COND_ICMPNE -24351 != 0: 2
+3249.    COND_ICMPLT -24351 <  0: 2
+3250.    COND_ICMPLE -24351 <= 0: 2
+3251.    COND_ICMPGT -24351 >  0: 3
+3252.    COND_ICMPGE -24351 >= 0: 3
+3253.    COND_ICMPEQ -24351 == 24123: false
+3254.    COND_ICMPNE -24351 != 24123: true
+3255.    COND_ICMPLT -24351 <  24123: true
+3256.    COND_ICMPLE -24351 <= 24123: true
+3257.    COND_ICMPGT -24351 >  24123: false
+3258.    COND_ICMPGE -24351 >= 24123: false
+3259.    TESTINT CALLED WITH int: 4918923
+3260.                    AND int: -441423
+3261.    IADD:  int: 4477500
+3262.    ISUB:  int: 5360346
+3263.    IMUL:  int: 1927704347
+3264.    IDIV:  int: -11
+3265.    IREM:  int: 63270
+3266.    INEG:  int: -4918923
+3267.    ISHL:  int: 487981056
+3268.    ISHR:  int: 37
+3269.    IUSHR: int: 37
+3270.    IAND:  int: 4784769
+3271.    IOR:   int: -307269
+3272.    IXOR:  int: -5092038
+3273.    I2L:   long: 4918923
+3274.    I2F:   float: 1251351830
+3275.    I2D:   double: 4707039664328933376
+3276.    INT2BYTE: byte: -117
+3277.    INT2CHAR: char: 3723
+3278.    INT2SHORT: short: 3723
+3279.    not IFEQ
+3280.    not IFLT
+3281.    not IFLE
+3282.    not IF_ICMPEQ
+3283.    not IF_ICMPLT
+3284.    not IF_ICMPLE
+3285.    COND_ICMPEQ 4918923 == 0: 1
+3286.    COND_ICMPNE 4918923 != 0: 0
+3287.    COND_ICMPLT 4918923 <  0: 1
+3288.    COND_ICMPLE 4918923 <= 0: 1
+3289.    COND_ICMPGT 4918923 >  0: 0
+3290.    COND_ICMPGE 4918923 >= 0: 0
+3291.    COND_ICMPEQ 4918923 == 0: 0
+3292.    COND_ICMPNE 4918923 != 0: 1
+3293.    COND_ICMPLT 4918923 <  0: 0
+3294.    COND_ICMPLE 4918923 <= 0: 0
+3295.    COND_ICMPGT 4918923 >  0: 1
+3296.    COND_ICMPGE 4918923 >= 0: 1
+3297.    COND_ICMPEQ 4918923 == 0: 3
+3298.    COND_ICMPNE 4918923 != 0: 2
+3299.    COND_ICMPLT 4918923 <  0: 3
+3300.    COND_ICMPLE 4918923 <= 0: 3
+3301.    COND_ICMPGT 4918923 >  0: 2
+3302.    COND_ICMPGE 4918923 >= 0: 2
+3303.    COND_ICMPEQ 4918923 == -441423: false
+3304.    COND_ICMPNE 4918923 != -441423: true
+3305.    COND_ICMPLT 4918923 <  -441423: false
+3306.    COND_ICMPLE 4918923 <= -441423: false
+3307.    COND_ICMPGT 4918923 >  -441423: true
+3308.    COND_ICMPGE 4918923 >= -441423: true
+3309.    TESTINT CALLED WITH int: 0
+3310.                    AND int: 0
+3311.    IADD:  int: 0
+3312.    ISUB:  int: 0
+3313.    IMUL:  int: 0
+3314.    divison by zero
+3315.    divison by zero
+3316.    INEG:  int: 0
+3317.    ISHL:  int: 0
+3318.    ISHR:  int: 0
+3319.    IUSHR: int: 0
+3320.    IAND:  int: 0
+3321.    IOR:   int: 0
+3322.    IXOR:  int: 0
+3323.    I2L:   long: 0
+3324.    I2F:   float: 0
+3325.    I2D:   double: 0
+3326.    INT2BYTE: byte: 0
+3327.    INT2CHAR: char: 0
+3328.    INT2SHORT: short: 0
+3329.    not IFNE
+3330.    not IFLT
+3331.    not IFGT
+3332.    not IF_ICMPNE
+3333.    not IF_ICMPLT
+3334.    not IF_ICMPGT
+3335.    COND_ICMPEQ 0 == 0: 0
+3336.    COND_ICMPNE 0 != 0: 1
+3337.    COND_ICMPLT 0 <  0: 1
+3338.    COND_ICMPLE 0 <= 0: 0
+3339.    COND_ICMPGT 0 >  0: 1
+3340.    COND_ICMPGE 0 >= 0: 0
+3341.    COND_ICMPEQ 0 == 0: 1
+3342.    COND_ICMPNE 0 != 0: 0
+3343.    COND_ICMPLT 0 <  0: 0
+3344.    COND_ICMPLE 0 <= 0: 1
+3345.    COND_ICMPGT 0 >  0: 0
+3346.    COND_ICMPGE 0 >= 0: 1
+3347.    COND_ICMPEQ 0 == 0: 2
+3348.    COND_ICMPNE 0 != 0: 3
+3349.    COND_ICMPLT 0 <  0: 3
+3350.    COND_ICMPLE 0 <= 0: 2
+3351.    COND_ICMPGT 0 >  0: 3
+3352.    COND_ICMPGE 0 >= 0: 2
+3353.    COND_ICMPEQ 0 == 0: true
+3354.    COND_ICMPNE 0 != 0: false
+3355.    COND_ICMPLT 0 <  0: false
+3356.    COND_ICMPLE 0 <= 0: true
+3357.    COND_ICMPGT 0 >  0: false
+3358.    COND_ICMPGE 0 >= 0: true
+3359.    TESTINT CALLED WITH int: -1
+3360.                    AND int: -1
+3361.    IADD:  int: -2
+3362.    ISUB:  int: 0
+3363.    IMUL:  int: 1
+3364.    IDIV:  int: 1
+3365.    IREM:  int: 0
+3366.    INEG:  int: 1
+3367.    ISHL:  int: -2147483648
+3368.    ISHR:  int: -1
+3369.    IUSHR: int: 1
+3370.    IAND:  int: -1
+3371.    IOR:   int: -1
+3372.    IXOR:  int: 0
+3373.    I2L:   long: -1
+3374.    I2F:   float: -1082130432
+3375.    I2D:   double: -4616189618054758400
+3376.    INT2BYTE: byte: -1
+3377.    INT2CHAR: char: 65535
+3378.    INT2SHORT: short: -1
+3379.    not IFEQ
+3380.    not IFGT
+3381.    not IFGE
+3382.    not IF_ICMPNE
+3383.    not IF_ICMPLT
+3384.    not IF_ICMPGT
+3385.    COND_ICMPEQ -1 == 0: 1
+3386.    COND_ICMPNE -1 != 0: 0
+3387.    COND_ICMPLT -1 <  0: 0
+3388.    COND_ICMPLE -1 <= 0: 0
+3389.    COND_ICMPGT -1 >  0: 1
+3390.    COND_ICMPGE -1 >= 0: 1
+3391.    COND_ICMPEQ -1 == 0: 0
+3392.    COND_ICMPNE -1 != 0: 1
+3393.    COND_ICMPLT -1 <  0: 1
+3394.    COND_ICMPLE -1 <= 0: 1
+3395.    COND_ICMPGT -1 >  0: 0
+3396.    COND_ICMPGE -1 >= 0: 0
+3397.    COND_ICMPEQ -1 == 0: 3
+3398.    COND_ICMPNE -1 != 0: 2
+3399.    COND_ICMPLT -1 <  0: 2
+3400.    COND_ICMPLE -1 <= 0: 2
+3401.    COND_ICMPGT -1 >  0: 3
+3402.    COND_ICMPGE -1 >= 0: 3
+3403.    COND_ICMPEQ -1 == -1: true
+3404.    COND_ICMPNE -1 != -1: false
+3405.    COND_ICMPLT -1 <  -1: false
+3406.    COND_ICMPLE -1 <= -1: true
+3407.    COND_ICMPGT -1 >  -1: false
+3408.    COND_ICMPGE -1 >= -1: true
+3409.    TESTINT CALLED WITH int: 1423487
+3410.                    AND int: 123444444
+3411.    IADD:  int: 124867931
+3412.    ISUB:  int: -122020957
+3413.    IMUL:  int: 1564274980
+3414.    IDIV:  int: 0
+3415.    IREM:  int: 1423487
+3416.    INEG:  int: -1423487
+3417.    ISHL:  int: -268435456
+3418.    ISHR:  int: 0
+3419.    IUSHR: int: 0
+3420.    IAND:  int: 1153116
+3421.    IOR:   int: 123714815
+3422.    IXOR:  int: 122561699
+3423.    I2L:   long: 1423487
+3424.    I2F:   float: 1236124664
+3425.    I2D:   double: 4698864641831337984
+3426.    INT2BYTE: byte: 127
+3427.    INT2CHAR: char: 47231
+3428.    INT2SHORT: short: -18305
+3429.    not IFEQ
+3430.    not IFLT
+3431.    not IFLE
+3432.    not IF_ICMPEQ
+3433.    not IF_ICMPGT
+3434.    not IF_ICMPGE
+3435.    COND_ICMPEQ 1423487 == 0: 1
+3436.    COND_ICMPNE 1423487 != 0: 0
+3437.    COND_ICMPLT 1423487 <  0: 1
+3438.    COND_ICMPLE 1423487 <= 0: 1
+3439.    COND_ICMPGT 1423487 >  0: 0
+3440.    COND_ICMPGE 1423487 >= 0: 0
+3441.    COND_ICMPEQ 1423487 == 0: 0
+3442.    COND_ICMPNE 1423487 != 0: 1
+3443.    COND_ICMPLT 1423487 <  0: 0
+3444.    COND_ICMPLE 1423487 <= 0: 0
+3445.    COND_ICMPGT 1423487 >  0: 1
+3446.    COND_ICMPGE 1423487 >= 0: 1
+3447.    COND_ICMPEQ 1423487 == 0: 3
+3448.    COND_ICMPNE 1423487 != 0: 2
+3449.    COND_ICMPLT 1423487 <  0: 3
+3450.    COND_ICMPLE 1423487 <= 0: 3
+3451.    COND_ICMPGT 1423487 >  0: 2
+3452.    COND_ICMPGE 1423487 >= 0: 2
+3453.    COND_ICMPEQ 1423487 == 123444444: false
+3454.    COND_ICMPNE 1423487 != 123444444: true
+3455.    COND_ICMPLT 1423487 <  123444444: true
+3456.    COND_ICMPLE 1423487 <= 123444444: true
+3457.    COND_ICMPGT 1423487 >  123444444: false
+3458.    COND_ICMPGE 1423487 >= 123444444: false
+3459.    TESTINT CALLED WITH int: 2147483647
+3460.                    AND int: 1
+3461.    IADD:  int: -2147483648
+3462.    ISUB:  int: 2147483646
+3463.    IMUL:  int: 2147483647
+3464.    IDIV:  int: 2147483647
+3465.    IREM:  int: 0
+3466.    INEG:  int: -2147483647
+3467.    ISHL:  int: -2
+3468.    ISHR:  int: 1073741823
+3469.    IUSHR: int: 1073741823
+3470.    IAND:  int: 1
+3471.    IOR:   int: 2147483647
+3472.    IXOR:  int: 2147483646
+3473.    I2L:   long: 2147483647
+3474.    I2F:   float: 1325400064
+3475.    I2D:   double: 4746794007244308480
+3476.    INT2BYTE: byte: -1
+3477.    INT2CHAR: char: 65535
+3478.    INT2SHORT: short: -1
+3479.    not IFEQ
+3480.    not IFLT
+3481.    not IFLE
+3482.    not IF_ICMPEQ
+3483.    not IF_ICMPLT
+3484.    not IF_ICMPLE
+3485.    COND_ICMPEQ 2147483647 == 0: 1
+3486.    COND_ICMPNE 2147483647 != 0: 0
+3487.    COND_ICMPLT 2147483647 <  0: 1
+3488.    COND_ICMPLE 2147483647 <= 0: 1
+3489.    COND_ICMPGT 2147483647 >  0: 0
+3490.    COND_ICMPGE 2147483647 >= 0: 0
+3491.    COND_ICMPEQ 2147483647 == 0: 0
+3492.    COND_ICMPNE 2147483647 != 0: 1
+3493.    COND_ICMPLT 2147483647 <  0: 0
+3494.    COND_ICMPLE 2147483647 <= 0: 0
+3495.    COND_ICMPGT 2147483647 >  0: 1
+3496.    COND_ICMPGE 2147483647 >= 0: 1
+3497.    COND_ICMPEQ 2147483647 == 0: 3
+3498.    COND_ICMPNE 2147483647 != 0: 2
+3499.    COND_ICMPLT 2147483647 <  0: 3
+3500.    COND_ICMPLE 2147483647 <= 0: 3
+3501.    COND_ICMPGT 2147483647 >  0: 2
+3502.    COND_ICMPGE 2147483647 >= 0: 2
+3503.    COND_ICMPEQ 2147483647 == 1: false
+3504.    COND_ICMPNE 2147483647 != 1: true
+3505.    COND_ICMPLT 2147483647 <  1: false
+3506.    COND_ICMPLE 2147483647 <= 1: false
+3507.    COND_ICMPGT 2147483647 >  1: true
+3508.    COND_ICMPGE 2147483647 >= 1: true
+3509.    TESTINT CALLED WITH int: 0
+3510.                    AND int: 2147483647
+3511.    IADD:  int: 2147483647
+3512.    ISUB:  int: -2147483647
+3513.    IMUL:  int: 0
+3514.    IDIV:  int: 0
+3515.    IREM:  int: 0
+3516.    INEG:  int: 0
+3517.    ISHL:  int: 0
+3518.    ISHR:  int: 0
+3519.    IUSHR: int: 0
+3520.    IAND:  int: 0
+3521.    IOR:   int: 2147483647
+3522.    IXOR:  int: 2147483647
+3523.    I2L:   long: 0
+3524.    I2F:   float: 0
+3525.    I2D:   double: 0
+3526.    INT2BYTE: byte: 0
+3527.    INT2CHAR: char: 0
+3528.    INT2SHORT: short: 0
+3529.    not IFNE
+3530.    not IFLT
+3531.    not IFGT
+3532.    not IF_ICMPEQ
+3533.    not IF_ICMPGT
+3534.    not IF_ICMPGE
+3535.    COND_ICMPEQ 0 == 0: 0
+3536.    COND_ICMPNE 0 != 0: 1
+3537.    COND_ICMPLT 0 <  0: 1
+3538.    COND_ICMPLE 0 <= 0: 0
+3539.    COND_ICMPGT 0 >  0: 1
+3540.    COND_ICMPGE 0 >= 0: 0
+3541.    COND_ICMPEQ 0 == 0: 1
+3542.    COND_ICMPNE 0 != 0: 0
+3543.    COND_ICMPLT 0 <  0: 0
+3544.    COND_ICMPLE 0 <= 0: 1
+3545.    COND_ICMPGT 0 >  0: 0
+3546.    COND_ICMPGE 0 >= 0: 1
+3547.    COND_ICMPEQ 0 == 0: 2
+3548.    COND_ICMPNE 0 != 0: 3
+3549.    COND_ICMPLT 0 <  0: 3
+3550.    COND_ICMPLE 0 <= 0: 2
+3551.    COND_ICMPGT 0 >  0: 3
+3552.    COND_ICMPGE 0 >= 0: 2
+3553.    COND_ICMPEQ 0 == 2147483647: false
+3554.    COND_ICMPNE 0 != 2147483647: true
+3555.    COND_ICMPLT 0 <  2147483647: true
+3556.    COND_ICMPLE 0 <= 2147483647: true
+3557.    COND_ICMPGT 0 >  2147483647: false
+3558.    COND_ICMPGE 0 >= 2147483647: false
+3559.    TESTINT CALLED WITH int: 13107
+3560.                    AND int: 143444
+3561.    IADD:  int: 156551
+3562.    ISUB:  int: -130337
+3563.    IMUL:  int: 1880120508
+3564.    IDIV:  int: 0
+3565.    IREM:  int: 13107
+3566.    INEG:  int: -13107
+3567.    ISHL:  int: 858783744
+3568.    ISHR:  int: 0
+3569.    IUSHR: int: 0
+3570.    IAND:  int: 12304
+3571.    IOR:   int: 144247
+3572.    IXOR:  int: 131943
+3573.    I2L:   long: 13107
+3574.    I2F:   float: 1179438080
+3575.    I2D:   double: 4668431263781093376
+3576.    INT2BYTE: byte: 51
+3577.    INT2CHAR: char: 13107
+3578.    INT2SHORT: short: 13107
+3579.    not IFEQ
+3580.    not IFLT
+3581.    not IFLE
+3582.    not IF_ICMPEQ
+3583.    not IF_ICMPGT
+3584.    not IF_ICMPGE
+3585.    COND_ICMPEQ 13107 == 0: 1
+3586.    COND_ICMPNE 13107 != 0: 0
+3587.    COND_ICMPLT 13107 <  0: 1
+3588.    COND_ICMPLE 13107 <= 0: 1
+3589.    COND_ICMPGT 13107 >  0: 0
+3590.    COND_ICMPGE 13107 >= 0: 0
+3591.    COND_ICMPEQ 13107 == 0: 0
+3592.    COND_ICMPNE 13107 != 0: 1
+3593.    COND_ICMPLT 13107 <  0: 0
+3594.    COND_ICMPLE 13107 <= 0: 0
+3595.    COND_ICMPGT 13107 >  0: 1
+3596.    COND_ICMPGE 13107 >= 0: 1
+3597.    COND_ICMPEQ 13107 == 0: 3
+3598.    COND_ICMPNE 13107 != 0: 2
+3599.    COND_ICMPLT 13107 <  0: 3
+3600.    COND_ICMPLE 13107 <= 0: 3
+3601.    COND_ICMPGT 13107 >  0: 2
+3602.    COND_ICMPGE 13107 >= 0: 2
+3603.    COND_ICMPEQ 13107 == 143444: false
+3604.    COND_ICMPNE 13107 != 143444: true
+3605.    COND_ICMPLT 13107 <  143444: true
+3606.    COND_ICMPLE 13107 <= 143444: true
+3607.    COND_ICMPGT 13107 >  143444: false
+3608.    COND_ICMPGE 13107 >= 143444: false
+3609.    TESTINT CALLED WITH int: 4444441
+3610.                    AND int: 12342
+3611.    IADD:  int: 4456783
+3612.    ISUB:  int: 4432099
+3613.    IMUL:  int: -981284026
+3614.    IDIV:  int: 360
+3615.    IREM:  int: 1321
+3616.    INEG:  int: -4444441
+3617.    ISHL:  int: 1178599424
+3618.    ISHR:  int: 1
+3619.    IUSHR: int: 1
+3620.    IAND:  int: 4112
+3621.    IOR:   int: 4452671
+3622.    IXOR:  int: 4448559
+3623.    I2L:   long: 4444441
+3624.    I2F:   float: 1250402866
+3625.    I2D:   double: 4706530193160798208
+3626.    INT2BYTE: byte: 25
+3627.    INT2CHAR: char: 53529
+3628.    INT2SHORT: short: -12007
+3629.    not IFEQ
+3630.    not IFLT
+3631.    not IFLE
+3632.    not IF_ICMPEQ
+3633.    not IF_ICMPLT
+3634.    not IF_ICMPLE
+3635.    COND_ICMPEQ 4444441 == 0: 1
+3636.    COND_ICMPNE 4444441 != 0: 0
+3637.    COND_ICMPLT 4444441 <  0: 1
+3638.    COND_ICMPLE 4444441 <= 0: 1
+3639.    COND_ICMPGT 4444441 >  0: 0
+3640.    COND_ICMPGE 4444441 >= 0: 0
+3641.    COND_ICMPEQ 4444441 == 0: 0
+3642.    COND_ICMPNE 4444441 != 0: 1
+3643.    COND_ICMPLT 4444441 <  0: 0
+3644.    COND_ICMPLE 4444441 <= 0: 0
+3645.    COND_ICMPGT 4444441 >  0: 1
+3646.    COND_ICMPGE 4444441 >= 0: 1
+3647.    COND_ICMPEQ 4444441 == 0: 3
+3648.    COND_ICMPNE 4444441 != 0: 2
+3649.    COND_ICMPLT 4444441 <  0: 3
+3650.    COND_ICMPLE 4444441 <= 0: 3
+3651.    COND_ICMPGT 4444441 >  0: 2
+3652.    COND_ICMPGE 4444441 >= 0: 2
+3653.    COND_ICMPEQ 4444441 == 12342: false
+3654.    COND_ICMPNE 4444441 != 12342: true
+3655.    COND_ICMPLT 4444441 <  12342: false
+3656.    COND_ICMPLE 4444441 <= 12342: false
+3657.    COND_ICMPGT 4444441 >  12342: true
+3658.    COND_ICMPGE 4444441 >= 12342: true
+3659.    ------------------- test longs
+3660.    TESTLONG called with long: 1
+3661.                     AND long: 2
+3662.    LADD:  long: 3
+3663.    LSUB:  long: -1
+3664.    LMUL:  long: 2
+3665.    LDIV:  long: 0
+3666.    LREM:  long: 1
+3667.    LNEG:  long: -1
+3668.    LSHL:  long: 4
+3669.    LSHR:  long: 0
+3670.    LUSHR: long: 0
+3671.    LAND:  long: 0
+3672.    LOR:   long: 3
+3673.    LXOR:  long: 3
+3674.    L2I:   int: 1
+3675.    L2F:   float: 1065353216
+3676.    L2D:   double: 4607182418800017408
+3677.    LCMP a == b : false
+3678.    LCMP a != b : true
+3679.    LCMP a <  b : true
+3680.    LCMP a <= b : true
+3681.    LCMP a >  b : false
+3682.    LCMP a >= b : false
+3683.    not IF_LCMPNE
+3684.    not IF_LCMPLT
+3685.    not IF_LCMPLE
+3686.    TESTLONG called with long: -1
+3687.                     AND long: 17
+3688.    LADD:  long: 16
+3689.    LSUB:  long: -18
+3690.    LMUL:  long: -17
+3691.    LDIV:  long: 0
+3692.    LREM:  long: -1
+3693.    LNEG:  long: 1
+3694.    LSHL:  long: -131072
+3695.    LSHR:  long: -1
+3696.    LUSHR: long: 140737488355327
+3697.    LAND:  long: 17
+3698.    LOR:   long: -1
+3699.    LXOR:  long: -18
+3700.    L2I:   int: -1
+3701.    L2F:   float: -1082130432
+3702.    L2D:   double: -4616189618054758400
+3703.    LCMP a == b : false
+3704.    LCMP a != b : true
+3705.    LCMP a <  b : true
+3706.    LCMP a <= b : true
+3707.    LCMP a >  b : false
+3708.    LCMP a >= b : false
+3709.    not IF_LCMPNE
+3710.    not IF_LCMPLT
+3711.    not IF_LCMPLE
+3712.    TESTLONG called with long: -24351
+3713.                     AND long: 24123
+3714.    LADD:  long: -228
+3715.    LSUB:  long: -48474
+3716.    LMUL:  long: -587419173
+3717.    LDIV:  long: -1
+3718.    LREM:  long: -228
+3719.    LNEG:  long: 24351
+3720.    LSHL:  long: 576460752303423488
+3721.    LSHR:  long: -1
+3722.    LUSHR: long: 31
+3723.    LAND:  long: 33
+3724.    LOR:   long: -261
+3725.    LXOR:  long: -294
+3726.    L2I:   int: -24351
+3727.    L2F:   float: -960610816
+3728.    L2D:   double: -4550949270986948608
+3729.    LCMP a == b : false
+3730.    LCMP a != b : true
+3731.    LCMP a <  b : true
+3732.    LCMP a <= b : true
+3733.    LCMP a >  b : false
+3734.    LCMP a >= b : false
+3735.    not IF_LCMPNE
+3736.    not IF_LCMPLT
+3737.    not IF_LCMPLE
+3738.    TESTLONG called with long: 4918923241323
+3739.                     AND long: -4423423234231423
+3740.    LADD:  long: -4418504310990100
+3741.    LSUB:  long: 4428342157472746
+3742.    LMUL:  long: -4222930371437023765
+3743.    LDIV:  long: 0
+3744.    LREM:  long: 4918923241323
+3745.    LNEG:  long: -4918923241323
+3746.    LSHL:  long: 9837846482646
+3747.    LSHR:  long: 2459461620661
+3748.    LUSHR: long: 2459461620661
+3749.    LAND:  long: 451041567489
+3750.    LOR:   long: -4418955352557589
+3751.    LXOR:  long: -4419406394125078
+3752.    L2I:   int: 1185687403
+3753.    L2F:   float: 1418668246
+3754.    L2D:   double: 4796866980921322496
+3755.    LCMP a == b : false
+3756.    LCMP a != b : true
+3757.    LCMP a <  b : false
+3758.    LCMP a <= b : false
+3759.    LCMP a >  b : true
+3760.    LCMP a >= b : true
+3761.    not IF_LCMPNE
+3762.    not IF_LCMPGT
+3763.    not IF_LCMPGE
+3764.    TESTLONG called with long: 0
+3765.                     AND long: 0
+3766.    LADD:  long: 0
+3767.    LSUB:  long: 0
+3768.    LMUL:  long: 0
+3769.    divison by zero
+3770.    divison by zero
+3771.    LNEG:  long: 0
+3772.    LSHL:  long: 0
+3773.    LSHR:  long: 0
+3774.    LUSHR: long: 0
+3775.    LAND:  long: 0
+3776.    LOR:   long: 0
+3777.    LXOR:  long: 0
+3778.    L2I:   int: 0
+3779.    L2F:   float: 0
+3780.    L2D:   double: 0
+3781.    LCMP a == b : true
+3782.    LCMP a != b : false
+3783.    LCMP a <  b : false
+3784.    LCMP a <= b : true
+3785.    LCMP a >  b : false
+3786.    LCMP a >= b : true
+3787.    not IF_LCMPEQ
+3788.    not IF_LCMPLE
+3789.    not IF_LCMPGE
+3790.    TESTLONG called with long: -1
+3791.                     AND long: -1
+3792.    LADD:  long: -2
+3793.    LSUB:  long: 0
+3794.    LMUL:  long: 1
+3795.    LDIV:  long: 1
+3796.    LREM:  long: 0
+3797.    LNEG:  long: 1
+3798.    LSHL:  long: -9223372036854775808
+3799.    LSHR:  long: -1
+3800.    LUSHR: long: 1
+3801.    LAND:  long: -1
+3802.    LOR:   long: -1
+3803.    LXOR:  long: 0
+3804.    L2I:   int: -1
+3805.    L2F:   float: -1082130432
+3806.    L2D:   double: -4616189618054758400
+3807.    LCMP a == b : true
+3808.    LCMP a != b : false
+3809.    LCMP a <  b : false
+3810.    LCMP a <= b : true
+3811.    LCMP a >  b : false
+3812.    LCMP a >= b : true
+3813.    not IF_LCMPEQ
+3814.    not IF_LCMPLE
+3815.    not IF_LCMPGE
+3816.    TESTLONG called with long: 1423487
+3817.                     AND long: 123444442344
+3818.    LADD:  long: 123445865831
+3819.    LSUB:  long: -123443018857
+3820.    LMUL:  long: 175721558898933528
+3821.    LDIV:  long: 0
+3822.    LREM:  long: 1423487
+3823.    LNEG:  long: -1423487
+3824.    LSHL:  long: 1565140508487974912
+3825.    LSHR:  long: 0
+3826.    LUSHR: long: 0
+3827.    LAND:  long: 1355880
+3828.    LOR:   long: 123444509951
+3829.    LXOR:  long: 123443154071
+3830.    L2I:   int: 1423487
+3831.    L2F:   float: 1236124664
+3832.    L2D:   double: 4698864641831337984
+3833.    LCMP a == b : false
+3834.    LCMP a != b : true
+3835.    LCMP a <  b : true
+3836.    LCMP a <= b : true
+3837.    LCMP a >  b : false
+3838.    LCMP a >= b : false
+3839.    not IF_LCMPNE
+3840.    not IF_LCMPLT
+3841.    not IF_LCMPLE
+3842.    TESTLONG called with long: 9223372036854775807
+3843.                     AND long: 1
+3844.    LADD:  long: -9223372036854775808
+3845.    LSUB:  long: 9223372036854775806
+3846.    LMUL:  long: 9223372036854775807
+3847.    LDIV:  long: 9223372036854775807
+3848.    LREM:  long: 0
+3849.    LNEG:  long: -9223372036854775807
+3850.    LSHL:  long: -2
+3851.    LSHR:  long: 4611686018427387903
+3852.    LUSHR: long: 4611686018427387903
+3853.    LAND:  long: 1
+3854.    LOR:   long: 9223372036854775807
+3855.    LXOR:  long: 9223372036854775806
+3856.    L2I:   int: -1
+3857.    L2F:   float: 1593835520
+3858.    L2D:   double: 4890909195324358656
+3859.    LCMP a == b : false
+3860.    LCMP a != b : true
+3861.    LCMP a <  b : false
+3862.    LCMP a <= b : false
+3863.    LCMP a >  b : true
+3864.    LCMP a >= b : true
+3865.    not IF_LCMPNE
+3866.    not IF_LCMPGT
+3867.    not IF_LCMPGE
+3868.    TESTLONG called with long: 0
+3869.                     AND long: 9223372036854775807
+3870.    LADD:  long: 9223372036854775807
+3871.    LSUB:  long: -9223372036854775807
+3872.    LMUL:  long: 0
+3873.    LDIV:  long: 0
+3874.    LREM:  long: 0
+3875.    LNEG:  long: 0
+3876.    LSHL:  long: 0
+3877.    LSHR:  long: 0
+3878.    LUSHR: long: 0
+3879.    LAND:  long: 0
+3880.    LOR:   long: 9223372036854775807
+3881.    LXOR:  long: 9223372036854775807
+3882.    L2I:   int: 0
+3883.    L2F:   float: 0
+3884.    L2D:   double: 0
+3885.    LCMP a == b : false
+3886.    LCMP a != b : true
+3887.    LCMP a <  b : true
+3888.    LCMP a <= b : true
+3889.    LCMP a >  b : false
+3890.    LCMP a >= b : false
+3891.    not IF_LCMPNE
+3892.    not IF_LCMPLT
+3893.    not IF_LCMPLE
+3894.    TESTLONG called with long: 13107
+3895.                     AND long: 143444
+3896.    LADD:  long: 156551
+3897.    LSUB:  long: -130337
+3898.    LMUL:  long: 1880120508
+3899.    LDIV:  long: 0
+3900.    LREM:  long: 13107
+3901.    LNEG:  long: -13107
+3902.    LSHL:  long: 13743685632
+3903.    LSHR:  long: 0
+3904.    LUSHR: long: 0
+3905.    LAND:  long: 12304
+3906.    LOR:   long: 144247
+3907.    LXOR:  long: 131943
+3908.    L2I:   int: 13107
+3909.    L2F:   float: 1179438080
+3910.    L2D:   double: 4668431263781093376
+3911.    LCMP a == b : false
+3912.    LCMP a != b : true
+3913.    LCMP a <  b : true
+3914.    LCMP a <= b : true
+3915.    LCMP a >  b : false
+3916.    LCMP a >= b : false
+3917.    not IF_LCMPNE
+3918.    not IF_LCMPLT
+3919.    not IF_LCMPLE
+3920.    TESTLONG called with long: 4444441
+3921.                     AND long: 12342
+3922.    LADD:  long: 4456783
+3923.    LSUB:  long: 4432099
+3924.    LMUL:  long: 54853290822
+3925.    LDIV:  long: 360
+3926.    LREM:  long: 1321
+3927.    LNEG:  long: -4444441
+3928.    LSHL:  long: 5062045981164437504
+3929.    LSHR:  long: 0
+3930.    LUSHR: long: 0
+3931.    LAND:  long: 4112
+3932.    LOR:   long: 4452671
+3933.    LXOR:  long: 4448559
+3934.    L2I:   int: 4444441
+3935.    L2F:   float: 1250402866
+3936.    L2D:   double: 4706530193160798208
+3937.    LCMP a == b : false
+3938.    LCMP a != b : true
+3939.    LCMP a <  b : false
+3940.    LCMP a <= b : false
+3941.    LCMP a >  b : true
+3942.    LCMP a >= b : true
+3943.    not IF_LCMPNE
+3944.    not IF_LCMPGT
+3945.    not IF_LCMPGE
+3946.    ------------------- test floats
+3947.    TESTFLOAT called with float: 1065353216
+3948.                      AND float: 1073917985
+3949.    FADD:  float: 1078112289
+3950.    FSUB:  float: -1081778110
+3951.    FMUL:  float: 1073917985
+3952.    FDIV:  float: 1056619533
+3953.    FREM:  float: 1065353216
+3954.    F2I:   int: 1
+3955.    F2L:   long: 1
+3956.    F2D:   double: 4607182418800017408
+3957.    FCMP a!=b
+3958.    FCMP a<b
+3959.    FCMP a<=b
+3960.    TESTFLOAT called with float: -1080167498
+3961.                      AND float: 1099662623
+3962.    FADD:  float: 1099015652
+3963.    FSUB:  float: -1047174054
+3964.    FMUL:  float: -1045681427
+3965.    FDIV:  float: -1114576645
+3966.    FREM:  float: -1080167498
+3967.    F2I:   int: -1
+3968.    F2L:   long: -1
+3969.    F2D:   double: -4615135775887982592
+3970.    FCMP a!=b
+3971.    FCMP a<b
+3972.    FCMP a<=b
+3973.    TESTFLOAT called with float: -960610816
+3974.                      AND float: 1186756096
+3975.    FADD:  float: -1016856576
+3976.    FSUB:  float: -952280576
+3977.    FMUL:  float: -838070983
+3978.    FDIV:  float: -1082051147
+3979.    FREM:  float: -1016856576
+3980.    F2I:   int: -24351
+3981.    F2L:   long: -24351
+3982.    F2D:   double: -4550949270986948608
+3983.    FCMP a!=b
+3984.    FCMP a<b
+3985.    FCMP a<=b
+3986.    TESTFLOAT called with float: 1036831949
+3987.                      AND float: 1151033344
+3988.    FADD:  float: 1151034163
+3989.    FSUB:  float: -996451123
+3990.    FMUL:  float: 1123588506
+3991.    FDIV:  float: 950581132
+3992.    FREM:  float: 1036831949
+3993.    F2I:   int: 0
+3994.    F2L:   long: 0
+3995.    F2D:   double: 4591870180174331904
+3996.    FCMP a!=b
+3997.    FCMP a<b
+3998.    FCMP a<=b
+3999.    TESTFLOAT called with float: 0
+4000.                      AND float: -1005921678
+4001.    FADD:  float: -1005921678
+4002.    FSUB:  float: 1141561970
+4003.    FMUL:  float: -2147483648
+4004.    FDIV:  float: -2147483648
+4005.    FREM:  float: 0
+4006.    F2I:   int: 0
+4007.    F2L:   long: 0
+4008.    F2D:   double: 0
+4009.    FCMP a!=b
+4010.    FCMP a>b
+4011.    FCMP a>=b
+4012.    TESTFLOAT called with float: 1117388800
+4013.                      AND float: -1005928448
+4014.    FADD:  float: -1007747072
+4015.    FSUB:  float: 1142816768
+4016.    FMUL:  float: -953749760
+4017.    FDIV:  float: -1106374265
+4018.    FREM:  float: 1117388800
+4019.    F2I:   int: 77
+4020.    F2L:   long: 77
+4021.    F2D:   double: 4635118810238550016
+4022.    FCMP a!=b
+4023.    FCMP a>b
+4024.    FCMP a>=b
+4025.    TESTFLOAT called with float: 1325400059
+4026.                      AND float: -922251744
+4027.    FADD:  float: 1325395721
+4028.    FSUB:  float: 1325402230
+4029.    FMUL:  float: -662204899
+4030.    FDIV:  float: -982402220
+4031.    FREM:  float: 1220539712
+4032.    F2I:   int: 2147483008
+4033.    F2L:   long: 2147483008
+4034.    F2D:   double: 4746794004564148224
+4035.    FCMP a!=b
+4036.    FCMP a>b
+4037.    FCMP a>=b
+4038.    ------------------- test doubles
+4039.    TESTDOUBLE called with double: 4607182418800017408
+4040.                       AND double: 4611780594144116736
+4041.    DADD:  double: 4614032393957801984
+4042.    DSUB:  double: -4616000466621300736
+4043.    DMUL:  double: 4611780594144116736
+4044.    DDIV:  double: 4602493558224229689
+4045.    DREM:  double: 4607182418800017408
+4046.    D2I:   int: 1
+4047.    D2L:   long: 1
+4048.    D2F:   float: 1065353216
+4049.    DCMP a!=b
+4050.    DCMP a<b
+4051.    DCMP a<=b
+4052.    TESTDOUBLE called with double: -4615135775887982592
+4053.                       AND double: 4625602141426286592
+4054.    DADD:  double: 4625254801314152448
+4055.    DSUB:  double: -4597422555316355072
+4056.    DMUL:  double: -4596621207431527808
+4057.    DDIV:  double: -4633609045894396972
+4058.    DREM:  double: -4615135775887982592
+4059.    D2I:   int: -1
+4060.    D2L:   long: -1
+4061.    D2F:   float: -1080167498
+4062.    DCMP a!=b
+4063.    DCMP a<b
+4064.    DCMP a<=b
+4065.    TESTDOUBLE called with double: -4550949270986948608
+4066.                       AND double: 4672360093705043968
+4067.    DADD:  double: -4581145983454281728
+4068.    DSUB:  double: -4546477007440969728
+4069.    DMUL:  double: -4485161199314403328
+4070.    DDIV:  double: -4616147052009281450
+4071.    DREM:  double: -4581145983454281728
+4072.    D2I:   int: -24351
+4073.    D2L:   long: -24351
+4074.    D2F:   float: -960610816
+4075.    DCMP a!=b
+4076.    DCMP a<b
+4077.    DCMP a<=b
+4078.    TESTDOUBLE called with double: 4591870180174331904
+4079.                       AND double: 4653181587259654144
+4080.    DADD:  double: 4653182027064311808
+4081.    DSUB:  double: -4570190889399779328
+4082.    DMUL:  double: 4638447251968491520
+4083.    DDIV:  double: 4545564625306141371
+4084.    DREM:  double: 4591870180174331904
+4085.    D2I:   int: 0
+4086.    D2L:   long: 0
+4087.    D2F:   float: 1036831949
+4088.    DCMP a!=b
+4089.    DCMP a<b
+4090.    DCMP a<=b
+4091.    TESTDOUBLE called with double: 0
+4092.                       AND double: -4575275354792394752
+4093.    DADD:  double: -4575275354792394752
+4094.    DSUB:  double: 4648096682062381056
+4095.    DMUL:  double: -9223372036854775808
+4096.    DDIV:  double: -9223372036854775808
+4097.    DREM:  double: 0
+4098.    D2I:   int: 0
+4099.    D2L:   long: 0
+4100.    D2F:   float: 0
+4101.    DCMP a!=b
+4102.    DCMP a>b
+4103.    DCMP a>=b
+4104.    TESTDOUBLE called with double: 4635118810238550016
+4105.                       AND double: -4575278989408468992
+4106.    DADD:  double: -4576255355733934080
+4107.    DSUB:  double: 4648770346609016832
+4108.    DMUL:  double: -4547265769594945536
+4109.    DDIV:  double: -4629205426707555293
+4110.    DREM:  double: 4635118810238550016
+4111.    D2I:   int: 77
+4112.    D2L:   long: 77
+4113.    D2F:   float: 1117388800
+4114.    DCMP a!=b
+4115.    DCMP a>b
+4116.    DCMP a>=b
+4117.    TESTDOUBLE called with double: 4746794004564148224
+4118.                       AND double: -4530355401018834944
+4119.    DADD:  double: 4746791675743961088
+4120.    DSUB:  double: 4746795170316419072
+4121.    DMUL:  double: -4390743813991748608
+4122.    DDIV:  double: -4562648441847017049
+4123.    DREM:  double: 4690497534437621760
+4124.    D2I:   int: 2147483008
+4125.    D2L:   long: 2147483008
+4126.    D2F:   float: 1325400059
+4127.    DCMP a!=b
+4128.    DCMP a>b
+4129.    DCMP a>=b
+4130.    =================== end of test =========================
+4131.    
\ No newline at end of file
index 00bfbf7ffcf4b593d185b904f4044fcd6ab7f37c..5ba14eecf003fb3bb45be250b3f65b456f462752 100644 (file)
@@ -306,15 +306,22 @@ public class jctest implements jcinterface {
        // ****************** test type casts and array stores *********************            
 
        public static void testcasts() {
-               Object    o   = new Object();
-               Object    oi  = new Integer(0);
-               Object[]  oa  = new Object [1];
-               Object[]  oia = new Integer[1];
-               Integer   i   = new Integer(0);
-               Integer[] ia;
+               Object     o   = new Object();
+               Object     oi  = new Integer(0);
+               Object[]   oa  = new Object [1];
+               Object[]   oia = new Integer[1];
+               Integer    i   = new Integer(0);
+               Integer[]  ia;
+               java.io.DataOutput dataout = null;
+               Object             od  = new java.io.DataOutputStream(
+                                            (java.io.DataOutputStream)dataout);
 
                p ("------------------- test casts");
 
+               p("Integer is instanceof Object:  ", oi instanceof Object);
+               p("Integer is instanceof Integer: ", oi instanceof Integer);
+               p("Object is instanceof Integer:  ", o instanceof Integer);
+
                try {
                        p ("type cast check: Integer = Object(Integer)");
                        i = (Integer) oi;
@@ -326,6 +333,21 @@ public class jctest implements jcinterface {
                        p ("exception: class cast");
                        }
 
+               p("DataOutputStream is instanceof DataOutput: ",
+                                                     od instanceof java.io.DataOutput);
+               p("Object is instanceof DataOutput: ", o instanceof java.io.DataOutput);
+
+               try {
+                       p ("type cast check: DataOutput = Object(DataOutputStream)");
+                       dataout = (java.io.DataOutput) od;
+                       p ("type cast check: DataOutput = Object");
+                       dataout = (java.io.DataOutput) o;
+                       p ("error: class cast exception not thrown");
+                       }       
+               catch (ClassCastException c) {
+                       p ("exception: class cast");
+                       }
+
                try {
                        p ("type cast check: Integer[] = Object(Integer)[]");
                        ia = (Integer[]) oia;
index 379b49af11d16acc7a3afa01037741209b3d6441..1e7c44a5ae2d225550afc23df1ecd453b62103b2 100644 (file)
@@ -137,6 +137,8 @@ void clear_thread_flags(void)
 #endif
 
 #endif
+fflush (stdout);
+fflush (stderr);
 }