[svn:parrot] r41899 - in branches/auto_libjit: . config/gen src

jkeenan at svn.parrot.org jkeenan at svn.parrot.org
Sat Oct 17 13:35:26 UTC 2009


Author: jkeenan
Date: Sat Oct 17 13:35:25 2009
New Revision: 41899
URL: https://trac.parrot.org/parrot/changeset/41899

Log:
src/frame_builder_libjit.c and src/frame_builder_libjit.h are generated files
and so should not be in MANIFEST.  Responding to post by plobsing in
https://trac.parrot.org/parrot/ticket/1105.

Deleted:
   branches/auto_libjit/src/frame_builder_libjit.c
   branches/auto_libjit/src/frame_builder_libjit.h
Modified:
   branches/auto_libjit/MANIFEST
   branches/auto_libjit/MANIFEST.generated
   branches/auto_libjit/config/gen/libjit.pm

Modified: branches/auto_libjit/MANIFEST
==============================================================================
--- branches/auto_libjit/MANIFEST	Sat Oct 17 13:31:49 2009	(r41898)
+++ branches/auto_libjit/MANIFEST	Sat Oct 17 13:35:25 2009	(r41899)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Fri Oct 16 23:51:49 2009 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Oct 17 13:02:10 2009 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -1273,8 +1273,6 @@
 src/extend.c                                                []
 src/frame_builder.c                                         []
 src/frame_builder.h                                         []
-src/frame_builder_libjit.c                                  []
-src/frame_builder_libjit.h                                  []
 src/gc/alloc_memory.c                                       []
 src/gc/alloc_resources.c                                    []
 src/gc/api.c                                                []

Modified: branches/auto_libjit/MANIFEST.generated
==============================================================================
--- branches/auto_libjit/MANIFEST.generated	Sat Oct 17 13:31:49 2009	(r41898)
+++ branches/auto_libjit/MANIFEST.generated	Sat Oct 17 13:35:25 2009	(r41899)
@@ -1,12 +1,12 @@
 # $Id$
+# Please re-sort this file after *EVERY* modification
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
-# Please re-sort this file after *EVERY* modification
 blib/lib/libparrot.1.6.0.dylib                    [main]lib
 blib/lib/libparrot.a                              [main]lib
 blib/lib/libparrot.dylib                          [main]lib
-blib/lib/libparrot.so.1.6.0                       [main]lib
 blib/lib/libparrot.so                             [main]lib
+blib/lib/libparrot.so.1.6.0                       [main]lib
 compilers/data_json/data_json.pbc                 [data_json]
 compilers/json/JSON.pbc                           [json]
 compilers/json/JSON/grammar.pbc                   [json]
@@ -37,9 +37,9 @@
 include/parrot/extend_vtable.h                    [main]include
 include/parrot/feature.h                          [main]include
 include/parrot/has_header.h                       [main]include
+include/parrot/oplib/core_ops.h                   [main]include
 include/parrot/oplib/core_ops_cg.h                [main]include
 include/parrot/oplib/core_ops_cgp.h               [main]include
-include/parrot/oplib/core_ops.h                   [main]include
 include/parrot/oplib/core_ops_switch.h            [main]include
 include/parrot/oplib/ops.h                        [main]include
 include/parrot/pbcversion.h                       [devel]include
@@ -48,30 +48,28 @@
 include/parrot/platform_limits.h                  [devel]include
 include/parrot/vtable.h                           [main]include
 install_config.fpmc                               [main]lib
-src/install_config.o                              [main]lib
-src/install_config.obj                            [main]lib
-installable_parrot_config.exe                     [main]bin
+installable_parrot                                [main]bin
+installable_parrot.exe                            [main]bin
 installable_parrot_config                         [main]bin
-installable_parrot_debugger.exe                   [main]bin
+installable_parrot_config.exe                     [main]bin
 installable_parrot_debugger                       [main]bin
-installable_parrot.exe                            [main]bin
-installable_parrot                                [main]bin
-installable_pbc_disassemble.exe                   [main]bin
+installable_parrot_debugger.exe                   [main]bin
+installable_parrot_nqp                            [main]bin
+installable_parrot_nqp.exe                        [main]bin
 installable_pbc_disassemble                       [main]bin
-installable_pbc_dump.exe                          [main]bin
+installable_pbc_disassemble.exe                   [main]bin
 installable_pbc_dump                              [main]bin
-installable_pbc_merge.exe                         [main]bin
+installable_pbc_dump.exe                          [main]bin
 installable_pbc_merge                             [main]bin
-installable_pbc_to_exe.exe                        [main]bin
+installable_pbc_merge.exe                         [main]bin
 installable_pbc_to_exe                            [main]bin
-installable_parrot_nqp.exe                        [main]bin
-installable_parrot_nqp                            [main]bin
+installable_pbc_to_exe.exe                        [main]bin
 lib/Parrot/Config/Generated.pm                    [devel]lib
-libparrot.dll                                     [main]bin
-libparrot.lib                                     [main]bin
 lib/Parrot/OpLib/core.pm                          [devel]lib
-lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm                [devel]lib
 lib/Parrot/PMC.pm                                 [devel]lib
+lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm                [devel]lib
+libparrot.dll                                     [main]bin
+libparrot.lib                                     [main]bin
 parrot.pc                                         [main]pkgconfig
 runtime/parrot/dynext/digest_group.bundle         [library]
 runtime/parrot/dynext/digest_group.dll            [library]
