From 028bd871a9934e74b0641aaccc145e8b6ee13b1b Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 25 Apr 2011 21:32:10 +0000 Subject: realemu: complete bitttest ops (tested at revision 2011) --- sys/src/cmd/aux/realemu/xec.c | 59 ++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 26 deletions(-) (limited to 'sys/src') diff --git a/sys/src/cmd/aux/realemu/xec.c b/sys/src/cmd/aux/realemu/xec.c index 4d81c4d5c..c39ad27b5 100644 --- a/sys/src/cmd/aux/realemu/xec.c +++ b/sys/src/cmd/aux/realemu/xec.c @@ -485,38 +485,42 @@ opror(Cpu *cpu, Inst *i) } static void -opbts(Cpu *cpu, Inst *i) +opbt(Cpu *cpu, Inst *i) { ulong a, m; - int n; - - a = ar(i->a1); - n = ar(i->a2) & 31; + int n, s; + Iarg *x; + + n = ar(i->a2); + x = i->a1; + s = x->len*8; + if(x->tag == TMEM){ + x = adup(x); + x->off += n / s; + x->off &= mask(i->alen*8); + } + a = ar(x); + n &= s-1; m = 1<reg[RFL] |= CF; - else { + cpu->reg[RFL] |= CF; + else cpu->reg[RFL] &= ~CF; - aw(i->a1, a | m); + switch(i->op){ + case OBT: + break; + case OBTS: + aw(x, a | m); + break; + case OBTR: + aw(x, a & ~m); + break; + case OBTC: + aw(x, a ^ m); + break; } } -static void -opbtr(Cpu *cpu, Inst *i) -{ - ulong a, m; - int n; - - a = ar(i->a1); - n = ar(i->a2) & 31; - m = 1<reg[RFL] |= CF; - aw(i->a1, a & ~m); - } else - cpu->reg[RFL] &= ~CF; -} - static void opbitscan(Cpu *cpu, Inst *i) { @@ -1204,8 +1208,11 @@ static void (*exctab[NUMOP])(Cpu *cpu, Inst*) = { [OROL] = oprol, [OROR] = opror, - [OBTS] = opbts, - [OBTR] = opbtr, + [OBT] = opbt, + [OBTS] = opbt, + [OBTR] = opbt, + [OBTC] = opbt, + [OBSF] = opbitscan, [OBSR] = opbitscan, -- cgit v1.2.3 From 554ce79215b5d59c7f1651e7505fe44b3c55cb3c Mon Sep 17 00:00:00 2001 From: stanley lieber Date: Tue, 26 Apr 2011 02:47:38 +0000 Subject: acme: populate /acme/bin/386. --- sys/src/mkfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sys/src') diff --git a/sys/src/mkfile b/sys/src/mkfile index 4f5344e9f..a57df5b77 100644 --- a/sys/src/mkfile +++ b/sys/src/mkfile @@ -40,7 +40,7 @@ CMDS=cmd\ games\ SUBSYS=ape\ -# /acme\ + /acme\ none:VQ: echo mk all, install, clean, nuke, release, kernels, or libs -- cgit v1.2.3