PatchSet 5704 
Date: 2004/12/21 22:21:35
Author: stack
Branch: HEAD
Tag: (none) 
Log:
Bring jit1 up-to-date with respect to jit3's jitCodeHeader stuff.

Members: 
        ChangeLog:1.3249->1.3250 
        kaffe/kaffevm/jit/machine.c:1.72->1.73 
        kaffe/kaffevm/jit/machine.h:1.19->1.20 
        kaffe/kaffevm/jit/native-wrapper.c:1.4->1.5 
        kaffe/kaffevm/jit3/machine.c:1.65->1.66 
        kaffe/kaffevm/jit3/machine.h:1.22->1.23 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3249 kaffe/ChangeLog:1.3250
--- kaffe/ChangeLog:1.3249      Tue Dec 21 18:03:58 2004
+++ kaffe/ChangeLog     Tue Dec 21 22:21:35 2004
@@ -1,5 +1,20 @@
 2004-12-21  Timothy S. Stack  <[EMAIL PROTECTED]>
 
+       * kaffe/kaffevm/jit/machine.h, kaffe/kaffevm/jit/machine.c:
+       Add jitCodeHeader support.
+
+       * kaffe/kaffevm/jit/native-wrapper.c:
+       Put ifdef guards around the initFakeCalls call since it isn't
+       available in jit1.
+
+       * kaffe/kaffevm/jit3/machine.c:
+       Remove dead code.
+
+       * kaffe/kaffevm/jit3/machine.h:
+       Add initFakeCalls proto and HAVE_FAKE_CALLS define.
+       
+2004-12-21  Timothy S. Stack  <[EMAIL PROTECTED]>
+
        * kaffe/kaffevm/external.c:
        Fix a typo.
        
Index: kaffe/kaffe/kaffevm/jit/machine.c
diff -u kaffe/kaffe/kaffevm/jit/machine.c:1.72 
kaffe/kaffe/kaffevm/jit/machine.c:1.73
--- kaffe/kaffe/kaffevm/jit/machine.c:1.72      Mon Dec 20 00:55:14 2004
+++ kaffe/kaffe/kaffevm/jit/machine.c   Tue Dec 21 22:21:36 2004
@@ -451,8 +451,8 @@
        int exc_len = 0;
 #endif
        uint32 constlen;
+       jitCodeHeader *jch;
        nativecode* methblock;
-       nativecode* codebase;
 
        /* Emit pending instructions */
        generateInsnSequence(codeInfo);
@@ -460,35 +460,41 @@
        /* Okay, put this into malloc'ed memory */
        constlen = nConst * sizeof(union _constpoolval);
        /* Allocate some padding to align codebase if so desired 
-        */  
-       methblock = gc_malloc(exc_len + constlen + CODEPC + (align ? (align - 
ALIGNMENT_OF_SIZE(sizeof(jdouble))) : 0), KGC_ALLOC_JITCODE);
+        */
+       methblock = gc_malloc(sizeof(jitCodeHeader) + exc_len + constlen + 
CODEPC + (align ? (align - ALIGNMENT_OF_SIZE(sizeof(jdouble))) : 0), 
KGC_ALLOC_JITCODE);
        if (methblock == 0) {
                postOutOfMemory(einfo);
                return (false);
        }
-       codebase = methblock + exc_len + constlen;
+       jch = (jitCodeHeader *)methblock;
+       jch->pool = (void *)((char *)(jch + 1)) + exc_len;
+       jch->code_start = ((char *)jch->pool) + constlen;
+       jch->code_len = CODEPC;
        /* align entry point if so desired */
-       if (align != 0 && (unsigned long)codebase % align != 0) {
-               int pad = (align - (unsigned long)codebase % align);
-               assert(pad <= align - ALIGNMENT_OF_SIZE(sizeof(jdouble)));      
-               codebase = (char*)codebase + pad;
+       if (align != 0 && (unsigned long)jch->code_start % align != 0) {
+               int pad = (align - (unsigned long)jch->code_start % align);
+               
+               assert(pad <= align - ALIGNMENT_OF_SIZE(sizeof(jdouble)));
+               
+               jch->code_start = (char*)jch->code_start + pad;
        }
-       memcpy(codebase, codeblock, CODEPC);
+       memcpy(jch->code_start, codeblock, CODEPC);
        addToCounter(&jitcodeblock, "jitmem-codeblock", 1,
                -(jlong)GCSIZEOF(codeblock));
        KFREE(codeblock);
 
        /* Establish any code constants */
-       establishConstants(methblock + exc_len);
+       establishConstants(jch->pool);
 
        /* Link it */
-       linkLabels(codeInfo, (uintp)codebase);
+       linkLabels(codeInfo, (uintp)jch->code_start);
 
        /* Note info on the compiled code for later installation */
        code->mem = methblock;
        code->memlen = exc_len + constlen + CODEPC;
-       code->code = codebase;
+       code->code = jch->code_start;
        code->codelen = CODEPC;
+       
        return (true);
 }
 
