unified_variables.
* src/vm/jit/powerpc/linux/md-abi.c: Cleaned up.
* src/vm/jit/powerpc/darwin/md-abi.c: Likewise.
* src/vm/jit/alpha/md-abi.c: Likewise.
* src/vm/jit/mips/md-abi.c: Likewise.
* src/vm/jit/powerpc64/linux/md-abi.c: Likewise.
* src/vm/jit/x86_64/md-abi.c: Likewise.
--HG--
branch : unified_variables
Changes: Christian Ullrich
Changes: Christian Ullrich
- $Id: md-abi.c 5595 2006-09-30 23:06:36Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
- jd->var[stackslot->varnum]->flags = PREALLOC
- ->regoff =[REG_RESULT|REG_FRESULT]
+ VAR(stackslot->varnum)->flags = PREALLOC
+ ->vv.regoff = [REG_RESULT|REG_FRESULT]
rd->arg[flt|int]reguse set to a value according the register usage
NOTE: Do not pass a LOCALVAR in stackslot->varnum.
rd->arg[flt|int]reguse set to a value according the register usage
NOTE: Do not pass a LOCALVAR in stackslot->varnum.
/* get required compiler data */
/* get required compiler data */
+ return; /* XXX why has this been deactivated? */
not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
-/* stackslot->varkind = ARGVAR; */
-/* stackslot->varnum = -1; */
-/* stackslot->flags = 0; */
VAR(stackslot->varnum)->flags = PREALLOC;
if (IS_INT_LNG_TYPE(md->returntype.type))
VAR(stackslot->varnum)->flags = PREALLOC;
if (IS_INT_LNG_TYPE(md->returntype.type))
-/* stackslot->regoff = REG_RESULT; */
VAR(stackslot->varnum)->vv.regoff = REG_RESULT;
else
VAR(stackslot->varnum)->vv.regoff = REG_RESULT;
else
-/* stackslot->regoff = REG_FRESULT; */
VAR(stackslot->varnum)->vv.regoff = REG_FRESULT;
}
}
VAR(stackslot->varnum)->vv.regoff = REG_FRESULT;
}
}
Changes: Christian Ullrich
Changes: Christian Ullrich
- $Id: md-abi.c 5615 2006-10-01 22:55:11Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
stackslot: Java Stackslot to contain the Return Value
--- out
Changes: Christian Ullrich
Changes: Christian Ullrich
- $Id: md-abi.c 5630 2006-10-02 13:16:20Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
stackslot: Java Stackslot to contain the Return Value
--- out
has not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
has not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
VAR(stackslot->varnum)->flags = PREALLOC;
if (IS_INT_LNG_TYPE(md->returntype.type)) {
VAR(stackslot->varnum)->flags = PREALLOC;
if (IS_INT_LNG_TYPE(md->returntype.type)) {
Changes: Christian Ullrich
Changes: Christian Ullrich
- $Id: md-abi.c 5630 2006-10-02 13:16:20Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
stackslot: Java Stackslot to contain the Return Value
--- out
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of current method
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
- stackslot->varkind =ARGVAR
- ->varnum =-1
- ->flags =0
- ->regoff =[REG_RESULT, (REG_RESULT2/REG_RESULT), REG_FRESULT]
+ VAR(stackslot->varnum)->flags = PREALLOC
+ VAR(stackslot->varnum)->vv.regoff = [REG_RESULT, (REG_RESULT2/REG_RESULT), REG_FRESULT]
rd->arg[flt|int]reguse set to a value according the register usage
*******************************************************************************/
rd->arg[flt|int]reguse set to a value according the register usage
*******************************************************************************/
-void md_return_alloc(methodinfo *m, registerdata *rd, s4 return_type,
- stackptr stackslot)
+void md_return_alloc(jitdata *jd, stackptr stackslot)
+ methodinfo *m;
+ registerdata *rd;
+ methoddesc *md;
+
+ /* get required compiler data */
+
+ m = jd->m;
+ rd = jd->rd;
+
+ md = m->parseddesc;
+
/* In Leafmethods Local Vars holding parameters are precolored to
their argument register -> so leafmethods with paramcount > 0
could already use R3 == a00! */
/* In Leafmethods Local Vars holding parameters are precolored to
their argument register -> so leafmethods with paramcount > 0
could already use R3 == a00! */
- if (!m->isleafmethod || (m->parseddesc->paramcount == 0)) {
+ if (!m->isleafmethod || (md->paramcount == 0)) {
/* Only precolor the stackslot, if it is not a SAVEDVAR <->
has not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
/* Only precolor the stackslot, if it is not a SAVEDVAR <->
has not to survive method invokations. */
if (!(stackslot->flags & SAVEDVAR)) {
- stackslot->varkind = ARGVAR;
- stackslot->varnum = -1;
- stackslot->flags = 0;
- if (IS_INT_LNG_TYPE(return_type)) {
- if (!IS_2_WORD_TYPE(return_type)) {
+ VAR(stackslot->varnum)->flags = PREALLOC;
+
+ if (IS_INT_LNG_TYPE(md->returntype.type)) {
+ if (!IS_2_WORD_TYPE(md->returntype.type)) {
if (rd->argintreguse < 1)
rd->argintreguse = 1;
if (rd->argintreguse < 1)
rd->argintreguse = 1;
- stackslot->regoff = REG_RESULT;
+ VAR(stackslot->varnum)->vv.regoff = REG_RESULT;
} else {
if (rd->argintreguse < 2)
rd->argintreguse = 2;
} else {
if (rd->argintreguse < 2)
rd->argintreguse = 2;
- stackslot->regoff = PACK_REGS(REG_RESULT2, REG_RESULT);
+ VAR(stackslot->varnum)->vv.regoff = PACK_REGS(REG_RESULT2, REG_RESULT);
}
} else { /* float/double */
if (rd->argfltreguse < 1)
rd->argfltreguse = 1;
}
} else { /* float/double */
if (rd->argfltreguse < 1)
rd->argfltreguse = 1;
- stackslot->regoff = REG_FRESULT;
+ VAR(stackslot->varnum)->vv.regoff = REG_FRESULT;
- $Id: md-abi.c 5618 2006-10-01 23:37:04Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
stackslot: Java Stackslot to contain the Return Value
--- out
- $Id: md-abi.c 5595 2006-09-30 23:06:36Z edwin $
+ $Id: md-abi.c 5634 2006-10-02 14:18:04Z edwin $
- m: Methodinfo of current method
- return_type: Return Type of the Method (TYPE_INT.. TYPE_ADR)
- TYPE_VOID is not allowed!
+ jd: jitdata of the current method
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
stackslot: Java Stackslot to contain the Return Value
--- out
if precoloring was possible:
- jd->var[stackslot->varnum]->flags = PREALLOC
- ->regoff =[REG_RESULT|REG_FRESULT]
+ VAR(stackslot->varnum)->flags = PREALLOC
+ ->vv.regoff = [REG_RESULT|REG_FRESULT]
rd->arg[flt|int]reguse set to a value according the register usage
NOTE: Do not pass a LOCALVAR in stackslot->varnum.
rd->arg[flt|int]reguse set to a value according the register usage
NOTE: Do not pass a LOCALVAR in stackslot->varnum.
<-> has not to survive method invokations */
if (!(stackslot->flags & SAVEDVAR)) {
<-> has not to survive method invokations */
if (!(stackslot->flags & SAVEDVAR)) {
-/* stackslot->varkind = ARGVAR; */
-/* stackslot->varnum = -1; */
-/* stackslot->flags = 0; */
+
+ VAR(stackslot->varnum)->flags = PREALLOC;
/* float/double */
if (rd->argfltreguse < 1)
rd->argfltreguse = 1;
/* float/double */
if (rd->argfltreguse < 1)
rd->argfltreguse = 1;
-/* stackslot->regoff = REG_FRESULT; */
- VAR(stackslot->varnum)->flags = PREALLOC;
VAR(stackslot->varnum)->vv.regoff = REG_FRESULT;
}
}
VAR(stackslot->varnum)->vv.regoff = REG_FRESULT;
}
}