PatchSet 7479 
Date: 2007/05/09 13:43:50
Author: inaba
Branch: HEAD
Tag: (none) 
Log:
Reorder function definitions for m68k jit staffs.

Members: 
        ChangeLog:1.4978->1.4979 
        config/m68k/jit-m68k.def:1.11->1.12 
        config/m68k/jit3-m68k.def:1.15->1.16 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4978 kaffe/ChangeLog:1.4979
--- kaffe/ChangeLog:1.4978      Thu May  3 08:51:56 2007
+++ kaffe/ChangeLog     Wed May  9 13:43:50 2007
@@ -1,3 +1,8 @@
+2007-05-09  Kiyo Inaba <[EMAIL PROTECTED]>
+
+       * config/m68k/jit-m68k.def,
+       config/m68k/jit3-m68k.def: Reorder function definitions.
+
 2007-05-03  Dalibor Topic  <[EMAIL PROTECTED]>
 
        * libraries/javalib/external/classpath/tools/Makefile.am:
Index: kaffe/config/m68k/jit-m68k.def
diff -u kaffe/config/m68k/jit-m68k.def:1.11 kaffe/config/m68k/jit-m68k.def:1.12
--- kaffe/config/m68k/jit-m68k.def:1.11 Mon May  9 23:35:57 2005
+++ kaffe/config/m68k/jit-m68k.def      Wed May  9 13:43:52 2007
@@ -1256,19 +1256,6 @@
 #endif
 }
 
-define_insn(epilogue, epilogue_xxx)
-{
-       KaffeJIT_setEpilogueLabel ((uintp)CODEPC);
-
-#if defined(HAVE_NO_MOVEM)
-#else
-       op_moveml_pr(REG_sp, RESTOREMASK);
-#endif
-
-       op_unlk_a(REG_fp);
-       op_rts();
-}
-
 define_insn(eprologue, eprologue_xxx)
 {
        int framesize = (maxLocal - maxArgs + maxStack + maxTemp) * SLOTSIZE;
@@ -1286,6 +1273,19 @@
        op_moveal_aa(REG_a0, REG_sp);
 }
 
+define_insn(epilogue, epilogue_xxx)
+{
+       KaffeJIT_setEpilogueLabel ((uintp)CODEPC);
+
+#if defined(HAVE_NO_MOVEM)
+#else
+       op_moveml_pr(REG_sp, RESTOREMASK);
+#endif
+
+       op_unlk_a(REG_fp);
+       op_rts();
+}
+
 #if defined(JIT3)
 define_insn(check_stack_limit, check_stack_limit_xRC)
 {
@@ -1476,6 +1476,16 @@
 
 /* --------------------------------------------------------------------- */
 
+define_insn(add_int, addi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_addl_dd(r, w);
+}
+
 define_insn(add_int_const, addi_RRC)
 {
        int o = const_int(2);
@@ -1491,24 +1501,24 @@
        }
 }
 
-define_insn(add_int, addi_RRR)
+define_insn(adc_int, adci_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_addl_dd(r, w);
+       op_addxl_dd(r, w);
 }
 
-define_insn(adc_int, adci_RRR)
+define_insn(add_ref, addr_RRR)
 {
        int r = rreg_int(2);
-       int w = rwreg_int(0);
+       int w = rwreg_ref(0);
 
-       assert(rreg_int(1) == w);
+       assert(rreg_ref(1) == w);
 
-       op_addxl_dd(r, w);
+       op_addal_da(r, w);
 }
 
 define_insn(add_ref_const, addr_RRC)
@@ -1531,16 +1541,6 @@
        }
 }
 
-define_insn(add_ref, addr_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_ref(0);
-
-       assert(rreg_ref(1) == w);
-
-       op_addal_da(r, w);
-}
-
 define_insn(add_float, addf_RRR)
 {
        int r = rreg_float(2);
@@ -1561,6 +1561,16 @@
        op_fdaddx_ff(r, w);
 }
 
+define_insn(sub_int, subi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_subl_dd(r, w);
+}
+
 define_insn(sub_int_const, subi_RRC)
 {
        int o = const_int(2);
@@ -1576,16 +1586,6 @@
        }
 }
 