@@ -97,10 +95,10 @@
 runtime/parrot/dynext/match_group.dll             [library]
 runtime/parrot/dynext/match_group.dylib           [library]
 runtime/parrot/dynext/match_group.so              [library]
-runtime/parrot/dynext/math_ops.so                 [library]
 runtime/parrot/dynext/math_ops.bundle             [library]
 runtime/parrot/dynext/math_ops.dll                [library]
 runtime/parrot/dynext/math_ops.dylib              [library]
+runtime/parrot/dynext/math_ops.so                 [library]
 runtime/parrot/dynext/obscure_ops.bundle          [library]
 runtime/parrot/dynext/obscure_ops.dll             [library]
 runtime/parrot/dynext/obscure_ops.dylib           [library]
@@ -145,47 +143,39 @@
 runtime/parrot/include/warnings.pasm              [main]
 runtime/parrot/library/CGI/QueryHash.pbc          [main]
 runtime/parrot/library/Config/JSON.pbc            [main]
-runtime/parrot/library/config.pbc                 [main]
-runtime/parrot/library/config.pir                 [main]
 runtime/parrot/library/Crow.pbc                   [main]
+runtime/parrot/library/Data/Dumper.pbc            [main]
 runtime/parrot/library/Data/Dumper/Base.pbc       [main]
 runtime/parrot/library/Data/Dumper/Default.pbc    [main]
-runtime/parrot/library/Data/Dumper.pbc            [main]
 runtime/parrot/library/Data/Replace.pbc           [main]
 runtime/parrot/library/Digest/MD5.pbc             [main]
-runtime/parrot/library/dumper.pbc                 [main]
 runtime/parrot/library/Getopt/Obj.pbc             [main]
 runtime/parrot/library/HTTP/Daemon.pbc            [main]
 runtime/parrot/library/Iter.pbc                   [main]
 runtime/parrot/library/JSON.pbc                   [main]
-runtime/parrot/library/libpcre.pbc                [main]
-runtime/parrot/library/Math/Random/mt19937ar.pbc  [main]
-runtime/parrot/library/Math/Rand.pbc              [main]
 runtime/parrot/library/MIME/Base64.pbc            [main]
+runtime/parrot/library/Math/Rand.pbc              [main]
+runtime/parrot/library/Math/Random/mt19937ar.pbc  [main]
 runtime/parrot/library/NCI/call_toolkit_init.pbc  [main]
-runtime/parrot/library/ncurses.pbc                [main]
-runtime/parrot/library/OpenGL_funcs.pir           [main]
-runtime/parrot/library/OpenGL_funcs.pbc           [main]
 runtime/parrot/library/OpenGL.pbc                 [main]
+runtime/parrot/library/OpenGL_funcs.pbc           [main]
+runtime/parrot/library/OpenGL_funcs.pir           [main]
 runtime/parrot/library/P6object.pbc               [main]
-runtime/parrot/library/Parrot/Capture_PIR.pbc     [main]
-runtime/parrot/library/Parrot/Coroutine.pbc       [main]
-runtime/parrot/library/Parrot/Exception.pbc       [main]
-runtime/parrot/library/Parrot/HLLCompiler.pbc     [main]
-runtime/parrot/library/parrotlib.pbc              [main]
-runtime/parrot/library/pcore.pbc                  [main]
-runtime/parrot/library/pcre.pbc                   [main]
+runtime/parrot/library/PCT.pbc                    [main]
 runtime/parrot/library/PCT/Grammar.pbc            [main]
 runtime/parrot/library/PCT/HLLCompiler.pbc        [main]
 runtime/parrot/library/PCT/PAST.pbc               [main]
-runtime/parrot/library/PCT.pbc                    [main]
+runtime/parrot/library/PGE.pbc                    [main]
 runtime/parrot/library/PGE/Dumper.pbc             [main]
 runtime/parrot/library/PGE/Glob.pbc               [main]
 runtime/parrot/library/PGE/Hs.pbc                 [main]
-runtime/parrot/library/PGE.pbc                    [main]
 runtime/parrot/library/PGE/Perl6Grammar.pbc       [main]
 runtime/parrot/library/PGE/Text.pbc               [main]
 runtime/parrot/library/PGE/Util.pbc               [main]
+runtime/parrot/library/Parrot/Capture_PIR.pbc     [main]
+runtime/parrot/library/Parrot/Coroutine.pbc       [main]
+runtime/parrot/library/Parrot/Exception.pbc       [main]
+runtime/parrot/library/Parrot/HLLCompiler.pbc     [main]
 runtime/parrot/library/Protoobject.pbc            [main]
 runtime/parrot/library/Range.pbc                  [main]
 runtime/parrot/library/Stream/Base.pbc            [main]
@@ -197,22 +187,34 @@
 runtime/parrot/library/Stream/Replay.pbc          [main]
 runtime/parrot/library/Stream/Sub.pbc             [main]
 runtime/parrot/library/Stream/Writer.pbc          [main]
+runtime/parrot/library/TGE.pbc                    [tge]
 runtime/parrot/library/Tcl/Glob.pbc               [main]
 runtime/parrot/library/TclLibrary.pbc             [main]
+runtime/parrot/library/Test/Builder.pbc           [main]
+runtime/parrot/library/Test/Builder/Output.pbc    [main]
 runtime/parrot/library/Test/Builder/Test.pbc      [main]
-runtime/parrot/library/Test/Builder/Tester.pbc    [main]
 runtime/parrot/library/Test/Builder/TestPlan.pbc  [main]
