diff options
author | Guillaume Emont <guijemont@igalia.com> | 2012-12-05 19:22:32 +0100 |
---|---|---|
committer | Guillaume Emont <guijemont@igalia.com> | 2012-12-28 15:17:47 +0100 |
commit | 08d399d5f59244dd839acf60ffec2686d83a0a05 (patch) | |
tree | ff28af22f11ee57db0a1ae54d16e0b5df99b1034 | |
parent | e2689b3df261d20ba070e7b8550514c0e751b97c (diff) |
mips: initialise pointer offset registers when they exist
-rw-r--r-- | orc/orcprogram-mips.c | 10 |
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); } |