-define_insn(sub_int, subi_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_int(0);
-
-       assert(rreg_int(1) == w);
-
-       op_subl_dd(r, w);
-}
-
 define_insn(sbc_int, sbci_RRR)
 {
        int r = rreg_int(2);
@@ -1650,16 +1650,6 @@
        op_fdnegx_ff(r, w);
 }
 
-define_insn(mul_int_const, muli_RRC)
-{
-       int o = const_int(2);
-       int rw = rwreg_int(0);
-
-       assert(rreg_int(1) == rw);
-
-       op_mulsl_id(o, rw);
-}
-
 define_insn(mul_int, muli_RRR)
 {
        int r = rreg_int(2);
@@ -1670,6 +1660,16 @@
        op_mulsl_dd(r, w);
 }
 
+define_insn(mul_int_const, muli_RRC)
+{
+       int o = const_int(2);
+       int rw = rwreg_int(0);
+
+       assert(rreg_int(1) == rw);
+
+       op_mulsl_id(o, rw);
+}
+
 define_insn(mul_float, mulf_RRR)
 {
        int r = rreg_float(2);
@@ -1755,6 +1755,16 @@
 
 /* --------------------------------------------------------------------- */
 
+define_insn(and_int, andi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_andl_dd(r, w);
+}
+
 define_insn(and_int_const, andi_RRC)
 {
        int o = const_int(2);
@@ -1765,34 +1775,34 @@
        op_andl_id(o, rw);
 }
 
-define_insn(and_int, andi_RRR)
+define_insn(or_int, ori_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_andl_dd(r, w);
+       op_orl_dd(r, w);
 }
 
-define_insn(or_int, ori_RRR)
+define_insn(xor_int, xori_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_orl_dd(r, w);
+       op_eorl_dd(r, w);
 }
 
-define_insn(xor_int, xori_RRR)
+define_insn(ashr_int, ashri_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_eorl_dd(r, w);
+       op_asr_dd(r, w);
 }
 
 define_insn(ashr_int_const, ashri_RRC)
@@ -1805,14 +1815,14 @@
        op_asr_id(o, rw);
 }
 
-define_insn(ashr_int, ashri_RRR)
+define_insn(lshr_int, lshri_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_asr_dd(r, w);
+       op_lsr_dd(r, w);
 }
 
 define_insn(lshr_int_const, lshri_RRC)
@@ -1825,14 +1835,14 @@
        op_lsr_id(o, rw);
 }
 
-define_insn(lshr_int, lshri_RRR)
+define_insn(lshl_int, lshli_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_lsr_dd(r, w);
+       op_lsl_dd(r, w);
 }
 
 define_insn(lshl_int_const, lshli_RRC)
@@ -1845,115 +1855,82 @@
        op_lsl_id(o, rw);
 }
 
