Author: zoltan
Date: 2008-02-06 16:31:03 -0500 (Wed, 06 Feb 2008)
New Revision: 95078

Modified:
   trunk/mono/mono/mini/ChangeLog
   trunk/mono/mono/mini/aliasing.c
   trunk/mono/mono/mini/graph.c
   trunk/mono/mono/mini/inssel.brg
   trunk/mono/mono/mini/local-propagation.c
   trunk/mono/mono/mini/mini-alpha.c
   trunk/mono/mono/mini/mini-amd64.c
   trunk/mono/mono/mini/mini-arm.c
   trunk/mono/mono/mini/mini-hppa.c
   trunk/mono/mono/mini/mini-ia64.c
   trunk/mono/mono/mini/mini-mips.c
   trunk/mono/mono/mini/mini-ops.h
   trunk/mono/mono/mini/mini-ppc.c
   trunk/mono/mono/mini/mini-s390.c
   trunk/mono/mono/mini/mini-s390x.c
   trunk/mono/mono/mini/mini-sparc.c
   trunk/mono/mono/mini/mini-x86.c
   trunk/mono/mono/mini/mini.c
   trunk/mono/mono/mini/ssa.c
Log:
2008-02-06  Zoltan Varga  <[EMAIL PROTECTED]>

        * mini-ops.h: Add new opcodes OP_CALL/OP_CALLVIRT.

        * *.c: Use the new opcodes in the IR and back end code.


Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog      2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/ChangeLog      2008-02-06 21:31:03 UTC (rev 95078)
@@ -1,5 +1,9 @@
 2008-02-06  Zoltan Varga  <[EMAIL PROTECTED]>
 
+       * mini-ops.h: Add new opcodes OP_CALL/OP_CALLVIRT.
+
+       * *.c: Use the new opcodes in the IR and back end code.
+
        * mini-ops.h cpu-<ARCH>.md: Correct the name of the bgt_un opcodes.
 
        * mini-amd64.c (emit_call_body): Use a far-call for calling dynamic 
methods.

Modified: trunk/mono/mono/mini/aliasing.c
===================================================================
--- trunk/mono/mono/mini/aliasing.c     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/aliasing.c     2008-02-06 21:31:03 UTC (rev 95078)
@@ -48,7 +48,7 @@
 
 
 #define OP_IS_OUTARG(op) 
(((op)==OP_OUTARG)||((op)==OP_OUTARG_REG)||((op)==OP_OUTARG_IMM)||((op)==OP_OUTARG_R4)||((op)==OP_OUTARG_R8)||((op)==OP_OUTARG_VT))
-#define OP_IS_CALL(op) 
(((op)==CEE_CALLI)||((op)==CEE_CALL)||((op)==CEE_CALLVIRT)||(((op)>=OP_VOIDCALL)&&((op)<=OP_CALL_MEMBASE)))
+#define OP_IS_CALL(op) 
(((op)==CEE_CALLI)||((op)==OP_CALL)||((op)==OP_CALLVIRT)||(((op)>=OP_VOIDCALL)&&((op)<=OP_CALL_MEMBASE)))
 #define OP_IS_STORE(op) 
(((op)==CEE_STIND_REF)||((op)==CEE_STIND_I1)||((op)==CEE_STIND_I2)||((op)==CEE_STIND_I4)||((op)==CEE_STIND_I8)||((op)==CEE_STIND_R4)||((op)==CEE_STIND_R8)||((op)==CEE_STIND_I))
 #define OP_IS_LOAD(op) 
(((op)==CEE_LDIND_REF)||((op)==CEE_LDIND_I1)||((op)==CEE_LDIND_I2)||((op)==CEE_LDIND_I4)||((op)==CEE_LDIND_U1)||((op)==CEE_LDIND_U2)||((op)==CEE_LDIND_U4)||((op)==CEE_LDIND_I8)||((op)==CEE_LDIND_R4)||((op)==CEE_LDIND_R8)||((op)==CEE_LDIND_I))
 #define OP_IS_CONST(op) 
(((op)==OP_ICONST)||((op)==OP_I8CONST)||((op)==OP_R4CONST)||((op)==OP_R8CONST)||((op)==OP_AOTCONST))
@@ -158,8 +158,8 @@
        case CEE_NEWARR:
                printf ("[%s]",  tree->inst_newa_class->name);
                break;
-       case CEE_CALL:
-       case CEE_CALLVIRT:
+       case OP_CALL:
+       case OP_CALLVIRT:
        case OP_FCALL:
        case OP_FCALLVIRT:
        case OP_LCALL:

