Unified variables changes for common/i386.
[cacao.git] / src / vm / jit / i386 / emit.c
index 46feebf6c89eb79c45339cb901023bb077d330e8..fbc38dcb7de51c62cb7410e05a5080293560eb85 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes:
 
-   $Id: emit.c 5401 2006-09-07 12:52:31Z twisti $
+   $Id: emit.c 5404 2006-09-07 13:29:05Z christian $
 
 */
 
@@ -62,7 +62,7 @@
 
 *******************************************************************************/
 
-inline s4 emit_load(jitdata *jd, instruction *iptr, stackptr src, s4 tempreg)
+inline s4 emit_load(jitdata *jd, instruction *iptr, varinfo *src, s4 tempreg)
 {
        codegendata  *cd;
        s4            disp;
@@ -105,7 +105,7 @@ inline s4 emit_load(jitdata *jd, instruction *iptr, stackptr src, s4 tempreg)
 
 *******************************************************************************/
 
-inline s4 emit_load_low(jitdata *jd, instruction *iptr, stackptr src, s4 tempreg)
+inline s4 emit_load_low(jitdata *jd, instruction *iptr, varinfo *src,s4 tempreg)
 {
        codegendata  *cd;
        s4            disp;
@@ -140,7 +140,7 @@ inline s4 emit_load_low(jitdata *jd, instruction *iptr, stackptr src, s4 tempreg
 
 *******************************************************************************/
 
-inline s4 emit_load_high(jitdata *jd, instruction *iptr, stackptr src, s4 tempreg)
+inline s4 emit_load_high(jitdata *jd, instruction *iptr,varinfo *src,s4 tempreg)
 {
        codegendata  *cd;
        s4            disp;
@@ -176,12 +176,12 @@ inline s4 emit_load_high(jitdata *jd, instruction *iptr, stackptr src, s4 tempre
 
 s4 emit_load_s1(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->s1.var;
+       src = &(jd->var[iptr->s1.varindex]);
 
        reg = emit_load(jd, iptr, src, tempreg);
    
@@ -197,12 +197,12 @@ s4 emit_load_s1(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s2(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->sx.s23.s2.var;
+       src = &(jd->var[iptr->sx.s23.s2.varindex]);
 
        reg = emit_load(jd, iptr, src, tempreg);
        
@@ -218,12 +218,12 @@ s4 emit_load_s2(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s3(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->sx.s23.s3.var;
+       src = &(jd->var[iptr->sx.s23.s3.varindex]);
 
        reg = emit_load(jd, iptr, src, tempreg);
 
@@ -240,13 +240,13 @@ s4 emit_load_s3(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s1_low(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
 
        /* get required compiler data */
 
-       src = iptr->s1.var;
+       src = &(jd->var[iptr->s1.varindex]);
 
        reg = emit_load_low(jd, iptr, src, tempreg);
 
@@ -265,12 +265,12 @@ s4 emit_load_s1_low(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s2_low(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->sx.s23.s2.var;
+       src = &(jd->var[iptr->sx.s23.s2.varindex]);
 
        reg = emit_load_low(jd, iptr, src, tempreg);
 
@@ -287,12 +287,12 @@ s4 emit_load_s2_low(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s1_high(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->s1.var;
+       src = &(jd->var[iptr->s1.varindex]);
 
        reg = emit_load_high(jd, iptr, src, tempreg);
 
@@ -309,12 +309,12 @@ s4 emit_load_s1_high(jitdata *jd, instruction *iptr, s4 tempreg)
 
 s4 emit_load_s2_high(jitdata *jd, instruction *iptr, s4 tempreg)
 {
-       stackptr      src;
+       varinfo       *src;
        s4            reg;
 
        /* get required compiler data */
 
-       src = iptr->sx.s23.s2.var;
+       src = &(jd->var[iptr->sx.s23.s2.varindex]);
 
        reg = emit_load_high(jd, iptr, src, tempreg);
 
@@ -328,7 +328,7 @@ s4 emit_load_s2_high(jitdata *jd, instruction *iptr, s4 tempreg)
 
 *******************************************************************************/
 
-inline void emit_store(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
+inline void emit_store(jitdata *jd, instruction *iptr, varinfo *dst, s4 d)
 {
        codegendata  *cd;
 
@@ -362,7 +362,7 @@ inline void emit_store(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
 
 *******************************************************************************/
 
-inline void emit_store_low(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
+inline void emit_store_low(jitdata *jd, instruction *iptr, varinfo *dst, s4 d)
 {
        codegendata  *cd;
 
@@ -386,7 +386,7 @@ inline void emit_store_low(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
 
 *******************************************************************************/
 
-inline void emit_store_high(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
+inline void emit_store_high(jitdata *jd, instruction *iptr, varinfo *dst, s4 d)
 {
        codegendata  *cd;
 
@@ -413,9 +413,9 @@ inline void emit_store_high(jitdata *jd, instruction *iptr, stackptr dst, s4 d)
 
 void emit_store_dst(jitdata *jd, instruction *iptr, s4 d)
 {
-       stackptr dst;
+       varinfo *dst;
        
-       dst = iptr->dst.var;
+       dst = &(jd->var[iptr->dst.varindex]);
 
        emit_store(jd, iptr, dst, d);
 }
@@ -427,16 +427,14 @@ void emit_store_dst(jitdata *jd, instruction *iptr, s4 d)
 
 *******************************************************************************/
 
-void emit_copy(jitdata *jd, instruction *iptr, stackptr src, stackptr dst)
+void emit_copy(jitdata *jd, instruction *iptr, varinfo *src, varinfo *dst)
 {
        codegendata  *cd;
-       registerdata *rd;
        s4            s1, d;
 
        /* get required compiler data */
 
        cd = jd->cd;
-       rd = jd->rd;
 
        if ((src->regoff != dst->regoff) ||
                ((src->flags ^ dst->flags) & INMEMORY)) {
@@ -447,9 +445,9 @@ void emit_copy(jitdata *jd, instruction *iptr, stackptr src, stackptr dst)
 
                if (IS_INMEMORY(src->flags)) {
                        if (IS_LNG_TYPE(src->type))
-                               d = codegen_reg_of_var(rd, iptr->opc, dst, REG_ITMP12_PACKED);
+                               d = codegen_reg_of_var(iptr->opc, dst, REG_ITMP12_PACKED);
                        else
-                               d = codegen_reg_of_var(rd, iptr->opc, dst, REG_ITMP1);
+                               d = codegen_reg_of_var(iptr->opc, dst, REG_ITMP1);
 
                        s1 = emit_load(jd, iptr, src, d);
                }
@@ -459,7 +457,7 @@ void emit_copy(jitdata *jd, instruction *iptr, stackptr src, stackptr dst)
                        else
                                s1 = emit_load(jd, iptr, src, REG_ITMP1);
 
-                       d = codegen_reg_of_var(rd, iptr->opc, dst, s1);
+                       d = codegen_reg_of_var(iptr->opc, dst, s1);
                }
 
                if (s1 != d) {