-define_insn(lshl_int, lshli_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_int(0);
+/* --------------------------------------------------------------------- */
 
-       assert(rreg_int(1) == w);
+define_insn(load_offset_int, loadi_RRC)
+{
+       int o = const_int(2);
+       int r = rreg_ref(1);
+       int w = wreg_int(0);
 
-       op_lsl_dd(r, w);
+       op_movel_od(r, o, w);
 }
 
-define_insn(cmp_int_const, cmpi_xRC)
+define_insn(load_offset_ref, loadr_RRC)
 {
-       int v = const_int(2);
-       int r = rreg_int(1);
+       int o = const_int(2);
+       int r = rreg_ref(1);
+       int w = wreg_ref(0);
 
-       if (v != 0) {
-               op_cmpil_id(v, r);
-       }
-       else {
-               op_tst_d(r);
-       }
+       assert(o >= -0x8000 && o < 0x8000);
+       op_moveal_oa(r, o, w);
 }
 
-define_insn(cmp_int, cmpi_xRR)
+define_insn(store_offset_int, storei_xRRC)
 {
-       int r1 = rreg_int(1);
-       int r2 = rreg_int(2);
+       int o = const_int(2);
+       int w = rreg_ref(1);
+       int r = rreg_int(0);
 
-       op_cmpl_dd(r2, r1);
+       assert(o >= -0x8000 && o < 0x8000);
+       op_movel_do(r, w, o);
 }
 
-define_insn(cmp_ref_const, cmpr_xRC)
+define_insn(store_offset_ref, storer_xRRC)
 {
-       int v = const_int(2);
-       int r = rreg_ref(1);
+       int o = const_int(2);
+       int w = rreg_ref(1);
+       int r = rreg_ref(0);
 
-       if (v != 0) {
-               op_cmpil_ia(v, r);
-       }
-       else {
-               op_tst_a(r);
-       }
+       assert(o >= -0x8000 && o < 0x8000);
+       op_movel_ao(r, w, o);
 }
 
-define_insn(cmp_ref, cmpr_xRR)
+/* --------------------------------------------------------------------- */
+
+define_insn(load_byte, loadb_RxR)
 {
-       int r1 = rreg_ref(1);
-       int r2 = rreg_ref(2);
+       int r = rreg_ref(2);
+       int w = wreg_int(0);
 
-       op_cmpal_aa(r2, r1);
+       op_moveb_Id(r, w);
+       op_extbl_d(w);
 }
 
-#if !defined(HAVE_NO_SWAP_ANY)
-define_insn(swap_any, swap_RxR)
+define_insn(load_char, loadc_RxR)
 {
-       int r1, r2, type = 0;
-
-       if (slotInRegister(2, Rref)) {
-               r2 = rwreg_ref(2);
-               type |= 2;
-       }
-       else {
-               r2 = rwreg_int(2);
-       }
-
-       if (slotInRegister(0, Rref)) {
-               r1 = rwreg_ref(0);
-               type |= 1;
-       }
-       else {
-               r1 = rwreg_int(0);
-       }
+       int r = rreg_ref(2);
+       int w = wreg_int(0);
 
-       switch (type) {
-       case 0:
-               op_exg_dd(r1, r2);
-               break;
-       case 3:
-               op_exg_aa(r1, r2);
-               break;
-       case 2:
-               op_exg_da(r1, r2);
-               break;
-       case 1:
-               op_exg_da(r2, r1);
-               break;
-       default:
-               KAFFEVM_ABORT();
-       }
+       op_clrl_d(w);
+       op_movew_Id(r, w);
 }
-#endif
 
-/* --------------------------------------------------------------------- */
-
-define_insn(load_int, loadi_RxR)
+define_insn(load_short, loads_RxR)
 {
        int r = rreg_ref(2);
        int w = wreg_int(0);
 
-       op_movel_Id(r, w);
+       op_movew_Id(r, w);
+       op_extwl_d(w);
 }
 
-define_insn(load_offset_int, loadi_RRC)
+define_insn(load_int, loadi_RxR)
 {
-       int o = const_int(2);
-       int r = rreg_ref(1);
+       int r = rreg_ref(2);
        int w = wreg_int(0);
 
-       op_movel_od(r, o, w);
+       op_movel_Id(r, w);
 }
 
 define_insn(load_ref, loadr_RxR)
@@ -1964,16 +1941,6 @@
        op_moveal_Ia(r, w);
 }
 
-define_insn(load_offset_ref, loadr_RRC)
-{
-       int o = const_int(2);
-       int r = rreg_ref(1);
-       int w = wreg_ref(0);
-
-       assert(o >= -0x8000 && o < 0x8000);
-       op_moveal_oa(r, o, w);
-}
-
 define_insn(load_float, loadf_RxR)
 {
        int r = rreg_ref(2);
@@ -1990,31 +1957,20 @@
        op_fdmoved_If(r, w);
 }
 
-define_insn(load_byte, loadb_RxR)
-{
-       int r = rreg_ref(2);
-       int w = wreg_int(0);
-
-       op_moveb_Id(r, w);
-       op_extbl_d(w);
-}
-
-define_insn(load_char, loadc_RxR)
+define_insn(store_byte, storeb_xRR)
 {
-       int r = rreg_ref(2);
-       int w = wreg_int(0);
+       int r = rreg_int(2);
+       int w = rreg_ref(1);
 
-       op_clrl_d(w);
-       op_movew_Id(r, w);
+       op_moveb_dI(r, w);
 }
 
