summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Emont <guijemont@igalia.com>2012-12-05 19:22:32 +0100
committerGuillaume Emont <guijemont@igalia.com>2012-12-28 15:17:47 +0100
commit08d399d5f59244dd839acf60ffec2686d83a0a05 (patch)
treeff28af22f11ee57db0a1ae54d16e0b5df99b1034
parente2689b3df261d20ba070e7b8550514c0e751b97c (diff)
mips: initialise pointer offset registers when they exist
-rw-r--r--orc/orcprogram-mips.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/orc/orcprogram-mips.c b/orc/orcprogram-mips.c
index 88d5245..99b60b7 100644
--- a/orc/orcprogram-mips.c
+++ b/orc/orcprogram-mips.c
@@ -222,20 +222,24 @@ orc_mips_load_constants_inner (OrcCompiler *compiler)
{
int i;
for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
- switch (compiler->vars[i].vartype) {
+ OrcVariable *var = compiler->vars + i;
+ if (var->name == NULL) continue;
+ switch (var->vartype) {
case ORC_VAR_TYPE_CONST:
case ORC_VAR_TYPE_PARAM:
break;
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
orc_mips_emit_lw (compiler,
- compiler->vars[i].ptr_register,
+ var->ptr_register,
compiler->exec_reg, ORC_MIPS_EXECUTOR_OFFSET_ARRAYS(i));
break;
default:
break;
}
+
+ if (var->ptr_offset)
+ orc_mips_emit_move (compiler, var->ptr_offset, ORC_MIPS_ZERO);
}