aboutsummaryrefslogtreecommitdiff
path: root/sim/rx
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2013-01-16 10:45:22 +0000
committerNick Clifton <nickc@redhat.com>2013-01-16 10:45:22 +0000
commit04e65a62c6136e9907d4db6d9cf0216832bdafa3 (patch)
tree9ef160d3fd06ad19a6597f6302fdc57365860502 /sim/rx
parent1178606e2bb9fc3a936318765bf195c93efdd73f (diff)
downloadfsf-binutils-gdb-04e65a62c6136e9907d4db6d9cf0216832bdafa3.zip
fsf-binutils-gdb-04e65a62c6136e9907d4db6d9cf0216832bdafa3.tar.gz
fsf-binutils-gdb-04e65a62c6136e9907d4db6d9cf0216832bdafa3.tar.bz2
* rx.c (decode_opcode): Handle RXO_satr.
Diffstat (limited to 'sim/rx')
-rw-r--r--sim/rx/ChangeLog4
-rw-r--r--sim/rx/rx.c16
2 files changed, 20 insertions, 0 deletions
diff --git a/sim/rx/ChangeLog b/sim/rx/ChangeLog
index e5cb451..00f4bdc 100644
--- a/sim/rx/ChangeLog
+++ b/sim/rx/ChangeLog
@@ -1,3 +1,7 @@
+2013-01-16 Nick Clifton <nickc@redhat.com>
+
+ * rx.c (decode_opcode): Handle RXO_satr.
+
2012-06-15 Joel Brobecker <brobecker@adacore.com>
* config.in, configure: Regenerate.
diff --git a/sim/rx/rx.c b/sim/rx/rx.c
index 661bded..e12aa85 100644
--- a/sim/rx/rx.c
+++ b/sim/rx/rx.c
@@ -1802,6 +1802,22 @@ decode_opcode ()
E1;
break;
+ case RXO_satr:
+ if (FLAG_O && ! FLAG_S)
+ {
+ put_reg (6, 0x0);
+ put_reg (5, 0x7fffffff);
+ put_reg (4, 0xffffffff);
+ }
+ else if (FLAG_O && FLAG_S)
+ {
+ put_reg (6, 0xffffffff);
+ put_reg (5, 0x80000000);
+ put_reg (4, 0x0);
+ }
+ E1;
+ break;
+
case RXO_sbb:
MATH_OP (-, ! carry);
break;