-define_insn(load_short, loads_RxR)
+define_insn(store_short, stores_xRR)
 {
-       int r = rreg_ref(2);
-       int w = wreg_int(0);
+       int r = rreg_int(2);
+       int w = rreg_ref(1);
 
-       op_movew_Id(r, w);
-       op_extwl_d(w);
+       op_movew_dI(r, w);
 }
 
 define_insn(store_int, storei_xRR)
@@ -2025,16 +1981,6 @@
        op_movel_dI(r, w);
 }
 
-define_insn(store_offset_int, storei_xRRC)
-{
-       int o = const_int(2);
-       int w = rreg_ref(1);
-       int r = rreg_int(0);
-
-       assert(o >= -0x8000 && o < 0x8000);
-       op_movel_do(r, w, o);
-}
-
 define_insn(store_ref, storer_xRR)
 {
        int r = rreg_ref(2);
@@ -2043,16 +1989,6 @@
        op_movel_aI(r, w);
 }
 
-define_insn(store_offset_ref, storer_xRRC)
-{
-       int o = const_int(2);
-       int w = rreg_ref(1);
-       int r = rreg_ref(0);
-
-       assert(o >= -0x8000 && o < 0x8000);
-       op_movel_ao(r, w, o);
-}
-
 define_insn(store_float, storef_xRR)
 {
        int r = rreg_float(2);
@@ -2069,23 +2005,89 @@
        op_fmoved_fI(r, w);
 }
 
-define_insn(store_byte, storeb_xRR)
+/* --------------------------------------------------------------------- */
+
+define_insn(cmp_int, cmpi_xRR)
 {
-       int r = rreg_int(2);
-       int w = rreg_ref(1);
+       int r1 = rreg_int(1);
+       int r2 = rreg_int(2);
 
-       op_moveb_dI(r, w);
+       op_cmpl_dd(r2, r1);
 }
 
-define_insn(store_short, stores_xRR)
+define_insn(cmp_int_const, cmpi_xRC)
 {
-       int r = rreg_int(2);
-       int w = rreg_ref(1);
+       int v = const_int(2);
+       int r = rreg_int(1);
 
-       op_movew_dI(r, w);
+       if (v != 0) {
+               op_cmpil_id(v, r);
+       }
+       else {
+               op_tst_d(r);
+       }
 }
 
-/* --------------------------------------------------------------------- */
+define_insn(cmp_ref, cmpr_xRR)
+{
+       int r1 = rreg_ref(1);
+       int r2 = rreg_ref(2);
+
+       op_cmpal_aa(r2, r1);
+}
+
+define_insn(cmp_ref_const, cmpr_xRC)
+{
+       int v = const_int(2);
+       int r = rreg_ref(1);
+
+       if (v != 0) {
+               op_cmpil_ia(v, r);
+       }
+       else {
+               op_tst_a(r);
+       }
+}
+
+#if !defined(HAVE_NO_SWAP_ANY)
+define_insn(swap_any, swap_RxR)
+{
+       int r1, r2, type = 0;
+
+       if (slotInRegister(2, Rref)) {
+               r2 = rwreg_ref(2);
+               type |= 2;
+       }
+       else {
+               r2 = rwreg_int(2);
+       }
+
+       if (slotInRegister(0, Rref)) {
+               r1 = rwreg_ref(0);
+               type |= 1;
+       }
+       else {
+               r1 = rwreg_int(0);
+       }
+
+       switch (type) {
+       case 0:
+               op_exg_dd(r1, r2);
+               break;
+       case 3:
+               op_exg_aa(r1, r2);
+               break;
+       case 2:
+               op_exg_da(r1, r2);
+               break;
+       case 1:
+               op_exg_da(r2, r1);
+               break;
+       default:
+               KAFFEVM_ABORT();
+       }
+}
+#endif
 
 define_insn(cvt_int_byte, cvtib_RxR)
 {
@@ -2300,6 +2302,11 @@
        }
 }
 
+define_insn(pusharg_int, pushi_xRC)
+{
+       m68k_pusharg_single(s);
+}
+
 define_insn(pusharg_int_const, pushi_xCC)
 {
        int o = const_int(1);
@@ -2307,8 +2314,7 @@
        op_movel_ip(o, REG_sp);
 }
 
