[svn:parrot] r44645 - in branches/pcc_hackathon_6Mar10: include/parrot src/call

allison at svn.parrot.org allison at svn.parrot.org
Fri Mar 5 14:09:52 UTC 2010


Author: allison
Date: Fri Mar  5 14:09:50 2010
New Revision: 44645
URL: https://trac.parrot.org/parrot/changeset/44645

Log:
[pcc] Remove unused function to build a special return signature from
an op, now that return signatures are the same as call signatures.

Modified:
   branches/pcc_hackathon_6Mar10/include/parrot/call.h
   branches/pcc_hackathon_6Mar10/src/call/args.c

Modified: branches/pcc_hackathon_6Mar10/include/parrot/call.h
==============================================================================
--- branches/pcc_hackathon_6Mar10/include/parrot/call.h	Fri Mar  5 14:00:54 2010	(r44644)
+++ branches/pcc_hackathon_6Mar10/include/parrot/call.h	Fri Mar  5 14:09:50 2010	(r44645)
@@ -188,17 +188,6 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_build_sig_object_returns_from_op(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *signature),
-    ARGIN(PMC *raw_sig),
-    ARGIN(opcode_t *raw_args))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(3)
-        __attribute__nonnull__(4);
-
-PARROT_EXPORT
 void Parrot_pcc_fill_params_from_c_args(PARROT_INTERP,
     ARGMOD(PMC *call_object),
     ARGIN(const char *signature),

Modified: branches/pcc_hackathon_6Mar10/src/call/args.c
==============================================================================
--- branches/pcc_hackathon_6Mar10/src/call/args.c	Fri Mar  5 14:00:54 2010	(r44644)
+++ branches/pcc_hackathon_6Mar10/src/call/args.c	Fri Mar  5 14:09:50 2010	(r44645)
@@ -732,95 +732,6 @@
     }
 }
 
-/*
-
-=item C<PMC* Parrot_pcc_build_sig_object_returns_from_op(PARROT_INTERP, PMC
-*signature, PMC *raw_sig, opcode_t *raw_args)>
-
-Take a raw signature and argument list from a set_results opcode and
-convert it to a CallContext PMC. Uses an existing CallContext PMC if
-one was already created for set_args. Otherwise, creates a new one.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC*
-Parrot_pcc_build_sig_object_returns_from_op(PARROT_INTERP, ARGIN_NULLOK(PMC *signature),
-        ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_args))
-{
-    ASSERT_ARGS(Parrot_pcc_build_sig_object_returns_from_op)
-    PMC            *call_object;
-    INTVAL         *int_array;
-    PMC            * const ctx  = CURRENT_CONTEXT(interp);
-    INTVAL          returns_pos = 0;
-    INTVAL          arg_index;
-    INTVAL          arg_count;
-
-    if (PMC_IS_NULL(signature))
-        call_object = Parrot_pmc_new(interp, enum_class_CallContext);
-    /* A hack to support 'get_results' as the way of fetching the
-     * exception object inside an exception handler. The first argument
-     * in the call object is the exception, stick it directly into the
-     * destination register. */
-    else if (CALLSIGNATURE_is_exception_TEST(signature)) {
-        const INTVAL raw_index = raw_args[2];
-        CTX_REG_PMC(ctx, raw_index) =
-                VTABLE_get_pmc_keyed_int(interp, signature, 0);
-        return NULL;
-    }
-    else
-        call_object = signature;
-
-    /* a little encapsulation violation for great speed */
-    SETATTR_CallContext_return_flags(interp, call_object, raw_sig);
-
-    GETATTR_FixedIntegerArray_size(interp, raw_sig, arg_count);
-    GETATTR_FixedIntegerArray_int_array(interp, raw_sig, int_array);
-
-    for (arg_index = 0; arg_index < arg_count; arg_index++) {
-        STRING * const signature = CONST_STRING(interp, "signature");
-        const INTVAL arg_flags = int_array[arg_index];
-        const INTVAL raw_index = raw_args[arg_index + 2];
-
-        /* Returns store a pointer to the register, so they can pass
-         * the result back to the caller. */
-        switch (PARROT_ARG_TYPE_MASK_MASK(arg_flags)) {
-          case PARROT_ARG_INTVAL:
-            csr_push_pointer(interp, call_object, &(CTX_REG_INT(ctx, raw_index)),
-                        PARROT_ARG_INTVAL);
-            break;
-          case PARROT_ARG_FLOATVAL:
-            csr_push_pointer(interp, call_object, &(CTX_REG_NUM(ctx, raw_index)),
-                        PARROT_ARG_FLOATVAL);
-            break;
-          case PARROT_ARG_STRING:
-            if (arg_flags & PARROT_ARG_NAME) {
-                STRING * string_val = arg_flags & PARROT_ARG_CONSTANT
-                                    ? Parrot_pcc_get_string_constant(interp, ctx, raw_index)
-                                    : CTX_REG_STR(ctx, raw_index);
-                csr_push_pointer(interp, call_object, string_val, PARROT_ARG_STRING);
-            }
-            else {
-                csr_push_pointer(interp, call_object,
-                            &(CTX_REG_STR(ctx, raw_index)), PARROT_ARG_STRING);
-            }
-            break;
-          case PARROT_ARG_PMC:
-            csr_push_pointer(interp, call_object, &(CTX_REG_PMC(ctx, raw_index)),
-                        PARROT_ARG_PMC);
-            break;
-          default:
-            break;
-        }
-
-    }
-
-    return call_object;
-}
 
 /*
 


More information about the parrot-commits mailing list