summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-04-20 19:30:44 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-04-20 19:30:44 +0000
commit00d93eeafde6daa0040d29170939304c5e4f9c6f (patch)
tree0f701a4800e906cc01f0a0eb9b35ab5d8f0a0bac /sys/src
parent7381779ba2a18a8a75331c3b851d15be224e7b98 (diff)
realemu: bittest ops for 0F prefix
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/aux/realemu/dat.h1
-rw-r--r--sys/src/cmd/aux/realemu/decode.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/sys/src/cmd/aux/realemu/dat.h b/sys/src/cmd/aux/realemu/dat.h
index 9c8ece20d..8a2bb4643 100644
--- a/sys/src/cmd/aux/realemu/dat.h
+++ b/sys/src/cmd/aux/realemu/dat.h
@@ -292,6 +292,7 @@ enum {
OGP3v,
OGP4,
OGP5,
+ OGP8,
OGP10,
OGP12,
OHLT,
diff --git a/sys/src/cmd/aux/realemu/decode.c b/sys/src/cmd/aux/realemu/decode.c
index 2cfe9286b..40b80f275 100644
--- a/sys/src/cmd/aux/realemu/decode.c
+++ b/sys/src/cmd/aux/realemu/decode.c
@@ -151,7 +151,7 @@ static Optab optab0F[256] = {
//B0 - mostly arcana
{OBAD, }, {OBAD, }, {OLFP,ASS,AGv,AMp},{OBTR,AEv,AGv },
{OLFP,AFS,AGv,AMp},{OLFP,AGS,AGv,AMp},{OMOVZX,AGv,AEb }, {OMOVZX,AGv,AEw },
- {OBAD, }, {OBAD, }, {OBAD, }, {OBAD, },
+ {OBAD, }, {OBAD, }, {OGP8, }, {OBAD, },
{OBSF,AGv,AEv }, {OBSR,AGv,AEv }, {OMOVSX,AGv,AEb }, {OMOVSX,AGv,AEw },
//C0 - more arcana
{OBAD, }, {OBAD, }, {OBAD, }, {OBAD, },
@@ -208,6 +208,11 @@ static Optab optabgp5[8] = {
{OJUMP, AEv, }, {OJUMP, AMp, }, {OPUSH, AEv, }, {OBAD, },
};
+static Optab optabgp8[8] = {
+ {OMOV, }, {OBAD, }, {OBAD, }, {OBAD, },
+ {OBT, AEv, AIb }, {OBTS, AEv, AIb }, {OBTR, AEv, AIb }, {OBTC, AEv, AIb },
+};
+
static Optab optabgp10[8] = {
{OPOP, AEv, }, {OBAD, }, {OBAD, }, {OBAD, },
{OBAD, }, {OBAD, }, {OBAD, }, {OBAD, },
@@ -235,6 +240,7 @@ static Optab *optabgp[NUMOP] = {
[OGP3v] optabgp3v,
[OGP4] optabgp4,
[OGP5] optabgp5,
+ [OGP8] optabgp8,
[OGP10] optabgp10,
[OGP12] optabgp12,
};