You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by mf...@apache.org on 2008/03/17 14:48:56 UTC

svn commit: r637887 - in /harmony/enhanced/drlvm/trunk/vm: include/open/ vmcore/src/jit/ vmcore/src/util/ia32/base/ vmcore/src/util/ipf/base/

Author: mfursov
Date: Mon Mar 17 06:48:53 2008
New Revision: 637887

URL: http://svn.apache.org/viewvc?rev=637887&view=rev
Log:
Fix for HARMONY-5608 [drlvm] Remove unused runtime helpers

Modified:
    harmony/enhanced/drlvm/trunk/vm/include/open/rt_helpers.h
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/rt_helper_info.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_generic_rt_support_ia32.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_runtime_support_ia32.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/arithmetic_helpers_ipf.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/jit_runtime_support_ipf.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/include/open/rt_helpers.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/rt_helpers.h?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/rt_helpers.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/rt_helpers.h Mon Mar 17 06:48:53 2008
@@ -601,9 +601,6 @@
     // Conversions
 
 
-    VM_RT_LSHL=910,
-    VM_RT_LSHR=911,
-    VM_RT_LUSHR=912,
     /**
      * @param The parameters are the following:
      * (new version)
@@ -616,26 +613,9 @@
      */
 
 
-    VM_RT_LMUL=920,
-#ifdef VM_LONG_OPT
-    VM_RT_LMUL_CONST_MULTIPLIER=921,
-#endif
-    VM_RT_LREM=922,
-    VM_RT_LDIV=923,
-    VM_RT_ULDIV=924,
-    VM_RT_CONST_LDIV=925,
-    VM_RT_CONST_LREM=926,
-    // Long arithmetic
-
-    VM_RT_IMUL=930,
-    VM_RT_IREM=931,
-    VM_RT_IDIV=932,
-    // Int arithmetic
 
     VM_RT_FREM=940,
-    VM_RT_FDIV=941,
     VM_RT_DREM=942,
-    VM_RT_DDIV=943,
     // Float/double arithmetic
 
     VM_RT_CHAR_ARRAYCOPY_NO_EXC=950,
@@ -675,17 +655,6 @@
  * See also <code>VM_RT_NEW_RESOLVED_USING_VTABLE</code>.
  */
     VM_RT_NEW_VECTOR=1001,
