From 4a4256626644b5e413cfb1c228d396d27364030b Mon Sep 17 00:00:00 2001 From: Charles Forsyth Date: Tue, 4 Jun 2013 08:30:04 +0000 Subject: adjust code to size of Runes --- libinterp/comp-power.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libinterp/comp-power.c') diff --git a/libinterp/comp-power.c b/libinterp/comp-power.c index 25cc9f5b..ec8835a1 100644 --- a/libinterp/comp-power.c +++ b/libinterp/comp-power.c @@ -184,6 +184,7 @@ enum DBRAN = (1<<5), /* dest is branch */ THREOP = (1<<6), + Lg2Rune = sizeof(Rune)==4? 2: 1, ANDAND = 1, OROR, EQAND, @@ -1557,10 +1558,13 @@ comp(Inst *i) cp = code; br(Obge, 0); if((i->add&ARM) != AXIMM){ - SLWI(Ro2, Ro2, 1); - ARRR(Olhzx, Ro3, Ro1, Ro2); + SLWI(Ro2, Ro2, Lg2Rune); + if(sizeof(Rune) == 4) + ARRR(Olwz, Ro3, Ro1, Ro2); + else + ARRR(Olhzx, Ro3, Ro1, Ro2); } else - mem(Olhz, (short)i->reg<<1, Ro1, Ro3); + mem(Olhz, (short)i->reg<add&ARM) != AXIMM) -- cgit v1.2.3