From ff31944328306e35f0d74f77357f42ed22475306 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Thu, 5 Aug 2010 19:52:52 -0700 Subject: [PATCH] c: Fix loadupib code --- orc/orcemulateopcodes.c | 2 +- orc/orcprogram-c.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/orc/orcemulateopcodes.c b/orc/orcemulateopcodes.c index e26c2eb..f4ec60f 100644 --- a/orc/orcemulateopcodes.c +++ b/orc/orcemulateopcodes.c @@ -413,7 +413,7 @@ emulate_loadupib (OrcOpcodeExecutor *ex, int offset, int n) for (i = 0; i < n; i++) { /* 0: loadupib */ - var32 = ((offset + i)&1) ? (ptr4[(offset + i)>>1] + ptr4[((offset + i)>>1)+1] + 1)>>1 : ptr4[(offset + i)>>1]; + var32 = ((offset + i)&1) ? ((orc_uint8)ptr4[(offset + i)>>1] + (orc_uint8)ptr4[((offset + i)>>1)+1] + 1)>>1 : ptr4[(offset + i)>>1]; /* 1: storeb */ ptr0[i] = var32; } diff --git a/orc/orcprogram-c.c b/orc/orcprogram-c.c index 1de40a5..b561ff1 100644 --- a/orc/orcprogram-c.c +++ b/orc/orcprogram-c.c @@ -691,7 +691,7 @@ c_rule_loadupdb (OrcCompiler *p, void *user, OrcInstruction *insn) static void c_rule_loadupib (OrcCompiler *p, void *user, OrcInstruction *insn) { - ORC_ASM_CODE(p," var%d = ((offset + i)&1) ? (ptr%d[(offset + i)>>1] + ptr%d[((offset + i)>>1)+1] + 1)>>1 : ptr%d[(offset + i)>>1];\n", + ORC_ASM_CODE(p," var%d = ((offset + i)&1) ? ((orc_uint8)ptr%d[(offset + i)>>1] + (orc_uint8)ptr%d[((offset + i)>>1)+1] + 1)>>1 : ptr%d[(offset + i)>>1];\n", insn->dest_args[0], insn->src_args[0], insn->src_args[0], insn->src_args[0]); } -- 2.7.4