-/**
- * @param The parameters are the following:
- *        arg\ Vector length
- *        arg\ Class handle of the vector class
- *
- * @return Reference to the new object
- *
- * Create a vector (zero-based, one dimensional array)
- * of the given type. See also <code>VM_RT_NEW_VECTOR_USING_VTABLE</code>.
- */
-    VM_RT_WRITE_BARRIER_FASTCALL=1002
 /**
  * @param The parameters are the following:
  *        arg\ Address of a memory location being written to

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp Mon Mar 17 06:48:53 2008
@@ -992,421 +992,6 @@
     return addr;
 }
 
-static int64 lshl(int64 v, int32 c)
-{
-    return v<<(c&0x3f);
-}
-
-static NativeCodePtr rth_get_lil_lshl(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int64 (*p_lshl)(int64, int32) = lshl;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g4:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;",
-            p_lshl);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lshl", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int64 lshr(int64 v, int32 c)
-{
-    return v>>(c&0x3f);
-}
-
-static NativeCodePtr rth_get_lil_lshr(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int64 (*p_lshr)(int64, int32) = lshr;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g4:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;",
-            p_lshr);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lshr", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static uint64 lushr(uint64 v, uint32 c)
-{
-    return v>>(c&0x3f);
-}
-
-static NativeCodePtr rth_get_lil_lushr(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        uint64 (*p_lushr)(uint64, uint32) = lushr;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g4:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;",
-            p_lushr);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lushr", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int64 lmul(int64 m, int64 n)
-{
-    return m*n;
-}
-
-static NativeCodePtr rth_get_lil_lmul(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int64 (*p_lmul)(int64, int64) = lmul;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g8:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;",
-            p_lmul);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lmul", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int64 lrem(int64 m, int64 n)
-{
-    assert(n);
-    return m%n;
-}
-
-static NativeCodePtr rth_get_lil_lrem(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int64 (*p_lrem)(int64, int64) = lrem;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g8:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "jc i1=0,remzero;"
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;"
-            ":remzero;"
-            "tailcall %1i;",
-            p_lrem, lil_npc_to_fp(exn_get_rth_throw_arithmetic()));
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lrem", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int64 ldiv(int64 m, int64 n)
-{
-    assert(n);
-    return m/n;
-}
-
-static NativeCodePtr rth_get_lil_ldiv(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int64 (*p_ldiv)(int64, int64) = ldiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g8:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "jc i1=0,divzero;"
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;"
-            ":divzero;"
-            "tailcall %1i;",
-            p_ldiv, lil_npc_to_fp(exn_get_rth_throw_arithmetic()));
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_ldiv", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static uint64 ludiv(uint64 m, uint64 n)
-{
-    assert(n);
-    return m/n;
-}
-
-static NativeCodePtr rth_get_lil_ludiv(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        uint64 (*p_ludiv)(uint64, uint64) = ludiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,g8:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "jc i1=0,divzero;"
-            "in2out platform:g8;"
-            "call %0i;"
-            "ret;"
-            ":divzero;"
-            "tailcall %1i;",
-            p_ludiv, lil_npc_to_fp(exn_get_rth_throw_arithmetic()));
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_ludiv", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static NativeCodePtr rth_get_lil_ldiv_const(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        // This constant must be kept in sync with MAGIC in ir.cpp
-        POINTER_SIZE_INT divisor_offset = 40;
-        int64 (*p_ldiv)(int64, int64) = ldiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,pint:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "out platform:g8,g8:g8;"
-            "o0=i0;"
-            "ld o1,[i1+%0i:g8];"
-            "call %1i;"
-            "ret;",
-            divisor_offset, p_ldiv);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_ldiv_const", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static NativeCodePtr rth_get_lil_lrem_const(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        // This constant must be kept in sync with MAGIC in ir.cpp
-        POINTER_SIZE_INT divisor_offset = 40;
-        int64 (*p_lrem)(int64, int64) = lrem;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g8,pint:g8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "out platform:g8,g8:g8;"
-            "o0=i0;"
-            "ld o1,[i1+%0i:g8];"
-            "call %1i;"
-            "ret;",
-            divisor_offset, p_lrem);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_lrem_const", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int32 imul(int32 m, int32 n)
-{
-    return m*n;
-}
-
-static NativeCodePtr rth_get_lil_imul(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int32 (*p_imul)(int32, int32) = imul;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g4,g4:g4;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:g4;"
-            "call %0i;"
-            "ret;",
-            p_imul);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_imul", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int32 irem(int32 m, int32 n)
-{
-    assert(n);
-    return m%n;
-}
-
-static NativeCodePtr rth_get_lil_irem(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int32 (*p_irem)(int32, int32) = irem;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g4,g4:g4;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "jc i1=0,remzero;"
-            "in2out platform:g4;"
-            "call %0i;"
-            "ret;"
-            ":remzero;"
-            "tailcall %1i;",
-            p_irem, lil_npc_to_fp(exn_get_rth_throw_arithmetic()));
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_irem", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-static int32 idiv(int32 m, int32 n)
-{
-    assert(n);
-    return m/n;
-}
-
-static NativeCodePtr rth_get_lil_idiv(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        int32 (*p_idiv)(int32, int32) = idiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:g4,g4:g4;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "jc i1=0,remzero;"
-            "in2out platform:g4;"
-            "call %0i;"
-            "ret;"
-            ":remzero;"
-            "tailcall %1i;",
-            p_idiv, lil_npc_to_fp(exn_get_rth_throw_arithmetic()));
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_idiv", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
-
 const int nan_data = 0xffc00000;
 #define NANF  (*(float*)&nan_data)
 
@@ -1470,39 +1055,6 @@
     return addr;
 }
 
-static float fdiv(float m, float n)
-{
-    return m/n;
-}
-
-static NativeCodePtr rth_get_lil_fdiv(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        float (*p_fdiv)(float, float) = fdiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:f4,f4:f4;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:f4;"
-            "call %0i;"
-            "ret;",
-            p_fdiv);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_fdiv", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
 static double my_drem(double m, double n)
 {
     return fmod(m, n);
@@ -1536,39 +1088,6 @@
     return addr;
 }
 
-static double ddiv(double m, double n)
-{
-    return m/n;
-}
-
-static NativeCodePtr rth_get_lil_ddiv(int* dyn_count)
-{
-    static NativeCodePtr addr = NULL;
-
-    if (!addr) {
-        double (*p_ddiv)(double, double) = ddiv;
-        LilCodeStub* cs = lil_parse_code_stub("entry 0:stdcall:f8,f8:f8;");
-        assert(cs);
-        if (dyn_count) {
-            cs = lil_parse_onto_end(cs, "inc [%0i:pint];", dyn_count);
-            assert(cs);
-        }
-        cs = lil_parse_onto_end(cs,
-            "in2out platform:f8;"
-            "call %0i;"
-            "ret;",
-            p_ddiv);
-        assert(cs && lil_is_valid(cs));
-        addr = LilCodeGenerator::get_platform()->compile(cs);
-
-        DUMP_STUB(addr, "rth_ddiv", lil_cs_get_code_size(cs));
-
-        lil_free_code_stub(cs);
-    }
-
-    return addr;
-}
-
 
 //////////////////////////////////////////////////////////////////////////
 // Get LIL version of Runtime Helper
@@ -2495,41 +2014,10 @@
         return rth_get_lil_d2i(dyn_count);
     case VM_RT_D2L:
         return rth_get_lil_d2l(dyn_count);
-    case VM_RT_LSHL:
-        return rth_get_lil_lshl(dyn_count);
-    case VM_RT_LSHR:
-        return rth_get_lil_lshr(dyn_count);
-    case VM_RT_LUSHR:
-        return rth_get_lil_lushr(dyn_count);
-    case VM_RT_LMUL:
-#ifdef VM_LONG_OPT
-    case VM_RT_LMUL_CONST_MULTIPLIER:  // Not optimized, but functional
-#endif
-        return rth_get_lil_lmul(dyn_count);
-    case VM_RT_LREM:
-        return rth_get_lil_lrem(dyn_count);
-    case VM_RT_LDIV:
-        return rth_get_lil_ldiv(dyn_count);
-    case VM_RT_ULDIV:
-        return rth_get_lil_ludiv(dyn_count);
-    case VM_RT_CONST_LDIV:             // Not optimized, but functional
-        return rth_get_lil_ldiv_const(dyn_count);
-    case VM_RT_CONST_LREM:             // Not optimized, but functional
-        return rth_get_lil_lrem_const(dyn_count);
-    case VM_RT_IMUL:
-        return rth_get_lil_imul(dyn_count);
-    case VM_RT_IREM:
-        return rth_get_lil_irem(dyn_count);
-    case VM_RT_IDIV:
-        return rth_get_lil_idiv(dyn_count);
     case VM_RT_FREM:
         return rth_get_lil_frem(dyn_count);
-    case VM_RT_FDIV:
-        return rth_get_lil_fdiv(dyn_count);
     case VM_RT_DREM:
         return rth_get_lil_drem(dyn_count);
-    case VM_RT_DDIV:
-        return rth_get_lil_ddiv(dyn_count);
     case VM_RT_NEWOBJ_WITHRESOLVE:
         return rth_get_lil_newobj_withresolve(dyn_count);
     case VM_RT_NEWARRAY_WITHRESOLVE:

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/rt_helper_info.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/rt_helper_info.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/rt_helper_info.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/rt_helper_info.cpp Mon Mar 17 06:48:53 2008
@@ -208,67 +208,16 @@
     {VM_RT_D2L,                                "VM_RT_D2L",
             INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              1,
             NULL,   NULL,   NULL,   NULL},
-    {VM_RT_LSHL,                               "VM_RT_LSHL",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_LSHR,                               "VM_RT_LSHR",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_LUSHR,                              "VM_RT_LUSHR",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_LMUL,                               "VM_RT_LMUL",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-#ifdef VM_LONG_OPT
-    {VM_RT_LMUL_CONST_MULTIPLIER,              "VM_RT_LMUL_CONST_MULTIPLIER",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-#endif // VM_LONG_OPT
-    {VM_RT_LREM,                               "VM_RT_LREM",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_LDIV,                               "VM_RT_LDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_ULDIV,                              "VM_RT_ULDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_CONST_LDIV,                         "VM_RT_CONST_LDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_CONST_LREM,                         "VM_RT_CONST_LREM",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_IMUL,                               "VM_RT_IMUL",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_IREM,                               "VM_RT_IREM",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
-    {VM_RT_IDIV,                               "VM_RT_IDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
     {VM_RT_FREM,                               "VM_RT_FREM",
             INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
             NULL,   NULL,   NULL,   NULL},
-    {VM_RT_FDIV,                               "VM_RT_FDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
     {VM_RT_DREM,                               "VM_RT_DREM",
             INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
             NULL,   NULL,   NULL,   NULL},
-    {VM_RT_DDIV,                               "VM_RT_DDIV",
-            INTERRUPTIBLE_NEVER,               CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL},
 
     {VM_RT_CHAR_ARRAYCOPY_NO_EXC,              "VM_RT_CHAR_ARRAYCOPY_NO_EXC",
             INTERRUPTIBLE_ALWAYS,              CALLING_CONVENTION_STDCALL,              5,
             NULL,   NULL,   NULL,   NULL},
-
-    {VM_RT_WRITE_BARRIER_FASTCALL,             "VM_RT_WRITE_BARRIER_FASTCALL",
-            INTERRUPTIBLE_ALWAYS,              CALLING_CONVENTION_STDCALL,              2,
-            NULL,   NULL,   NULL,   NULL}
 };
 
 static JIT_RT_Function_Entry *jit_rt_function_entries = &(_jit_rt_function_entries_base[0]);

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_generic_rt_support_ia32.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_generic_rt_support_ia32.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_generic_rt_support_ia32.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_generic_rt_support_ia32.cpp Mon Mar 17 06:48:53 2008
@@ -49,508 +49,6 @@
 #include "dump.h"
 #include "vm_stats.h"
 
-static uint64 vm_lshl(unsigned count, uint64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    return n << (count & 0x3f);
-} //vm_lshl
-
-
-// The arguments are:
-// edx:eax          - the value to be shifted
-// ecx              - how many bits to shift by
-// The result is returned in edx:eax.
-
-
-void * getaddress__vm_lshl_naked()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 12+12;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0xcc /*int 3*/, stub_size);
-#endif
-    char *ss = stub;
-
-    unsigned n=12;
-    M_Base_Opnd mem(esp_reg, 12);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = call(ss, (char *)vm_lshl);
-    ss = alu(ss, add_opc,  esp_opnd,  Imm_Opnd(12));
-    Imm_Opnd imm(n);
-    ss = ret(ss,  imm);
-
-    addr = stub;
-    assert((ss - stub) <= stub_size);
-
-    compile_add_dynamic_generated_code_chunk("vm_lshl_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_lshl_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_lshl_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_lshl_naked
-
-
-static int64 vm_lshr(unsigned count, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    return n >> (count & 0x3f);
-} //vm_lshr
-
-
-// The arguments are:
-// edx:eax          - the value to be shifted
-// ecx              - how many bits to shift by
-// The result is returned in edx:eax.
-
-
-void * getaddress__vm_lshr_naked()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 13+12;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0xcc /*int 3*/, stub_size);
-#endif
-    char *ss = stub;
-
-    unsigned n=12;
-    M_Base_Opnd mem(esp_reg, 12);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = call(ss, (char *)vm_lshr);
-    ss = alu(ss, add_opc,  esp_opnd,  Imm_Opnd(12));
-    Imm_Opnd imm(n);
-    ss = ret(ss,  imm);
-    
-    addr = stub;
-    assert((ss - stub) < stub_size);
-
-    compile_add_dynamic_generated_code_chunk("vm_lshr_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_lshr_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_lshr_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_lshr_naked
-
-
-static uint64 vm_lushr(unsigned count, uint64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    return n >> (count & 0x3f);
-} //vm_lushr
-
-
-// The arguments are:
-// edx:eax          - the value to be shifted
-// ecx              - how many bits to shift by
-// The result is returned in edx:eax.
-
-
-void * getaddress__vm_lushr_naked()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 12+12;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0xcc /*int 3*/, stub_size);
-#endif
-    char *ss = stub;
-
-    unsigned n=12;
-    M_Base_Opnd mem(esp_reg, 12);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = push(ss,  mem);
-    ss = call(ss, (char *)vm_lushr);
-    ss = alu(ss, add_opc,  esp_opnd,  Imm_Opnd(12));
-    Imm_Opnd imm(n);
-    ss = ret(ss,  imm);
-    
-    addr = stub;
-    assert((ss - stub) <= stub_size);
-
-    compile_add_dynamic_generated_code_chunk("vm_lushr_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_lushr_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_lushr_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_lushr_naked
-
-
-static int64 __stdcall vm_lmul(int64 m, int64 n);
-
-static int64 __stdcall vm_lmul(int64 m, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-
-    return m * n;
-} //vm_lmul
-
-#ifdef VM_LONG_OPT
-static int64 __stdcall vm_lmul_const_multiplier(int64 m, int64 n);
-
-static int64 __stdcall vm_lmul_const_multiplier(int64 m, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    __asm{
-        mov  eax,dword ptr [ebp+0ch]
-        mov  ecx,dword ptr [ebp+10h]
-        mul   ecx 
-        mov   ebx,eax
-        mov   eax,dword ptr [ebp+08h]
-        mul   ecx
-        add   edx,ebx
-    }
-} //vm_lmul_const_multiplier
-#endif
-
-
-static int64 __stdcall do_lrem(int64 m, int64 n);
-
-static int64 __stdcall do_lrem(int64 m, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-
-    return m % n;
-} //do_lrem
-
-
-void * getaddress__vm_const_lrem_naked()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 200 ;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-    char* ss = stub ;
-
-    ss = push(ss,  ebp_opnd);
-    ss = mov(ss,  ebp_opnd,  esp_opnd);
-    ss = push(ss,  ebx_opnd);
-    ss = push(ss,  esi_opnd);
-    ss = push(ss,  edi_opnd);
-
-    ss = mov(ss,  esi_opnd,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = mov(ss,  edi_opnd,  M_Base_Opnd(ebp_reg, +0x10) );
-    ss = mov(ss,  eax_opnd,  M_Base_Opnd(edi_reg, +0x28) );
-    ss = alu(ss, cmp_opc,  esi_opnd,  eax_opnd);
-    ss = branch8(ss, Condition_AE,  Imm_Opnd(size_8, 0x60)); // jae slower
-    ss = mov(ss,  ebx_opnd,  M_Base_Opnd(edi_reg, +0x30) );
-    ss = mov(ss,  eax_opnd,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = mov(ss,  edx_opnd,  M_Base_Opnd(ebp_reg, +0x8) );
-    ss = mov(ss,  ecx_opnd,  Imm_Opnd(0x20) );
-    ss = alu(ss, sub_opc,  ecx_opnd,  ebx_opnd);
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0x5)); // je l_is_32
-    ss = shift(ss, shld_opc,  eax_opnd,  edx_opnd); //shld eax,edx,cl
-    ss = shift(ss, shl_opc,  edx_opnd); //shld eax,edx,cl
-//l_is_32:
-    ss = mov(ss,  ebx_opnd,  edx_opnd);
-    ss = shift(ss, sar_opc,  ebx_opnd,  Imm_Opnd(0x1f)); //shld eax,edx,cl
-    ss = mov(ss,  esi_opnd,  M_Base_Opnd(edi_reg, +0x38) );
-    ss = alu(ss, and_opc,  esi_opnd,  ebx_opnd);
-    ss = alu(ss, add_opc,  esi_opnd,  edx_opnd);
-    ss = mov(ss,  ecx_opnd,  eax_opnd);
-    ss = alu(ss, cmp_opc,  eax_opnd,  ebx_opnd);
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0x0b)); // je mul_zero
-    ss = alu(ss, sub_opc,  eax_opnd,  ebx_opnd);
-    ss = mov(ss,  ebx_opnd,  eax_opnd);
-    ss = mov(ss,  edx_opnd,  M_Base_Opnd(edi_reg, +0x34) );
-    ss = mul(ss,  edx_opnd);
-    ss = jump8(ss,  Imm_Opnd(size_8, 0x4)); // jmp next1
-//mul_zero:
-    ss = alu(ss, xor_opc,  edx_opnd,  edx_opnd);
-    ss = alu(ss, xor_opc,  eax_opnd,  eax_opnd);
-    ss = alu(ss, add_opc,  eax_opnd,  esi_opnd);
-    ss = alu(ss, adc_opc,  edx_opnd,  Imm_Opnd(0));
-    ss = alu(ss, add_opc,  ecx_opnd,  edx_opnd);
-    ss = mov(ss,  esi_opnd,  ecx_opnd);
-    ss = mov(ss,  eax_opnd,  esi_opnd);
-    ss = _not(ss,  eax_opnd);
-    ss = mov(ss,  ebx_opnd,  M_Base_Opnd(edi_reg, +0x28) );
-    ss = mul(ss,  ebx_opnd);
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = mov(ss,  edi_opnd,  M_Base_Opnd(ebp_reg, +0x8) );
-    ss = alu(ss, sub_opc,  ecx_opnd,  ebx_opnd);
-    ss = alu(ss, add_opc,  eax_opnd,  edi_opnd);
-    ss = alu(ss, adc_opc,  edx_opnd,  ecx_opnd);
-    ss = mov(ss,  edi_opnd,  edx_opnd);
-    ss = alu(ss, and_opc,  edi_opnd,  ebx_opnd);
-    ss = alu(ss, add_opc,  eax_opnd,  edi_opnd);
-    ss = alu(ss, xor_opc,  edx_opnd,  edx_opnd);
-    ss = jump8(ss, Imm_Opnd(size_8, 0x11)); // jmp end
-//slower:
-    ss = push(ss,  M_Base_Opnd(edi_reg, +0x2c) );
-    ss = push(ss,  M_Base_Opnd(edi_reg, +0x28) );
-    ss = push(ss,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = push(ss,  M_Base_Opnd(ebp_reg, +0x8) );
-    ss = call(ss, (char *)do_lrem);
-//end:
-
-    ss = pop(ss,  edi_opnd);
-    ss = pop(ss,  esi_opnd);
-    ss = pop(ss,  ebx_opnd);
-    ss = mov(ss,  esp_opnd,  ebp_opnd);
-    ss = pop(ss,  ebp_opnd);
-
-    ss = ret(ss,  Imm_Opnd(0x0c));
-
-    assert((ss - stub) <= stub_size);
-    addr = stub;
-
-    compile_add_dynamic_generated_code_chunk("vm_const_lrem_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_const_lrem_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_const_lrem_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_const_lrem_naked
-
-static void *getaddress__vm_const_ldiv_naked()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-
-/******************************************************************************
- * fast long division in this function
- ******************************************************************************/
-    const int stub_size = 420;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-    char* ss = stub ;
-
-    ss = push(ss,  ebp_opnd);
-    ss = mov(ss,  ebp_opnd,  esp_opnd);
-    ss = alu(ss, sub_opc,  esp_opnd,  Imm_Opnd(0x4c)) ;
-    ss = push(ss,  ebx_opnd);
-    ss = push(ss,  esi_opnd);
-    ss = push(ss,  edi_opnd);
-
-    ss = mov(ss,  esi_opnd,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = alu(ss, or_opc,  esi_opnd,  esi_opnd) ;
-    ss = branch8(ss, Condition_NZ,  Imm_Opnd(size_8, 0x28)); // jne fast_64
-    ss = mov(ss,  edi_opnd,  M_Base_Opnd(ebp_reg, +0x10) );
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(edi_reg, +0x1c) );
-    ss = alu(ss, or_opc,  ecx_opnd,  ecx_opnd) ;
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0x21)); // jne fast_64_2
-    /*******************************************************************************
-     * Fast 32/32
-     *******************************************************************************/
-    ss = mov(ss,  eax_opnd,  M_Base_Opnd(ebp_reg, +0x08) );
-    ss = mov(ss,  esi_opnd,  eax_opnd );
-    ss = mul(ss,  ecx_opnd) ;
-    ss = alu(ss, sub_opc,  esi_opnd,  edx_opnd) ;
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(edi_reg, +0x0c) );
-    ss = shift(ss, shr_opc,  esi_opnd) ;
-    ss = alu(ss, add_opc,  edx_opnd,  esi_opnd) ;
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(edi_reg, +0x20) );
-    ss = shift(ss, shr_opc,  edx_opnd) ;
-    ss = mov(ss,  eax_opnd,  edx_opnd );
-    ss = alu(ss, xor_opc,  edx_opnd,  edx_opnd) ;
-    ss = jump32(ss, Imm_Opnd(0x130)); // jmp end
-//fast_64:
-    ss = mov(ss,  edi_opnd,  M_Base_Opnd(ebp_reg, +0x10) );
-//fast_64_2:
-    ss = mov(ss,  eax_opnd,  M_Base_Opnd(edi_reg, +0x28) );
-    ss = alu(ss, or_opc,  esi_opnd,  esi_opnd) ;
-    ss = branch8(ss, Condition_L,  Imm_Opnd(size_8, 0x68)); // js fast_64_64
-    ss = alu(ss, cmp_opc,  esi_opnd,  eax_opnd) ;
-    ss = branch8(ss, Condition_AE,  Imm_Opnd(size_8, 0x64)); // jae fast_64_64
-    /*******************************************************************************
-     * Fast 64/32
-     *******************************************************************************/
-    ss = mov(ss,  ebx_opnd,  M_Base_Opnd(edi_reg, +0x30) );
-    ss = mov(ss,  eax_opnd,  esi_opnd );
-    ss = mov(ss,  edx_opnd,  M_Base_Opnd(ebp_reg, +0x8) );
-    ss = mov(ss,  ecx_opnd,  Imm_Opnd(0x20) );
-    ss = alu(ss, sub_opc,  ecx_opnd,  ebx_opnd) ;
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0x5)); // je l_is_32
-    ss = shift(ss, shld_opc,  eax_opnd,  edx_opnd) ;
-    ss = shift(ss, shl_opc,  edx_opnd) ;
-//l_is_32:
-    ss = mov(ss,  ebx_opnd,  edx_opnd );
-    ss = shift(ss, sar_opc,  ebx_opnd,  Imm_Opnd(0x1f)) ;
-    ss = mov(ss,  esi_opnd,  M_Base_Opnd(edi_reg, +0x38) );
-    ss = alu(ss, and_opc,  esi_opnd,  ebx_opnd) ;
-    ss = alu(ss, add_opc,  esi_opnd,  edx_opnd) ;
-    ss = mov(ss,  ecx_opnd,  eax_opnd );
-    ss = alu(ss, cmp_opc,  eax_opnd,  ebx_opnd) ;
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0xb)); // je mul_zero
-    ss = alu(ss, sub_opc,  eax_opnd,  ebx_opnd) ;
-    ss = mov(ss,  ebx_opnd,  eax_opnd );
-    ss = mov(ss,  edx_opnd,  M_Base_Opnd(edi_reg, +0x34) );
-    ss = mul(ss,  edx_opnd) ;
-    ss = jump8(ss, Imm_Opnd(size_8, 0x4)); // jmp next1
-//mul_zero:
-    ss = alu(ss, xor_opc,  edx_opnd,  edx_opnd) ;
-    ss = alu(ss, xor_opc,  eax_opnd,  eax_opnd) ;
-//next1:
-    ss = alu(ss, add_opc,  eax_opnd,  esi_opnd) ;
-    ss = alu(ss, adc_opc,  edx_opnd,  Imm_Opnd(0)) ;
-    ss = alu(ss, add_opc,  ecx_opnd,  edx_opnd) ;
-    ss = mov(ss,  esi_opnd,  ecx_opnd );
-    ss = mov(ss,  eax_opnd,  esi_opnd );
-    ss = _not(ss,  eax_opnd) ;
-    ss = mov(ss,  ebx_opnd,  M_Base_Opnd(edi_reg, +0x28) );
-    ss = mul(ss,  ebx_opnd) ;
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = mov(ss,  edi_opnd,  M_Base_Opnd(ebp_reg, +0x8) );
-    ss = alu(ss, sub_opc,  ecx_opnd,  ebx_opnd) ;
-    ss = alu(ss, add_opc,  eax_opnd,  edi_opnd) ;
-    ss = alu(ss, adc_opc,  edx_opnd,  ecx_opnd) ;
-    ss = mov(ss,  ecx_opnd,  esi_opnd );
-    ss = _not(ss,  ecx_opnd) ;
-    ss = mov(ss,  eax_opnd,  edx_opnd );
-    ss = alu(ss, sub_opc,  eax_opnd,  ecx_opnd) ;
-    ss = alu(ss, xor_opc,  edx_opnd,  edx_opnd) ;
-    ss = jump32(ss, Imm_Opnd(0xbe)); // jmp end
-    /*******************************************************************************
-     * Fast 64/64
-     *******************************************************************************/
-//fast_64_64
-    ss = alu(ss, or_opc, esi_opnd, esi_opnd) ;
-    ss = branch8(ss, Condition_GE, Imm_Opnd(size_8, 0x21)); // jge positive
-    ss = mov(ss, edx_opnd, esi_opnd );
-    ss = mov(ss, ecx_opnd, esi_opnd );
-    ss = shift(ss, sar_opc, ecx_opnd, Imm_Opnd(0x1f)) ;
-    ss = shift(ss, shr_opc, esi_opnd, Imm_Opnd(0x1f)) ;
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x0c), ecx_opnd );
-    ss = mov(ss, eax_opnd, M_Base_Opnd(ebp_reg, +0x8) );
-    ss = alu(ss, xor_opc, eax_opnd, ecx_opnd) ;
-    ss = alu(ss, xor_opc, edx_opnd, ecx_opnd) ;
-    ss = alu(ss, add_opc, eax_opnd, esi_opnd) ;
-    ss = alu(ss, adc_opc, edx_opnd, Imm_Opnd(0) ) ;
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x04), edx_opnd );
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x08), eax_opnd );
-    ss = jump8(ss,Imm_Opnd(size_8, 0x0e)); // jmp Cal_t1
-//positive:
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x04), esi_opnd );
-    ss = mov(ss, eax_opnd, M_Base_Opnd(ebp_reg, +0x8) );
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x08), eax_opnd );
-    ss = alu(ss, xor_opc, esi_opnd, esi_opnd) ;
-    ss = mov(ss, M_Base_Opnd(ebp_reg, -0x0c), esi_opnd );
-//Cal_t1:
-    ss = mov(ss, ecx_opnd, eax_opnd );
-    ss = mov(ss, ebx_opnd, M_Base_Opnd(edi_reg, +0x0) );
-    ss = mul(ss, ebx_opnd) ;
-    ss = alu(ss, sub_opc, eax_opnd, Imm_Opnd(0x1) ) ;
-    ss = alu(ss, sbb_opc, edx_opnd, Imm_Opnd(0x1) ) ;
-    ss = alu(ss, add_opc, eax_opnd, esi_opnd ) ;
-    ss = alu(ss, adc_opc, edx_opnd, Imm_Opnd(0) ) ;
-    ss = mov(ss, edi_opnd, edx_opnd );
-    ss = mov(ss, eax_opnd, M_Base_Opnd(ebp_reg, -0x4) );
-    ss = mul(ss, ebx_opnd) ;
-    ss = alu(ss, add_opc, eax_opnd, edi_opnd ) ;
-    ss = alu(ss, adc_opc, edx_opnd, Imm_Opnd(0) ) ;
-    ss = mov(ss, edi_opnd, edx_opnd );
-    ss = mov(ss, esi_opnd, eax_opnd );
-    ss = mov(ss, eax_opnd, ecx_opnd );
-    ss = mov(ss, ebx_opnd, M_Base_Opnd(ebp_reg, +0x10) );
-    ss = mov(ss, ebx_opnd, M_Base_Opnd(ebx_reg, +0x04) );
-    ss = mul(ss, ebx_opnd) ;
-    ss = alu(ss, add_opc, eax_opnd, esi_opnd ) ;
-    ss = alu(ss, adc_opc, edx_opnd, edi_opnd ) ;
-    ss = mov(ss, edi_opnd, Imm_Opnd(0) );
-    ss = alu(ss, adc_opc, edi_opnd, Imm_Opnd(0) ) ;
-    ss = mov(ss, esi_opnd, edx_opnd );
-    ss = mov(ss, eax_opnd, M_Base_Opnd(ebp_reg, -0x4) );
-    ss = mul(ss, ebx_opnd) ;
-    ss = alu(ss, add_opc, eax_opnd, esi_opnd ) ;
-    ss = alu(ss, adc_opc, edx_opnd, edi_opnd ) ;
-    ss = mov(ss, edi_opnd, M_Base_Opnd(ebp_reg, -0x0c) );
-    ss = mov(ss, ebx_opnd, edi_opnd );
-    ss = _not(ss, edi_opnd) ;
-    ss = alu(ss, xor_opc, eax_opnd, edi_opnd) ;
-    ss = alu(ss, xor_opc, edx_opnd, edi_opnd) ;
-    ss = mov(ss, edi_opnd, M_Base_Opnd(ebp_reg, +0x08) );
-    ss = mov(ss, esi_opnd, M_Base_Opnd(ebp_reg, +0x0c) );
-    ss = alu(ss, add_opc, eax_opnd, edi_opnd ) ;
-    ss = alu(ss, adc_opc, edx_opnd, esi_opnd ) ;
-    ss = mov(ss, ecx_opnd, M_Base_Opnd(ebp_reg, +0x10) );
-    ss = mov(ss, ecx_opnd, M_Base_Opnd(ecx_reg, +0x10) );
-    ss = alu(ss, cmp_opc, ecx_opnd, Imm_Opnd(0x20) ) ;
-    ss = branch8(ss, Condition_GE, Imm_Opnd(size_8, 0x07)); // jge biger_than_32
-    ss = shift(ss, shrd_opc, eax_opnd, edx_opnd ) ;
-    ss = shift(ss, sar_opc, edx_opnd ) ;
-    ss = jump8(ss,Imm_Opnd(size_8, 0x0a)); // jmp next
-//biger_than_32:
-    ss = alu(ss, sub_opc,  ecx_opnd,  Imm_Opnd(0x20) ) ;
-    ss = mov(ss,  eax_opnd,  edx_opnd );
-    ss = shift(ss, sar_opc,  edx_opnd,  Imm_Opnd(0x1f) ) ;
-    ss = shift(ss, sar_opc,  eax_opnd ) ;
-//next:
-    ss = alu(ss, sub_opc,  eax_opnd,  ebx_opnd ) ;
-    ss = alu(ss, sbb_opc,  edx_opnd,  ebx_opnd ) ;
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(ebp_reg, +0x10) );
-    ss = mov(ss,  ecx_opnd,  M_Base_Opnd(ecx_reg, +0x14) );
-    ss = test(ss,  ecx_opnd,  ecx_opnd) ;
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0x08)); // je end
-    ss = alu(ss, xor_opc,  eax_opnd,  ecx_opnd) ;
-    ss = alu(ss, xor_opc,  edx_opnd,  ecx_opnd) ;
-    ss = alu(ss, sub_opc,  eax_opnd,  ecx_opnd) ;
-    ss = alu(ss, sbb_opc,  edx_opnd,  ecx_opnd) ;
-    
-//end:
-    ss = pop(ss,  edi_opnd);
-    ss = pop(ss,  esi_opnd);
-    ss = pop(ss,  ebx_opnd);
-    ss = mov(ss,  esp_opnd,  ebp_opnd);
-    ss = pop(ss,  ebp_opnd);
-    ss = ret(ss,  Imm_Opnd(0x0c));
-
-    assert((ss - stub) <= stub_size);
-    addr = stub;
-
-    compile_add_dynamic_generated_code_chunk("vm_const_ldiv_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_const_ldiv_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_const_ldiv_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_ldiv_naked
-
-
-static double vm_rt_ddiv(double a, double b)
-{
-    double result = a / b;
-    return result;
-} //vm_rt_ddiv
 
 static int32 d2i_infinite(double d)
 {
@@ -1091,28 +589,6 @@
 } //vm_rt_char_arraycopy_no_exc
 
 
-static int32 vm_rt_imul_common(int32 v1, int32 v2)
-{
-    return v1 * v2;
-} //vm_rt_imul_common
-
-
-
-static int32 vm_rt_idiv_common(int32 v1, int32 v2)
-{
-    assert(v2);
-    return v1 / v2;
-} //vm_rt_idiv_common
-
-
-
-static int32 vm_rt_irem_common(int32 v1, int32 v2)
-{
-    assert(v2);
-    return v1 % v2;
-} //vm_rt_irem_common
-
-
 void *get_generic_rt_support_addr_ia32(VM_RT_SUPPORT f)
 {
     switch(f) {
@@ -1124,35 +600,11 @@
         return getaddress__vm_d2i();
     case VM_RT_D2L:
         return (void *)vm_d2l; 
-    case VM_RT_LSHL:
-        return getaddress__vm_lshl_naked();
-    case VM_RT_LSHR:
-        return getaddress__vm_lshr_naked();
-    case VM_RT_LUSHR:
-        return getaddress__vm_lushr_naked();
     case VM_RT_FREM:
         return getaddress__vm_frem();
     case VM_RT_DREM:
         return getaddress__vm_drem();
-    case VM_RT_LMUL:
-        return (void *)vm_lmul;
-#ifdef VM_LONG_OPT
-    case VM_RT_LMUL_CONST_MULTIPLIER:
-        return (void *)vm_lmul_const_multiplier;
-#endif
-    case VM_RT_CONST_LDIV:
-        return getaddress__vm_const_ldiv_naked() ;
-    case VM_RT_CONST_LREM:
-        return getaddress__vm_const_lrem_naked() ;
-    case VM_RT_DDIV:
-        return (void *)vm_rt_ddiv;
-
-    case VM_RT_IMUL:
-        return (void *)vm_rt_imul_common;
-    case VM_RT_IDIV:
-        return (void *)vm_rt_idiv_common;
-    case VM_RT_IREM:
-        return (void *)vm_rt_irem_common;
+
     case VM_RT_CHAR_ARRAYCOPY_NO_EXC:
         return (void *)vm_rt_char_arraycopy_no_exc;
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_runtime_support_ia32.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_runtime_support_ia32.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_runtime_support_ia32.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ia32/base/jit_runtime_support_ia32.cpp Mon Mar 17 06:48:53 2008
@@ -999,157 +999,6 @@
 } //getaddress__vm_throw_linking_exception_naked
 
 
-
-// 20030321 This JIT support routine expects to be called directly from managed code. 
-void * getaddress__gc_write_barrier_fastcall()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 11;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_MAX/2, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0xcc /*int 3*/, stub_size);
-#endif
-    char *ss = stub;
-
-    ss = push(ss,  ecx_opnd);
-
-#ifdef REFS_RUNTIME_OR_COMPRESSED
-    REFS_RUNTIME_SWITCH_IF
-        // 20030321 Convert a null reference in %ecx from a managed (heap_base) to an unmanaged null (0/NULL). 
-        ss = test(ss,  ecx_opnd,  Imm_Opnd((unsigned)VM_Global_State::loader_env->managed_null));
-        ss = branch8(ss, Condition_NE,  Imm_Opnd(size_8, 0));  // branch around mov 0
-        char *backpatch_address__not_managed_null = ((char *)ss) - 1;
-        ss = mov(ss,  ecx_opnd,  Imm_Opnd(0));
-        signed offset = (signed)ss - (signed)backpatch_address__not_managed_null - 1;
-        *backpatch_address__not_managed_null = (char)offset;
-    REFS_RUNTIME_SWITCH_ENDIF
-#endif // REFS_RUNTIME_OR_UNCOMPRESSED
-
-    ss = call(ss, (char *)gc_write_barrier);
-    ss = alu(ss, add_opc,  esp_opnd,  Imm_Opnd(4));
-
-    ss = ret(ss);
-
-    addr = stub;
-    assert((ss - stub) < stub_size);
-
-    compile_add_dynamic_generated_code_chunk("gc_write_barrier_fastcall", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("gc_write_barrier_fastcall", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__gc_write_barrier_fastcall", ss - stub);
-
-    return addr;
-} //getaddress__gc_write_barrier_fastcall
-
-
-static int64 __stdcall vm_lrem(int64 m, int64 n);
-
-static int64 __stdcall vm_lrem(int64 m, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    return m % n;
-} //vm_lrem
-
-
-void * getaddress__vm_lrem_naked()
-{
-    static void *addr = 0;
-    if (addr) {
-        return addr;
-    }
-
-    const int stub_size = 25;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0xcc /*int 3*/, stub_size);
-#endif
-    char *ss = stub;
-    ss = mov(ss,  eax_opnd,  M_Base_Opnd(esp_reg, +12) );
-    ss = alu(ss, or_opc,  eax_opnd,  M_Base_Opnd(esp_reg, +16));
-    ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0));
-    char *backpatch_address__divide_by_zero = ((char *)ss) - 1;
- 
-    ss = jump(ss, (char *)vm_lrem);
-
-    signed offset = (signed)ss - (signed)backpatch_address__divide_by_zero - 1;
-    *backpatch_address__divide_by_zero = (char)offset;
-
-    ss = gen_setup_j2n_frame(ss);
-    ss = call(ss, (char *)vm_throw_java_lang_ArithmeticException);
-    assert((ss - stub) <= stub_size);
-    addr = stub;
-
-    compile_add_dynamic_generated_code_chunk("vm_lrem_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_lrem_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_lrem_naked", ss - stub);
-
-    return addr;
-} //getaddress__vm_lrem_naked
-
-
-static int64 __stdcall vm_ldiv(int64 m, int64 n);
-
-static int64 __stdcall vm_ldiv(int64 m, int64 n)
-{
-    assert(!hythread_is_suspend_enabled());
-    assert(n);
-    return m / n;
-} //vm_ldiv
-
-
-static void *getaddress__vm_ldiv_naked()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-
-    const int stub_size = 25;
-    char *stub = (char *)malloc_fixed_code_for_jit(stub_size, DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_DEFAULT, CAA_Allocate);
-#ifdef _DEBUG
-    memset(stub, 0x90, stub_size);   // nop
-#endif
-    char *s = stub;
-    s = mov(s,  eax_opnd,  M_Base_Opnd(esp_reg, 12));
-    s = alu(s, or_opc,  eax_opnd,  M_Base_Opnd(esp_reg, 16));
-    s = branch8(s, Condition_E,  Imm_Opnd(size_8, 5));  // skip 5 bytes over the next instruction
-    s = jump32(s,  Imm_Opnd((((uint32)vm_ldiv) - ((uint32)s)) - 5));
-
-    s = gen_setup_j2n_frame(s);
-
-    s = call(s, (char *)vm_throw_java_lang_ArithmeticException);
-
-
-    assert((s - stub) <= stub_size);
-    addr = stub;
-
-    compile_add_dynamic_generated_code_chunk("vm_ldiv_naked", false, stub, stub_size);
-
-    if (jvmti_should_report_event(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
-        jvmti_send_dynamic_code_generated_event("vm_ldiv_naked", stub, stub_size);
-    }
-
-    DUMP_STUB(stub, "getaddress__vm_ldiv_naked", s - stub);
-
-    return addr;
-} //getaddress__vm_ldiv_naked
-
-
-
-
-
-
 #ifdef VM_STATS
 
 static void register_request_for_rt_function(VM_RT_SUPPORT f) {
@@ -1207,9 +1056,6 @@
         }
     case VM_RT_AASTORE_TEST:
         return (void *)vm_aastore_test;