-runtime/parrot/library/Test/Builder/Output.pbc    [main]
-runtime/parrot/library/Test/Builder.pbc           [main]
+runtime/parrot/library/Test/Builder/Tester.pbc    [main]
 runtime/parrot/library/Test/Class.pbc             [main]
 runtime/parrot/library/Test/More.pbc              [main]
-runtime/parrot/library/TGE.pbc                    [tge]
-runtime/parrot/library/uuid.pbc                   [main]
+runtime/parrot/library/YAML/Dumper.pbc            [main]
 runtime/parrot/library/YAML/Dumper/Base.pmc       [main]
 runtime/parrot/library/YAML/Dumper/Default.pmc    [main]
-runtime/parrot/library/YAML/Dumper.pbc            [main]
+runtime/parrot/library/config.pbc                 [main]
+runtime/parrot/library/config.pir                 [main]
+runtime/parrot/library/dumper.pbc                 [main]
+runtime/parrot/library/libpcre.pbc                [main]
+runtime/parrot/library/ncurses.pbc                [main]
+runtime/parrot/library/parrotlib.pbc              [main]
+runtime/parrot/library/pcore.pbc                  [main]
+runtime/parrot/library/pcre.pbc                   [main]
+runtime/parrot/library/uuid.pbc                   [main]
 src/call_list.txt                                 [devel]src
+src/frame_builder_libjit.c                        [devel]src
+src/frame_builder_libjit.h                        [devel]src
 src/glut_callbacks.c                              []
+src/install_config.o                              [main]lib
+src/install_config.obj                            [main]lib
 src/jit_emit.h                                    []
 src/nci.c                                         []
 src/null_config.c                                 []