Modified: trunk/mono/mono/mini/graph.c
===================================================================
--- trunk/mono/mono/mini/graph.c        2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/graph.c        2008-02-06 21:31:03 UTC (rev 95078)
@@ -187,8 +187,8 @@
                fprintf (fp, "[%s]",  tree->inst_newa_class->name);
                mono_print_label (fp, tree->inst_newa_len);
                break;
-       case CEE_CALL:
-       case CEE_CALLVIRT:
+       case OP_CALL:
+       case OP_CALLVIRT:
        case OP_FCALL:
        case OP_FCALLVIRT:
        case OP_LCALL:

Modified: trunk/mono/mono/mini/inssel.brg
===================================================================
--- trunk/mono/mono/mini/inssel.brg     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/inssel.brg     2008-02-06 21:31:03 UTC (rev 95078)
@@ -862,13 +862,13 @@
        mono_bblock_add_inst (s->cbb, tree);
 }
 
-reg: CEE_CALL {
+reg: OP_CALL {
        tree->dreg = state->reg1;
        mono_bblock_add_inst (s->cbb, tree);
 }
 
-reg: CEE_CALLVIRT (reg) {
-       mini_emit_virtual_call (s, state, tree, CEE_CALL, OP_CALL_MEMBASE);
+reg: OP_CALLVIRT (reg) {
+       mini_emit_virtual_call (s, state, tree, OP_CALL, OP_CALL_MEMBASE);
 }
 
 stmt: OP_VOIDCALLVIRT (reg) {
@@ -949,7 +949,7 @@
 
 reg: OP_CALL_REG (OP_ICONST),
 reg: OP_CALL_REG (OP_I8CONST) {
-       tree->opcode = CEE_CALL;
+       tree->opcode = OP_CALL;
        ((MonoCallInst*)tree)->fptr = state->left->tree->inst_p0;
        tree->dreg = state->reg1;
        mono_bblock_add_inst (s->cbb, tree);

Modified: trunk/mono/mono/mini/local-propagation.c
===================================================================
--- trunk/mono/mono/mini/local-propagation.c    2008-02-06 21:16:03 UTC (rev 
95077)
+++ trunk/mono/mono/mini/local-propagation.c    2008-02-06 21:31:03 UTC (rev 
95078)
@@ -702,9 +702,9 @@
                }
 
                break;
-       case CEE_CALL:
+       case OP_CALL:
        case OP_CALL_REG:
-       case CEE_CALLVIRT:
+       case OP_CALLVIRT:
        case OP_LCALL_REG:
        case OP_LCALLVIRT:
        case OP_LCALL:

Modified: trunk/mono/mono/mini/mini-alpha.c
===================================================================
--- trunk/mono/mono/mini/mini-alpha.c   2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-alpha.c   2008-02-06 21:31:03 UTC (rev 95078)
@@ -3676,7 +3676,7 @@
         case OP_LCALL:
         case OP_VCALL:
         case OP_VOIDCALL:
-        case CEE_CALL:
+        case OP_CALL:
           CFG_DEBUG(4) g_print("ALPHA_CHECK: [fcall/lcall/vcall/voidcall/call] 
Target: [");
           call = (MonoCallInst*)ins;
           

Modified: trunk/mono/mono/mini/mini-amd64.c
===================================================================
--- trunk/mono/mono/mini/mini-amd64.c   2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-amd64.c   2008-02-06 21:31:03 UTC (rev 95078)
@@ -2339,7 +2339,7 @@
        /* Move return value to the target register */
        /* FIXME: do this in the local reg allocator */
        switch (ins->opcode) {
-       case CEE_CALL:
+       case OP_CALL:
        case OP_CALL_REG:
        case OP_CALL_MEMBASE:
        case OP_LCALL:
@@ -3187,7 +3187,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        /*
                         * The AMD64 ABI forces callers to know about varargs.

Modified: trunk/mono/mono/mini/mini-arm.c
===================================================================
--- trunk/mono/mono/mini/mini-arm.c     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-arm.c     2008-02-06 21:31:03 UTC (rev 95078)
@@ -2445,7 +2445,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        if (ins->flags & MONO_INST_HAS_METHOD)
                                mono_add_patch_info (cfg, offset, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini-hppa.c
===================================================================
--- trunk/mono/mono/mini/mini-hppa.c    2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-hppa.c    2008-02-06 21:31:03 UTC (rev 95078)
@@ -1565,7 +1565,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        if (ins->flags & MONO_INST_HAS_METHOD)
                                mono_add_patch_info (cfg, offset, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini-ia64.c
===================================================================
--- trunk/mono/mono/mini/mini-ia64.c    2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-ia64.c    2008-02-06 21:31:03 UTC (rev 95078)
@@ -1967,7 +1967,7 @@
        case OP_VOIDCALL_REG:
        case OP_VOIDCALL_MEMBASE:
                break;
-       case CEE_CALL:
+       case OP_CALL:
        case OP_CALL_REG:
        case OP_CALL_MEMBASE:
        case OP_LCALL:
@@ -2722,7 +2722,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
 
                        if (ins->flags & MONO_INST_HAS_METHOD)

Modified: trunk/mono/mono/mini/mini-mips.c
===================================================================
--- trunk/mono/mono/mini/mini-mips.c    2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-mips.c    2008-02-06 21:31:03 UTC (rev 95078)
@@ -2260,7 +2260,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                case OP_FCALL_REG:
                case OP_LCALL_REG:
                case OP_VCALL_REG:
@@ -2276,7 +2276,7 @@
                        case OP_LCALL:
                        case OP_VCALL:
                        case OP_VOIDCALL:
-                       case CEE_CALL:
+                       case OP_CALL:
                                call = (MonoCallInst*)ins;
                                if (ins->flags & MONO_INST_HAS_METHOD)
                                        mono_add_patch_info (cfg, offset, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini-ops.h
===================================================================
--- trunk/mono/mono/mini/mini-ops.h     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-ops.h     2008-02-06 21:31:03 UTC (rev 95078)
@@ -47,6 +47,8 @@
 MINI_OP(OP_VCALLVIRT,  "vcallvirt")
 MINI_OP(OP_VCALL_REG,  "vcall_reg")
 MINI_OP(OP_VCALL_MEMBASE,      "vcall_membase")
+MINI_OP(OP_CALL,       "call")
+MINI_OP(OP_CALLVIRT,   "callvirt")
 MINI_OP(OP_CALL_REG,   "call_reg")
 MINI_OP(OP_CALL_MEMBASE,       "call_membase")
 MINI_OP(OP_TRAP,       "trap")

Modified: trunk/mono/mono/mini/mini-ppc.c
===================================================================
--- trunk/mono/mono/mini/mini-ppc.c     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-ppc.c     2008-02-06 21:31:03 UTC (rev 95078)
@@ -2611,7 +2611,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        if (ins->flags & MONO_INST_HAS_METHOD)
                                mono_add_patch_info (cfg, offset, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini-s390.c
===================================================================
--- trunk/mono/mono/mini/mini-s390.c    2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-s390.c    2008-02-06 21:31:03 UTC (rev 95078)
@@ -3388,7 +3388,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL: {
+               case OP_CALL: {
                        call = (MonoCallInst*)ins;
                        if (ins->flags & MONO_INST_HAS_METHOD)
                                mono_add_patch_info (cfg, offset, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini-s390x.c
===================================================================
--- trunk/mono/mono/mini/mini-s390x.c   2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-s390x.c   2008-02-06 21:31:03 UTC (rev 95078)
@@ -3543,7 +3543,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL: {
+               case OP_CALL: {
                        s390_basr (code, s390_r13, 0);
                        s390_j    (code, 6);
                        call = (MonoCallInst*)ins;

Modified: trunk/mono/mono/mini/mini-sparc.c
===================================================================
--- trunk/mono/mono/mini/mini-sparc.c   2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-sparc.c   2008-02-06 21:31:03 UTC (rev 95078)
@@ -1947,7 +1947,7 @@
        case OP_VOIDCALL_REG:
        case OP_VOIDCALL_MEMBASE:
                break;
-       case CEE_CALL:
+       case OP_CALL:
        case OP_CALL_REG:
        case OP_CALL_MEMBASE:
                g_assert (ins->dreg == sparc_o0);
@@ -2862,7 +2862,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        g_assert (!call->virtual);
                        code = emit_save_sp_to_lmf (cfg, code);

Modified: trunk/mono/mono/mini/mini-x86.c
===================================================================
--- trunk/mono/mono/mini/mini-x86.c     2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini-x86.c     2008-02-06 21:31:03 UTC (rev 95078)
@@ -1946,7 +1946,7 @@
 
        /* Move return value to the target register */
        switch (ins->opcode) {
-       case CEE_CALL:
+       case OP_CALL:
        case OP_CALL_REG:
        case OP_CALL_MEMBASE:
                if (ins->dreg != X86_EAX)
@@ -2661,7 +2661,7 @@
                case OP_LCALL:
                case OP_VCALL:
                case OP_VOIDCALL:
-               case CEE_CALL:
+               case OP_CALL:
                        call = (MonoCallInst*)ins;
                        if (ins->flags & MONO_INST_HAS_METHOD)
                                code = emit_call (cfg, code, 
MONO_PATCH_INFO_METHOD, call->method);

Modified: trunk/mono/mono/mini/mini.c
===================================================================
--- trunk/mono/mono/mini/mini.c 2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/mini.c 2008-02-06 21:31:03 UTC (rev 95078)
@@ -2128,7 +2128,7 @@
 ret_type_to_call_opcode (MonoType *type, int calli, int virt, 
MonoGenericSharingContext *gsctx)
 {
        if (type->byref)
-               return calli? OP_CALL_REG: virt? CEE_CALLVIRT: CEE_CALL;
+               return calli? OP_CALL_REG: virt? OP_CALLVIRT: OP_CALL;
 
 handle_enum:
        type = mini_get_basic_type_from_generic (gsctx, type);
@@ -2143,18 +2143,18 @@
        case MONO_TYPE_CHAR:
        case MONO_TYPE_I4:
        case MONO_TYPE_U4:
-               return calli? OP_CALL_REG: virt? CEE_CALLVIRT: CEE_CALL;
+               return calli? OP_CALL_REG: virt? OP_CALLVIRT: OP_CALL;
        case MONO_TYPE_I:
        case MONO_TYPE_U:
        case MONO_TYPE_PTR:
        case MONO_TYPE_FNPTR:
-               return calli? OP_CALL_REG: virt? CEE_CALLVIRT: CEE_CALL;
+               return calli? OP_CALL_REG: virt? OP_CALLVIRT: OP_CALL;
        case MONO_TYPE_CLASS:
        case MONO_TYPE_STRING:
        case MONO_TYPE_OBJECT:
        case MONO_TYPE_SZARRAY:
        case MONO_TYPE_ARRAY:    
-               return calli? OP_CALL_REG: virt? CEE_CALLVIRT: CEE_CALL;
+               return calli? OP_CALL_REG: virt? OP_CALLVIRT: OP_CALL;
        case MONO_TYPE_I8:
        case MONO_TYPE_U8:
                return calli? OP_LCALL_REG: virt? OP_LCALLVIRT: OP_LCALL;
@@ -2472,7 +2472,7 @@
        if (!MONO_TYPE_IS_VOID (ret) || ret_object) {
                if (ret_object) {
                        call->inst.type = STACK_OBJ;
-                       call->inst.opcode = CEE_CALL;
+                       call->inst.opcode = OP_CALL;
                        temp = mono_compile_create_var (cfg, 
&mono_defaults.string_class->byval_arg, OP_LOCAL);
                } else {
                        type_to_eval_stack_type (cfg, ret, ins);
@@ -8448,7 +8448,7 @@
                if (! (get_domain = mono_arch_get_domain_intrinsic (cfg))) {
                        MonoCallInst *call;
                        
-                       MONO_INST_NEW_CALL (cfg, call, CEE_CALL);
+                       MONO_INST_NEW_CALL (cfg, call, OP_CALL);
                        call->signature = helper_sig_domain_get;
                        call->inst.type = STACK_PTR;
                        call->fptr = mono_domain_get;
@@ -8613,8 +8613,8 @@
                printf ("[%s]",  tree->inst_newa_class->name);
                mono_print_tree (tree->inst_newa_len);
                break;
-       case CEE_CALL:
-       case CEE_CALLVIRT:
+       case OP_CALL:
+       case OP_CALLVIRT:
        case OP_FCALL:
        case OP_FCALLVIRT:
        case OP_LCALL:

Modified: trunk/mono/mono/mini/ssa.c
===================================================================
--- trunk/mono/mono/mini/ssa.c  2008-02-06 21:16:03 UTC (rev 95077)
+++ trunk/mono/mono/mini/ssa.c  2008-02-06 21:31:03 UTC (rev 95078)
@@ -571,7 +571,7 @@
 }
 
 
-#define IS_CALL(op) (op == CEE_CALLI || op == CEE_CALL || op == CEE_CALLVIRT 
|| (op >= OP_VOIDCALL && op <= OP_CALL_MEMBASE))
+#define IS_CALL(op) (op == CEE_CALLI || op == OP_CALL || op == OP_CALLVIRT || 
(op >= OP_VOIDCALL && op <= OP_CALL_MEMBASE))
 
 typedef struct {
        MonoBasicBlock *bb;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to