-    case VM_RT_WRITE_BARRIER_FASTCALL:
-        return getaddress__gc_write_barrier_fastcall();
-
     case VM_RT_CHECKCAST:
         return getaddress__vm_checkcast_naked();
 
@@ -1237,30 +1083,12 @@
     case VM_RT_THROW_LINKING_EXCEPTION:
         return getaddress__vm_throw_linking_exception_naked();
 
-    case VM_RT_LREM:
-        return getaddress__vm_lrem_naked();
-    case VM_RT_LDIV:
-        return getaddress__vm_ldiv_naked();
-
     case VM_RT_F2I:
     case VM_RT_F2L:
     case VM_RT_D2I:
     case VM_RT_D2L:
-    case VM_RT_LSHL:
-    case VM_RT_LSHR:
-    case VM_RT_LUSHR:
     case VM_RT_FREM:
     case VM_RT_DREM:
-    case VM_RT_LMUL:
-#ifdef VM_LONG_OPT
-    case VM_RT_LMUL_CONST_MULTIPLIER:
-#endif
-    case VM_RT_CONST_LDIV:
-    case VM_RT_CONST_LREM:
-    case VM_RT_DDIV:
-    case VM_RT_IMUL:
-    case VM_RT_IDIV:
-    case VM_RT_IREM:
     case VM_RT_CHAR_ARRAYCOPY_NO_EXC:
         return get_generic_rt_support_addr_ia32(f);
     case VM_RT_GC_HEAP_WRITE_REF:

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/arithmetic_helpers_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/arithmetic_helpers_ipf.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/arithmetic_helpers_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/arithmetic_helpers_ipf.cpp Mon Mar 17 06:48:53 2008
@@ -77,59 +77,6 @@
 } //get_vm_rt_athrow_naked_div_compactor
 
 