Modified: branches/auto_libjit/config/gen/libjit.pm
==============================================================================
--- branches/auto_libjit/config/gen/libjit.pm	Sat Oct 17 13:31:49 2009	(r41898)
+++ branches/auto_libjit/config/gen/libjit.pm	Sat Oct 17 13:35:25 2009	(r41899)
@@ -29,10 +29,10 @@
     my %data = (
 	description => 'Generate LibJIT specific code',
 	result => '',
-        targets => {
-            frame_builder_h => 'src/frame_builder_libjit.h',
-            frame_builder_c => 'src/frame_builder_libjit.c',
-        },
+    targets => {
+        frame_builder_h => 'src/frame_builder_libjit.h',
+        frame_builder_c => 'src/frame_builder_libjit.c',
+    },
 	templates => {
 	    frame_builder_h => 'config/gen/libjit/frame_builder_libjit_h.in',
 	    frame_builder_c => 'config/gen/libjit/frame_builder_libjit_c.in',
@@ -102,8 +102,9 @@
                       TEMP_func_wrap_decls   => (join "\n", map {$_->{decl}} @function_wrappers),
                       TEMP_func_wrap_defns   => (join "\n", map {$_->{defn}} @function_wrappers) );
 
-    foreach (keys %{$self->{targets}}) {
-        $conf->genfile($self->{templates}{$_}, $self->{targets}{$_});
+    foreach my $t (keys %{$self->{targets}}) {
+        $conf->genfile($self->{templates}{$t}, $self->{targets}{$t});
+        $conf->append_configure_log($t);
     }
 
     return 1;

Deleted: branches/auto_libjit/src/frame_builder_libjit.c
==============================================================================
--- branches/auto_libjit/src/frame_builder_libjit.c	Sat Oct 17 13:35:25 2009	(r41898)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,855 +0,0 @@
-/*
- * ex: set ro:
- * DO NOT EDIT THIS FILE
- * Generated by Parrot::Configure::Compiler from config/gen/libjit/frame_builder_libjit_c.in
- */
-
-/*
-Copyright (C) 2008-2009, Parrot Foundation.
-$Id$
-*/
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER STOP */
-
-#include "parrot/parrot.h"
-#include "pmc/pmc_integer.h"
-#include "pmc/pmc_unmanagedstruct.h"
-#include "pmc/pmc_managedstruct.h"
-#include "frame_builder.h"
-#include "frame_builder_libjit.h"
-
-#ifdef PARROT_HAS_LIBJIT
-
-/*
-
-=over 4
-
-=item C<void *Parrot_jit_build_call_func(PARROT_INTERP, PMC *nci, STRING *sig, void **priv)>
-
-Public interface to NCI function interface builder.
-
-=cut
-
-*/
-
-void *
-Parrot_jit_build_call_func(PARROT_INTERP, PMC *pmc, STRING *sig, void **priv) {
-    void *thunk;
-    char *sig_cstr;
-
-    sig_cstr = Parrot_str_to_cstring(interp, sig);
-    *priv    = mem_sys_allocate(sizeof (struct jit_buffer_private_data));
-
-    thunk    = Parrot_jit_create_thunk(interp, sig_cstr, *priv);
-
-    Parrot_str_free_cstring(sig_cstr);
-
-    return thunk;
-}
-
-/*
-
-=item C<void Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv)>
-
-This is a callback to implement the proper freeing semantics.  It is called by
-the ManagedStruct PMC as it is garbage collected.
-
-=cut
-
-*/
-
-void
-Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv)
-{
-    struct jit_buffer_private_data *jit = (struct jit_buffer_private_data*)priv;
-    jit_context_destroy(jit->ctx);
-    mem_sys_free(jit->sig);
-    mem_sys_free(priv);
-}
-
-/*
-
-=item C<PMC *Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv)>
-
-This is a callback to implement the proper cloning semantics for jit buffers.
-It is called by the ManagedStruct PMC's clone() function.
-
-=back
-
-=cut
-
-*/
-
-PMC *
-Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv)
-{
-    PMC * const rv = pmc_new(interp, pmc->vtable->base_type);
-
-    VTABLE_init(interp, rv);
-    /* copy the attributes */
-    {
-        void (*tmpfreefunc)(PARROT_INTERP, void*, void*);
-        GETATTR_ManagedStruct_custom_free_func(interp, pmc, tmpfreefunc);
-        SETATTR_ManagedStruct_custom_free_func(interp, rv , tmpfreefunc);
-    }
-    {
-        PMC* (*tmpclonefunc)(PARROT_INTERP, PMC*, void*);
-        GETATTR_ManagedStruct_custom_clone_func(interp, pmc, tmpclonefunc);
-        SETATTR_ManagedStruct_custom_clone_func(interp, rv , tmpclonefunc);
-    }
-
-    /* compile a clone of the function */
-    if (PARROT_MANAGEDSTRUCT(pmc)->ptr) {
-        void *rv_priv;
-        struct jit_buffer_private_data *jit = (struct jit_buffer_private_data*)priv;
-        STRING *sig                         = Parrot_str_new(interp, jit->sig, 0);
-        PARROT_MANAGEDSTRUCT(rv)->ptr       = Parrot_jit_build_call_func(interp, rv, sig, &rv_priv);
-    }
-
-    return rv;
-}
-
-/*
- * JIT functions
- */
-
-void *
-Parrot_jit_create_thunk(PARROT_INTERP, char *sig, void *priv) {
-    struct jit_buffer_private_data *p;
-    jit_function_t f;
-    jit_value_t jit_interp, jit_func;
-    jit_type_t *jit_args_t;
-    jit_value_t *jit_args_v, *jit_regs;
-
-    /* populate private data */
-    p      = (struct jit_buffer_private_data*)priv;
-    p->ctx = jit_context_create();
-    p->sig = mem_sys_strdup(sig);
-
-    /* start compiling */
-    jit_context_build_start(p->ctx);
-
-    /* start JIT function */
-    {
-        jit_type_t arg_types[] = {
-            jit_type_void_ptr,  /* interp */
-            jit_type_void_ptr   /* nci_info */
-        };
-        jit_type_t f_sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_types, 2, 1);
-        f                = jit_function_create(p->ctx, f_sig);
-    }
-
-    /* get the incomming args */
-    jit_interp = jit_value_get_param(f, 0);
-    jit_func   = jit__vtable_get_pointer(f, jit_interp, jit_value_get_param(f, 1));
-
-    /* get the outgoing args */
-    {
-        jit_value_t st;
-        int nargs;
-
-        {
-            jit_value_t sizeof_call_state
-                = jit_value_create_nint_constant(f, jit_type_sys_int, sizeof (call_state));
-            st  = jit_insn_alloca(f, sizeof_call_state);
-        }
-
-        nargs = Parrot_jit_parse_sig_args_pre(interp, sig, f, jit_interp, st,
-                                              &jit_args_t, &jit_args_v, &jit_regs);
-
-        /* get the return type */
-        {
-            jit_type_t ret_t;
-            jit_value_t ret_v;
-
-            ret_t = Parrot_jit_parse_sig_ret_pre(interp, sig);
-
-            /* make the call */
-            {
-                jit_type_t jit_sig
-                          = jit_type_create_signature(jit_abi_cdecl, ret_t, jit_args_t, nargs, 1);
-                ret_v     = jit_insn_call_indirect(f, jit_func, jit_sig, jit_args_v, nargs, 0);
-            }
-
-            /* get the incomming return */
-            Parrot_jit_parse_sig_ret_post(interp, sig, f, jit_interp, st, ret_v);
-        }
-
-        /* clean up args */
-        Parrot_jit_parse_sig_args_post(interp, sig, nargs, f, jit_interp, jit_args_v, jit_regs);
-    }
-
-    /* end JIT function */
-    jit_insn_return(f, NULL);
-
-    /* compile to native callable func poitner */
-    jit_function_compile(f);
-    jit_context_build_end(p->ctx);
-
-    mem_sys_free(jit_args_t);
-    mem_sys_free(jit_args_v);
-    mem_sys_free(jit_regs);
-
-    return jit_function_to_closure(f);
-}
-
-int
-Parrot_jit_parse_sig_args_pre(PARROT_INTERP, char *sig, jit_function_t f,
-                              jit_value_t jinterp, jit_value_t st,
-                              jit_type_t **arg_types,
-                              jit_value_t **arg_vals, jit_value_t **arg_regs) {
-    int nargs, nregs, i, j;
-
-    sig += 1; /* ignore return character */
-
-    nargs = strlen(sig);
-    nregs = Parrot_jit_init_pcc(sig, nargs, f, jinterp, st);
-
-    *arg_types = (jit_type_t *)mem_sys_allocate(nargs * sizeof (jit_type_t));
-    *arg_vals  = (jit_value_t *)mem_sys_allocate(nargs * sizeof (jit_value_t));
-    *arg_regs  = (jit_value_t *)mem_sys_allocate(nregs * sizeof (jit_value_t));
-
-    for (i = 0, j = 0; i < nargs; i++) {
-        char c;
-        jit_type_t t1;
-        jit_value_t v1, v2, v3, v4;
-        switch (c = sig[i]) {
-          case 'I':
-            t1 = JIT_TYPE_INTVAL;
-          read_int_reg:
-            (*arg_types)[i]  = t1;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_I(f, jinterp, st, v1);
-            (*arg_regs)[j++] = (*arg_vals)[i] = v2;
-            break;
-          case 'c':
-            t1 = jit_type_sys_char;
-            goto read_int_reg;
-          case 's':
-            t1 = jit_type_sys_short;
-            goto read_int_reg;
-          case 'i':
-            t1 = jit_type_sys_int;
-            goto read_int_reg;
-          case 'l':
-            t1 = jit_type_sys_long;
-            goto read_int_reg;
-
-          case 'N':
-            t1 = JIT_TYPE_FLOATVAL;
-          read_float_reg:
-            (*arg_types)[i]  = t1;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_N(f, jinterp, st, v1);
-            (*arg_regs)[j++] = (*arg_vals)[i] = v2;
-            break;
-          case 'f':
-            t1 = jit_type_sys_float;
-            goto read_float_reg;
-          case 'd':
-            t1 = jit_type_sys_double;
-            goto read_float_reg;
-
-          case 'S':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_S(f, jinterp, st, v1);
-            (*arg_regs)[j++] = (*arg_vals)[i] = v2;
-            break;
-
-          case 't':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_S(f, jinterp, st, v1);
-            (*arg_regs)[j++] = v2;
-            (*arg_vals)[i]   = jit__Parrot_str_to_cstring(f, jinterp, v2);
-            break;
-
-          case 'b':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_S(f, jinterp, st, v1);
-            (*arg_regs)[j++] = v2;
-            (*arg_vals)[i]   = jit__Buffer_bufstart(f, v2);
-            break;
-          case 'B':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_S(f, jinterp, st, v1);
-            (*arg_regs)[j++] = v2;
-            v3               = jit__Parrot_str_to_cstring(f, jinterp, v2);
-            jit_value_set_addressable(v3);
-            (*arg_vals)[i]   = jit_insn_address_of(f, v3);
-            break;
-
-          case 'p':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_p(f, jinterp, st, v1);
-            (*arg_regs)[j++] = (*arg_vals)[i] = v2;
-            break;
-          case 'P':
-          case 'O':
-          case '@':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_P(f, jinterp, st, v1);
-            (*arg_regs)[j++] = (*arg_vals)[i] = v2;
-            break;
-          case '2':
-            t1 = jit_type_sys_short;
-            goto call_get_integer;
-          case '3':
-            t1 = jit_type_sys_int;
-            goto call_get_integer;
-          case '4':
-            t1 = jit_type_sys_long;
-          call_get_integer:
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_P(f, jinterp, st, v1);
-            (*arg_regs)[j++] = v2;
-            v3               = jit__vtable_get_integer(f, jinterp, v2);
-            v4               = jit_value_create(f, t1);
-            jit_value_set_addressable(v4);
-            jit_insn_store(f, v4, v3);
-            (*arg_vals)[i]   = jit_insn_address_of(f, v4);
-            break;
-
-          case 'V':
-            (*arg_types)[i]  = jit_type_void_ptr;
-            v1               = jit_value_create_nint_constant(f, jit_type_sys_int, j);
-            v2               = jit__get_nci_P(f, jinterp, st, v1);
-            (*arg_regs)[j++] = v2;
-            v3               = jit__vtable_get_pointer(f, jinterp, v2);
-            v4               = jit_value_create(f, jit_type_void_ptr);
-            jit_value_set_addressable(v4);
-            jit_insn_store(f, v4, v3);
-            (*arg_vals)[i]   = jit_insn_address_of(f, v4);
-            break;
-
-          case '0':
-            (*arg_types)[i] = jit_type_void_ptr;
-            (*arg_vals)[i]  = jit_value_create_nint_constant(f, jit_type_void_ptr, (jit_nint)NULL);
-            break;
-
-          case 'J':
-            (*arg_types)[i] = jit_type_void_ptr;
-            (*arg_vals)[i]  = jinterp;
-            break;
-
-          case 'U':
-            /* TODO */
-            Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
-                "arg type 'U' not yet implemented");
-            return -1;
-
-          default:
-            Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
-                "unkown arg type '%c'", c);
-            return -1;
-        }
-    }
-
-    return nargs;
-}
-
-int
-Parrot_jit_init_pcc(char *sig, int nargs, jit_function_t f, jit_value_t interp, jit_value_t st) {
-    int i, j;
-    char pcc_sig[nargs];
-
-    for (i = 0, j = 0; i < nargs; i++) {
-        switch (sig[i]) {
-          case 'I':
-          case 'c':
-          case 's':
-          case 'i':
-          case 'l':
-            pcc_sig[j++] = 'I';
-            break;
-
-          case 'N':
-          case 'f':
-          case 'd':
-            pcc_sig[j++] = 'N';
-            break;
-
-          case 'S':
-          case 't':
-          case 'b':
-          case 'B':
-            pcc_sig[j++] = 'S';
-            break;
-
-          case 'p':
-          case 'P':
-          case 'O':
-          case 'V':
-          case '2':
-          case '3':
-          case '4':
-            pcc_sig[j++] = 'P';
-            break;
-
-          case '@':
-            pcc_sig[j++] = '@';
-            break;
-
-          default:
-            break;
-        }
-    }
-    pcc_sig[j]  = '\0';
-
-    jit__Parrot_init_arg_nci(f, interp, st,
-                             jit_value_create_string_constant(f, pcc_sig, j+1));
-
-    return j;
-}
-
-jit_type_t
-Parrot_jit_parse_sig_ret_pre(PARROT_INTERP, char *sig) {
-    char c;
-    switch (c = sig[0]) {
-      case 'v':
-        return jit_type_void;
-
-      case 'I':
-        return JIT_TYPE_INTVAL;
-      case 'c':
-        return jit_type_sys_char;
-      case 's':
-        return jit_type_sys_short;
-      case 'i':
-        return jit_type_sys_int;
-      case 'l':
-        return jit_type_sys_long;
-
-      case 'N':
-        return JIT_TYPE_FLOATVAL;
-      case 'f':
-        return jit_type_sys_float;
-      case 'd':
-        return jit_type_sys_double;
-
-      case 'S':
-      case 't':
-        return jit_type_void_ptr;
-
-      case 'p':
-      case 'P':
-        return jit_type_void_ptr;
-
-      case 'U':
-        /* TODO */
-        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
-                                    "return type 'U' not yet implemented");
-        return NULL;
-      default:
-        /* FAIL */
-        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
-                                    "unknown return type '%c'", c);
-        return NULL;
-    }
-}
-
-void
-Parrot_jit_parse_sig_ret_post(PARROT_INTERP, char *sig,
-                              jit_function_t f, jit_value_t jinterp, jit_value_t st,
-                              jit_value_t retval) {
-    jit_type_t t1;
-    jit_value_t v1, v2, v3;
-    switch (sig[0]) {
-      case 'v':
-        break;
-
-      case 'I':
-      case 'c':
-      case 's':
-      case 'i':
-      case 'l':
-        jit__set_nci_I(f, jinterp, st, retval);
-        break;
-
-      case 'N':
-      case 'f':
-      case 'd':
-        jit__set_nci_N(f, jinterp, st, retval);
-        break;
-
-      case 'S':
-        jit__set_nci_S(f, jinterp, st, retval);
-        break;
-      case 't':
-        v1 = jit_value_create_nint_constant(f, jit_type_sys_int, 0);
-        v2 = jit__Parrot_str_new(f, jinterp, retval, v1);
-        jit__set_nci_S(f, jinterp, st, v2);
-        break;
-
-      case 'P':
-        jit__set_nci_P(f, jinterp, st, retval);
-        break;
-      case 'p':
-        v1 = jit_value_create_intval_constant(f, enum_class_UnManagedStruct);
-        v2 = jit__pmc_new_noinit(f, jinterp, v1);
-        jit__vtable_set_pointer(f, jinterp, v2, retval);
-        jit__set_nci_P(f, jinterp, st, v2);
-        break;
-      case '2':
-        t1 = jit_type_sys_short;
-        goto create_int_pmc;
-      case '3':
-        t1 = jit_type_sys_int;
-        goto create_int_pmc;
-      case '4':
-        t1 = jit_type_sys_long;
-      create_int_pmc:
-        v1 = jit_insn_load_relative(f, retval, 0, t1);
-        v2 = jit_value_create_intval_constant(f, enum_class_Integer);
-        v3 = jit__pmc_new_noinit(f, jinterp, v2);
-        jit__vtable_set_integer_native(f, jinterp, v3, v1);
-        jit__set_nci_P(f, jinterp, st, v3);
-        break;
-
-      case 'U':
-        /* ignore (failed elsewhere) */
-        break;
-
-      default:
-        /* ignore (failed elsewhere) */
-        break;
-    }
-}
-
-void
-Parrot_jit_parse_sig_args_post(PARROT_INTERP, char *sig, int nargs,
-                               jit_function_t f, jit_value_t jinterp,
-                               jit_value_t *args, jit_value_t *regs) {
-    int i, j;
-
-    sig += 1;
-
-    for (i = 0, j = 0; i < nargs; i++) {
-        jit_type_t t1;
-        jit_value_t v1;
-        switch (sig[i]) {
-          case 't':
-            jit__Parrot_str_free_cstring(f, args[i]);
-            j++;
-            break;
-
-          case 'B':
-            v1 = jit_insn_load_relative(f, args[i], 0, jit_type_void_ptr);
-            jit__Parrot_str_free_cstring(f, v1);
-            j++;
-            break;
-
-          case '2':
-            t1 = jit_type_sys_short;
-            goto set_integer;
-          case '3':
-            t1 = jit_type_sys_int;
-            goto set_integer;
-          case '4':
-            t1 = jit_type_sys_long;
-          set_integer:
-            v1 = jit_insn_load_relative(f, args[i], 0, t1);
-            jit__vtable_set_integer_native(f, jinterp, regs[j], v1);
-            j++;
-            break;
-
-          case 'V':
-            v1 = jit_insn_load_relative(f, args[i], 0, jit_type_void_ptr);
-            jit__vtable_set_pointer(f, jinterp, regs[j], v1);
-            j++;
-            break;
-
-          case 'I':
-          case 'c':
-          case 'i':
-          case 'l':
-          case 'N':
-          case 'f':
-          case 'd':
-          case 'S':
-          case 'b':
-          case 'p':
-          case 'P':
-          case 'O':
-          case '@':
-            j++;
-            break;
-
-          case 'U':
-            /* TODO */
-            break;
-          default:
-            /* ignore */
-            break;
-        }
-    }
-}
-
-jit_value_t
-jit_value_create_intval_constant(jit_function_t f, INTVAL i) {
-    return jit_value_create_nint_constant(f, JIT_TYPE_INTVAL, i);
-}
-
-jit_value_t
-jit_value_create_string_constant(jit_function_t f, char *str, int len) {
-    jit_value_t jit_len, jit_str;
-    int i;
-
-    if (len < 1) {
-        len = strlen(str);
-    }
-
-    jit_len = jit_value_create_nint_constant(f, jit_type_sys_int, len);
-    jit_str = jit_insn_alloca(f, jit_len);
-
-    for (i = 0; i < len; i++) {
-        jit_value_t c = jit_value_create_nint_constant(f, jit_type_sys_char, str[i]);
-        jit_insn_store_relative(f, jit_str, i, c);
-    }
-
-    return jit_str;
-}
-
-/*
- * JIT wrappers
- */
-
-/* custom wrappers */
-jit_value_t
-jit__Buffer_bufstart(jit_function_t f, jit_value_t buf) {
-    return jit_insn_load_relative(f, buf, offsetof(Buffer, _bufstart), jit_type_void_ptr);
-}
-
-/* vtable wrappers */
-jit_value_t
-jit__vtable_get_pointer(jit_function_t f, jit_value_t interp, jit_value_t self ) {
-    jit_type_t sig;
-    jit_value_t vtable, method;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr  };
-    jit_value_t arg_v[] = { interp, self  };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 0 + 2, 1);
-
-    vtable = jit_insn_load_relative(f, self,   offsetof(PMC, vtable),         jit_type_void_ptr);
-    method = jit_insn_load_relative(f, vtable, offsetof(VTABLE, get_pointer), jit_type_void_ptr);
-
-    return jit_insn_call_indirect(f, method, sig, arg_v, 0 + 2, 0);
-}
-
-jit_value_t
-jit__vtable_set_pointer(jit_function_t f, jit_value_t interp, jit_value_t self , jit_value_t v1) {
-    jit_type_t sig;
-    jit_value_t vtable, method;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr , jit_type_void_ptr };
-    jit_value_t arg_v[] = { interp, self , v1 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 1 + 2, 1);
-
-    vtable = jit_insn_load_relative(f, self,   offsetof(PMC, vtable),         jit_type_void_ptr);
-    method = jit_insn_load_relative(f, vtable, offsetof(VTABLE, set_pointer), jit_type_void_ptr);
-
-    return jit_insn_call_indirect(f, method, sig, arg_v, 1 + 2, 0);
-}
-
-jit_value_t
-jit__vtable_set_integer_native(jit_function_t f, jit_value_t interp, jit_value_t self , jit_value_t v1) {
-    jit_type_t sig;
-    jit_value_t vtable, method;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr , JIT_TYPE_INTVAL };
-    jit_value_t arg_v[] = { interp, self , v1 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 1 + 2, 1);
-
-    vtable = jit_insn_load_relative(f, self,   offsetof(PMC, vtable),         jit_type_void_ptr);
-    method = jit_insn_load_relative(f, vtable, offsetof(VTABLE, set_integer_native), jit_type_void_ptr);
-
-    return jit_insn_call_indirect(f, method, sig, arg_v, 1 + 2, 0);
-}
-
-jit_value_t
-jit__vtable_get_integer(jit_function_t f, jit_value_t interp, jit_value_t self ) {
-    jit_type_t sig;
-    jit_value_t vtable, method;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr  };
-    jit_value_t arg_v[] = { interp, self  };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, JIT_TYPE_INTVAL, arg_t, 0 + 2, 1);
-
-    vtable = jit_insn_load_relative(f, self,   offsetof(PMC, vtable),         jit_type_void_ptr);
-    method = jit_insn_load_relative(f, vtable, offsetof(VTABLE, get_integer), jit_type_void_ptr);
-
-    return jit_insn_call_indirect(f, method, sig, arg_v, 0 + 2, 0);
-}
-
-
-/* function wrappers */
-jit_value_t
-jit__Parrot_str_free_cstring(jit_function_t f, jit_value_t v1) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr };
-    jit_value_t arg_v[] = { v1 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 1, 1);
-
-    return jit_insn_call_native(f, "Parrot_str_free_cstring", (void *)&Parrot_str_free_cstring, sig, arg_v, 1, 0);
-}
-
-jit_value_t
-jit__get_nci_N(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_sys_int };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, JIT_TYPE_FLOATVAL, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "get_nci_N", (void *)&get_nci_N, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__Parrot_str_to_cstring(jit_function_t f, jit_value_t v1, jit_value_t v2) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr };
-    jit_value_t arg_v[] = { v1, v2 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 2, 1);
-
-    return jit_insn_call_native(f, "Parrot_str_to_cstring", (void *)&Parrot_str_to_cstring, sig, arg_v, 2, 0);
-}
-
-jit_value_t
-jit__get_nci_S(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_sys_int };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "get_nci_S", (void *)&get_nci_S, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__set_nci_S(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_void_ptr };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "set_nci_S", (void *)&set_nci_S, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__set_nci_N(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, JIT_TYPE_FLOATVAL };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "set_nci_N", (void *)&set_nci_N, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__Parrot_init_arg_nci(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_void_ptr };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "Parrot_init_arg_nci", (void *)&Parrot_init_arg_nci, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__get_nci_I(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_sys_int };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, JIT_TYPE_INTVAL, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "get_nci_I", (void *)&get_nci_I, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__set_nci_I(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, JIT_TYPE_INTVAL };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "set_nci_I", (void *)&set_nci_I, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__Parrot_str_new(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, JIT_TYPE_UINTVAL };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "Parrot_str_new", (void *)&Parrot_str_new, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__set_nci_P(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_void_ptr };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "set_nci_P", (void *)&set_nci_P, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__get_nci_p(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_sys_int };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "get_nci_p", (void *)&get_nci_p, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__get_nci_P(jit_function_t f, jit_value_t v1, jit_value_t v2, jit_value_t v3) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, jit_type_void_ptr, jit_type_sys_int };
-    jit_value_t arg_v[] = { v1, v2, v3 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 3, 1);
-
-    return jit_insn_call_native(f, "get_nci_P", (void *)&get_nci_P, sig, arg_v, 3, 0);
-}
-
-jit_value_t
-jit__pmc_new_noinit(jit_function_t f, jit_value_t v1, jit_value_t v2) {
-    jit_type_t sig;
-    jit_type_t  arg_t[] = { jit_type_void_ptr, JIT_TYPE_INTVAL };
-    jit_value_t arg_v[] = { v1, v2 };
-
-    sig = jit_type_create_signature(jit_abi_cdecl, jit_type_void_ptr, arg_t, 2, 1);
-
-    return jit_insn_call_native(f, "pmc_new_noinit", (void *)&pmc_new_noinit, sig, arg_v, 2, 0);
-}
-
-
-#endif /* PARROT_HAS_LIBJIT */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Deleted: branches/auto_libjit/src/frame_builder_libjit.h
==============================================================================
--- branches/auto_libjit/src/frame_builder_libjit.h	Sat Oct 17 13:35:25 2009	(r41898)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,149 +0,0 @@
-/*
- * ex: set ro:
- * DO NOT EDIT THIS FILE
- * Generated by Parrot::Configure::Compiler from config/gen/libjit/frame_builder_libjit_h.in
- */
-
-/* frame_builder_libjit.h
- * $Id$
- * Copyright (C) 2009, Parrot Foundation.
- */
-
-#ifndef PARROT_FRAME_BUILDER_LIBJIT_H_GUARD
-#define PARROT_FRAME_BUILDER_LIBJIT_H_GUARD
-
-
-#if defined(__cplusplus)
-#  define EXTERN extern "C"
-#else
-#  define EXTERN
-#endif
-
-#include <assert.h>
-#include "parrot/parrot.h"
-#include "frame_builder.h"
-
-#ifdef PARROT_HAS_LIBJIT
-
-#include <jit/jit.h>
-
-/*
- * JITted function state data
- */
-struct jit_buffer_private_data {
-    jit_context_t ctx;
-    char *sig;
-};
-
-/*
- * JIT types
- */
-
-#define JIT_TYPE_UINTVAL  jit_type_sys_ulong // jit_type_sys_ulong
-#define JIT_TYPE_INTVAL   jit_type_sys_long // jit_type_sys_long
-#define JIT_TYPE_FLOATVAL jit_type_sys_double // jit_type_sys_double
-
-/*
- * JIT functions
- */
-
-void *
-Parrot_jit_create_thunk(Interp *, char *, void *);
-
-int
-Parrot_jit_parse_sig_args_pre(Interp *, char *, jit_function_t, jit_value_t, jit_value_t,
-                              jit_type_t **, jit_value_t **, jit_value_t **);
-
-int
-Parrot_jit_init_pcc(char *, int, jit_function_t, jit_value_t, jit_value_t);
-
-jit_type_t
-Parrot_jit_parse_sig_ret_pre(Interp *, char *);
-
-void
-Parrot_jit_parse_sig_ret_post(Interp *, char *, jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-void
-Parrot_jit_parse_sig_args_post(Interp *, char *, int, jit_function_t, jit_value_t, jit_value_t *, jit_value_t *);
-
-jit_value_t
-jit_value_create_intval_constant(jit_function_t, INTVAL);
-
-jit_value_t
-jit_value_create_string_constant(jit_function_t, char *, int);
-
-/*
- * JIT wrappers
- */
-
-/* custom wrappers */
-jit_value_t
-jit__Buffer_bufstart(jit_function_t, jit_value_t);
-
-/* vtable wrappers */
-jit_value_t
-jit__vtable_get_pointer(jit_function_t, jit_value_t, jit_value_t );
-
-jit_value_t
-jit__vtable_set_pointer(jit_function_t, jit_value_t, jit_value_t , jit_value_t);
-
-jit_value_t
-jit__vtable_set_integer_native(jit_function_t, jit_value_t, jit_value_t , jit_value_t);
-
-jit_value_t
-jit__vtable_get_integer(jit_function_t, jit_value_t, jit_value_t );
-
-
-/* function wrappers */
-jit_value_t
-jit__Parrot_str_free_cstring(jit_function_t, jit_value_t);
-
-jit_value_t
-jit__get_nci_N(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__Parrot_str_to_cstring(jit_function_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__get_nci_S(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__set_nci_S(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__set_nci_N(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__Parrot_init_arg_nci(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__get_nci_I(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__set_nci_I(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__Parrot_str_new(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__set_nci_P(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__get_nci_p(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__get_nci_P(jit_function_t, jit_value_t, jit_value_t, jit_value_t);
-
-jit_value_t
-jit__pmc_new_noinit(jit_function_t, jit_value_t, jit_value_t);
-
-
-#endif /* PARROT_HAS_LIBJIT */
-#endif /* PARROT_FRAME_BUILDER_LIBJIT_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */


More information about the parrot-commits mailing list