* src/mm/memory.cpp,
[cacao.git] / src / vm / jit / optimizing / lsra.c
index 37f5c5a4c7545ef819b8c934403ae13cd196a6d0..0c43e2c45dac783f4f6d77b957f9afe5ff5d9c6d 100644 (file)
@@ -1,9 +1,7 @@
 /* src/vm/jit/optimizing/lsra.inc - linear scan register allocator
 
-   Copyright (C) 2005, 2006 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
+   Copyright (C) 2005, 2006, 2008
+   CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
 
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    02111-1307, USA.
 
-   Contact: cacao@complang.tuwien.ac.at
-
-   Authors: Christian Ullrich
+*/
 
-   $Id: lsra.c $
 
-*/
 #include "config.h"
 
 #include <stdio.h>
 #include "arch.h"
 #include "md-abi.h"
 
-#include "mm/memory.h"
+#include "mm/memory.hpp"
 
 #include "toolbox/bitvector.h"
 
-#include "vmcore/statistics.h"
-#include "vmcore/options.h"
-#include "vmcore/method.h"
+#include "vm/statistics.h"
+#include "vm/options.h"
+#include "vm/method.hpp"
 
 #include "vm/jit/abi.h"
 #include "vm/jit/reg.h"
-#include "vm/jit/jit.h"
+#include "vm/jit/jit.hpp"
 
 #include "vm/jit/optimizing/graph.h"
 #include "vm/jit/optimizing/lifetimes.h"
 
 #include "vm/jit/optimizing/lsra.h"
 
-#include "toolbox/logging.h"
+#include "toolbox/logging.hpp"
 
 extern const char *string_java_lang_InternalError;
 /* function prototypes */
 void lsra_setup(jitdata *);
 void lsra_main(jitdata *);
 #ifdef LSRA_DEBUG_VERBOSE
-void lsra_dump_stack(stackptr );
+void lsra_dump_stack(stackelement_t*);
 void print_lifetimes(jitdata *, int *, int);
 void print_all_lifetimes(jitdata *);
 #endif
@@ -98,7 +92,7 @@ void lsra(jitdata *jd) {
 #if defined(LSRA_DEBUG_CHECK)
 #if 0
        int b_index;
-       stackptr in,out;
+       stackelement_t* in,out;
        int      ind, outd;
 #endif
 #endif
@@ -144,13 +138,13 @@ void lsra(jitdata *jd) {
 #if defined(LSRA_DEBUG_CHECK) || defined(LSRA_DEBUG_VERBOSE)
 #if defined(LSRA_DEBUG_VERBOSE)
        if (compileverbose) {
-               printf("%s %s ",m->class->name->text, m->name->text);
+               printf("%s %s ",m->clazz->name->text, m->name->text);
                if (code_is_leafmethod(jd->code))
                        printf("**Leafmethod**");
                printf("\n");
        }
 #endif
-       if (strcmp(m->class->name->text,"java/lang/String")==0)
+       if (strcmp(m->clazz->name->text,"java/lang/String")==0)
                if (strcmp(m->name->text,"toLowerCase")==0)
 #if defined(LSRA_DEBUG_VERBOSE)
                        if (compileverbose)
@@ -544,9 +538,6 @@ void lsra_alloc(jitdata *jd, int *lifet, int lifetimecount, int *mem_use)
        struct lifetime *lt;
        struct freemem *fmem;
        int lt_index;
-#ifdef HAS_4BYTE_STACKSLOT
-       struct freemem *fmem_2;
-#endif
        methodinfo *m;
        registerdata *rd;
        lsradata *ls;
@@ -558,11 +549,6 @@ void lsra_alloc(jitdata *jd, int *lifet, int lifetimecount, int *mem_use)
        fmem=DNEW(struct freemem);
        fmem->off=-1;
        fmem->next=NULL;
-#ifdef HAS_4BYTE_STACKSLOT
-       fmem_2=DNEW(struct freemem);
-       fmem_2->off=-1;
-       fmem_2->next=NULL;
-#endif
 
        for (lt_index = 0; lt_index < lifetimecount; lt_index ++) {
                lt = ls->lifetime + lifet[lt_index];
@@ -571,11 +557,6 @@ void lsra_alloc(jitdata *jd, int *lifet, int lifetimecount, int *mem_use)
 #endif
                if (lt->regoff == -1) {
                        flags = INMEMORY;
-#ifdef HAS_4BYTE_STACKSLOT
-                       if (IS_2_WORD_TYPE(lt->type))
-                               regoff = lsra_getmem(lt, fmem_2, mem_use);
-                       else
-#endif
                        regoff = lsra_getmem(lt, fmem, mem_use);
                } else {
                        flags = lt->savedvar;
@@ -595,17 +576,7 @@ int lsra_getmem(struct lifetime *lt, struct freemem *fmem, int *mem_use)
        /* no memmory allocated till now, or all other are still live */
        if ((fmem->next == NULL) || (fmem->next->end > lt->i_start)) {
 /*     if (1) { */
-#ifdef HAS_4BYTE_STACKSLOT
-               if (IS_2_WORD_TYPE(lt->type))
-                       if ( (*mem_use)&1 ) /* align memory location for 2 Word Types */
-                               (*mem_use)++;
                fm=lsra_getnewmem(mem_use);
-               if (IS_2_WORD_TYPE(lt->type))
-                       /* allocate a second following Slot for 2 Word Types */
-                       (*mem_use)++;
-#else
-               fm=lsra_getnewmem(mem_use);
-#endif
        } else {
                /* Speicherstelle frei */
                fm=fmem->next;
@@ -940,7 +911,7 @@ void lsra_calc_lifetime_length(jitdata *jd)
 
                        switch (lt->type) {
                        case TYPE_LNG:
-#if (defined(HAS_4BYTE_STACKSLOT) && !defined(SUPPORT_COMBINE_INTEGER_REGISTERS)) || defined (__I386__)
+#if defined (__I386__)
                                flags = 0;
 #else
                                flags = 1;