-
-int32 vm_rt_imul(int32 a, int32 b)
-{
-    int result = a * b;
-    return result;
-} //vm_rt_imul
-
-
-
-int64 vm_rt_lmul(int64 a, int64 b)
-{
-    int64 result = a * b;
-    return result;
-} //vm_rt_lmul
-
-
-
-int32 vm_rt_irem(int32 a, int32 b)
-{
-    assert(b);
-    int32 result = a % b;
-    return result;
-} //vm_rt_irem
-
-
-
-int64 vm_rt_lrem(int64 a, int64 b)
-{
-    assert(b);
-    int64 result = a % b;
-    return result;
-} //vm_rt_lrem
-
-
-
-int32 vm_rt_idiv(int32 a, int32 b)
-{
-    assert(b);
-    int32 result = a / b;
-    return result;
-} //vm_rt_idiv
-
-
-
-int64 vm_rt_ldiv(int64 a, int64 b)
-{
-    assert(b);
-    int64 result = a / b;
-    return result;
-} //vm_rt_ldiv
-
-
-
 float vm_rt_frem(float a, float b)
 {
     float result = (float) fmod(a, b);
@@ -138,14 +85,6 @@
 
 
 
-float vm_rt_fdiv(float a, float b)
-{
-    float result = a / b;
-    return result;
-} //vm_rt_fdiv
-
-
-
 double vm_rt_drem(double a, double b)
 {
     double result = fmod(a, b);
@@ -154,12 +93,6 @@
 
 
 
-double vm_rt_ddiv(double a, double b)
-{
-    double result = a / b;
-    return result;
-} //vm_rt_ddiv
-
 // gashiman - fix _isnan on linux
 #ifdef PLATFORM_POSIX
 #define _isnan isnan
@@ -199,99 +132,5 @@
     }
     return result;
 } //vm_rt_f2l