-
-define_insn(pusharg_int, pushi_xRC)
+define_insn(push_ref, pushr_xRC)
 {
        m68k_pusharg_single(s);
 }
@@ -2318,11 +2324,6 @@
        int o = const_int(1);
 
        op_movel_ip(o, REG_sp);
-}
-
-define_insn(push_ref, pushr_xRC)
-{
-       m68k_pusharg_single(s);
 }
 
 define_insn(push_float, pushf_xRC)
Index: kaffe/config/m68k/jit3-m68k.def
diff -u kaffe/config/m68k/jit3-m68k.def:1.15 
kaffe/config/m68k/jit3-m68k.def:1.16
--- kaffe/config/m68k/jit3-m68k.def:1.15        Mon Jun 27 07:27:22 2005
+++ kaffe/config/m68k/jit3-m68k.def     Wed May  9 13:43:52 2007
@@ -1271,6 +1271,28 @@
 #endif
 }
 
+define_insn(eprologue, eprologue_xxx)
+{
+       label* l;
+
+       l = (label*)const_int(1);
+       l->type = Llnegframe|Labsolute|Lgeneral;
+
+       /* Be careful not to dealocate our current frame even for
+          an instant.  */
+       op_moveal_aa(REG_fp, REG_a0);
+       l->at = (uintp)CODEPC+2;
+       op_addal_ia(0, REG_a0);
+
+#if !defined(HAVE_NO_SUBAW)
+       op_subaw_ia(SRNR * SLOTSIZE, REG_a0);
+#else
+       op_subal_ia(SRNR * SLOTSIZE, REG_a0);
+#endif
+
+       op_moveal_aa(REG_a0, REG_sp);
+}
+
 define_insn(epilogue, epilogue_xxx)
 {
        KaffeJIT3_setEpilogueLabel ((uintp)CODEPC);
@@ -1298,28 +1320,6 @@
        op_rts();
 }
 
-define_insn(eprologue, eprologue_xxx)
-{
-       label* l;
-
-       l = (label*)const_int(1);
-       l->type = Llnegframe|Labsolute|Lgeneral;
-
-       /* Be careful not to dealocate our current frame even for
-          an instant.  */
-       op_moveal_aa(REG_fp, REG_a0);
-       l->at = (uintp)CODEPC+2;
-       op_addal_ia(0, REG_a0);
-
-#if !defined(HAVE_NO_SUBAW)
-       op_subaw_ia(SRNR * SLOTSIZE, REG_a0);
-#else
-       op_subal_ia(SRNR * SLOTSIZE, REG_a0);
-#endif
-
-       op_moveal_aa(REG_a0, REG_sp);
-}
-
 #if defined(JIT3)
 define_insn(check_stack_limit, check_stack_limit_xRC)
 {
@@ -1510,6 +1510,16 @@
 
 /* --------------------------------------------------------------------- */
 
+define_insn(add_int, addi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_addl_dd(r, w);
+}
+
 define_insn(add_int_const, addi_RRC)
 {
        int o = const_int(2);
@@ -1525,24 +1535,24 @@
        }
 }
 
-define_insn(add_int, addi_RRR)
+define_insn(adc_int, adci_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_addl_dd(r, w);
+       op_addxl_dd(r, w);
 }
 
-define_insn(adc_int, adci_RRR)
+define_insn(add_ref, addr_RRR)
 {
        int r = rreg_int(2);
-       int w = rwreg_int(0);
+       int w = rwreg_ref(0);
 
-       assert(rreg_int(1) == w);
+       assert(rreg_ref(1) == w);
 
-       op_addxl_dd(r, w);
+       op_addal_da(r, w);
 }
 
 define_insn(add_ref_const, addr_RRC)
@@ -1565,16 +1575,6 @@
        }
 }
 
-define_insn(add_ref, addr_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_ref(0);
-
-       assert(rreg_ref(1) == w);
-
-       op_addal_da(r, w);
-}
-
 define_insn(add_float, addf_RRR)
 {
        int r = rreg_float(2);
@@ -1595,6 +1595,16 @@
        op_fdaddx_ff(r, w);
 }
 
+define_insn(sub_int, subi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_subl_dd(r, w);
+}
+
 define_insn(sub_int_const, subi_RRC)
 {
        int o = const_int(2);
@@ -1610,16 +1620,6 @@
        }
 }
 
-define_insn(sub_int, subi_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_int(0);
-
-       assert(rreg_int(1) == w);
-
-       op_subl_dd(r, w);
-}
-
 define_insn(sbc_int, sbci_RRR)
 {
        int r = rreg_int(2);
@@ -1684,16 +1684,6 @@
        op_fdnegx_ff(r, w);
 }
 
-define_insn(mul_int_const, muli_RRC)
-{
-       int o = const_int(2);
-       int rw = rwreg_int(0);
-
-       assert(rreg_int(1) == rw);
-
-       op_mulsl_id(o, rw);
-}
-
 define_insn(mul_int, muli_RRR)
 {
        int r = rreg_int(2);
@@ -1704,6 +1694,16 @@
        op_mulsl_dd(r, w);
 }
 
+define_insn(mul_int_const, muli_RRC)
+{
+       int o = const_int(2);
+       int rw = rwreg_int(0);
+
+       assert(rreg_int(1) == rw);
+
+       op_mulsl_id(o, rw);
+}
+
 define_insn(mul_float, mulf_RRR)
 {
        int r = rreg_float(2);
@@ -1808,6 +1808,16 @@
 
 /* --------------------------------------------------------------------- */
 
+define_insn(and_int, andi_RRR)
+{
+       int r = rreg_int(2);
+       int w = rwreg_int(0);
+
+       assert(rreg_int(1) == w);
+
+       op_andl_dd(r, w);
+}
+
 define_insn(and_int_const, andi_RRC)
 {
        int o = const_int(2);
@@ -1818,34 +1828,34 @@
        op_andl_id(o, rw);
 }
 
-define_insn(and_int, andi_RRR)
+define_insn(or_int, ori_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_andl_dd(r, w);
+       op_orl_dd(r, w);
 }
 
-define_insn(or_int, ori_RRR)
+define_insn(xor_int, xori_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_orl_dd(r, w);
+       op_eorl_dd(r, w);
 }
 
-define_insn(xor_int, xori_RRR)
+define_insn(ashr_int, ashri_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_eorl_dd(r, w);
+       op_asr_dd(r, w);
 }
 
 define_insn(ashr_int_const, ashri_RRC)
@@ -1858,14 +1868,14 @@
        op_asr_id(o, rw);
 }
 
-define_insn(ashr_int, ashri_RRR)
+define_insn(lshr_int, lshri_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_asr_dd(r, w);
+       op_lsr_dd(r, w);
 }
 
 define_insn(lshr_int_const, lshri_RRC)
@@ -1878,14 +1888,14 @@
        op_lsr_id(o, rw);
 }
 
-define_insn(lshr_int, lshri_RRR)
+define_insn(lshl_int, lshli_RRR)
 {
        int r = rreg_int(2);
        int w = rwreg_int(0);
 
        assert(rreg_int(1) == w);
 
-       op_lsr_dd(r, w);
+       op_lsl_dd(r, w);
 }
 
 define_insn(lshl_int_const, lshli_RRC)
@@ -1898,122 +1908,82 @@
        op_lsl_id(o, rw);
 }
 
-define_insn(lshl_int, lshli_RRR)
-{
-       int r = rreg_int(2);
-       int w = rwreg_int(0);
+/* --------------------------------------------------------------------- */
 
-       assert(rreg_int(1) == w);
+define_insn(load_offset_int, loadi_RRC)
+{
+       int o = const_int(2);
+       int r = rreg_ref(1);
+       int w = wreg_int(0);
 
-       op_lsl_dd(r, w);
+       op_movel_od(r, o, w);
 }
 
-define_insn(cmp_int_const, cmpi_xRC)
+define_insn(load_offset_ref, loadr_RRC)
 {
-       int v = const_int(2);
-       int r = rreg_int(1);
+       int o = const_int(2);
+       int r = rreg_ref(1);
+       int w = wreg_ref(0);
 
-       if (v != 0) {
-               op_cmpil_id(v, r);
-       }
-       else {
-               op_tst_d(r);

*** Patch too long, truncated ***

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to