@@ -518,6 +524,7 @@
 {
        int i;
        jexceptionEntry* e;
+       jitCodeHeader *jch;
        void *tramp;
 
        /* Work out new estimate of code per bytecode */
@@ -537,6 +544,9 @@
        meth->c.ncode.ncode_start = code->mem;
        meth->c.ncode.ncode_end = (char*)code->code + code->codelen;
 
+       jch = (jitCodeHeader *)code->mem;
+       jch->method = meth;
+       
        /* Flush code out of cache */
        FLUSH_DCACHE(METHOD_NATIVECODE(meth), meth->c.ncode.ncode_end);
 
Index: kaffe/kaffe/kaffevm/jit/machine.h
diff -u kaffe/kaffe/kaffevm/jit/machine.h:1.19 
kaffe/kaffe/kaffevm/jit/machine.h:1.20
--- kaffe/kaffe/kaffevm/jit/machine.h:1.19      Fri Sep 19 13:15:15 2003
+++ kaffe/kaffe/kaffevm/jit/machine.h   Tue Dec 21 22:21:36 2004
@@ -140,6 +140,14 @@
 struct _methods;
 bool translate(struct _methods*, errorInfo*);
 
+typedef struct _jitCodeHeader {
+       unsigned long flags;
+       Method *method;
+       void *pool;
+       nativecode *code_start;
+       size_t code_len;
+} jitCodeHeader;
+
 typedef struct _nativeCodeInfo {
        void*   mem;
        int     memlen;
Index: kaffe/kaffe/kaffevm/jit/native-wrapper.c
diff -u kaffe/kaffe/kaffevm/jit/native-wrapper.c:1.4 
kaffe/kaffe/kaffevm/jit/native-wrapper.c:1.5
--- kaffe/kaffe/kaffevm/jit/native-wrapper.c:1.4        Tue Dec 21 00:15:31 2004
+++ kaffe/kaffe/kaffevm/jit/native-wrapper.c    Tue Dec 21 22:21:36 2004
@@ -29,8 +29,6 @@
 #include "feedback.h"
 #endif
 
-void initFakeCalls(void);
-
 static void*
 startJNIcall(void)
 {
@@ -110,7 +108,9 @@
 
        maxArgs = maxLocal = count; /* make sure args are spilled if needed */
        maxStack = 0;
+#if defined(HAVE_FAKE_CALLS)
        initFakeCalls();
+#endif
        success = initInsnSequence(xmeth, 0, maxLocal, maxStack, &info);
        if (!success) {
                goto done;
Index: kaffe/kaffe/kaffevm/jit3/machine.c
diff -u kaffe/kaffe/kaffevm/jit3/machine.c:1.65 
kaffe/kaffe/kaffevm/jit3/machine.c:1.66
--- kaffe/kaffe/kaffevm/jit3/machine.c:1.65     Tue Dec 21 08:06:37 2004
+++ kaffe/kaffe/kaffevm/jit3/machine.c  Tue Dec 21 22:21:37 2004
@@ -171,7 +171,6 @@
        fieldInfo finfo;
        Hjava_lang_Class* crinfo;
        codeinfo* mycodeInfo;
-       jitCodeHeader *jch;
 
        nativeCodeInfo ncode;
 
@@ -185,7 +184,6 @@
 
        lockClass(xmeth->class);
 
-       jch = xmeth->c.ncode.ncode_start;
        if (METHOD_TRANSLATED(xmeth)) {
                goto done3;
        }
Index: kaffe/kaffe/kaffevm/jit3/machine.h
diff -u kaffe/kaffe/kaffevm/jit3/machine.h:1.22 
kaffe/kaffe/kaffevm/jit3/machine.h:1.23
--- kaffe/kaffe/kaffevm/jit3/machine.h:1.22     Tue Dec 21 00:15:32 2004
+++ kaffe/kaffe/kaffevm/jit3/machine.h  Tue Dec 21 22:21:37 2004
@@ -190,6 +190,8 @@
 extern jboolean initInsnSequence(Method *meth, int codesize, int localsz, int 
stacksz, struct _errorInfo *einfo);
 extern jboolean finishInsnSequence(void*, nativeCodeInfo*, struct _errorInfo*);
 extern void     installMethodCode(void*, Method*, nativeCodeInfo*);
+#define HAVE_FAKE_CALLS 1
+void initFakeCalls(void);
 extern struct _label_* newFakeCall(void*, uintp);
 extern void    doSpill(struct _sequence*);
 extern void    doReload(struct _sequence*);

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

Reply via email to