-
-
-
-void *get_vm_rt_int_div_address_compactor(void *func, char *stub_name)
-{
-    void *addr = 0;
-    tl::MemoryPool mem_pool;
-    Merced_Code_Emitter emitter(mem_pool, 2, 0);
-    emitter.disallow_instruction_exchange();
-    emitter.memory_type_is_unknown();
-    
-    emitter.ipf_cmp(icmp_eq, cmp_none, SCRATCH_PRED_REG2, SCRATCH_PRED_REG, 33, 0, false);
-    
-    uint64 func_addr = (uint64)*(void **)func;
-    emit_movl_compactor(emitter, SCRATCH_GENERAL_REG, func_addr);
-    emitter.ipf_mtbr(SCRATCH_BRANCH_REG, SCRATCH_GENERAL_REG);
-    emitter.ipf_bri(br_cond, br_many, br_sptk, br_none, SCRATCH_BRANCH_REG, SCRATCH_PRED_REG);
-
-    //The following may be broken...
-    uint64 vm_rt_athrow_naked_div_addr = (uint64)get_vm_rt_athrow_naked_div_compactor();
-
-    emit_movl_compactor(emitter, SCRATCH_GENERAL_REG, vm_rt_athrow_naked_div_addr);
-    
-    emit_movl_compactor(emitter, 33, (uint64)VM_Global_State::loader_env->java_lang_ArithmeticException_Class);
-    
-    emitter.ipf_add(32, 0, 0);
-
-    emitter.ipf_mtbr(SCRATCH_BRANCH_REG, SCRATCH_GENERAL_REG);
-    emitter.ipf_bri(br_cond, br_many, br_sptk, br_none, SCRATCH_BRANCH_REG);
-
-    addr = finalize_stub(emitter, stub_name);
-    return addr;
-} //get_vm_rt_int_div_address_compactor
-
-
-
-void *get_vm_rt_lrem_address()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-    
-    // gashiman - added (void*) to make it compile on gcc
-    addr = get_vm_rt_int_div_address_compactor((void*)vm_rt_lrem, "rt_lrem");
-
-    return addr;
-} //get_vm_rt_lrem_address
-
-
-
-void *get_vm_rt_ldiv_address()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-
-    // gashiman - added (void*) to make it compile on gcc
-    addr = get_vm_rt_int_div_address_compactor((void*)vm_rt_ldiv, "rt_ldiv");
-
-    return addr;
-} //get_vm_rt_ldiv_address
-
-
-
-void *get_vm_rt_irem_address()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-
-    // gashiman - added (void*) to make it compile on gcc
-    addr = get_vm_rt_int_div_address_compactor((void*)vm_rt_irem, "rt_irem");
-
-    return addr;
-} //get_vm_rt_irem_address
-
-
-
-void *get_vm_rt_idiv_address()
-{
-    static void *addr = 0;
-    if(addr) {
-        return addr;
-    }
-
-    // gashiman - added (void*) to make it compile on gcc
-    addr = get_vm_rt_int_div_address_compactor((void*)vm_rt_idiv, "rt_idiv");
-
-    return addr;
-} //get_vm_rt_idiv_address
-
 
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/jit_runtime_support_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/jit_runtime_support_ipf.cpp?rev=637887&r1=637886&r2=637887&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/jit_runtime_support_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/jit_runtime_support_ipf.cpp Mon Mar 17 06:48:53 2008
@@ -81,23 +81,11 @@
 
 ///////// begin arithmetic helpers
 
-int32 vm_rt_imul(int32 a, int32 b);
-int64 vm_rt_lmul(int64 a, int64 b);
-int32 vm_rt_irem(int32 a, int32 b);
-int64 vm_rt_lrem(int64 a, int64 b);
-int32 vm_rt_idiv(int32 a, int32 b);
-int64 vm_rt_ldiv(int64 a, int64 b);
 float vm_rt_frem(float a, float b);
-float vm_rt_fdiv(float a, float b);
 double vm_rt_drem(double a, double b);
-double vm_rt_ddiv(double a, double b);
 int32 vm_rt_f2i(float f);
 int64 vm_rt_f2l(float f);
 void *get_vm_rt_int_div_address_compactor(void *func, char *stub_name);
-void *get_vm_rt_lrem_address();
-void *get_vm_rt_ldiv_address();
-void *get_vm_rt_irem_address();
-void *get_vm_rt_idiv_address();
 
 ///////// end arithmetic helpers
 
@@ -2395,16 +2383,6 @@
 }
 
 
-static void *get_fdiv_compactor()
-{
-    static void *addr = NULL;
-    if (addr == NULL)
-        addr = create_direct_helper_call_wrapper((void **)vm_rt_fdiv, 2, "fdiv_wrapper_compactor");
-    // maybe it should take 0 arguments since both are floating point
-    return addr;
-}
-
-
 static void *get_frem_compactor()
 {
     static void *addr = NULL;
@@ -2445,25 +2423,6 @@
 }
 
 
-static void *get_lmul_compactor()
-{
-    static void *addr = NULL;
-    if (addr == NULL)
-        addr = create_direct_helper_call_wrapper((void **)vm_rt_lmul, 2, "lmul_wrapper_compactor");
-    return addr;
-}
-
-
-static void *get_imul_compactor()
-{
-    static void *addr = NULL;
-    if (addr == NULL)
-        addr = create_direct_helper_call_wrapper((void **)vm_rt_imul, 2, "imul_wrapper_compactor");
-    return addr;
-}
-
-
-
 #ifdef VM_STATS
 
 static void increment_helper_count(VM_RT_SUPPORT f) {
@@ -2637,44 +2596,12 @@
         fptr = get_f2l_compactor();
         dereference_fptr = false;
         break;
-    case VM_RT_LMUL:
-        fptr = get_lmul_compactor();
-        dereference_fptr = false;
-        break;
-    case VM_RT_LREM:
-        fptr = get_vm_rt_lrem_address();
-        dereference_fptr = false;
-        break;
-    case VM_RT_LDIV:
-        fptr = get_vm_rt_ldiv_address();
-        dereference_fptr = false;
-        break;
-    case VM_RT_IMUL:
-        fptr = get_imul_compactor();
-        dereference_fptr = false;
-        break;
-    case VM_RT_IREM:
-        fptr = get_vm_rt_irem_address();
-        dereference_fptr = false;
-        break;
-    case VM_RT_IDIV:
-        fptr = get_vm_rt_idiv_address();
-        dereference_fptr = false;
-        break;
     case VM_RT_FREM:
         fptr = get_frem_compactor();
         dereference_fptr = false;
         break;
-    case VM_RT_FDIV:
-        fptr = get_fdiv_compactor();
-        dereference_fptr = false;
-        break;
     case VM_RT_DREM:
         fptr = get_drem_compactor();
-        dereference_fptr = false;
-        break;
-    case VM_RT_DDIV:
-        fptr = get_fdiv_compactor();
         dereference_fptr = false;
         break;
     case VM_RT_CHECKCAST: