All of lore.kernel.org
 help / color / mirror / Atom feed
* [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC
@ 2017-01-21  3:03 Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd]) Stafford Horne
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

Hello,

Please find attached the sim patches that allow to get a basic OpenRISC
system running.  This was used to verify the OpenRISC gdb port.

The main author is Peter Gavin who should have his FSF copyright in place.

Also some new tests were added specifically for openrisc. Please see the
details of running the testsuite for sim below:

=== sim Summary ===

# of expected passes            17
/home/shorne/work/openrisc/build-gdb/sim/or1k/run 0.5

Thanks,
-Stafford

--

Changes since v1
 * Squashed sim patches into single sim patch
 * Put Generated files in separate patch
 * I have my sim/gdb copyright assignment complete

Peter Gavin (4):
  sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd])
  sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN
  sim: cgen: allow suffix on generated arch.[ch] and cpuall.h
  sim: testsuite: add testsuite for or1k sim

Stafford Horne (2):
  sim: or1k: add or1k target to sim
  sim: or1k: Add generated files.

 sim/common/Make-common.in                      |     2 +-
 sim/common/cgen-accfp.c                        |    40 +
 sim/common/cgen-fpu.h                          |     4 +
 sim/common/cgen-ops.h                          |    18 +
 sim/common/cgen.sh                             |     6 +-
 sim/common/sim-fpu.c                           |    66 +
 sim/common/sim-fpu.h                           |     3 +
 sim/configure                                  |     9 +
 sim/configure.tgt                              |     4 +
 sim/or1k/Makefile.in                           |   232 +
 sim/or1k/aclocal.m4                            |   119 +
 sim/or1k/arch.h                                |     5 +
 sim/or1k/arch32.c                              |    38 +
 sim/or1k/arch32.h                              |    50 +
 sim/or1k/arch64.c                              |    38 +
 sim/or1k/arch64.h                              |    50 +
 sim/or1k/config.in                             |   248 +
 sim/or1k/configure                             | 16071 +++++++++++++++++++++++
 sim/or1k/configure.ac                          |    41 +
 sim/or1k/cpu.h                                 |     5 +
 sim/or1k/cpu32.c                               | 10181 ++++++++++++++
 sim/or1k/cpu32.h                               |  5018 +++++++
 sim/or1k/cpu64.c                               | 10197 ++++++++++++++
 sim/or1k/cpu64.h                               |  5068 +++++++
 sim/or1k/cpuall.h                              |     5 +
 sim/or1k/cpuall32.h                            |    66 +
 sim/or1k/cpuall64.h                            |    66 +
 sim/or1k/decode.h                              |     5 +
 sim/or1k/decode32.c                            |  2559 ++++
 sim/or1k/decode32.h                            |    94 +
 sim/or1k/decode64.c                            |  2723 ++++
 sim/or1k/decode64.h                            |    97 +
 sim/or1k/eng.h                                 |     5 +
 sim/or1k/mloop.in                              |   244 +
 sim/or1k/model32.c                             |  3809 ++++++
 sim/or1k/model64.c                             |   135 +
 sim/or1k/or1k-sim.h                            |    21 +
 sim/or1k/or1k.c                                |   271 +
 sim/or1k/or1k.h                                |    38 +
 sim/or1k/sem32-switch.c                        |  2748 ++++
 sim/or1k/sem32.c                               |  2953 +++++
 sim/or1k/sem64-switch.c                        |  3044 +++++
 sim/or1k/sem64.c                               |  3279 +++++
 sim/or1k/sim-if.c                              |   318 +
 sim/or1k/sim-main.h                            |    78 +
 sim/or1k/traps-linux.c                         |    32 +
 sim/or1k/traps.c                               |   181 +
 sim/testsuite/configure                        |     4 +
 sim/testsuite/sim/or1k/add.S                   |   546 +
 sim/testsuite/sim/or1k/alltests.exp            |    19 +
 sim/testsuite/sim/or1k/and.S                   |   208 +
 sim/testsuite/sim/or1k/basic.S                 |   535 +
 sim/testsuite/sim/or1k/div.S                   |   198 +
 sim/testsuite/sim/or1k/ext.S                   |   251 +
 sim/testsuite/sim/or1k/find.S                  |   119 +
 sim/testsuite/sim/or1k/flag.S                  |   405 +
 sim/testsuite/sim/or1k/jump.S                  |   121 +
 sim/testsuite/sim/or1k/load.S                  |   373 +
 sim/testsuite/sim/or1k/mac.S                   |   785 ++
 sim/testsuite/sim/or1k/mfspr.S                 |   196 +
 sim/testsuite/sim/or1k/mul.S                   |   277 +
 sim/testsuite/sim/or1k/or.S                    |   207 +
 sim/testsuite/sim/or1k/or1k-asm-test-env.h     |    61 +
 sim/testsuite/sim/or1k/or1k-asm-test-helpers.h |   134 +
 sim/testsuite/sim/or1k/or1k-asm-test.h         |   258 +
 sim/testsuite/sim/or1k/or1k-asm.h              |    20 +
 sim/testsuite/sim/or1k/or1k-test.ld            |    57 +
 sim/testsuite/sim/or1k/ror.S                   |   186 +
 sim/testsuite/sim/or1k/shift.S                 |   572 +
 sim/testsuite/sim/or1k/spr-defs.h              |   590 +
 sim/testsuite/sim/or1k/sub.S                   |   176 +
 sim/testsuite/sim/or1k/xor.S                   |   210 +
 72 files changed, 76788 insertions(+), 4 deletions(-)
 create mode 100644 sim/or1k/Makefile.in
 create mode 100644 sim/or1k/aclocal.m4
 create mode 100644 sim/or1k/arch.h
 create mode 100644 sim/or1k/arch32.c
 create mode 100644 sim/or1k/arch32.h
 create mode 100644 sim/or1k/arch64.c
 create mode 100644 sim/or1k/arch64.h
 create mode 100644 sim/or1k/config.in
 create mode 100644 sim/or1k/configure
 create mode 100644 sim/or1k/configure.ac
 create mode 100644 sim/or1k/cpu.h
 create mode 100644 sim/or1k/cpu32.c
 create mode 100644 sim/or1k/cpu32.h
 create mode 100644 sim/or1k/cpu64.c
 create mode 100644 sim/or1k/cpu64.h
 create mode 100644 sim/or1k/cpuall.h
 create mode 100644 sim/or1k/cpuall32.h
 create mode 100644 sim/or1k/cpuall64.h
 create mode 100644 sim/or1k/decode.h
 create mode 100644 sim/or1k/decode32.c
 create mode 100644 sim/or1k/decode32.h
 create mode 100644 sim/or1k/decode64.c
 create mode 100644 sim/or1k/decode64.h
 create mode 100644 sim/or1k/eng.h
 create mode 100644 sim/or1k/mloop.in
 create mode 100644 sim/or1k/model32.c
 create mode 100644 sim/or1k/model64.c
 create mode 100644 sim/or1k/or1k-sim.h
 create mode 100644 sim/or1k/or1k.c
 create mode 100644 sim/or1k/or1k.h
 create mode 100644 sim/or1k/sem32-switch.c
 create mode 100644 sim/or1k/sem32.c
 create mode 100644 sim/or1k/sem64-switch.c
 create mode 100644 sim/or1k/sem64.c
 create mode 100644 sim/or1k/sim-if.c
 create mode 100644 sim/or1k/sim-main.h
 create mode 100644 sim/or1k/traps-linux.c
 create mode 100644 sim/or1k/traps.c
 create mode 100644 sim/testsuite/sim/or1k/add.S
 create mode 100644 sim/testsuite/sim/or1k/alltests.exp
 create mode 100644 sim/testsuite/sim/or1k/and.S
 create mode 100644 sim/testsuite/sim/or1k/basic.S
 create mode 100644 sim/testsuite/sim/or1k/div.S
 create mode 100644 sim/testsuite/sim/or1k/ext.S
 create mode 100644 sim/testsuite/sim/or1k/find.S
 create mode 100644 sim/testsuite/sim/or1k/flag.S
 create mode 100644 sim/testsuite/sim/or1k/jump.S
 create mode 100644 sim/testsuite/sim/or1k/load.S
 create mode 100644 sim/testsuite/sim/or1k/mac.S
 create mode 100644 sim/testsuite/sim/or1k/mfspr.S
 create mode 100644 sim/testsuite/sim/or1k/mul.S
 create mode 100644 sim/testsuite/sim/or1k/or.S
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-env.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-helpers.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-test.ld
 create mode 100644 sim/testsuite/sim/or1k/ror.S
 create mode 100644 sim/testsuite/sim/or1k/shift.S
 create mode 100644 sim/testsuite/sim/or1k/spr-defs.h
 create mode 100644 sim/testsuite/sim/or1k/sub.S
 create mode 100644 sim/testsuite/sim/or1k/xor.S

-- 
2.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd])
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 2/6] sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN Stafford Horne
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

From: Peter Gavin <pgavin@gmail.com>

* sim/common/ChangeLog-OR1K:
2012-03-14  Peter Gavin  <pgavin@gmail.com>

	* cgen-accfp.c: add rem (remainder) function (needed for OR1K lf.rem.[sd])
	(remsf) new function
	(remdf) ditto
	(struct cgen_fp_ops) add fields for rem[sdxt]f functions
---
 sim/common/cgen-accfp.c | 40 ++++++++++++++++++++++++++++++
 sim/common/cgen-fpu.h   |  4 +++
 sim/common/sim-fpu.c    | 66 +++++++++++++++++++++++++++++++++++++++++++++++++
 sim/common/sim-fpu.h    |  3 +++
 4 files changed, 113 insertions(+)

diff --git a/sim/common/cgen-accfp.c b/sim/common/cgen-accfp.c
index afbca6d..d7124fe 100644
--- a/sim/common/cgen-accfp.c
+++ b/sim/common/cgen-accfp.c
@@ -93,6 +93,25 @@ divsf (CGEN_FPU* fpu, SF x, SF y)
 }
 
 static SF
+remsf (CGEN_FPU* fpu, SF x, SF y)
+{
+  sim_fpu op1;
+  sim_fpu op2;
+  sim_fpu ans;
+  unsigned32 res;
+  sim_fpu_status status;
+
+  sim_fpu_32to (&op1, x);
+  sim_fpu_32to (&op2, y);
+  status = sim_fpu_rem (&ans, &op1, &op2);
+  if (status != 0)
+    (*fpu->ops->error) (fpu, status);
+  sim_fpu_to32 (&res, &ans);
+
+  return res;
+}
+
+static SF
 negsf (CGEN_FPU* fpu, SF x)
 {
   sim_fpu op1;
@@ -452,6 +471,25 @@ divdf (CGEN_FPU* fpu, DF x, DF y)
   return res;
 }
 
+static SF
+remdf (CGEN_FPU* fpu, DF x, DF y)
+{
+  sim_fpu op1;
+  sim_fpu op2;
+  sim_fpu ans;
+  unsigned64 res;
+  sim_fpu_status status;
+
+  sim_fpu_64to (&op1, x);
+  sim_fpu_64to (&op2, y);
+  status = sim_fpu_rem (&ans, &op1, &op2);
+  if (status != 0)
+    (*fpu->ops->error) (fpu, status);
+  sim_fpu_to64(&res, &ans);
+
+  return res;
+}
+
 static DF
 negdf (CGEN_FPU* fpu, DF x)
 {
@@ -664,6 +702,7 @@ cgen_init_accurate_fpu (SIM_CPU* cpu, CGEN_FPU* fpu, CGEN_FPU_ERROR_FN* error)
   o->subsf = subsf;
   o->mulsf = mulsf;
   o->divsf = divsf;
+  o->remsf = remsf;
   o->negsf = negsf;
   o->abssf = abssf;
   o->sqrtsf = sqrtsf;
@@ -682,6 +721,7 @@ cgen_init_accurate_fpu (SIM_CPU* cpu, CGEN_FPU* fpu, CGEN_FPU_ERROR_FN* error)
   o->subdf = subdf;
   o->muldf = muldf;
   o->divdf = divdf;
+  o->remdf = remdf;
   o->negdf = negdf;
   o->absdf = absdf;
   o->sqrtdf = sqrtdf;
diff --git a/sim/common/cgen-fpu.h b/sim/common/cgen-fpu.h
index 134b4d0..5f9b55d 100644
--- a/sim/common/cgen-fpu.h
+++ b/sim/common/cgen-fpu.h
@@ -69,6 +69,7 @@ struct cgen_fp_ops {
   SF (*subsf) (CGEN_FPU*, SF, SF);
   SF (*mulsf) (CGEN_FPU*, SF, SF);
   SF (*divsf) (CGEN_FPU*, SF, SF);
+  SF (*remsf) (CGEN_FPU*, SF, SF);
   SF (*negsf) (CGEN_FPU*, SF);
   SF (*abssf) (CGEN_FPU*, SF);
   SF (*sqrtsf) (CGEN_FPU*, SF);
@@ -93,6 +94,7 @@ struct cgen_fp_ops {
   DF (*subdf) (CGEN_FPU*, DF, DF);
   DF (*muldf) (CGEN_FPU*, DF, DF);
   DF (*divdf) (CGEN_FPU*, DF, DF);
+  DF (*remdf) (CGEN_FPU*, DF, DF);
   DF (*negdf) (CGEN_FPU*, DF);
   DF (*absdf) (CGEN_FPU*, DF);
   DF (*sqrtdf) (CGEN_FPU*, DF);
@@ -142,6 +144,7 @@ struct cgen_fp_ops {
   XF (*subxf) (CGEN_FPU*, XF, XF);
   XF (*mulxf) (CGEN_FPU*, XF, XF);
   XF (*divxf) (CGEN_FPU*, XF, XF);
+  XF (*remxf) (CGEN_FPU*, XF, XF);
   XF (*negxf) (CGEN_FPU*, XF);
   XF (*absxf) (CGEN_FPU*, XF);
   XF (*sqrtxf) (CGEN_FPU*, XF);
@@ -180,6 +183,7 @@ struct cgen_fp_ops {
   TF (*subtf) (CGEN_FPU*, TF, TF);
   TF (*multf) (CGEN_FPU*, TF, TF);
   TF (*divtf) (CGEN_FPU*, TF, TF);
+  TF (*remtf) (CGEN_FPU*, TF, TF);
   TF (*negtf) (CGEN_FPU*, TF);
   TF (*abstf) (CGEN_FPU*, TF);
   TF (*sqrttf) (CGEN_FPU*, TF);
diff --git a/sim/common/sim-fpu.c b/sim/common/sim-fpu.c
index 0d4d08a..550bcd6 100644
--- a/sim/common/sim-fpu.c
+++ b/sim/common/sim-fpu.c
@@ -41,6 +41,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "sim-io.h"
 #include "sim-assert.h"
 
+#include <math.h> /* for drem, remove when soft-float version is implemented */
 
 /* Debugging support.
    If digits is -1, then print all digits.  */
@@ -1551,6 +1552,71 @@ sim_fpu_div (sim_fpu *f,
 
 
 INLINE_SIM_FPU (int)
+sim_fpu_rem (sim_fpu *f,
+	     const sim_fpu *l,
+	     const sim_fpu *r)
+{
+  if (sim_fpu_is_snan (l))
+    {
+      *f = *l;
+      f->class = sim_fpu_class_qnan;
+      return sim_fpu_status_invalid_snan;
+    }
+  if (sim_fpu_is_snan (r))
+    {
+      *f = *r;
+      f->class = sim_fpu_class_qnan;
+      return sim_fpu_status_invalid_snan;
+    }
+  if (sim_fpu_is_qnan (l))
+    {
+      *f = *l;
+      f->class = sim_fpu_class_qnan;
+      return 0;
+    }
+  if (sim_fpu_is_qnan (r))
+    {
+      *f = *r;
+      f->class = sim_fpu_class_qnan;
+      return 0;
+    }
+  if (sim_fpu_is_infinity (l))
+    {
+      *f = sim_fpu_qnan;
+      return sim_fpu_status_invalid_irx;
+    }
+  if (sim_fpu_is_zero (r))
+    {
+      *f = sim_fpu_qnan;
+      return sim_fpu_status_invalid_div0;
+    }
+  if (sim_fpu_is_zero (l))
+    {
+      *f = *l;
+      return 0;
+    }
+  if (sim_fpu_is_infinity (r))
+    {
+      *f = *l;
+      return 0;
+    }
+  
+  {
+    /* cheat for now */
+    /* TODO: don't use hard float */
+
+    sim_fpu_map lval, rval, fval;
+    lval.i = pack_fpu(l, 1);
+    rval.i = pack_fpu(r, 1);
+    fval.d = drem(lval.d, rval.d);
+    unpack_fpu(f, fval.i, 1);
+    return 0;
+    
+  }  
+}
+
+
+INLINE_SIM_FPU (int)
 sim_fpu_max (sim_fpu *f,
 	     const sim_fpu *l,
 	     const sim_fpu *r)
diff --git a/sim/common/sim-fpu.h b/sim/common/sim-fpu.h
index d27d80a..c108f1f 100644
--- a/sim/common/sim-fpu.h
+++ b/sim/common/sim-fpu.h
@@ -151,6 +151,7 @@ typedef enum
   sim_fpu_status_overflow = 4096,
   sim_fpu_status_underflow = 8192,
   sim_fpu_status_denorm = 16384,
+  sim_fpu_status_invalid_irx = 32768, /* (inf % X) */
 } sim_fpu_status;
 
 
@@ -230,6 +231,8 @@ INLINE_SIM_FPU (int) sim_fpu_mul (sim_fpu *f,
 				  const sim_fpu *l, const sim_fpu *r);
 INLINE_SIM_FPU (int) sim_fpu_div (sim_fpu *f,
 				  const sim_fpu *l, const sim_fpu *r);
+INLINE_SIM_FPU (int) sim_fpu_rem (sim_fpu *f,
+				  const sim_fpu *l, const sim_fpu *r);
 INLINE_SIM_FPU (int) sim_fpu_max (sim_fpu *f,
 				  const sim_fpu *l, const sim_fpu *r);
 INLINE_SIM_FPU (int) sim_fpu_min (sim_fpu *f,
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 2/6] sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd]) Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 3/6] sim: cgen: allow suffix on generated arch.[ch] and cpuall.h Stafford Horne
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

From: Peter Gavin <pgavin@gmail.com>

* sim/common/ChangeLog
2012-03-14  Peter Gavin  <pgavin@gmail.com>

	* add mul-o1flag (1's complement unsigned multiply overflow flag)
	and mul-o2flag (2's complement signed multiply overflow flag)
	* cgen-ops.h:
	(MUL1OFSI) new function: 1's complement
	(MUL2OFSI) new function: 2's complement
---
 sim/common/cgen-ops.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h
index 97585d7..ffbdf3f 100644
--- a/sim/common/cgen-ops.h
+++ b/sim/common/cgen-ops.h
@@ -631,6 +631,22 @@ SUBOFQI (QI a, QI b, BI c)
   return res;
 }
 
+SEMOPS_INLINE BI
+MUL2OFSI (SI a, SI b)
+{
+  DI tmp = MULDI (EXTSIDI(a), EXTSIDI(b));
+  BI res = tmp < -0x80000000LL || tmp > 0x7fffffffLL;
+  return res;
+}
+
+SEMOPS_INLINE BI
+MUL1OFSI (USI a, USI b)
+{
+  UDI tmp = MULDI (ZEXTSIDI(a), ZEXTSIDI(b));
+  BI res = (tmp > 0xFFFFFFFFULL);
+  return res;
+}
+
 #else
 
 SI ADDCSI (SI, SI, BI);
@@ -651,6 +667,8 @@ UBI ADDOFQI (QI, QI, BI);
 QI SUBCQI (QI, QI, BI);
 UBI SUBCFQI (QI, QI, BI);
 UBI SUBOFQI (QI, QI, BI);
+BI MUL1OFSI (SI a, SI b);
+BI MUL2OFSI (SI a, SI b);
 
 #endif
 
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 3/6] sim: cgen: allow suffix on generated arch.[ch] and cpuall.h
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd]) Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 2/6] sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim Stafford Horne
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

From: Peter Gavin <pgavin@gmail.com>

sim/ChangeLog:

	* Make-common.in: pass $(SUFFIX) to cgen.sh in cgen-arch target
	* cgen.sh: append suffix to names of arch.[ch] and cpuall.h
---
 sim/common/Make-common.in | 2 +-
 sim/common/cgen.sh        | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 9075b9c..a4f8988 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -566,7 +566,7 @@ CGEN_FLAGS_TO_PASS = \
 cgen-arch: force
 	$(SHELL) $(srccom)/cgen.sh arch $(srcdir) \
 		$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
-		$(arch) "$(FLAGS)" ignored "$(isa)" $(mach) ignored \
+		$(arch) "$(FLAGS)" ignored "$(isa)" $(mach) "$(SUFFIX)" \
 		$(archfile) ignored
 
 cgen-cpu: force
diff --git a/sim/common/cgen.sh b/sim/common/cgen.sh
index 394ef2d..c03a4a7 100755
--- a/sim/common/cgen.sh
+++ b/sim/common/cgen.sh
@@ -70,11 +70,11 @@ arch)
 		-B ${tmp}-arch.c1 \
 		-N ${tmp}-all.h1
 	sed $sedscript < ${tmp}-arch.h1 > ${tmp}-arch.h
-	${rootdir}/move-if-change ${tmp}-arch.h ${srcdir}/arch.h
+	${rootdir}/move-if-change ${tmp}-arch.h ${srcdir}/arch${suffix}.h
 	sed $sedscript < ${tmp}-arch.c1 > ${tmp}-arch.c
-	${rootdir}/move-if-change ${tmp}-arch.c ${srcdir}/arch.c
+	${rootdir}/move-if-change ${tmp}-arch.c ${srcdir}/arch${suffix}.c
 	sed $sedscript < ${tmp}-all.h1 > ${tmp}-all.h
-	${rootdir}/move-if-change ${tmp}-all.h ${srcdir}/cpuall.h
+	${rootdir}/move-if-change ${tmp}-all.h ${srcdir}/cpuall${suffix}.h
 
 	rm -f ${tmp}-arch.h1 ${tmp}-arch.c1 ${tmp}-all.h1
 	;;
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
                   ` (2 preceding siblings ...)
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 3/6] sim: cgen: allow suffix on generated arch.[ch] and cpuall.h Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  2017-02-14 18:52   ` Mike Frysinger
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 5/6] sim: or1k: Add generated files Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 6/6] sim: testsuite: add testsuite for or1k sim Stafford Horne
  5 siblings, 1 reply; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

sim/ChangeLog:

2017-01-20  Stafford Horne  <shorne@gmail.com>
	    Peter Gavin  <pgavin@gmail.com>

	* configure.tgt: Add or1k sim.
	* or1k/Makefile.in: New file.
	* or1k/arch.h: New file.
	* or1k/configure.ac: New file.
	* or1k/cpu.h: New file.
	* or1k/cpuall.h: New file.
	* or1k/decode.h: New file.
	* or1k/eng.h: New file.
	* or1k/mloop.in: New file.
	* or1k/or1k-sim.h: New file.
	* or1k/or1k.c: New file.
	* or1k/or1k.h: New file.
	* or1k/sim-if.c: New file.
	* or1k/sim-main.h: New file.
	* or1k/traps-linux.c: New file.
	* or1k/traps.c: New file.
---
 sim/configure.tgt      |   4 +
 sim/or1k/Makefile.in   | 232 ++++++++++++++++++++++++++++++++++++
 sim/or1k/arch.h        |   5 +
 sim/or1k/configure.ac  |  41 +++++++
 sim/or1k/cpu.h         |   5 +
 sim/or1k/cpuall.h      |   5 +
 sim/or1k/decode.h      |   5 +
 sim/or1k/eng.h         |   5 +
 sim/or1k/mloop.in      | 244 +++++++++++++++++++++++++++++++++++++
 sim/or1k/or1k-sim.h    |  21 ++++
 sim/or1k/or1k.c        | 271 +++++++++++++++++++++++++++++++++++++++++
 sim/or1k/or1k.h        |  38 ++++++
 sim/or1k/sim-if.c      | 318 +++++++++++++++++++++++++++++++++++++++++++++++++
 sim/or1k/sim-main.h    |  78 ++++++++++++
 sim/or1k/traps-linux.c |  32 +++++
 sim/or1k/traps.c       | 181 ++++++++++++++++++++++++++++
 16 files changed, 1485 insertions(+)
 create mode 100644 sim/or1k/Makefile.in
 create mode 100644 sim/or1k/arch.h
 create mode 100644 sim/or1k/configure.ac
 create mode 100644 sim/or1k/cpu.h
 create mode 100644 sim/or1k/cpuall.h
 create mode 100644 sim/or1k/decode.h
 create mode 100644 sim/or1k/eng.h
 create mode 100644 sim/or1k/mloop.in
 create mode 100644 sim/or1k/or1k-sim.h
 create mode 100644 sim/or1k/or1k.c
 create mode 100644 sim/or1k/or1k.h
 create mode 100644 sim/or1k/sim-if.c
 create mode 100644 sim/or1k/sim-main.h
 create mode 100644 sim/or1k/traps-linux.c
 create mode 100644 sim/or1k/traps.c

diff --git a/sim/configure.tgt b/sim/configure.tgt
index c958fb3..82b0e89 100644
--- a/sim/configure.tgt
+++ b/sim/configure.tgt
@@ -76,6 +76,10 @@ case "${target}" in
    msp430*-*-*)
        SIM_ARCH(msp430)
        ;;
+   or1k-*-* | or1knd-*-*)
+       SIM_ARCH(or1k)
+       sim_testsuite=yes
+       ;;
    rl78-*-*)
        SIM_ARCH(rl78)
        ;;
diff --git a/sim/or1k/Makefile.in b/sim/or1k/Makefile.in
new file mode 100644
index 0000000..df95012
--- /dev/null
+++ b/sim/or1k/Makefile.in
@@ -0,0 +1,232 @@
+# Makefile template for Configure for the or1k simulator
+# Copyright (C) 1996-2000, 2003-2004, 2007-2012 Free Software
+# Foundation, Inc.
+# Contributed by Cygnus Support.
+#
+# This file is part of GDB, the GNU debugger.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+## COMMON_PRE_CONFIG_FRAG
+
+OR1K32_OBJS = \
+	or1k32.o \
+	arch32.o \
+	cpu32.o \
+	decode32.o \
+	model32.o \
+	sem32.o \
+	mloop32.o \
+	sim-if32.o
+
+OR1K64_OBJS = \
+	or1k64.o \
+	arch64.o \
+	cpu64.o \
+	decode64.o \
+	model64.o \
+	sem64.o \
+	mloop64.o \
+	sim-if64.o
+
+TRAPS_OBJ = @traps_obj@
+
+SIM_OBJS = \
+	$(SIM_NEW_COMMON_OBJS) \
+	sim-cpu.o \
+	sim-hload.o \
+	sim-hrw.o \
+	sim-reg.o \
+	cgen-utils.o \
+	cgen-trace.o \
+	cgen-scache.o \
+	cgen-run.o \
+	sim-reason.o \
+	sim-engine.o \
+	sim-model.o \
+	sim-stop.o \
+	$(TRAPS_OBJ)
+ifneq (@want_or1k64@,true)
+SIM_OBJS += $(OR1K32_OBJS)
+else
+SIM_OBJS += $(OR1K64_OBJS)
+endif
+
+# Extra headers included by sim-main.h.
+SIM_EXTRA_DEPS = \
+	$(CGEN_INCLUDE_DEPS) \
+	or1k-sim.h \
+	$(srcdir)/../../opcodes/or1k-desc.h \
+	arch32.h \
+	cpuall32.h \
+	decode32.h \
+	arch64.h \
+	cpuall64.h \
+	decode64.h
+
+SIM_EXTRA_CFLAGS = @sim_extra_cflags@
+ifeq (@want_or1k64@,true)
+SIM_EXTRA_CFLAGS += -DWANT_OR1K64
+endif
+ifeq (@want_or1k_nodelay@,true)
+SIM_EXTRA_CFLAGS += -DWANT_OR1K_NODELAY
+endif
+
+SIM_EXTRA_LIBS = -lm
+
+SIM_RUN_OBJS = nrun.o
+SIM_EXTRA_CLEAN =
+
+## COMMON_POST_CONFIG_FRAG
+
+arch = or1k
+
+# or1k32bf
+
+OR1K32BF_INCLUDE_DEPS = \
+	$(CGEN_MAIN_CPU_DEPS) \
+	cpu32.h \
+	decode32.h \
+	eng32.h
+
+mloop32.c eng32.h: stamp-mloop32 ; @true
+stamp-mloop32: $(srcdir)/../common/genmloop.sh mloop.in Makefile
+	$(SHELL) $(srccom)/genmloop.sh -shell $(SHELL) \
+		-mono -fast -pbb -switch sem32-switch.c \
+		-cpu or1k32bf -infile $(srcdir)/mloop.in
+	$(SHELL) $(srcroot)/move-if-change eng.hin eng32.h
+	$(SHELL) $(srcroot)/move-if-change mloop.cin mloop32.c
+	touch stamp-mloop32
+mloop32.o: mloop32.c sem32-switch.c $(OR1K32BF_INCLUDE_DEPS)
+or1k32.o: or1k.c $(OR1K32BF_INCLUDE_DEPS)
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+arch32.o: arch32.c $(SIM_MAIN_DEPS)
+cpu32.o: cpu32.c $(OR1K32BF_INCLUDE_DEPS)
+decode32.o: decode32.c $(OR1K32BF_INCLUDE_DEPS)
+sem32.o: sem32.c $(OR1K32BF_INCLUDE_DEPS)
+sem32-switch.o: sem32-switch.c $(OR1K32BF_INCLUDE_DEPS)
+model32.o: model32.c $(OR1K32BF_INCLUDE_DEPS)
+
+sim-if32.o: sim-if.c $(SIM_MAIN_DEPS) $(srcdir)/../common/sim-core.h eng32.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+
+traps32.o: traps.c $(SIM_MAIN_DEPS) eng32.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+traps32-linux.o: traps-linux.c $(SIM_MAIN_DEPS) eng32.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+
+
+# or1k64bf
+
+OR1K64BF_INCLUDE_DEPS = \
+	$(CGEN_MAIN_CPU_DEPS) \
+	cpu64.h \
+	decode64.h \
+	eng64.h
+
+mloop64.c eng64.h: stamp-mloop64 ; @true
+stamp-mloop64: $(srcdir)/../common/genmloop.sh mloop.in Makefile
+	$(SHELL) $(srccom)/genmloop.sh -shell $(SHELL) \
+		-mono -fast -pbb -switch sem32-switch.c \
+		-cpu or1k64bf -infile $(srcdir)/mloop.in
+	$(SHELL) $(srcroot)/move-if-change eng64.hin eng64.h
+	$(SHELL) $(srcroot)/move-if-change mloop64.cin mloop64.c
+	touch stamp-mloop64
+mloop64.o: mloop64.c sem64.c $(OR1K64BF_INCLUDE_DEPS)
+or1k64.o: or1k.c $(OR1K64BF_INCLUDE_DEPS)
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+arch64.o: arch64.c $(SIM_MAIN_DEPS)
+cpu64.o: cpu64.c $(OR1K64BF_INCLUDE_DEPS)
+decode64.o: decode64.c $(OR1K64BF_INCLUDE_DEPS)
+sem64.o: sem64.c $(OR1K64BF_INCLUDE_DEPS)
+sem64-switch.o: sem64-switch.c $(OR1K64BF_INCLUDE_DEPS)
+model64.o: model64.c $(OR1K64BF_INCLUDE_DEPS)
+
+sim-if64.o: sim-if.c $(SIM_MAIN_DEPS) $(srcdir)/../common/sim-core.h eng64.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+
+traps64.o: traps.c $(SIM_MAIN_DEPS) eng64.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+traps64-linux.o: traps-linux.c $(SIM_MAIN_DEPS) eng64.h
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+
+
+# cgen support, enable with --enable-cgen-maint
+CGEN_MAINT = ; @true
+# The following line is commented in or out depending upon --enable-cgen-maint.
+@CGEN_MAINT@CGEN_MAINT =
+
+# NOTE: Generated source files are specified as full paths,
+# e.g. $(srcdir)/arch.c, because make may decide the files live
+# in objdir otherwise.
+
+OR1K_CGEN_DEPS = \
+	$(CPU_DIR)/or1k.cpu \
+	$(CPU_DIR)/or1k.opc \
+	$(CPU_DIR)/or1kcommon.cpu \
+	$(CPU_DIR)/or1korbis.cpu \
+	$(CPU_DIR)/or1korfpx.cpu \
+	Makefile
+
+stamp-arch32: $(CGEN_READ_SCM) $(CGEN_ARCH_SCM) $(OR1K_CGEN_DEPS)
+	$(MAKE) cgen-arch $(CGEN_FLAGS_TO_PASS) \
+	  mach=or32,or32nd \
+	  SUFFIX=32 \
+	  archfile=$(CPU_DIR)/or1k.cpu \
+	  FLAGS="with-scache"
+	touch $@
+$(srcdir)/arch32.h $(srcdir)/arch32.c $(srcdir)/cpuall32.h: $(CGEN_MAINT) stamp-arch32
+	@true
+
+stamp-arch64: $(CGEN_READ_SCM) $(CGEN_ARCH_SCM) $(OR1K_CGEN_DEPS)
+	$(MAKE) cgen-arch $(CGEN_FLAGS_TO_PASS) \
+	  mach=or64,or64nd \
+	  SUFFIX=64 \
+	  archfile=$(CPU_DIR)/or1k.cpu \
+	  FLAGS="with-scache"
+	touch $@
+$(srcdir)/arch64.h $(srcdir)/arch64.c $(srcdir)/cpuall64.h: $(CGEN_MAINT) stamp-arch64
+	@true
+
+stamp-cpu32: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(OR1K_CGEN_DEPS)
+	$(MAKE) cgen-cpu-decode $(CGEN_FLAGS_TO_PASS) \
+	  cpu=or1k32bf \
+	  mach=or32,or32nd \
+	  SUFFIX=32 \
+	  archfile=$(CPU_DIR)/or1k.cpu \
+	  FLAGS="with-scache" \
+	  EXTRAFILES="$(CGEN_CPU_SEM) $(CGEN_CPU_SEMSW)"
+	touch $@
+$(srcdir)/cpu32.h $(srcdir)/cpu32.c $(srcdir)/model32.c $(srcdir)/sem32.c $(srcdir)/sem32-switch.c $(srcdir)/decode32.c $(srcdir)/decode32.h: $(CGEN_MAINT) stamp-cpu32
+	@true
+
+stamp-cpu64: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(OR1K_CGEN_DEPS)
+	$(MAKE) cgen-cpu-decode $(CGEN_FLAGS_TO_PASS) \
+	  cpu=or1k64bf \
+	  mach=or64,or64nd \
+	  SUFFIX=64 \
+	  archfile=$(CPU_DIR)/or1k.cpu \
+	  FLAGS="with-scache" \
+	  EXTRAFILES="$(CGEN_CPU_SEM) $(CGEN_CPU_SEMSW)"
+	touch $@
+$(srcdir)/cpu64.h $(srcdir)/cpu64.c $(srcdir)/model64.c $(srcdir)/sem64.c $(srcdir)/sem64-switch.c $(srcdir)/decode64.c $(srcdir)/decode64.h: $(CGEN_MAINT) stamp-cpu64
+	@true
diff --git a/sim/or1k/arch.h b/sim/or1k/arch.h
new file mode 100644
index 0000000..88202a2
--- /dev/null
+++ b/sim/or1k/arch.h
@@ -0,0 +1,5 @@
+#ifndef WANT_OR1K64
+#include "arch32.h"
+#else
+#include "arch64.h"
+#endif
diff --git a/sim/or1k/configure.ac b/sim/or1k/configure.ac
new file mode 100644
index 0000000..e0b5a90
--- /dev/null
+++ b/sim/or1k/configure.ac
@@ -0,0 +1,41 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_PREREQ(2.64)dnl
+AC_INIT(Makefile.in)
+sinclude(../common/acinclude.m4)
+
+  case "${target_alias}" in
+  or1k-linux*|or1knd-linux*)
+    traps_obj=traps32-linux.o
+    ;;
+  or1k-*|or1knd-*)
+    traps_obj=traps32.o
+    ;;
+  esac
+
+  case "${target_alias}" in
+  or1knd-*)
+    want_or1k_nodelay=true
+    default_model=or1200nd
+    ;;
+  *)
+    default_model=or1200
+    ;;
+  esac
+
+SIM_AC_COMMON
+
+SIM_AC_OPTION_ENDIAN(BIG)
+SIM_AC_OPTION_ALIGNMENT(STRICT_ALIGNMENT)
+SIM_AC_OPTION_BITSIZE([32], [31], [32])
+SIM_AC_OPTION_SCACHE(16384)
+SIM_AC_OPTION_DEFAULT_MODEL([$default_model])
+SIM_AC_OPTION_ENVIRONMENT
+SIM_AC_OPTION_INLINE()
+SIM_AC_OPTION_CGEN_MAINT
+
+AC_SUBST(traps_obj)
+AC_SUBST(sim_extra_cflags)
+AC_SUBST(want_or1k64)
+AC_SUBST(want_or1k_nodelay)
+
+SIM_AC_OUTPUT
diff --git a/sim/or1k/cpu.h b/sim/or1k/cpu.h
new file mode 100644
index 0000000..1f2a5f3
--- /dev/null
+++ b/sim/or1k/cpu.h
@@ -0,0 +1,5 @@
+#ifndef WANT_OR1K64
+#include "cpu32.h"
+#else
+#include "cpu64.h"
+#endif
diff --git a/sim/or1k/cpuall.h b/sim/or1k/cpuall.h
new file mode 100644
index 0000000..be6f87b
--- /dev/null
+++ b/sim/or1k/cpuall.h
@@ -0,0 +1,5 @@
+#ifndef WANT_OR1K64
+#include "cpuall32.h"
+#else
+#include "cpuall64.h"
+#endif
diff --git a/sim/or1k/decode.h b/sim/or1k/decode.h
new file mode 100644
index 0000000..fe96fbb
--- /dev/null
+++ b/sim/or1k/decode.h
@@ -0,0 +1,5 @@
+#ifndef WANT_OR1K64
+#include "decode32.h"
+#else
+#include "decode64.h"
+#endif
diff --git a/sim/or1k/eng.h b/sim/or1k/eng.h
new file mode 100644
index 0000000..a46cf86
--- /dev/null
+++ b/sim/or1k/eng.h
@@ -0,0 +1,5 @@
+#ifndef WANT_OR1K64
+#include "eng32.h"
+#else
+#include "eng64.h"
+#endif
diff --git a/sim/or1k/mloop.in b/sim/or1k/mloop.in
new file mode 100644
index 0000000..8310033
--- /dev/null
+++ b/sim/or1k/mloop.in
@@ -0,0 +1,244 @@
+# Simulator main loop for or1k. -*- C -*-
+#
+# Copyright (C) 1996-1998, 2007-2012 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Syntax:
+# /bin/sh mainloop.in command
+#
+# Command is one of:
+#
+# init
+# support
+# extract-{simple,scache,pbb}
+# {full,fast}-exec-{simple,scache,pbb}
+#
+# A target need only provide a "full" version of one of simple,scache,pbb.
+# If the target wants it can also provide a fast version of same, or if
+# the slow (full featured) version is `simple', then the fast version can be
+# one of scache/pbb.
+# A target can't provide more than this.
+# However for illustration's sake this file provides examples of all.
+
+# ??? After a few more ports are done, revisit.
+# Will eventually need to machine generate a lot of this.
+
+case "x$1" in
+
+xsupport)
+
+cat <<EOF
+
+static INLINE const IDESC *
+extract (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn,
+         ARGBUF *abuf, int fast_p)
+{
+  const IDESC *id = @cpu at _decode (current_cpu, pc, insn, insn, abuf);
+  @cpu at _fill_argbuf (current_cpu, abuf, id, pc, fast_p);
+  if (!fast_p) {
+    int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc);
+    int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc);
+    @cpu at _fill_argbuf_tp (current_cpu, abuf, trace_p, profile_p);
+  }
+  return id;
+}
+
+static INLINE SEM_PC
+execute (SIM_CPU *current_cpu, SCACHE *sc, int fast_p)
+{
+  SEM_PC vpc;
+
+  @cpu@_insn_before (current_cpu, vpc, sc->argbuf.idesc);
+
+  if (fast_p)
+    {
+#if ! WITH_SEM_SWITCH_FAST
+#if WITH_SCACHE
+      vpc = (*sc->argbuf.semantic.sem_fast) (current_cpu, sc);
+#else
+      vpc = (*sc->argbuf.semantic.sem_fast) (current_cpu, &sc->argbuf);
+#endif
+#else
+      abort ();
+#endif /* WITH_SEM_SWITCH_FAST */
+    }
+  else
+    {
+#if ! WITH_SEM_SWITCH_FULL
+      ARGBUF *abuf = &sc->argbuf;
+      const IDESC *idesc = abuf->idesc;
+      const CGEN_INSN *idata = idesc->idata;
+#if WITH_SCACHE_PBB
+      int virtual_p = CGEN_INSN_ATTR_VALUE (idata, CGEN_INSN_VIRTUAL);
+#else
+      int virtual_p = 0;
+#endif
+
+      if (! virtual_p)
+        {
+          /* FIXME: call x-before */
+          if (ARGBUF_PROFILE_P (abuf))
+            PROFILE_COUNT_INSN (current_cpu, abuf->addr, idesc->num);
+          /* FIXME: Later make cover macros: PROFILE_INSN_{INIT,FINI}.  */
+          if (PROFILE_MODEL_P (current_cpu)
+              && ARGBUF_PROFILE_P (abuf))
+            @cpu at _model_insn_before (current_cpu, 1 /*first_p*/);
+          CGEN_TRACE_INSN_INIT (current_cpu, abuf, 1);
+          CGEN_TRACE_INSN (current_cpu, idata,
+                      (const struct argbuf *) abuf, abuf->addr);
+        }
+#if WITH_SCACHE
+      vpc = (*sc->argbuf.semantic.sem_full) (current_cpu, sc);
+#else
+      vpc = (*sc->argbuf.semantic.sem_full) (current_cpu, abuf);
+#endif
+      if (! virtual_p)
+        {
+          /* FIXME: call x-after */
+          if (PROFILE_MODEL_P (current_cpu)
+              && ARGBUF_PROFILE_P (abuf))
+            {
+              int cycles;
+
+              cycles = (*idesc->timing->model_fn) (current_cpu, sc);
+              @cpu at _model_insn_after (current_cpu, 1 /*last_p*/, cycles);
+            }
+          CGEN_TRACE_INSN_FINI (current_cpu, abuf, 1);
+        }
+#else
+      abort ();
+#endif /* WITH_SEM_SWITCH_FULL */
+    }
+
+  @cpu at _insn_after (current_cpu, vpc, sc->argbuf.idesc);
+
+  return vpc;
+}
+
+EOF
+
+;;
+
+xinit)
+
+# Nothing needed.
+
+;;
+
+xextract-simple | xextract-scache)
+
+cat <<EOF
+{
+  USI insn = GETIMEMUSI (current_cpu, pc);
+  extract (current_cpu, pc, insn, sc, FAST_P);
+  SEM_SKIP_COMPILE (current_cpu, sc, 1);
+}
+EOF
+
+;;
+
+xextract-pbb)
+
+# Inputs:  current_cpu, pc, sc, max_insns, FAST_P
+# Outputs: sc, pc
+# sc must be left pointing past the last created entry.
+# pc must be left pointing past the last created entry.
+# If the pbb is terminated by a cti insn, SET_CTI_VPC(sc) must be called
+# to record the vpc of the cti insn.
+# SET_INSN_COUNT(n) must be called to record number of real insns.
+
+cat <<EOF
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+  const IDESC *idesc;
+  int icount = 0;
+
+  while (max_insns > 0) {
+
+    USI insn = GETIMEMUSI (current_cpu, pc);
+
+    idesc = extract (current_cpu, pc, insn, &sc->argbuf, FAST_P);
+
+    SEM_SKIP_COMPILE (current_cpu, sc, 1);
+
+    ++sc;
+    --max_insns;
+    ++icount;
+    pc += 4;
+
+    if (CGEN_ATTR_BOOLS (CGEN_INSN_ATTRS ((idesc)->idata)) & CGEN_ATTR_MASK (CGEN_INSN_FORCED_CTI))
+      {
+
+        SET_CTI_VPC (sc - 1);
+
+        break;
+
+      }
+    else if (CGEN_ATTR_BOOLS (CGEN_INSN_ATTRS ((idesc)->idata)) & CGEN_ATTR_MASK (CGEN_INSN_DELAYED_CTI))
+      {
+
+        /* handle delay slot */
+        SET_CTI_VPC (sc - 1);
+
+        insn = GETIMEMUSI (current_cpu, pc);
+
+        idesc = extract (current_cpu, pc, insn, &sc->argbuf, FAST_P);
+
+        ++sc;
+        --max_insns;
+        ++icount;
+        pc += 4;
+
+        break;
+      }
+  }
+
+  SET_INSN_COUNT (icount);
+
+}
+EOF
+
+;;
+
+xfull-exec-* | xfast-exec-*)
+
+# Inputs: current_cpu, vpc, FAST_P
+# Outputs: vpc
+# vpc is the virtual program counter.
+
+cat <<EOF
+#if (! FAST_P && WITH_SEM_SWITCH_FULL) || (FAST_P && WITH_SEM_SWITCH_FAST)
+#define DEFINE_SWITCH
+#ifdef WANT_CPU_OR1K32BF
+#include "sem32-switch.c"
+#endif
+#ifdef WANT_CPU_OR1K64BF
+#include "sem64-switch.c"
+#endif
+#else
+  vpc = execute (current_cpu, vpc, FAST_P);
+#endif
+EOF
+
+;;
+
+*)
+  echo "Invalid argument to mainloop.in: $1" >&2
+  exit 1
+  ;;
+
+esac
diff --git a/sim/or1k/or1k-sim.h b/sim/or1k/or1k-sim.h
new file mode 100644
index 0000000..3a256ce
--- /dev/null
+++ b/sim/or1k/or1k-sim.h
@@ -0,0 +1,21 @@
+#ifndef OR1K_SIM_H
+#define OR1K_SIM_H
+
+#include "symcat.h"
+
+/* GDB register numbers.  */
+#define PPC_REGNUM	32
+#define PC_REGNUM	33
+#define SR_REGNUM	34
+
+/* Misc. profile data.  */
+typedef struct {
+} OR1K_MISC_PROFILE;
+
+#define GETTWI XCONCAT2(GETT,WI)
+#define SETTWI XCONCAT2(SETT,WI)
+
+#define EXIT_ERROR       1
+#define EXIT_UNSPECIFIED 2
+
+#endif /* OR1K_SIM_H */
diff --git a/sim/or1k/or1k.c b/sim/or1k/or1k.c
new file mode 100644
index 0000000..eeaf1b2
--- /dev/null
+++ b/sim/or1k/or1k.c
@@ -0,0 +1,271 @@
+#ifndef WANT_OR1K64
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+#else
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+#endif
+
+#include "sim-main.h"
+#include "symcat.h"
+#include "cgen-ops.h"
+#include "cgen-mem.h"
+#include "cpuall.h"
+
+#include <string.h>
+
+int XCONCAT2(WANT_CPU,_fetch_register) (sim_cpu *current_cpu, int rn, unsigned char *buf, int len)
+{
+   if (rn < 32)
+    SETTWI (buf, XCONCAT2(WANT_CPU,_h_gpr_get) (current_cpu, rn));
+  else
+    switch (rn)
+      {
+      case PPC_REGNUM :
+        SETTWI (buf, XCONCAT2(WANT_CPU,_h_sys_ppc_get) (current_cpu));
+        break;
+      case PC_REGNUM :
+        SETTWI (buf, XCONCAT2(WANT_CPU,_h_pc_get) (current_cpu));
+        break;
+      case SR_REGNUM :
+        SETTWI (buf, XCONCAT2(WANT_CPU,_h_sys_sr_get) (current_cpu));
+        break;
+      default :
+         return 0;
+      }
+  return sizeof(WI); /* WI from arch.h */
+}
+
+int XCONCAT2(WANT_CPU,_store_register) (sim_cpu *current_cpu, int rn, unsigned char *buf, int len)
+{
+  if (rn < 32)
+    XCONCAT2(WANT_CPU,_h_gpr_set) (current_cpu, rn, GETTWI (buf));
+  else
+    switch (rn)
+      {
+      case PPC_REGNUM :
+        XCONCAT2(WANT_CPU,_h_sys_ppc_set) (current_cpu, GETTWI (buf));
+        break;
+      case PC_REGNUM :
+        XCONCAT2(WANT_CPU,_h_pc_set) (current_cpu, GETTWI (buf));
+        break;
+      case SR_REGNUM :
+        XCONCAT2(WANT_CPU,_h_sys_sr_set) (current_cpu, GETTWI (buf));
+        break;
+      default :
+         return 0;
+      }
+  return sizeof(WI); /* WI from arch.h */
+}
+
+#ifdef WANT_CPU_OR1K32BF
+int or1k32bf_model_or1200_u_exec (sim_cpu * UNUSED current_cpu, const IDESC * UNUSED idesc, int unit_num, int referenced)
+{
+  return -1;
+}
+
+int or1k32bf_model_or1200nd_u_exec (sim_cpu * UNUSED current_cpu, const IDESC * UNUSED idesc, int unit_num, int referenced)
+{
+  return -1;
+}
+
+void or1k32bf_model_insn_before (sim_cpu * UNUSED current_cpu, int UNUSED first_p)
+{
+}
+
+void or1k32bf_model_insn_after (sim_cpu * UNUSED current_cpu, int UNUSED last_p, int UNUSED cycles)
+{
+}
+
+USI or1k32bf_h_spr_get_raw (sim_cpu *current_cpu, USI addr)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+  SIM_ASSERT(addr < NUM_SPR);
+  return current_cpu->spr[addr];
+}
+
+void or1k32bf_h_spr_set_raw (sim_cpu *current_cpu, USI addr, USI val)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+  SIM_ASSERT(addr < NUM_SPR);
+  current_cpu->spr[addr] = val;
+}
+
+USI or1k32bf_h_spr_field_get_raw (sim_cpu *current_cpu, USI addr, int msb, int lsb)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+  SIM_ASSERT(addr < NUM_SPR);
+  return LSEXTRACTED(current_cpu->spr[addr], msb, lsb);
+}
+
+void or1k32bf_h_spr_field_set_raw (sim_cpu *current_cpu, USI addr, int msb, int lsb, USI val)
+{
+  current_cpu->spr[addr] &= ~LSMASK32(msb, lsb);
+  current_cpu->spr[addr] |= LSINSERTED(val, msb, lsb);
+}
+
+void or1k32bf_cpu_init (SIM_DESC sd, sim_cpu *current_cpu)
+{
+#define CHECK_SPR_FIELD(GROUP, INDEX, FIELD, test)                      \
+  do {                                                                  \
+    USI field = GET_H_##SYS##_##INDEX##_##FIELD ();                     \
+    if (!(test)) {                                                      \
+      sim_io_eprintf(sd, "WARNING: unsupported %s field in %s register: 0x%x\n", \
+                     #FIELD, #INDEX, field);                            \
+    }                                                                   \
+  } while (0)
+
+  current_cpu->next_delay_slot = 0;
+  current_cpu->delay_slot = 0;
+
+  CHECK_SPR_FIELD(SYS,UPR,UP,   field == 1);
+  CHECK_SPR_FIELD(SYS,UPR,DCP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,ICP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,DMP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,MP,   field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,IMP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,DUP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,PCUP, field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,PICP, field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,PMP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,TTP,  field == 0);
+  CHECK_SPR_FIELD(SYS,UPR,CUP,  field == 0);
+
+  CHECK_SPR_FIELD(SYS,CPUCFGR,NSGR,  field == 0);
+  CHECK_SPR_FIELD(SYS,CPUCFGR,CGF,   field == 0);
+  CHECK_SPR_FIELD(SYS,CPUCFGR,OB32S, field == 1);
+  CHECK_SPR_FIELD(SYS,CPUCFGR,OB64S, field == 0);
+  CHECK_SPR_FIELD(SYS,CPUCFGR,OF64S, field == 0);
+  CHECK_SPR_FIELD(SYS,CPUCFGR,OV64S, field == 0);
+
+#undef CHECK_SPR_FIELD
+
+  SET_H_SYS_UPR_UP(1);
+
+  SET_H_SYS_SR(SPR_FIELD_MASK_SYS_SR_SM |
+               SPR_FIELD_MASK_SYS_SR_FO
+               );
+
+  SET_H_SYS_FPCSR(0);
+}
+
+void or1k32bf_insn_before (sim_cpu *current_cpu, SEM_PC vpc, IDESC *idesc)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  current_cpu->delay_slot = current_cpu->next_delay_slot;
+  current_cpu->next_delay_slot = 0;
+
+  if (current_cpu->delay_slot &&
+      CGEN_ATTR_BOOLS (CGEN_INSN_ATTRS ((idesc)->idata)) & CGEN_ATTR_MASK (CGEN_INSN_NOT_IN_DELAY_SLOT)) {
+    USI pc;
+#ifdef WITH_SCACHE
+    pc = vpc->argbuf.addr;
+#else
+    pc = vpc;
+#endif
+    sim_io_error (sd, "invalid instruction in a delay slot at PC 0x%08x", pc);
+  }
+
+}
+
+void or1k32bf_insn_after (sim_cpu *current_cpu, SEM_PC vpc, IDESC *idesc)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+  USI ppc;
+
+#ifdef WITH_SCACHE
+  ppc = vpc->argbuf.addr;
+#else
+  ppc = vpc;
+#endif
+
+  SET_H_SYS_PPC (ppc);
+
+  if (!GET_H_SYS_CPUCFGR_ND () &&
+      CGEN_ATTR_BOOLS (CGEN_INSN_ATTRS ((idesc)->idata)) & CGEN_ATTR_MASK (CGEN_INSN_DELAYED_CTI)) {
+    SIM_ASSERT (!current_cpu->delay_slot);
+    current_cpu->next_delay_slot = 1;
+  }
+}
+
+void or1k32bf_nop (sim_cpu *current_cpu, USI uimm16)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  switch (uimm16) {
+
+  case NOP_NOP:
+    break;
+
+  case NOP_EXIT:
+    sim_io_printf (CPU_STATE(current_cpu), "exit(%d)\n", GET_H_GPR(3));
+    /* fall through */
+  case NOP_EXIT_SILENT:
+    sim_engine_halt (sd, current_cpu, NULL, CPU_PC_GET (current_cpu), sim_exited, GET_H_GPR (3));
+    break;
+
+  case NOP_REPORT:
+    sim_io_printf (CPU_STATE(current_cpu), "report(0x%08x);\n", GET_H_GPR(3));
+    break;
+
+  case NOP_PUTC:
+    sim_io_printf (CPU_STATE(current_cpu), "%c", (char)(GET_H_GPR(3) & 0xff));
+    break;
+
+  default:
+    sim_io_eprintf(sd, "WARNING: l.nop with unsupported code 0x%08x\n", uimm16);
+    break;
+  }
+
+}
+
+USI or1k32bf_make_load_store_addr (sim_cpu *current_cpu, USI base, SI offset, int size)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  USI addr = base + offset;
+
+  if (GET_H_SYS_SR_LEE ()) {
+    switch (size) {
+
+    case 4:
+      break;
+
+    case 2:
+      addr ^= 0x2;
+
+    case 1:
+      addr ^= 0x3;
+
+    default:
+      SIM_ASSERT (0);
+      return 0;
+    }
+  }
+
+  return addr;
+}
+
+USI or1k32bf_ff1 (sim_cpu *current_cpu, USI val)
+{
+  USI bit;
+  USI ret;
+  for (bit = 1, ret = 1; bit; bit <<= 1, ret++) {
+    if (val & bit)
+      return ret;
+  }
+  return 0;
+}
+
+USI or1k32bf_fl1 (sim_cpu *current_cpu, USI val)
+{
+  USI bit;
+  USI ret;
+  for (bit = 1 << 31, ret = 32; bit; bit >>= 1, ret--) {
+    if (val & bit)
+      return ret;
+  }
+  return 0;
+}
+#endif
diff --git a/sim/or1k/or1k.h b/sim/or1k/or1k.h
new file mode 100644
index 0000000..e71a845
--- /dev/null
+++ b/sim/or1k/or1k.h
@@ -0,0 +1,38 @@
+#ifndef OR1K_H
+#define OR1K_H
+
+#define NOP_NOP         0x0
+#define NOP_EXIT        0x1
+#define NOP_REPORT      0x2
+#define NOP_PUTC        0x4
+#define NOP_CNT_RESET   0x5
+#define NOP_GET_TICKS   0x6
+#define NOP_GET_PS      0x7
+#define NOP_TRACE_ON    0x8
+#define NOP_TRACE_OFF   0x9
+#define NOP_RANDOM      0xa
+#define NOP_OR1KSIM     0xb
+#define NOP_EXIT_SILENT 0xc
+
+#define NUM_SPR 0x20000
+#define SPR_GROUP_SHIFT 11
+#define SPR_GROUP_FIRST(group) (((UWI) SPR_GROUP_##group) << SPR_GROUP_SHIFT)
+#define SPR_GROUP_LAST(group) (SPR_GROUP_FIRST | (((UWI) 1 << SPR_GROUP_SHIFT) - 1))
+#define SPR_ADDR(group,index) (SPR_GROUP_FIRST(group) | ((UWI) SPR_INDEX_##group##_##index))
+#define SPR_ADDR_GROUP(addr) (((UWI) (addr)) >> SPR_GROUP_SHIFT)
+#define SPR_INDEX_MASK (~(~((UWI) 0) << SPR_GROUP_SHIFT))
+#define SPR_ADDR_INDEX(addr) (((UWI) (addr)) && SPR_INDEX_MASK)
+#define SPR_FIELD(group,index,field,val) ((SPR_FIELD_MASK_##group##_##index##_##field & (val)) >> SPR_FIELD_LSB_##group##_##index##_##field)
+
+#ifdef WANT_CPU_OR1K32BF
+void or1k32bf_cpu_init (SIM_DESC sd, sim_cpu *current_cpu);
+void or1k32bf_insn_before (sim_cpu *current_cpu, SEM_PC vpc, IDESC *idesc);
+void or1k32bf_insn_after (sim_cpu *current_cpu, SEM_PC vpc, IDESC *idesc);
+void or1k32bf_exception (sim_cpu *current_cpu, USI pc, USI exnum);
+void or1k32bf_rfe (sim_cpu *current_cpu);
+void or1k32bf_nop (sim_cpu *current_cpu, USI uimm16);
+USI or1k32bf_mfspr (sim_cpu *current_cpu, USI addr);
+void or1k32bf_mtspr (sim_cpu *current_cpu, USI addr, USI val);
+#endif
+
+#endif
diff --git a/sim/or1k/sim-if.c b/sim/or1k/sim-if.c
new file mode 100644
index 0000000..7749cff
--- /dev/null
+++ b/sim/or1k/sim-if.c
@@ -0,0 +1,318 @@
+/* Main simulator entry points specific to the OR1K.
+   Copyright (C) 1996-1999, 2003, 2007-2012 Free Software Foundation,
+   Inc.
+   Contributed by Cygnus Support.
+
+   This file is part of GDB, the GNU debugger.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef WANT_OR1K64
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+#else
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+#endif
+
+#include "sim-main.h"
+#include "sim-options.h"
+#include "libiberty.h"
+#include "bfd.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+static void free_state (SIM_DESC);
+
+/* Records simulator descriptor so utilities like or1k_dump_regs can be
+   called from gdb.  */
+SIM_DESC current_state;
+\f
+/* Cover function of sim_state_free to free the cpu buffers as well.  */
+
+static void
+free_state (SIM_DESC sd)
+{
+  if (STATE_MODULES (sd) != NULL)
+    sim_module_uninstall (sd);
+  sim_cpu_free_all (sd);
+  sim_state_free (sd);
+}
+
+static const USI or1k_default_vr = 0x0;
+static const USI or1k_default_upr = 0x0
+  | SPR_FIELD_MASK_SYS_UPR_UP
+  ;
+static const USI or1k_default_cpucfgr = 0x0
+#ifdef WANT_CPU_OR1K32BF
+  | SPR_FIELD_MASK_SYS_CPUCFGR_OB32S
+  | SPR_FIELD_MASK_SYS_CPUCFGR_OF32S
+#endif
+#ifdef WANT_CPU_OR1K64BF
+  | SPR_FIELD_MASK_SYS_CPUCFGR_OB64S
+  | SPR_FIELD_MASK_SYS_CPUCFGR_OF64S
+#endif
+#ifdef WANT_OR1K_NODELAY
+  | SPR_FIELD_MASK_SYS_CPUCFGR_ND
+#endif
+  ;
+
+static UWI or1k_upr;
+static UWI or1k_vr;
+static UWI or1k_cpucfgr;
+
+enum {
+  OPTION_OR1K_VR,
+  OPTION_OR1K_UPR,
+  OPTION_OR1K_CPUCFGR = OPTION_START,
+};
+
+DECLARE_OPTION_HANDLER(or1k_option_handler);
+
+static const OPTION or1k_options[] = {
+  { {"or1k-cpucfgr", required_argument, NULL, OPTION_OR1K_CPUCFGR },
+    '\0', "INTEGER|default", "Set simulator CPUCFGR value",
+    or1k_option_handler },
+  { {"or1k-vr", required_argument, NULL, OPTION_OR1K_VR },
+    '\0', "INTEGER|default", "Set simulator VR value",
+    or1k_option_handler },
+  { {"or1k-upr", required_argument, NULL, OPTION_OR1K_VR },
+    '\0', "INTEGER|default", "Set simulator UPR value",
+    or1k_option_handler },
+  { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL }
+};
+
+SIM_RC
+or1k_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
+                     char *arg, int is_command)
+{
+
+  switch (opt) {
+
+  case OPTION_OR1K_VR:
+    if (strcmp("default", arg) == 0) {
+      or1k_vr = or1k_default_vr;
+    } else {
+      unsigned long long n;
+      char *endptr;
+      n = strtoull (arg, &endptr, 0);
+      if (*arg != '\0' &&
+          *endptr == '\0') {
+        or1k_vr = n;
+      } else {
+        sim_io_eprintf (sd, "invalid argument to option --or1k-vr: `%s'\n", arg);
+        return SIM_RC_FAIL;
+      }
+    }
+    break;
+
+  case OPTION_OR1K_UPR:
+    if (strcmp("default", arg) == 0) {
+      or1k_upr = or1k_default_upr;
+    } else {
+      unsigned long long n;
+      char *endptr;
+      n = strtoull (arg, &endptr, 0);
+      if (*arg != '\0' &&
+          *endptr == '\0') {
+        or1k_upr = n;
+      } else {
+        sim_io_eprintf (sd, "invalid argument to option --or1k-upr: `%s'\n", arg);
+        return SIM_RC_FAIL;
+      }
+    }
+    break;
+
+  case OPTION_OR1K_CPUCFGR:
+    if (strcmp("default", arg) == 0) {
+      or1k_cpucfgr = or1k_default_cpucfgr;
+    } else {
+      unsigned long long n;
+      char *endptr;
+      n = strtoull (arg, &endptr, 0);
+      if (*arg != '\0' &&
+          *endptr == '\0') {
+        or1k_cpucfgr = n;
+      } else {
+        sim_io_eprintf (sd, "invalid argument to option --or1k-cpucfgr: `%s'\n", arg);
+        return SIM_RC_FAIL;
+      }
+    }
+    break;
+
+  default:
+    abort ();
+  }
+
+}
+
+
+/* Create an instance of the simulator.  */
+
+SIM_DESC
+sim_open (kind, callback, abfd, argv)
+     SIM_OPEN_KIND kind;
+     host_callback *callback;
+     struct bfd *abfd;
+     char * const *argv;
+{
+  SIM_DESC sd = sim_state_alloc (kind, callback);
+  char c;
+  int i;
+
+  /* The cpu data is kept in a separately allocated chunk of memory.  */
+  if (sim_cpu_alloc_all (sd, 1, cgen_cpu_max_extra_bytes ()) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */
+  if (dv_sockser_install (sd) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+#endif
+
+  /* These options override any module options.
+     Obviously ambiguity should be avoided, however the caller may wish to
+     augment the meaning of an option.  */
+  or1k_upr = or1k_default_upr;
+  or1k_vr = or1k_default_vr;
+  or1k_cpucfgr = or1k_default_cpucfgr;
+  sim_add_option_table (sd, NULL, or1k_options);
+
+  /* getopt will print the error message so we just have to exit if this fails.
+     FIXME: Hmmm...  in the case of gdb we need getopt to call
+     print_filtered.  */
+  if (sim_parse_args (sd, argv) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+  
+  /* Allocate core managed memory if none specified by user.
+     Use address 4 here in case the user wanted address 0 unmapped.  */
+  if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) {
+    sim_do_commandf (sd, "memory region 0,0x%x", OR1K_DEFAULT_MEM_SIZE);
+  }
+
+  /* check for/establish the reference program image */
+  if (sim_analyze_program (sd,
+			   (STATE_PROG_ARGV (sd) != NULL
+			    ? *STATE_PROG_ARGV (sd)
+			    : NULL),
+			   abfd) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  /* Establish any remaining configuration options.  */
+  if (sim_config (sd) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  if (sim_post_argv_init (sd) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  /* make sure delay slot mode is consistent with the loaded binary */
+  if ((or1k_cpucfgr & SPR_FIELD_MASK_SYS_CPUCFGR_ND) &&
+      (STATE_ARCHITECTURE (sd)->mach != bfd_mach_or1knd)) {
+    sim_io_eprintf (sd, "WARNING: CPUCFGR ND flag set, but loading non-or1knd binary\n");
+  } else if (!(or1k_cpucfgr & SPR_FIELD_MASK_SYS_CPUCFGR_ND) &&
+             (STATE_ARCHITECTURE (sd)->mach != bfd_mach_or1k)) {
+    sim_io_eprintf (sd, "WARNING: CPUCFGR ND flag not set, but loading non-or1k binary\n");
+  }
+
+  /* Open a copy of the cpu descriptor table.  */
+  {
+    CGEN_CPU_DESC cd = or1k_cgen_cpu_open_1 (STATE_ARCHITECTURE (sd)->printable_name,
+					     CGEN_ENDIAN_BIG);
+    for (i = 0; i < MAX_NR_PROCESSORS; ++i)
+      {
+	SIM_CPU *cpu = STATE_CPU (sd, i);
+	CPU_CPU_DESC (cpu) = cd;
+	CPU_DISASSEMBLER (cpu) = sim_cgen_disassemble_insn;
+      }
+    or1k_cgen_init_dis (cd);
+  }
+
+  /* Initialize various cgen things not done by common framework.
+     Must be done after or1k_cgen_cpu_open.  */
+  cgen_init (sd);
+
+  for (c = 0; c < MAX_NR_PROCESSORS; ++c)
+    {
+      SIM_CPU *cpu = STATE_CPU (sd, i);
+      /* Only needed for profiling, but the structure member is small.  */
+      memset (CPU_OR1K_MISC_PROFILE (cpu), 0,
+	      sizeof (* CPU_OR1K_MISC_PROFILE (cpu)));
+
+#ifdef WANT_CPU_OR1K32BF
+      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,VR),      or1k_vr);
+      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,UPR),     or1k_upr);
+      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,CPUCFGR), or1k_cpucfgr);
+
+      or1k32bf_cpu_init (sd, cpu);
+#endif
+    }
+
+  /* Store in a global so things like sparc32_dump_regs can be invoked
+     from the gdb command line.  */
+  current_state = sd;
+
+  return sd;
+}
+
+\f
+SIM_RC
+sim_create_inferior (sd, abfd, argv, envp)
+     SIM_DESC sd;
+     struct bfd *abfd;
+     char * const *argv;
+     char * const *envp;
+{
+  SIM_CPU *current_cpu = STATE_CPU (sd, 0);
+  SIM_ADDR addr;
+
+  if (abfd != NULL)
+    addr = bfd_get_start_address (abfd);
+  else
+    addr = 0;
+  sim_pc_set (current_cpu, addr);
+
+  return SIM_RC_OK;
+}
diff --git a/sim/or1k/sim-main.h b/sim/or1k/sim-main.h
new file mode 100644
index 0000000..f0b4e07
--- /dev/null
+++ b/sim/or1k/sim-main.h
@@ -0,0 +1,78 @@
+#ifndef SIM_MAIN_H
+#define SIM_MAIN_H
+
+#define WITH_SCACHE_PBB 1
+
+#include "ansidecl.h"
+#include "or1k-desc.h"
+#include "sim-basics.h"
+#include "cgen-types.h"
+#include "arch.h"
+typedef IAI sim_cia;
+#define CIA_GET(cpu) CPU_PC_GET (cpu)
+#define CIA_SET(cpu,val) CPU_PC_SET ((cpu),(val))
+#include "sim-base.h"
+
+typedef struct _sim_cpu SIM_CPU;
+#include "or1k-opc.h"
+#include "cgen-sim.h"
+#include "or1k-sim.h"
+#include "cpuall.h"
+#include "or1k.h"
+
+#ifdef OR1K_LINUX
+#define OR1K_DEFAULT_MEM_SIZE 0x2000000 /* 32M */
+#else
+#define OR1K_DEFAULT_MEM_SIZE 0x800000 /* 8M */
+#endif
+
+/* The _sim_cpu struct.  */
+struct _sim_cpu {
+  /* sim/common cpu base.  */
+  sim_cpu_base base;
+
+  /* Static parts of cgen.  */
+  CGEN_CPU cgen_cpu;
+
+  OR1K_MISC_PROFILE or1k_misc_profile;
+#define CPU_OR1K_MISC_PROFILE(cpu) (& (cpu)->or1k_misc_profile)
+
+  /* CPU specific parts go here.
+     Note that in files that don't need to access these pieces WANT_CPU_FOO
+     won't be defined and thus these parts won't appear.  This is ok in the
+     sense that things work.  It is a source of bugs though.
+     One has to of course be careful to not take the size of this
+     struct and no structure members accessed in non-cpu specific files can
+     go after here.  Oh for a better language.  */
+  UWI spr[NUM_SPR];
+
+  /* next instruction will be in delay slot */
+  BI next_delay_slot;
+  /* currently in delay slot */
+  BI delay_slot;
+
+#ifdef WANT_CPU_OR1K32BF
+  OR1K32BF_CPU_DATA cpu_data;
+#endif
+#ifdef WANT_CPU_OR1K64BF
+  OR1K64BF_CPU_DATA cpu_data;
+#endif
+
+};
+\f
+/* The sim_state struct.  */
+
+struct sim_state {
+  sim_cpu *cpu[MAX_NR_PROCESSORS];
+#if (WITH_SMP)
+#define STATE_CPU(sd, n) ((sd)->cpu[n])
+#else
+#define STATE_CPU(sd, n) ((sd)->cpu[0])
+#endif
+
+  CGEN_STATE cgen_state;
+
+  sim_state_base base;
+};
+
+#endif
diff --git a/sim/or1k/traps-linux.c b/sim/or1k/traps-linux.c
new file mode 100644
index 0000000..784992a
--- /dev/null
+++ b/sim/or1k/traps-linux.c
@@ -0,0 +1,32 @@
+#include "sim-main.h"
+
+SEM_PC
+sim_engine_invalid_insn (SIM_CPU *current_cpu, IADDR cia, SEM_PC vpc)
+{
+  /* TODO */
+  abort();
+}
+
+void or1k32bf_exception (sim_cpu *current_cpu, USI pc, USI exnum)
+{
+  /* TODO */
+  abort();
+}
+
+void or1k32bf_rfe (sim_cpu *current_cpu)
+{
+  /* TODO */
+  abort();
+}
+
+USI or1k32bf_mfspr (sim_cpu *current_cpu, USI addr)
+{
+  /* TODO */
+  abort();
+}
+
+void or1k32bf_mtspr (sim_cpu *current_cpu, USI addr, USI val)
+{
+  /* TODO */
+  abort();
+}
diff --git a/sim/or1k/traps.c b/sim/or1k/traps.c
new file mode 100644
index 0000000..815b02d
--- /dev/null
+++ b/sim/or1k/traps.c
@@ -0,0 +1,181 @@
+#ifndef WANT_OR1K64
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+#else
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+#endif
+
+#include "sim-main.h"
+#include "cgen-ops.h"
+
+SEM_PC
+sim_engine_invalid_insn (SIM_CPU *current_cpu, IADDR cia, SEM_PC vpc)
+{
+  SET_H_SYS_EEAR0(cia);
+
+#ifdef WANT_CPU_OR1K32BF
+  or1k32bf_exception (current_cpu, cia, EXCEPT_ILLEGAL);
+#endif
+
+  return vpc;
+}
+
+void or1k32bf_exception (sim_cpu *current_cpu, USI pc, USI exnum)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  if (exnum == EXCEPT_TRAP) {
+    /* Trap, used for breakpoints, sends control back to gdb breakpoint handling */
+    sim_engine_halt (sd, current_cpu, NULL, pc, sim_stopped, SIM_SIGTRAP);
+  } else {
+
+    /* Calculate the exception program counter */
+    switch (exnum) {
+    case EXCEPT_RESET:
+      break;
+
+    case EXCEPT_SYSCALL:
+      SET_H_SYS_EPCR0 (pc + 4 - (current_cpu->delay_slot ? 4 : 0));
+      break;
+
+    case EXCEPT_BUSERR:
+    case EXCEPT_ALIGN:
+    case EXCEPT_ILLEGAL:
+      SET_H_SYS_EPCR0 (pc - (current_cpu->delay_slot ? 4 : 0));
+      break;
+
+    default:
+      sim_io_error (sd, "unexpected exception 0x%x raised at PC 0x%08x", exnum, pc);
+      break;
+    }
+
+    /* Store the curent SR into ESR0 */
+    SET_H_SYS_ESR0 (GET_H_SYS_SR ());
+
+    /* Indicate in SR if the failed instruction is in delay slot or not */
+    SET_H_SYS_SR_DSX (current_cpu->delay_slot);
+
+    current_cpu->next_delay_slot = 0;
+
+    /* jump program counter into handler */
+    IADDR handler_pc = (GET_H_SYS_SR_EPH() ? 0xf0000000 : 0x00000000) + (exnum << 8);
+
+    sim_engine_restart (sd, current_cpu, NULL, handler_pc);
+  }
+}
+
+void or1k32bf_rfe (sim_cpu *current_cpu)
+{
+  SET_H_SYS_SR (GET_H_SYS_ESR0 ());
+  SET_H_SYS_SR_FO (1);
+
+  current_cpu->next_delay_slot = 0;
+
+  sim_engine_restart (CPU_STATE (current_cpu),
+                      current_cpu,
+                      NULL,
+                      GET_H_SYS_EPCR0 ());
+}
+
+USI or1k32bf_mfspr (sim_cpu *current_cpu, USI addr)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  if (!GET_H_SYS_SR_SM () && !GET_H_SYS_SR_SUMRA ()) {
+    sim_io_eprintf(sd, "WARNING: l.mfspr in user mode (SR 0x%x)\n", GET_H_SYS_SR());
+    return 0;
+  }
+
+  if (addr >= NUM_SPR)
+    goto bad_address;
+
+  SI val = GET_H_SPR(addr);
+
+  switch (addr) {
+
+  case SPR_ADDR(SYS,VR):
+  case SPR_ADDR(SYS,UPR):
+  case SPR_ADDR(SYS,CPUCFGR):
+  case SPR_ADDR(SYS,SR):
+  case SPR_ADDR(SYS,PPC):
+  case SPR_ADDR(SYS,FPCSR):
+  case SPR_ADDR(SYS,EPCR0):
+  case SPR_ADDR(MAC,MACLO):
+  case SPR_ADDR(MAC,MACHI):
+    break;
+
+  default:
+    if (addr < SPR_ADDR(SYS,GPR0) || addr > SPR_ADDR(SYS,GPR511)) {
+      goto bad_address;
+    }
+    break;
+
+  }
+
+  return val;
+
+ bad_address:
+  sim_io_eprintf (sd, "WARNING: l.mfspr with invalid SPR address 0x%x\n", addr);
+  return 0;
+
+}
+
+void or1k32bf_mtspr (sim_cpu *current_cpu, USI addr, USI val)
+{
+  SIM_DESC sd = CPU_STATE(current_cpu);
+
+  if (!GET_H_SYS_SR_SM () && !GET_H_SYS_SR_SUMRA ()) {
+    sim_io_eprintf(sd, "WARNING: l.mtspr with address 0x%x in user mode (SR 0x%x)\n", addr, GET_H_SYS_SR());
+    return;
+  }
+
+  if (addr >= NUM_SPR)
+    goto bad_address;
+
+  switch (addr) {
+
+  case SPR_ADDR(SYS,FPCSR):
+  case SPR_ADDR(SYS,EPCR0):
+  case SPR_ADDR(SYS,ESR0):
+  case SPR_ADDR(MAC,MACHI):
+  case SPR_ADDR(MAC,MACLO):
+    SET_H_SPR(addr, val);
+    break;
+
+  case SPR_ADDR(SYS,SR):
+    SET_H_SPR(addr, val);
+    SET_H_SYS_SR_FO(1);
+    break;
+
+  case SPR_ADDR(SYS,NPC):
+    current_cpu->next_delay_slot = 0;
+
+    sim_engine_restart (CPU_STATE (current_cpu),
+                        current_cpu,
+                        NULL,
+                        val);
+    break;
+
+  case SPR_ADDR(TICK,TTMR):
+    /* allow some registers to be silently cleared */
+    if (val != 0)
+      sim_io_eprintf (sd, "WARNING: l.mtspr to SPR address 0x%x with invalid value 0x%x\n", addr, val);
+    break;
+
+  default:
+    if (addr >= SPR_ADDR(SYS,GPR0) && addr <= SPR_ADDR(SYS,GPR511)) {
+      SET_H_SPR(addr, val);
+    } else {
+      goto bad_address;
+    }
+    break;
+
+  }
+
+  return;
+
+ bad_address:
+  sim_io_eprintf (sd, "WARNING: l.mtspr with invalid SPR address 0x%x\n", addr);
+
+}
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 5/6] sim: or1k: Add generated files.
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
                   ` (3 preceding siblings ...)
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 6/6] sim: testsuite: add testsuite for or1k sim Stafford Horne
  5 siblings, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

These are separted out to make the patch easier to read and smaller.

sim/ChangeLog:

2017-01-20  Stafford Horne  <shorne@gmail.com>
	    Peter Gavin  <pgavin@gmail.com>

	* configure: Regenerated.
	* testsuite/configure: Regenerated.
	* or1k/aclocal.m4: Generated.
	* or1k/arch32.c: Generated.
	* or1k/arch32.h: Generated.
	* or1k/arch64.c: Generated.
	* or1k/arch64.h: Generated.
	* or1k/config.in: Generated.
	* or1k/configure: Generated.
	* or1k/cpu32.c: Generated.
	* or1k/cpu32.h: Generated.
	* or1k/cpu64.c: Generated.
	* or1k/cpu64.h: Generated.
	* or1k/cpuall32.h: Generated.
	* or1k/cpuall64.h: Generated.
	* or1k/decode32.c: Generated.
	* or1k/decode32.h: Generated.
	* or1k/decode64.c: Generated.
	* or1k/decode64.h: Generated.
	* or1k/model32.c: Generated.
	* or1k/model64.c: Generated.
	* or1k/sem32-switch.c: Generated.
	* or1k/sem32.c: Generated.
	* or1k/sem64-switch.c: Generated.
	* or1k/sem64.c: Generated.
---
 sim/configure           |     9 +
 sim/or1k/aclocal.m4     |   119 +
 sim/or1k/arch32.c       |    38 +
 sim/or1k/arch32.h       |    50 +
 sim/or1k/arch64.c       |    38 +
 sim/or1k/arch64.h       |    50 +
 sim/or1k/config.in      |   248 +
 sim/or1k/configure      | 16071 ++++++++++++++++++++++++++++++++++++++++++++++
 sim/or1k/cpu32.c        | 10181 +++++++++++++++++++++++++++++
 sim/or1k/cpu32.h        |  5018 +++++++++++++++
 sim/or1k/cpu64.c        | 10197 +++++++++++++++++++++++++++++
 sim/or1k/cpu64.h        |  5068 +++++++++++++++
 sim/or1k/cpuall32.h     |    66 +
 sim/or1k/cpuall64.h     |    66 +
 sim/or1k/decode32.c     |  2559 ++++++++
 sim/or1k/decode32.h     |    94 +
 sim/or1k/decode64.c     |  2723 ++++++++
 sim/or1k/decode64.h     |    97 +
 sim/or1k/model32.c      |  3809 +++++++++++
 sim/or1k/model64.c      |   135 +
 sim/or1k/sem32-switch.c |  2748 ++++++++
 sim/or1k/sem32.c        |  2953 +++++++++
 sim/or1k/sem64-switch.c |  3044 +++++++++
 sim/or1k/sem64.c        |  3279 ++++++++++
 sim/testsuite/configure |     4 +
 25 files changed, 68664 insertions(+)
 create mode 100644 sim/or1k/aclocal.m4
 create mode 100644 sim/or1k/arch32.c
 create mode 100644 sim/or1k/arch32.h
 create mode 100644 sim/or1k/arch64.c
 create mode 100644 sim/or1k/arch64.h
 create mode 100644 sim/or1k/config.in
 create mode 100644 sim/or1k/configure
 create mode 100644 sim/or1k/cpu32.c
 create mode 100644 sim/or1k/cpu32.h
 create mode 100644 sim/or1k/cpu64.c
 create mode 100644 sim/or1k/cpu64.h
 create mode 100644 sim/or1k/cpuall32.h
 create mode 100644 sim/or1k/cpuall64.h
 create mode 100644 sim/or1k/decode32.c
 create mode 100644 sim/or1k/decode32.h
 create mode 100644 sim/or1k/decode64.c
 create mode 100644 sim/or1k/decode64.h
 create mode 100644 sim/or1k/model32.c
 create mode 100644 sim/or1k/model64.c
 create mode 100644 sim/or1k/sem32-switch.c
 create mode 100644 sim/or1k/sem32.c
 create mode 100644 sim/or1k/sem64-switch.c
 create mode 100644 sim/or1k/sem64.c

diff --git a/sim/configure b/sim/configure
index 2729e69..ae2f6964 100755
--- a/sim/configure
+++ b/sim/configure
@@ -653,6 +653,7 @@ microblaze
 mips
 mn10300
 moxie
+or1k
 msp430
 rl78
 rx
@@ -3768,6 +3769,14 @@ subdirs="$subdirs aarch64"
 
 
        ;;
+   or1k-*-* | or1knd-*-*)
+
+  sim_arch=or1k
+  subdirs="$subdirs or1k"
+
+
+       sim_testsuite=yes
+       ;;
    rl78-*-*)
 
   sim_arch=rl78
diff --git a/sim/or1k/aclocal.m4 b/sim/or1k/aclocal.m4
new file mode 100644
index 0000000..4b5176f
--- /dev/null
+++ b/sim/or1k/aclocal.m4
@@ -0,0 +1,119 @@
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
diff --git a/sim/or1k/arch32.c b/sim/or1k/arch32.c
new file mode 100644
index 0000000..83a9815
--- /dev/null
+++ b/sim/or1k/arch32.c
@@ -0,0 +1,38 @@
+/* Simulator support for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#include "sim-main.h"
+#include "bfd.h"
+
+const SIM_MACH *sim_machs[] =
+{
+#ifdef HAVE_CPU_OR1K32BF
+  & or32_mach,
+#endif
+#ifdef HAVE_CPU_OR1K32BF
+  & or32nd_mach,
+#endif
+  0
+};
+
diff --git a/sim/or1k/arch32.h b/sim/or1k/arch32.h
new file mode 100644
index 0000000..caea4ca
--- /dev/null
+++ b/sim/or1k/arch32.h
@@ -0,0 +1,50 @@
+/* Simulator header for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K_ARCH_H
+#define OR1K_ARCH_H
+
+#define TARGET_BIG_ENDIAN 1
+
+#define WI  SI
+#define UWI USI
+#define AI  USI
+
+#define IAI USI
+
+/* Enum declaration for model types.  */
+typedef enum model_type {
+  MODEL_OR1200, MODEL_OR1200ND, MODEL_MAX
+} MODEL_TYPE;
+
+#define MAX_MODELS ((int) MODEL_MAX)
+
+/* Enum declaration for unit types.  */
+typedef enum unit_type {
+  UNIT_NONE, UNIT_OR1200_U_EXEC, UNIT_OR1200ND_U_EXEC, UNIT_MAX
+} UNIT_TYPE;
+
+#define MAX_UNITS (1)
+
+#endif /* OR1K_ARCH_H */
diff --git a/sim/or1k/arch64.c b/sim/or1k/arch64.c
new file mode 100644
index 0000000..c3f7597
--- /dev/null
+++ b/sim/or1k/arch64.c
@@ -0,0 +1,38 @@
+/* Simulator support for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#include "sim-main.h"
+#include "bfd.h"
+
+const SIM_MACH *sim_machs[] =
+{
+#ifdef HAVE_CPU_OR1K64BF
+  & or64_mach,
+#endif
+#ifdef HAVE_CPU_OR1K64BF
+  & or64nd_mach,
+#endif
+  0
+};
+
diff --git a/sim/or1k/arch64.h b/sim/or1k/arch64.h
new file mode 100644
index 0000000..115439c
--- /dev/null
+++ b/sim/or1k/arch64.h
@@ -0,0 +1,50 @@
+/* Simulator header for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K_ARCH_H
+#define OR1K_ARCH_H
+
+#define TARGET_BIG_ENDIAN 1
+
+#define WI  DI
+#define UWI UDI
+#define AI  UDI
+
+#define IAI UDI
+
+/* Enum declaration for model types.  */
+typedef enum model_type {
+  MODEL_MAX
+} MODEL_TYPE;
+
+#define MAX_MODELS ((int) MODEL_MAX)
+
+/* Enum declaration for unit types.  */
+typedef enum unit_type {
+  UNIT_NONE, UNIT_MAX
+} UNIT_TYPE;
+
+#define MAX_UNITS (1)
+
+#endif /* OR1K_ARCH_H */
diff --git a/sim/or1k/config.in b/sim/or1k/config.in
new file mode 100644
index 0000000..7c667a1
--- /dev/null
+++ b/sim/or1k/config.in
@@ -0,0 +1,248 @@
+/* config.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Sim debug setting */
+#undef DEBUG
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#undef ENABLE_NLS
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the <fpu_control.h> header file. */
+#undef HAVE_FPU_CONTROL_H
+
+/* Define to 1 if you have the `ftruncate' function. */
+#undef HAVE_FTRUNCATE
+
+/* Define to 1 if you have the `getrusage' function. */
+#undef HAVE_GETRUSAGE
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define to 1 if you have the `lstat' function. */
+#undef HAVE_LSTAT
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* Define to 1 if you have the `posix_fallocate' function. */
+#undef HAVE_POSIX_FALLOCATE
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#undef HAVE_SOCKLEN_T
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if `st_atime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIME
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `st_ctime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_CTIME
+
+/* Define to 1 if `st_dev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_DEV
+
+/* Define to 1 if `st_gid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_GID
+
+/* Define to 1 if `st_ino' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_INO
+
+/* Define to 1 if `st_mode' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MODE
+
+/* Define to 1 if `st_mtime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIME
+
+/* Define to 1 if `st_nlink' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_NLINK
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if `st_size' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_SIZE
+
+/* Define to 1 if `st_uid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_UID
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#undef HAVE_SYS_TIMES_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the `truncate' function. */
+#undef HAVE_TRUNCATE
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the `__setfpucw' function. */
+#undef HAVE___SETFPUCW
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#undef LT_OBJDIR
+
+/* Name of this package. */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Additional package description */
+#undef PKGVERSION
+
+/* Sim profile settings */
+#undef PROFILE
+
+/* Bug reporting address */
+#undef REPORT_BUGS_TO
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Sim assert settings */
+#undef WITH_ASSERT
+
+/* Sim debug setting */
+#undef WITH_DEBUG
+
+/* Sim default environment */
+#undef WITH_ENVIRONMENT
+
+/* Sim profile settings */
+#undef WITH_PROFILE
+
+/* How to route I/O */
+#undef WITH_STDIO
+
+/* Sim trace settings */
+#undef WITH_TRACE
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/sim/or1k/configure b/sim/or1k/configure
new file mode 100644
index 0000000..def2385
--- /dev/null
+++ b/sim/or1k/configure
@@ -0,0 +1,16071 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="Makefile.in"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+cgen_breaks
+want_or1k_nodelay
+want_or1k64
+sim_extra_cflags
+traps_obj
+cgen
+cgendir
+CGEN_MAINT
+REPORT_BUGS_TEXI
+REPORT_BUGS_TO
+PKGVERSION
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+lt_cv_dlopen_libs
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+AWK
+STRIP
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+LIBTOOL
+PLUGINS_FALSE
+PLUGINS_TRUE
+zlibinc
+zlibdir
+CATOBJEXT
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATALOGS
+POSUB
+GMSGFMT
+XGETTEXT
+INCINTL
+LIBINTL_DEP
+LIBINTL
+USE_NLS
+GMAKE_FALSE
+GMAKE_TRUE
+MAKE
+CCDEPMODE
+DEPDIR
+am__leading_dot
+PACKAGE
+RANLIB
+AR
+HDEFINES
+CC_FOR_BUILD
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+EGREP
+GREP
+CPP
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+WERROR_CFLAGS
+WARN_CFLAGS
+sim_reserved_bits
+sim_inline
+sim_hw
+sim_hw_objs
+sim_hw_cflags
+sim_default_model
+sim_scache
+sim_float
+sim_endian
+sim_bitsize
+sim_alignment
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_system_zlib
+enable_plugins
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+enable_maintainer_mode
+enable_sim_debug
+enable_sim_stdio
+enable_sim_trace
+enable_sim_profile
+enable_sim_assert
+enable_sim_environment
+enable_sim_inline
+with_pkgversion
+with_bugurl
+enable_sim_endian
+enable_sim_alignment
+enable_sim_bitsize
+enable_sim_scache
+enable_sim_default_model
+enable_cgen_maint
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-plugins        Enable support for plugins
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-static[=PKGS]  build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-sim-debug=opts Enable debugging flags (for developers of the sim
+                          itself)
+  --enable-sim-stdio      Specify whether to use stdio for console
+                          input/output
+  --enable-sim-trace=opts Enable tracing of simulated programs
+  --enable-sim-profile=opts
+                          Enable profiling flags
+  --enable-sim-assert     Specify whether to perform random assertions
+  --enable-sim-environment=environment
+                          Specify mixed, user, virtual or operating
+                          environment
+  --enable-sim-inline=inlines
+                          Specify which functions should be inlined
+  --enable-sim-endian=endian
+                          Specify target byte endian orientation
+  --enable-sim-alignment=align
+                          Specify strict, nonstrict or forced alignment of
+                          memory accesses
+  --enable-sim-bitsize=N  Specify target bitsize (32 or 64)
+  --enable-sim-scache=size
+                          Specify simulator execution cache size
+  --enable-sim-default-model=model
+                          Specify default model to simulate
+  --enable-cgen-maint=DIR build cgen generated files
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-system-zlib      use installed libz
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pkgversion=PKG   Use PKG in the version string in place of "SIM"
+  --with-bugurl=URL       Direct users to URL to report a bug
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# This file contains common code used by all simulators.
+#
+# SIM_AC_COMMON invokes AC macros used by all simulators and by the common
+# directory.  It is intended to be invoked before any target specific stuff.
+# SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
+# It is intended to be invoked last.
+#
+# The simulator's configure.ac should look like:
+#
+# dnl Process this file with autoconf to produce a configure script.
+# AC_PREREQ(2.64)dnl
+# AC_INIT(Makefile.in)
+# sinclude(../common/aclocal.m4)
+#
+# SIM_AC_COMMON
+#
+# ... target specific stuff ...
+#
+# SIM_AC_OUTPUT
+
+# Include global overrides and fixes for Autoconf.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+# LT_INIT
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+
+
+
+# C support is built-in for now
+
+
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_TAG_COMPILER
+# ----------------
+# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+# _LT_COMPILER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+# _LT_LINKER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_CMD_MAX_LEN
+#---------------
+# LT_CMD_MAX_LEN
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+# LT_SYS_DLOPEN_SELF
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+# LT_PATH_LD
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+# LT_PATH_NM
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_LIB_M
+# --------
+# check for math library
+# LT_LIB_M
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+ # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_PROG_RC
+# ----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+# _LT_DECL_SED
+
+#m4_ifndef
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+# win32-dll
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_SHARED
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_STATIC
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_FAST_INSTALL
+
+
+
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+# _LT_WITH_PIC
+
+
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+
+
+
+
+
+
+
+
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+
+
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+
+
+
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3134 ltversion.m4
+# This file is part of GNU Libtool
+
+
+
+
+
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+##                                                          -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# Based on depend.m4 from automake 1.9, modified for standalone use in
+# an environment where GNU make is required.
+
+# ZW_PROG_COMPILER_DEPENDENCIES
+# -----------------------------
+# Variant of _AM_DEPENDENCIES which just does the dependency probe and
+# sets fooDEPMODE accordingly.  Cache-variable compatible with
+# original; not side-effect compatible.  As the users of this macro
+# may require accurate dependencies for correct builds, it does *not*
+# honor --disable-dependency-checking, and failure to detect a usable
+# method is an error.  depcomp is assumed to be located in
+# $ac_aux_dir.
+#
+# FIXME: Should use the Autoconf 2.5x language-selection mechanism.
+
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+
+
+# ZW_CREATE_DEPDIR
+# ----------------
+# As AM_SET_DEPDIR, but also create the directory at config.status time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# intl sister-directory configuration rules.
+#
+
+# The idea behind this macro is that there's no need to repeat all the
+# autoconf probes done by the intl directory - it's already done them
+# for us.  In fact, there's no need even to look at the cache for the
+# answers.  All we need to do is nab a few pieces of information.
+# The intl directory is set up to make this easy, by generating a
+# small file which can be sourced as a shell script; then we produce
+# the necessary substitutions and definitions for this directory.
+
+
+
+# Autoconf M4 include file defining utility macros for complex Canadian
+# cross builds.
+
+
+
+
+
+
+
+
+
+####
+# _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
+# or AC_INIT.
+# These demand that AC_CANONICAL_SYSTEM be called beforehand.
+
+####
+# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like plain AC_CHECK_TOOLS, but require prefix if build!=host.
+
+
+####
+# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target.
+
+
+
+# Backported from Autoconf 2.5x; can go away when and if
+# we switch.  Put the OS path separator in $PATH_SEPARATOR.
+
+
+
+
+# ACX_HAVE_GCC_FOR_TARGET
+# Check if the variable GCC_FOR_TARGET really points to a GCC binary.
+
+
+# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG)
+# Searching for installed target binutils.  We need to take extra care,
+# else we may find the wrong assembler, linker, etc., and lose.
+#
+# First try --with-build-time-tools, if specified.
+#
+# For build != host, we ask the installed GCC for the name of the tool it
+# uses, and accept it if it is an absolute path.  This is because the
+# only good choice for a compiler is the same GCC version that is being
+# installed (or we couldn't make target libraries), and we assume that
+# on the host system we'll have not only the same GCC version, but also
+# the same binutils version.
+#
+# For build == host, search the same directories that the installed
+# compiler will search.  We used to do this for the assembler, linker,
+# and nm only; for simplicity of configuration, however, we extend this
+# criterion to tools (such as ar and ranlib) that are never invoked by
+# the compiler, to avoid mismatches.
+#
+# Also note we have to check MD_EXEC_PREFIX before checking the user's path
+# if build == target.  This makes the most sense only when bootstrapping,
+# but we also do so when build != host.  In this case, we hope that the
+# build and host systems will have similar contents of MD_EXEC_PREFIX.
+#
+# If we do not find a suitable binary, then try the user's path.
+
+
+###
+# AC_PROG_CPP_WERROR
+# Used for autoconf 2.5x to force AC_PREPROC_IFELSE to reject code which
+# triggers warnings from the preprocessor.  Will be in autoconf 2.58.
+# For now, using this also overrides header checks to use only the
+# preprocessor (matches 2.13 behavior; matching 2.58's behavior is a
+# bit harder from here).
+# Eventually autoconf will default to checking headers with the compiler
+# instead, and we'll have to do this differently.
+
+# AC_PROG_CPP_WERROR
+
+# Test for GNAT.
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
+# that understands Ada.  We use the user's CC setting, already found, and
+# possibly add $1 to the command-line parameters.
+#
+# Sets the shell variable have_gnat to yes or no as appropriate, and
+# substitutes GNATBIND and GNATMAKE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  case "${target_alias}" in
+  or1k-linux*|or1knd-linux*)
+    traps_obj=traps32-linux.o
+    ;;
+  or1k-*|or1knd-*)
+    traps_obj=traps32.o
+    ;;
+  esac
+
+  case "${target_alias}" in
+  or1knd-*)
+    want_or1k_nodelay=true
+    default_model=or1200nd
+    ;;
+  *)
+    default_model=or1200
+    ;;
+  esac
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+  if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+case `pwd` in
+  *\ * | *\	*)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.7a'
+macro_revision='1.3134'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+   then ac_cv_path_FGREP="$GREP -F"
+   else
+     if test -z "$FGREP"; then
+  ac_path_FGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+  # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_FGREP="$ac_path_FGREP"
+      ac_path_FGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_FGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_FGREP"; then
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_FGREP=$FGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$DUMPBIN" && break
+  done
+fi
+if test -z "$DUMPBIN"; then
+  ac_ct_DUMPBIN=$DUMPBIN
+  for ac_prog in dumpbin "link -dump"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DUMPBIN"; then
+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_DUMPBIN" && break
+done
+
+  if test "x$ac_ct_DUMPBIN" = x; then
+    DUMPBIN=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DUMPBIN=$ac_ct_DUMPBIN
+  fi
+fi
+
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+  cat conftest.out >&5
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OBJDUMP"; then
+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+  ac_ct_OBJDUMP=$OBJDUMP
+  # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OBJDUMP"; then
+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OBJDUMP" = x; then
+    OBJDUMP="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJDUMP=$ac_ct_OBJDUMP
+  fi
+else
+  OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK '"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+  enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*linux*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  powerpcle-*linux*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_cc_needs_belf=yes
+else
+  lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LIPO"; then
+  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+  ac_ct_LIPO=$LIPO
+  # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LIPO"; then
+  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_LIPO="lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LIPO" = x; then
+    LIPO=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LIPO=$ac_ct_LIPO
+  fi
+else
+  LIPO="$ac_cv_prog_LIPO"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL"; then
+  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+  ac_ct_OTOOL=$OTOOL
+  # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL"; then
+  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL="otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL" = x; then
+    OTOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL=$ac_ct_OTOOL
+  fi
+else
+  OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL64"; then
+  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+  ac_ct_OTOOL64=$OTOOL64
+  # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL64"; then
+  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL64="otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL64" = x; then
+    OTOOL64=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL64=$ac_ct_OTOOL64
+  fi
+else
+  OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&5
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_ld_exported_symbols_list=yes
+else
+  lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[012])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[012][,.]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+# autoconf.info says this should be called right after AC_INIT.
+ac_config_headers="$ac_config_headers config.h:config.in"
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+
+
+# Put a plausible default for CC_FOR_BUILD in Makefile.
+if test "x$cross_compiling" = "xno"; then
+  CC_FOR_BUILD='$(CC)'
+else
+  CC_FOR_BUILD=gcc
+fi
+
+
+
+
+AR=${AR-ar}
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+# Some of the common include files depend on bfd.h, and bfd.h checks
+# that config.h is included first by testing that the PACKAGE macro
+# is defined.
+PACKAGE=sim
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+
+# Dependency checking.
+ac_config_commands="$ac_config_commands depdir"
+
+
+depcc="$CC"   am_compiler_list=
+
+am_depcomp=$ac_aux_dir/depcomp
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    if test $depmode = none; then break; fi
+
+    $as_echo "$as_me:$LINENO: trying $depmode" >&5
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "include sub/conftest.Po" > confmf
+
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    depcmd="depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c"
+    echo "| $depcmd" | sed -e 's/  */ /g' >&5
+    if env $depcmd > conftest.err 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po >>conftest.err 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po >>conftest.err 2>&1 &&
+       ${MAKE-make} -s -f confmf >>conftest.err 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+	$as_echo "$as_me:$LINENO: success" >&5
+        break
+      fi
+    fi
+    $as_echo "$as_me:$LINENO: failure, diagnostics are:" >&5
+    sed -e 's/^/| /' < conftest.err >&5
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+if test x${am_cv_CC_dependencies_compiler_type-none} = xnone
+then as_fn_error $? "no usable dependency style found" "$LINENO" 5
+else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+fi
+
+
+# Check for the 'make' the user wants to use.
+for ac_prog in make
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MAKE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MAKE"; then
+  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKE="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
+$as_echo "$MAKE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$MAKE" && break
+done
+
+MAKE_IS_GNU=
+case "`$MAKE --version 2>&1 | sed 1q`" in
+  *GNU*)
+    MAKE_IS_GNU=yes
+    ;;
+esac
+ if test "$MAKE_IS_GNU" = yes; then
+  GMAKE_TRUE=
+  GMAKE_FALSE='#'
+else
+  GMAKE_TRUE='#'
+  GMAKE_FALSE=
+fi
+
+
+ALL_LINGUAS=
+# If we haven't got the data from the intl directory,
+# assume NLS is disabled.
+USE_NLS=no
+LIBINTL=
+LIBINTL_DEP=
+INCINTL=
+XGETTEXT=
+GMSGFMT=
+POSUB=
+
+if test -f  ../../intl/config.intl; then
+  .  ../../intl/config.intl
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+if test x"$USE_NLS" != xyes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+  # Look for .po and .gmo files in the source directory.
+  CATALOGS=
+  XLINGUAS=
+  for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
+    # If there aren't any .gmo files the shell will give us the
+    # literal string "../path/to/srcdir/po/*.gmo" which has to be
+    # weeded out.
+    case "$cat" in *\**)
+      continue;;
+    esac
+    # The quadruple backslash is collapsed to a double backslash
+    # by the backticks, then collapsed again by the double quotes,
+    # leaving us with one backslash in the sed expression (right
+    # before the dot that mustn't act as a wildcard).
+    cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"`
+    lang=`echo $cat | sed -e "s!\\\\.gmo!!"`
+    # The user is allowed to set LINGUAS to a list of languages to
+    # install catalogs for.  If it's empty that means "all of them."
+    if test "x$LINGUAS" = x; then
+      CATALOGS="$CATALOGS $cat"
+      XLINGUAS="$XLINGUAS $lang"
+    else
+      case "$LINGUAS" in *$lang*)
+        CATALOGS="$CATALOGS $cat"
+        XLINGUAS="$XLINGUAS $lang"
+        ;;
+      esac
+    fi
+  done
+  LINGUAS="$XLINGUAS"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+
+
+    DATADIRNAME=share
+
+  INSTOBJEXT=.mo
+
+  GENCAT=gencat
+
+  CATOBJEXT=.gmo
+
+fi
+
+# Check for common headers.
+# FIXME: Seems to me this can cause problems for i386-windows hosts.
+# At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
+for ac_header in stdlib.h string.h strings.h unistd.h time.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h sys/times.h sys/resource.h sys/mman.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in fcntl.h fpu_control.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h errno.h sys/stat.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in getrusage time sigaction __setfpucw
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in mmap munmap lstat truncate ftruncate posix_fallocate
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_dev" "ac_cv_member_struct_stat_st_dev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_dev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_DEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ino" "ac_cv_member_struct_stat_st_ino" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ino" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_INO 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mode" "ac_cv_member_struct_stat_st_mode" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mode" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MODE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_nlink" "ac_cv_member_struct_stat_st_nlink" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_nlink" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_NLINK 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_uid" "ac_cv_member_struct_stat_st_uid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_uid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_UID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_gid" "ac_cv_member_struct_stat_st_gid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_gid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_GID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_size" "ac_cv_member_struct_stat_st_size" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_size" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_SIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_atime" "ac_cv_member_struct_stat_st_atime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_atime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime" "ac_cv_member_struct_stat_st_mtime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mtime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MTIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ctime" "ac_cv_member_struct_stat_st_ctime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ctime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_CTIME 1
+_ACEOF
+
+
+fi
+
+ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h>
+#include <sys/socket.h>
+
+"
+if test "x$ac_cv_type_socklen_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SOCKLEN_T 1
+_ACEOF
+
+
+fi
+
+
+# Check for socket libraries
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lsocket" >&5
+$as_echo_n "checking for bind in -lsocket... " >&6; }
+if ${ac_cv_lib_socket_bind+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind ();
+int
+main ()
+{
+return bind ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_bind=yes
+else
+  ac_cv_lib_socket_bind=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_bind" >&5
+$as_echo "$ac_cv_lib_socket_bind" >&6; }
+if test "x$ac_cv_lib_socket_bind" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_nsl_gethostbyname=yes
+else
+  ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+  LIBS="-lnsl $LIBS"
+
+fi
+
+
+# BFD conditionally uses zlib, so we must link it in if libbfd does, by
+# using the same condition.
+
+  # Use the system's zlib library.
+  zlibdir="-L\$(top_builddir)/../zlib"
+  zlibinc="-I\$(top_srcdir)/../zlib"
+
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+  withval=$with_system_zlib; if test x$with_system_zlib = xyes ; then
+    zlibdir=
+    zlibinc=
+  fi
+
+fi
+
+
+
+
+
+# BFD uses libdl when when plugins enabled.
+
+  maybe_plugins=no
+  for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+  for ac_header in windows.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_windows_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINDOWS_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+
+  # Check whether --enable-plugins was given.
+if test "${enable_plugins+set}" = set; then :
+  enableval=$enable_plugins; case "${enableval}" in
+      no) plugins=no ;;
+      *) plugins=yes
+         if test "$maybe_plugins" != "yes" ; then
+	   as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5
+	 fi ;;
+     esac
+else
+  plugins=$maybe_plugins
+
+fi
+
+  if test "$plugins" = "yes"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_dlopen+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_dlopen+:} false; then :
+
+else
+  ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+  fi
+
+ if test "$plugins" = yes; then
+  PLUGINS_TRUE=
+  PLUGINS_FALSE='#'
+else
+  PLUGINS_TRUE='#'
+  PLUGINS_FALSE=
+fi
+
+
+
+
+
+# Set options
+enable_dlopen=yes
+
+
+
+
+  enable_win32_dll=no
+
+
+            # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+  # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+  enableval=$enable_static; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+  withval=$with_pic; pic_mode="$withval"
+else
+  pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+  # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+  enableval=$enable_fast_install; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+
+
+
+
+
+  lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='--shared'
+	lt_prog_compiler_static='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-qpic'
+	lt_prog_compiler_static='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Wl,'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  runpath_var=
+  allow_undefined_flag=
+  always_export_symbols=no
+  archive_cmds=
+  archive_expsym_cmds=
+  compiler_needs_object=no
+  enable_shared_with_static_runtimes=no
+  export_dynamic_flag_spec=
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  hardcode_automatic=no
+  hardcode_direct=no
+  hardcode_direct_absolute=no
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  inherit_rpath=no
+  link_all_deplibs=unknown
+  module_cmds=
+  module_expsym_cmds=
+  old_archive_from_new_cmds=
+  old_archive_from_expsyms_cmds=
+  thread_safe_flag_spec=
+  whole_archive_flag_spec=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  whole_archive_flag_spec=
+	  tmp_sharedflag='--shared' ;;
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+	  hardcode_libdir_flag_spec=
+	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
+	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_direct_absolute=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      file_list_spec='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  hardcode_direct=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L=yes
+	  hardcode_libdir_flag_spec='-L$libdir'
+	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      export_dynamic_flag_spec='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec='$convenience'
+	  fi
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_from_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc=no
+  hardcode_direct=no
+  hardcode_automatic=yes
+  hardcode_shlibpath_var=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec=''
+  fi
+  link_all_deplibs=yes
+  allow_undefined_flag="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+  else
+  ld_shlibs=no
+  fi
+
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_flag_spec_ld='+b $libdir'
+	hardcode_libdir_separator=:
+	hardcode_direct=yes
+	hardcode_direct_absolute=yes
+	export_dynamic_flag_spec='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  hardcode_direct_absolute=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        LDFLAGS="$save_LDFLAGS"
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      inherit_rpath=yes
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct=yes
+	hardcode_shlibpath_var=no
+	hardcode_direct_absolute=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	export_dynamic_flag_spec='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl
+	  pic_flag=$lt_prog_compiler_pic
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag
+	  allow_undefined_flag=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	  then
+	    lt_cv_archive_cmds_need_lc=no
+	  else
+	    lt_cv_archive_cmds_need_lc=yes
+	  fi
+	  allow_undefined_flag=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[23].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+   test -n "$runpath_var" ||
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+   test "$inherit_rpath" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+  if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+    ;;
+
+  *)
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_shl_load=yes
+else
+  ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_svld_dlopen=yes
+else
+  ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_dld_link=yes
+else
+  ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line 12904 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line 13010 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    ;;
+  *)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+  # Report which library types will actually be built
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[4-9]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+        ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+
+. ${srcdir}/../../bfd/configure.host
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim debug setting" >&5
+$as_echo_n "checking for sim debug setting... " >&6; }
+sim_debug="0"
+# Check whether --enable-sim-debug was given.
+if test "${enable_sim_debug+set}" = set; then :
+  enableval=$enable_sim_debug; case "${enableval}" in
+  yes) sim_debug="7";;
+  no)  sim_debug="0";;
+  *)   sim_debug="($enableval)";;
+esac
+fi
+if test "$sim_debug" != "0"; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEBUG $sim_debug
+_ACEOF
+
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_DEBUG $sim_debug
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_debug" >&5
+$as_echo "$sim_debug" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim stdio debug behavior" >&5
+$as_echo_n "checking for sim stdio debug behavior... " >&6; }
+sim_stdio="0"
+# Check whether --enable-sim-stdio was given.
+if test "${enable_sim_stdio+set}" = set; then :
+  enableval=$enable_sim_stdio; case "${enableval}" in
+  yes)	sim_stdio="DO_USE_STDIO";;
+  no)	sim_stdio="DONT_USE_STDIO";;
+  *)	as_fn_error $? "Unknown value $enableval passed to --enable-sim-stdio" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_STDIO $sim_stdio
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_stdio" >&5
+$as_echo "$sim_stdio" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim trace settings" >&5
+$as_echo_n "checking for sim trace settings... " >&6; }
+sim_trace="~TRACE_debug"
+# Check whether --enable-sim-trace was given.
+if test "${enable_sim_trace+set}" = set; then :
+  enableval=$enable_sim_trace; case "${enableval}" in
+  yes)	sim_trace="-1";;
+  no)	sim_trace="0";;
+  [-0-9]*)
+	sim_trace="'(${enableval})'";;
+  [[:lower:]]*)
+	sim_trace=""
+	for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+	  if test x"$sim_trace" = x; then
+	    sim_trace="(TRACE_$x"
+	  else
+	    sim_trace="${sim_trace}|TRACE_$x"
+	  fi
+	done
+	sim_trace="$sim_trace)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_TRACE $sim_trace
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_trace" >&5
+$as_echo "$sim_trace" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim profile settings" >&5
+$as_echo_n "checking for sim profile settings... " >&6; }
+profile="1"
+sim_profile="-1"
+# Check whether --enable-sim-profile was given.
+if test "${enable_sim_profile+set}" = set; then :
+  enableval=$enable_sim_profile; case "${enableval}" in
+  yes)	profile="1" sim_profile="-1";;
+  no)	profile="0" sim_profile="0";;
+  [-0-9]*)
+	profile="(${enableval})" sim_profile="(${enableval})";;
+  [a-z]*)
+    profile="1"
+	sim_profile=""
+	for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+	  if test x"$sim_profile" = x; then
+	    sim_profile="(PROFILE_$x"
+	  else
+	    sim_profile="${sim_profile}|PROFILE_$x"
+	  fi
+	done
+	sim_profile="$sim_profile)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define PROFILE $profile
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_PROFILE $sim_profile
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_profile" >&5
+$as_echo "$sim_profile" >&6; }
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable sim asserts" >&5
+$as_echo_n "checking whether to enable sim asserts... " >&6; }
+sim_assert="1"
+# Check whether --enable-sim-assert was given.
+if test "${enable_sim_assert+set}" = set; then :
+  enableval=$enable_sim_assert; case "${enableval}" in
+  yes)	sim_assert="1";;
+  no)	sim_assert="0";;
+  *)	as_fn_error $? "--enable-sim-assert does not take a value" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ASSERT $sim_assert
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_assert" >&5
+$as_echo "$sim_assert" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default sim environment setting" >&5
+$as_echo_n "checking default sim environment setting... " >&6; }
+sim_environment="ALL_ENVIRONMENT"
+# Check whether --enable-sim-environment was given.
+if test "${enable_sim_environment+set}" = set; then :
+  enableval=$enable_sim_environment; case "${enableval}" in
+  all | ALL)             sim_environment="ALL_ENVIRONMENT";;
+  user | USER)           sim_environment="USER_ENVIRONMENT";;
+  virtual | VIRTUAL)     sim_environment="VIRTUAL_ENVIRONMENT";;
+  operating | OPERATING) sim_environment="OPERATING_ENVIRONMENT";;
+  *)   as_fn_error $? "Unknown value $enableval passed to --enable-sim-environment" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ENVIRONMENT $sim_environment
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_environment" >&5
+$as_echo "$sim_environment" >&6; }
+
+
+sim_inline="-DDEFAULT_INLINE=0"
+# Check whether --enable-sim-inline was given.
+if test "${enable_sim_inline+set}" = set; then :
+  enableval=$enable_sim_inline; sim_inline=""
+case "$enableval" in
+  no)		sim_inline="-DDEFAULT_INLINE=0";;
+  0)		sim_inline="-DDEFAULT_INLINE=0";;
+  yes | 2)	sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
+  1)		sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
+  *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+       new_flag=""
+       case "$x" in
+	 *_INLINE=*)	new_flag="-D$x";;
+	 *=*)		new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
+	 *_INLINE)	new_flag="-D$x=ALL_C_INLINE";;
+	 *)		new_flag="-D$x""_INLINE=ALL_C_INLINE";;
+       esac
+       if test x"$sim_inline" = x""; then
+	 sim_inline="$new_flag"
+       else
+	 sim_inline="$sim_inline $new_flag"
+       fi
+     done;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
+  echo "Setting inline flags = $sim_inline" 6>&1
+fi
+fi
+
+
+
+
+# Check whether --with-pkgversion was given.
+if test "${with_pkgversion+set}" = set; then :
+  withval=$with_pkgversion; case "$withval" in
+      yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
+      no)  PKGVERSION= ;;
+      *)   PKGVERSION="($withval) " ;;
+     esac
+else
+  PKGVERSION="(SIM) "
+
+fi
+
+
+
+
+
+# Check whether --with-bugurl was given.
+if test "${with_bugurl+set}" = set; then :
+  withval=$with_bugurl; case "$withval" in
+      yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
+      no)  BUGURL=
+	   ;;
+      *)   BUGURL="$withval"
+	   ;;
+     esac
+else
+  BUGURL="http://www.gnu.org/software/gdb/bugs/"
+
+fi
+
+  case ${BUGURL} in
+  "")
+    REPORT_BUGS_TO=
+    REPORT_BUGS_TEXI=
+    ;;
+  *)
+    REPORT_BUGS_TO="<$BUGURL>"
+    REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
+    ;;
+  esac;
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define PKGVERSION "$PKGVERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define REPORT_BUGS_TO "$REPORT_BUGS_TO"
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_signal=int
+else
+  ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+
+
+
+
+
+
+wire_endian="BIG"
+default_endian=""
+# Check whether --enable-sim-endian was given.
+if test "${enable_sim_endian+set}" = set; then :
+  enableval=$enable_sim_endian; case "${enableval}" in
+  b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG";;
+  l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_LITTLE";;
+  yes)	 if test x"$wire_endian" != x; then
+	   sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+	 else
+	  if test x"$default_endian" != x; then
+	     sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+	   else
+	     echo "No hard-wired endian for target $target" 1>&6
+	     sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+	   fi
+	 fi;;
+  no)	 if test x"$default_endian" != x; then
+	   sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+	 else
+	   if test x"$wire_endian" != x; then
+	     sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+	   else
+	     echo "No default endian for target $target" 1>&6
+	     sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+	   fi
+	 fi;;
+  *)	 as_fn_error $? "\"Unknown value $enableval for --enable-sim-endian\"" "$LINENO" 5; sim_endian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
+  echo "Setting endian flags = $sim_endian" 6>&1
+fi
+else
+  if test x"$default_endian" != x; then
+  sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+else
+  if test x"$wire_endian" != x; then
+    sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+  else
+    sim_endian=
+  fi
+fi
+fi
+
+wire_alignment="STRICT_ALIGNMENT"
+default_alignment=""
+
+# Check whether --enable-sim-alignment was given.
+if test "${enable_sim_alignment+set}" = set; then :
+  enableval=$enable_sim_alignment; case "${enableval}" in
+  strict | STRICT)       sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
+  nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
+  forced | FORCED)       sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
+  yes) if test x"$wire_alignment" != x; then
+	 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+       else
+         if test x"$default_alignment" != x; then
+           sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
+         else
+	   echo "No hard-wired alignment for target $target" 1>&6
+	   sim_alignment="-DWITH_ALIGNMENT=0"
+         fi
+       fi;;
+  no)  if test x"$default_alignment" != x; then
+	 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+       else
+         if test x"$wire_alignment" != x; then
+	   sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
+         else
+           echo "No default alignment for target $target" 1>&6
+           sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
+         fi
+       fi;;
+  *)   as_fn_error $? "\"Unknown value $enableval passed to --enable-sim-alignment\"" "$LINENO" 5; sim_alignment="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
+  echo "Setting alignment flags = $sim_alignment" 6>&1
+fi
+else
+  if test x"$default_alignment" != x; then
+  sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+else
+  if test x"$wire_alignment" != x; then
+    sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+  else
+    sim_alignment=
+  fi
+fi
+fi
+
+wire_word_bitsize="32"
+wire_word_msb="31"
+wire_address_bitsize="32"
+wire_cell_bitsize=""
+# Check whether --enable-sim-bitsize was given.
+if test "${enable_sim_bitsize+set}" = set; then :
+  enableval=$enable_sim_bitsize; sim_bitsize=
+case "${enableval}" in
+  64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";;
+  32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";;
+  64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
+  32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
+  32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
+        sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31"
+      else
+        sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0"
+      fi ;;
+  64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
+        sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63"
+      else
+        sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0"
+      fi ;;
+  *)  as_fn_error $? "\"--enable-sim-bitsize was given $enableval.  Expected 32 or 64\"" "$LINENO" 5 ;;
+esac
+# address bitsize
+tmp=`echo "${enableval}" | sed -e "s/^[0-9]*,*[0-9]*,*//"`
+case x"${tmp}" in
+  x ) ;;
+  x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;;
+  x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;;
+  * ) as_fn_error $? "\"--enable-sim-bitsize was given address size $enableval.  Expected 32 or 64\"" "$LINENO" 5 ;;
+esac
+# cell bitsize
+tmp=`echo "${enableval}" | sed -e "s/^[0-9]*,*[0-9*]*,*[0-9]*,*//"`
+case x"${tmp}" in
+  x ) ;;
+  x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;;
+  x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;;
+  * ) as_fn_error $? "\"--enable-sim-bitsize was given cell size $enableval.  Expected 32 or 64\"" "$LINENO" 5 ;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
+  echo "Setting bitsize flags = $sim_bitsize" 6>&1
+fi
+else
+  sim_bitsize=""
+if test x"$wire_word_bitsize" != x; then
+  sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize"
+fi
+if test x"$wire_word_msb" != x; then
+  sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb"
+fi
+if test x"$wire_address_bitsize" != x; then
+  sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize"
+fi
+if test x"$wire_cell_bitsize" != x; then
+  sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize"
+fi
+fi
+
+
+default_sim_scache="16384"
+# Check whether --enable-sim-scache was given.
+if test "${enable_sim_scache+set}" = set; then :
+  enableval=$enable_sim_scache; case "${enableval}" in
+  yes)	sim_scache="-DWITH_SCACHE=${default_sim_scache}";;
+  no)	sim_scache="-DWITH_SCACHE=0" ;;
+  [0-9]*) sim_scache="-DWITH_SCACHE=${enableval}";;
+  *)	as_fn_error $? "\"Bad value $enableval passed to --enable-sim-scache\"" "$LINENO" 5;
+	sim_scache="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_scache" != x""; then
+  echo "Setting scache size = $sim_scache" 6>&1
+fi
+else
+  sim_scache="-DWITH_SCACHE=${default_sim_scache}"
+fi
+
+
+
+default_sim_default_model="$default_model"
+# Check whether --enable-sim-default-model was given.
+if test "${enable_sim_default_model+set}" = set; then :
+  enableval=$enable_sim_default_model; case "${enableval}" in
+  yes|no) as_fn_error $? "\"Missing argument to --enable-sim-default-model\"" "$LINENO" 5;;
+  *)	sim_default_model="-DWITH_DEFAULT_MODEL='\"${enableval}\"'";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
+  echo "Setting default model = $sim_default_model" 6>&1
+fi
+else
+  sim_default_model="-DWITH_DEFAULT_MODEL='\"${default_sim_default_model}\"'"
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default sim environment setting" >&5
+$as_echo_n "checking default sim environment setting... " >&6; }
+sim_environment="ALL_ENVIRONMENT"
+# Check whether --enable-sim-environment was given.
+if test "${enable_sim_environment+set}" = set; then :
+  enableval=$enable_sim_environment; case "${enableval}" in
+  all | ALL)             sim_environment="ALL_ENVIRONMENT";;
+  user | USER)           sim_environment="USER_ENVIRONMENT";;
+  virtual | VIRTUAL)     sim_environment="VIRTUAL_ENVIRONMENT";;
+  operating | OPERATING) sim_environment="OPERATING_ENVIRONMENT";;
+  *)   as_fn_error $? "Unknown value $enableval passed to --enable-sim-environment" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ENVIRONMENT $sim_environment
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_environment" >&5
+$as_echo "$sim_environment" >&6; }
+
+
+sim_inline="-DDEFAULT_INLINE=0"
+# Check whether --enable-sim-inline was given.
+if test "${enable_sim_inline+set}" = set; then :
+  enableval=$enable_sim_inline; sim_inline=""
+case "$enableval" in
+  no)		sim_inline="-DDEFAULT_INLINE=0";;
+  0)		sim_inline="-DDEFAULT_INLINE=0";;
+  yes | 2)	sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
+  1)		sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
+  *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+       new_flag=""
+       case "$x" in
+	 *_INLINE=*)	new_flag="-D$x";;
+	 *=*)		new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
+	 *_INLINE)	new_flag="-D$x=ALL_C_INLINE";;
+	 *)		new_flag="-D$x""_INLINE=ALL_C_INLINE";;
+       esac
+       if test x"$sim_inline" = x""; then
+	 sim_inline="$new_flag"
+       else
+	 sim_inline="$sim_inline $new_flag"
+       fi
+     done;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
+  echo "Setting inline flags = $sim_inline" 6>&1
+fi
+fi
+
+
+cgen_maint=no
+cgen=guile
+cgendir='$(srcdir)/../../cgen'
+# Check whether --enable-cgen-maint was given.
+if test "${enable_cgen_maint+set}" = set; then :
+  enableval=$enable_cgen_maint; case "${enableval}" in
+  yes)	cgen_maint=yes ;;
+  no)	cgen_maint=no ;;
+  *)
+	# argument is cgen install directory (not implemented yet).
+	# Having a `share' directory might be more appropriate for the .scm,
+	# .cpu, etc. files.
+	cgendir=${cgen_maint}/lib/cgen
+	cgen=guile
+	;;
+esac
+fi
+if test x${cgen_maint} != xno ; then
+  CGEN_MAINT=''
+else
+  CGEN_MAINT='#'
+fi
+
+
+
+
+
+
+
+
+
+
+
+cgen_breaks=""
+if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
+cgen_breaks="break cgen_rtx_error";
+fi
+
+ac_config_files="$ac_config_files Makefile.sim:Makefile.in"
+
+ac_config_files="$ac_config_files Make-common.sim:../common/Make-common.in"
+
+ac_config_files="$ac_config_files .gdbinit:../common/gdbinit.in"
+
+ac_config_commands="$ac_config_commands Makefile"
+
+ac_config_commands="$ac_config_commands stamp-h"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+if test -z "${GMAKE_TRUE}" && test -z "${GMAKE_FALSE}"; then
+  as_fn_error $? "conditional \"GMAKE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then
+  as_fn_error $? "conditional \"PLUGINS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+    "depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
+    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+    "Makefile.sim") CONFIG_FILES="$CONFIG_FILES Makefile.sim:Makefile.in" ;;
+    "Make-common.sim") CONFIG_FILES="$CONFIG_FILES Make-common.sim:../common/Make-common.in" ;;
+    ".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:../common/gdbinit.in" ;;
+    "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
+    "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+    "libtool":C)
+
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=""
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking.  This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$1+=\$2"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+    ;;
+  esac
+
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+ ;;
+    "Makefile":C) echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
+ rm -f Makesim1.tmp Makesim2.tmp Makefile
+ sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
+ sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
+ sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
+	-e '/^## COMMON_POST_/ r Makesim2.tmp' \
+	<Makefile.sim >Makefile
+ rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
+ ;;
+    "stamp-h":C) echo > stamp-h ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
diff --git a/sim/or1k/cpu32.c b/sim/or1k/cpu32.c
new file mode 100644
index 0000000..14e11ec
--- /dev/null
+++ b/sim/or1k/cpu32.c
@@ -0,0 +1,10181 @@
+/* Misc. support for CPU family or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+
+#include "sim-main.h"
+#include "cgen-ops.h"
+
+/* Get the value of h-pc.  */
+
+USI
+or1k32bf_h_pc_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_pc);
+}
+
+/* Set a value for h-pc.  */
+
+void
+or1k32bf_h_pc_set (SIM_CPU *current_cpu, USI newval)
+{
+  CPU (h_pc) = newval;
+}
+
+/* Get the value of h-fsr.  */
+
+SF
+or1k32bf_h_fsr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_FSR (regno);
+}
+
+/* Set a value for h-fsr.  */
+
+void
+or1k32bf_h_fsr_set (SIM_CPU *current_cpu, UINT regno, SF newval)
+{
+  SET_H_FSR (regno, newval);
+}
+
+/* Get the value of h-spr.  */
+
+USI
+or1k32bf_h_spr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_SPR (regno);
+}
+
+/* Set a value for h-spr.  */
+
+void
+or1k32bf_h_spr_set (SIM_CPU *current_cpu, UINT regno, USI newval)
+{
+  SET_H_SPR (regno, newval);
+}
+
+/* Get the value of h-gpr.  */
+
+USI
+or1k32bf_h_gpr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_GPR (regno);
+}
+
+/* Set a value for h-gpr.  */
+
+void
+or1k32bf_h_gpr_set (SIM_CPU *current_cpu, UINT regno, USI newval)
+{
+  SET_H_GPR (regno, newval);
+}
+
+/* Get the value of h-sys-vr.  */
+
+USI
+or1k32bf_h_sys_vr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR ();
+}
+
+/* Set a value for h-sys-vr.  */
+
+void
+or1k32bf_h_sys_vr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_VR (newval);
+}
+
+/* Get the value of h-sys-upr.  */
+
+USI
+or1k32bf_h_sys_upr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR ();
+}
+
+/* Set a value for h-sys-upr.  */
+
+void
+or1k32bf_h_sys_upr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR (newval);
+}
+
+/* Get the value of h-sys-cpucfgr.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR ();
+}
+
+/* Set a value for h-sys-cpucfgr.  */
+
+void
+or1k32bf_h_sys_cpucfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR (newval);
+}
+
+/* Get the value of h-sys-dmmucfgr.  */
+
+USI
+or1k32bf_h_sys_dmmucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DMMUCFGR ();
+}
+
+/* Set a value for h-sys-dmmucfgr.  */
+
+void
+or1k32bf_h_sys_dmmucfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_DMMUCFGR (newval);
+}
+
+/* Get the value of h-sys-immucfgr.  */
+
+USI
+or1k32bf_h_sys_immucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_IMMUCFGR ();
+}
+
+/* Set a value for h-sys-immucfgr.  */
+
+void
+or1k32bf_h_sys_immucfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_IMMUCFGR (newval);
+}
+
+/* Get the value of h-sys-dccfgr.  */
+
+USI
+or1k32bf_h_sys_dccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DCCFGR ();
+}
+
+/* Set a value for h-sys-dccfgr.  */
+
+void
+or1k32bf_h_sys_dccfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_DCCFGR (newval);
+}
+
+/* Get the value of h-sys-iccfgr.  */
+
+USI
+or1k32bf_h_sys_iccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ICCFGR ();
+}
+
+/* Set a value for h-sys-iccfgr.  */
+
+void
+or1k32bf_h_sys_iccfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ICCFGR (newval);
+}
+
+/* Get the value of h-sys-dcfgr.  */
+
+USI
+or1k32bf_h_sys_dcfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DCFGR ();
+}
+
+/* Set a value for h-sys-dcfgr.  */
+
+void
+or1k32bf_h_sys_dcfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_DCFGR (newval);
+}
+
+/* Get the value of h-sys-pccfgr.  */
+
+USI
+or1k32bf_h_sys_pccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_PCCFGR ();
+}
+
+/* Set a value for h-sys-pccfgr.  */
+
+void
+or1k32bf_h_sys_pccfgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_PCCFGR (newval);
+}
+
+/* Get the value of h-sys-npc.  */
+
+USI
+or1k32bf_h_sys_npc_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_NPC ();
+}
+
+/* Set a value for h-sys-npc.  */
+
+void
+or1k32bf_h_sys_npc_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_NPC (newval);
+}
+
+/* Get the value of h-sys-sr.  */
+
+USI
+or1k32bf_h_sys_sr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR ();
+}
+
+/* Set a value for h-sys-sr.  */
+
+void
+or1k32bf_h_sys_sr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR (newval);
+}
+
+/* Get the value of h-sys-ppc.  */
+
+USI
+or1k32bf_h_sys_ppc_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_PPC ();
+}
+
+/* Set a value for h-sys-ppc.  */
+
+void
+or1k32bf_h_sys_ppc_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_PPC (newval);
+}
+
+/* Get the value of h-sys-fpcsr.  */
+
+USI
+or1k32bf_h_sys_fpcsr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR ();
+}
+
+/* Set a value for h-sys-fpcsr.  */
+
+void
+or1k32bf_h_sys_fpcsr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR (newval);
+}
+
+/* Get the value of h-sys-epcr0.  */
+
+USI
+or1k32bf_h_sys_epcr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR0 ();
+}
+
+/* Set a value for h-sys-epcr0.  */
+
+void
+or1k32bf_h_sys_epcr0_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR0 (newval);
+}
+
+/* Get the value of h-sys-epcr1.  */
+
+USI
+or1k32bf_h_sys_epcr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR1 ();
+}
+
+/* Set a value for h-sys-epcr1.  */
+
+void
+or1k32bf_h_sys_epcr1_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR1 (newval);
+}
+
+/* Get the value of h-sys-epcr2.  */
+
+USI
+or1k32bf_h_sys_epcr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR2 ();
+}
+
+/* Set a value for h-sys-epcr2.  */
+
+void
+or1k32bf_h_sys_epcr2_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR2 (newval);
+}
+
+/* Get the value of h-sys-epcr3.  */
+
+USI
+or1k32bf_h_sys_epcr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR3 ();
+}
+
+/* Set a value for h-sys-epcr3.  */
+
+void
+or1k32bf_h_sys_epcr3_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR3 (newval);
+}
+
+/* Get the value of h-sys-epcr4.  */
+
+USI
+or1k32bf_h_sys_epcr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR4 ();
+}
+
+/* Set a value for h-sys-epcr4.  */
+
+void
+or1k32bf_h_sys_epcr4_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR4 (newval);
+}
+
+/* Get the value of h-sys-epcr5.  */
+
+USI
+or1k32bf_h_sys_epcr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR5 ();
+}
+
+/* Set a value for h-sys-epcr5.  */
+
+void
+or1k32bf_h_sys_epcr5_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR5 (newval);
+}
+
+/* Get the value of h-sys-epcr6.  */
+
+USI
+or1k32bf_h_sys_epcr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR6 ();
+}
+
+/* Set a value for h-sys-epcr6.  */
+
+void
+or1k32bf_h_sys_epcr6_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR6 (newval);
+}
+
+/* Get the value of h-sys-epcr7.  */
+
+USI
+or1k32bf_h_sys_epcr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR7 ();
+}
+
+/* Set a value for h-sys-epcr7.  */
+
+void
+or1k32bf_h_sys_epcr7_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR7 (newval);
+}
+
+/* Get the value of h-sys-epcr8.  */
+
+USI
+or1k32bf_h_sys_epcr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR8 ();
+}
+
+/* Set a value for h-sys-epcr8.  */
+
+void
+or1k32bf_h_sys_epcr8_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR8 (newval);
+}
+
+/* Get the value of h-sys-epcr9.  */
+
+USI
+or1k32bf_h_sys_epcr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR9 ();
+}
+
+/* Set a value for h-sys-epcr9.  */
+
+void
+or1k32bf_h_sys_epcr9_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR9 (newval);
+}
+
+/* Get the value of h-sys-epcr10.  */
+
+USI
+or1k32bf_h_sys_epcr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR10 ();
+}
+
+/* Set a value for h-sys-epcr10.  */
+
+void
+or1k32bf_h_sys_epcr10_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR10 (newval);
+}
+
+/* Get the value of h-sys-epcr11.  */
+
+USI
+or1k32bf_h_sys_epcr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR11 ();
+}
+
+/* Set a value for h-sys-epcr11.  */
+
+void
+or1k32bf_h_sys_epcr11_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR11 (newval);
+}
+
+/* Get the value of h-sys-epcr12.  */
+
+USI
+or1k32bf_h_sys_epcr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR12 ();
+}
+
+/* Set a value for h-sys-epcr12.  */
+
+void
+or1k32bf_h_sys_epcr12_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR12 (newval);
+}
+
+/* Get the value of h-sys-epcr13.  */
+
+USI
+or1k32bf_h_sys_epcr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR13 ();
+}
+
+/* Set a value for h-sys-epcr13.  */
+
+void
+or1k32bf_h_sys_epcr13_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR13 (newval);
+}
+
+/* Get the value of h-sys-epcr14.  */
+
+USI
+or1k32bf_h_sys_epcr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR14 ();
+}
+
+/* Set a value for h-sys-epcr14.  */
+
+void
+or1k32bf_h_sys_epcr14_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR14 (newval);
+}
+
+/* Get the value of h-sys-epcr15.  */
+
+USI
+or1k32bf_h_sys_epcr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR15 ();
+}
+
+/* Set a value for h-sys-epcr15.  */
+
+void
+or1k32bf_h_sys_epcr15_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EPCR15 (newval);
+}
+
+/* Get the value of h-sys-eear0.  */
+
+USI
+or1k32bf_h_sys_eear0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR0 ();
+}
+
+/* Set a value for h-sys-eear0.  */
+
+void
+or1k32bf_h_sys_eear0_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR0 (newval);
+}
+
+/* Get the value of h-sys-eear1.  */
+
+USI
+or1k32bf_h_sys_eear1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR1 ();
+}
+
+/* Set a value for h-sys-eear1.  */
+
+void
+or1k32bf_h_sys_eear1_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR1 (newval);
+}
+
+/* Get the value of h-sys-eear2.  */
+
+USI
+or1k32bf_h_sys_eear2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR2 ();
+}
+
+/* Set a value for h-sys-eear2.  */
+
+void
+or1k32bf_h_sys_eear2_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR2 (newval);
+}
+
+/* Get the value of h-sys-eear3.  */
+
+USI
+or1k32bf_h_sys_eear3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR3 ();
+}
+
+/* Set a value for h-sys-eear3.  */
+
+void
+or1k32bf_h_sys_eear3_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR3 (newval);
+}
+
+/* Get the value of h-sys-eear4.  */
+
+USI
+or1k32bf_h_sys_eear4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR4 ();
+}
+
+/* Set a value for h-sys-eear4.  */
+
+void
+or1k32bf_h_sys_eear4_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR4 (newval);
+}
+
+/* Get the value of h-sys-eear5.  */
+
+USI
+or1k32bf_h_sys_eear5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR5 ();
+}
+
+/* Set a value for h-sys-eear5.  */
+
+void
+or1k32bf_h_sys_eear5_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR5 (newval);
+}
+
+/* Get the value of h-sys-eear6.  */
+
+USI
+or1k32bf_h_sys_eear6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR6 ();
+}
+
+/* Set a value for h-sys-eear6.  */
+
+void
+or1k32bf_h_sys_eear6_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR6 (newval);
+}
+
+/* Get the value of h-sys-eear7.  */
+
+USI
+or1k32bf_h_sys_eear7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR7 ();
+}
+
+/* Set a value for h-sys-eear7.  */
+
+void
+or1k32bf_h_sys_eear7_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR7 (newval);
+}
+
+/* Get the value of h-sys-eear8.  */
+
+USI
+or1k32bf_h_sys_eear8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR8 ();
+}
+
+/* Set a value for h-sys-eear8.  */
+
+void
+or1k32bf_h_sys_eear8_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR8 (newval);
+}
+
+/* Get the value of h-sys-eear9.  */
+
+USI
+or1k32bf_h_sys_eear9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR9 ();
+}
+
+/* Set a value for h-sys-eear9.  */
+
+void
+or1k32bf_h_sys_eear9_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR9 (newval);
+}
+
+/* Get the value of h-sys-eear10.  */
+
+USI
+or1k32bf_h_sys_eear10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR10 ();
+}
+
+/* Set a value for h-sys-eear10.  */
+
+void
+or1k32bf_h_sys_eear10_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR10 (newval);
+}
+
+/* Get the value of h-sys-eear11.  */
+
+USI
+or1k32bf_h_sys_eear11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR11 ();
+}
+
+/* Set a value for h-sys-eear11.  */
+
+void
+or1k32bf_h_sys_eear11_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR11 (newval);
+}
+
+/* Get the value of h-sys-eear12.  */
+
+USI
+or1k32bf_h_sys_eear12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR12 ();
+}
+
+/* Set a value for h-sys-eear12.  */
+
+void
+or1k32bf_h_sys_eear12_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR12 (newval);
+}
+
+/* Get the value of h-sys-eear13.  */
+
+USI
+or1k32bf_h_sys_eear13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR13 ();
+}
+
+/* Set a value for h-sys-eear13.  */
+
+void
+or1k32bf_h_sys_eear13_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR13 (newval);
+}
+
+/* Get the value of h-sys-eear14.  */
+
+USI
+or1k32bf_h_sys_eear14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR14 ();
+}
+
+/* Set a value for h-sys-eear14.  */
+
+void
+or1k32bf_h_sys_eear14_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR14 (newval);
+}
+
+/* Get the value of h-sys-eear15.  */
+
+USI
+or1k32bf_h_sys_eear15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR15 ();
+}
+
+/* Set a value for h-sys-eear15.  */
+
+void
+or1k32bf_h_sys_eear15_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_EEAR15 (newval);
+}
+
+/* Get the value of h-sys-esr0.  */
+
+USI
+or1k32bf_h_sys_esr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR0 ();
+}
+
+/* Set a value for h-sys-esr0.  */
+
+void
+or1k32bf_h_sys_esr0_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR0 (newval);
+}
+
+/* Get the value of h-sys-esr1.  */
+
+USI
+or1k32bf_h_sys_esr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR1 ();
+}
+
+/* Set a value for h-sys-esr1.  */
+
+void
+or1k32bf_h_sys_esr1_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR1 (newval);
+}
+
+/* Get the value of h-sys-esr2.  */
+
+USI
+or1k32bf_h_sys_esr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR2 ();
+}
+
+/* Set a value for h-sys-esr2.  */
+
+void
+or1k32bf_h_sys_esr2_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR2 (newval);
+}
+
+/* Get the value of h-sys-esr3.  */
+
+USI
+or1k32bf_h_sys_esr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR3 ();
+}
+
+/* Set a value for h-sys-esr3.  */
+
+void
+or1k32bf_h_sys_esr3_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR3 (newval);
+}
+
+/* Get the value of h-sys-esr4.  */
+
+USI
+or1k32bf_h_sys_esr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR4 ();
+}
+
+/* Set a value for h-sys-esr4.  */
+
+void
+or1k32bf_h_sys_esr4_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR4 (newval);
+}
+
+/* Get the value of h-sys-esr5.  */
+
+USI
+or1k32bf_h_sys_esr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR5 ();
+}
+
+/* Set a value for h-sys-esr5.  */
+
+void
+or1k32bf_h_sys_esr5_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR5 (newval);
+}
+
+/* Get the value of h-sys-esr6.  */
+
+USI
+or1k32bf_h_sys_esr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR6 ();
+}
+
+/* Set a value for h-sys-esr6.  */
+
+void
+or1k32bf_h_sys_esr6_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR6 (newval);
+}
+
+/* Get the value of h-sys-esr7.  */
+
+USI
+or1k32bf_h_sys_esr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR7 ();
+}
+
+/* Set a value for h-sys-esr7.  */
+
+void
+or1k32bf_h_sys_esr7_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR7 (newval);
+}
+
+/* Get the value of h-sys-esr8.  */
+
+USI
+or1k32bf_h_sys_esr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR8 ();
+}
+
+/* Set a value for h-sys-esr8.  */
+
+void
+or1k32bf_h_sys_esr8_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR8 (newval);
+}
+
+/* Get the value of h-sys-esr9.  */
+
+USI
+or1k32bf_h_sys_esr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR9 ();
+}
+
+/* Set a value for h-sys-esr9.  */
+
+void
+or1k32bf_h_sys_esr9_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR9 (newval);
+}
+
+/* Get the value of h-sys-esr10.  */
+
+USI
+or1k32bf_h_sys_esr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR10 ();
+}
+
+/* Set a value for h-sys-esr10.  */
+
+void
+or1k32bf_h_sys_esr10_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR10 (newval);
+}
+
+/* Get the value of h-sys-esr11.  */
+
+USI
+or1k32bf_h_sys_esr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR11 ();
+}
+
+/* Set a value for h-sys-esr11.  */
+
+void
+or1k32bf_h_sys_esr11_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR11 (newval);
+}
+
+/* Get the value of h-sys-esr12.  */
+
+USI
+or1k32bf_h_sys_esr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR12 ();
+}
+
+/* Set a value for h-sys-esr12.  */
+
+void
+or1k32bf_h_sys_esr12_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR12 (newval);
+}
+
+/* Get the value of h-sys-esr13.  */
+
+USI
+or1k32bf_h_sys_esr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR13 ();
+}
+
+/* Set a value for h-sys-esr13.  */
+
+void
+or1k32bf_h_sys_esr13_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR13 (newval);
+}
+
+/* Get the value of h-sys-esr14.  */
+
+USI
+or1k32bf_h_sys_esr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR14 ();
+}
+
+/* Set a value for h-sys-esr14.  */
+
+void
+or1k32bf_h_sys_esr14_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR14 (newval);
+}
+
+/* Get the value of h-sys-esr15.  */
+
+USI
+or1k32bf_h_sys_esr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR15 ();
+}
+
+/* Set a value for h-sys-esr15.  */
+
+void
+or1k32bf_h_sys_esr15_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_ESR15 (newval);
+}
+
+/* Get the value of h-sys-gpr0.  */
+
+USI
+or1k32bf_h_sys_gpr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR0 ();
+}
+
+/* Set a value for h-sys-gpr0.  */
+
+void
+or1k32bf_h_sys_gpr0_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR0 (newval);
+}
+
+/* Get the value of h-sys-gpr1.  */
+
+USI
+or1k32bf_h_sys_gpr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR1 ();
+}
+
+/* Set a value for h-sys-gpr1.  */
+
+void
+or1k32bf_h_sys_gpr1_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR1 (newval);
+}
+
+/* Get the value of h-sys-gpr2.  */
+
+USI
+or1k32bf_h_sys_gpr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR2 ();
+}
+
+/* Set a value for h-sys-gpr2.  */
+
+void
+or1k32bf_h_sys_gpr2_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR2 (newval);
+}
+
+/* Get the value of h-sys-gpr3.  */
+
+USI
+or1k32bf_h_sys_gpr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR3 ();
+}
+
+/* Set a value for h-sys-gpr3.  */
+
+void
+or1k32bf_h_sys_gpr3_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR3 (newval);
+}
+
+/* Get the value of h-sys-gpr4.  */
+
+USI
+or1k32bf_h_sys_gpr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR4 ();
+}
+
+/* Set a value for h-sys-gpr4.  */
+
+void
+or1k32bf_h_sys_gpr4_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR4 (newval);
+}
+
+/* Get the value of h-sys-gpr5.  */
+
+USI
+or1k32bf_h_sys_gpr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR5 ();
+}
+
+/* Set a value for h-sys-gpr5.  */
+
+void
+or1k32bf_h_sys_gpr5_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR5 (newval);
+}
+
+/* Get the value of h-sys-gpr6.  */
+
+USI
+or1k32bf_h_sys_gpr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR6 ();
+}
+
+/* Set a value for h-sys-gpr6.  */
+
+void
+or1k32bf_h_sys_gpr6_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR6 (newval);
+}
+
+/* Get the value of h-sys-gpr7.  */
+
+USI
+or1k32bf_h_sys_gpr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR7 ();
+}
+
+/* Set a value for h-sys-gpr7.  */
+
+void
+or1k32bf_h_sys_gpr7_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR7 (newval);
+}
+
+/* Get the value of h-sys-gpr8.  */
+
+USI
+or1k32bf_h_sys_gpr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR8 ();
+}
+
+/* Set a value for h-sys-gpr8.  */
+
+void
+or1k32bf_h_sys_gpr8_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR8 (newval);
+}
+
+/* Get the value of h-sys-gpr9.  */
+
+USI
+or1k32bf_h_sys_gpr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR9 ();
+}
+
+/* Set a value for h-sys-gpr9.  */
+
+void
+or1k32bf_h_sys_gpr9_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR9 (newval);
+}
+
+/* Get the value of h-sys-gpr10.  */
+
+USI
+or1k32bf_h_sys_gpr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR10 ();
+}
+
+/* Set a value for h-sys-gpr10.  */
+
+void
+or1k32bf_h_sys_gpr10_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR10 (newval);
+}
+
+/* Get the value of h-sys-gpr11.  */
+
+USI
+or1k32bf_h_sys_gpr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR11 ();
+}
+
+/* Set a value for h-sys-gpr11.  */
+
+void
+or1k32bf_h_sys_gpr11_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR11 (newval);
+}
+
+/* Get the value of h-sys-gpr12.  */
+
+USI
+or1k32bf_h_sys_gpr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR12 ();
+}
+
+/* Set a value for h-sys-gpr12.  */
+
+void
+or1k32bf_h_sys_gpr12_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR12 (newval);
+}
+
+/* Get the value of h-sys-gpr13.  */
+
+USI
+or1k32bf_h_sys_gpr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR13 ();
+}
+
+/* Set a value for h-sys-gpr13.  */
+
+void
+or1k32bf_h_sys_gpr13_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR13 (newval);
+}
+
+/* Get the value of h-sys-gpr14.  */
+
+USI
+or1k32bf_h_sys_gpr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR14 ();
+}
+
+/* Set a value for h-sys-gpr14.  */
+
+void
+or1k32bf_h_sys_gpr14_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR14 (newval);
+}
+
+/* Get the value of h-sys-gpr15.  */
+
+USI
+or1k32bf_h_sys_gpr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR15 ();
+}
+
+/* Set a value for h-sys-gpr15.  */
+
+void
+or1k32bf_h_sys_gpr15_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR15 (newval);
+}
+
+/* Get the value of h-sys-gpr16.  */
+
+USI
+or1k32bf_h_sys_gpr16_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR16 ();
+}
+
+/* Set a value for h-sys-gpr16.  */
+
+void
+or1k32bf_h_sys_gpr16_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR16 (newval);
+}
+
+/* Get the value of h-sys-gpr17.  */
+
+USI
+or1k32bf_h_sys_gpr17_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR17 ();
+}
+
+/* Set a value for h-sys-gpr17.  */
+
+void
+or1k32bf_h_sys_gpr17_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR17 (newval);
+}
+
+/* Get the value of h-sys-gpr18.  */
+
+USI
+or1k32bf_h_sys_gpr18_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR18 ();
+}
+
+/* Set a value for h-sys-gpr18.  */
+
+void
+or1k32bf_h_sys_gpr18_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR18 (newval);
+}
+
+/* Get the value of h-sys-gpr19.  */
+
+USI
+or1k32bf_h_sys_gpr19_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR19 ();
+}
+
+/* Set a value for h-sys-gpr19.  */
+
+void
+or1k32bf_h_sys_gpr19_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR19 (newval);
+}
+
+/* Get the value of h-sys-gpr20.  */
+
+USI
+or1k32bf_h_sys_gpr20_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR20 ();
+}
+
+/* Set a value for h-sys-gpr20.  */
+
+void
+or1k32bf_h_sys_gpr20_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR20 (newval);
+}
+
+/* Get the value of h-sys-gpr21.  */
+
+USI
+or1k32bf_h_sys_gpr21_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR21 ();
+}
+
+/* Set a value for h-sys-gpr21.  */
+
+void
+or1k32bf_h_sys_gpr21_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR21 (newval);
+}
+
+/* Get the value of h-sys-gpr22.  */
+
+USI
+or1k32bf_h_sys_gpr22_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR22 ();
+}
+
+/* Set a value for h-sys-gpr22.  */
+
+void
+or1k32bf_h_sys_gpr22_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR22 (newval);
+}
+
+/* Get the value of h-sys-gpr23.  */
+
+USI
+or1k32bf_h_sys_gpr23_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR23 ();
+}
+
+/* Set a value for h-sys-gpr23.  */
+
+void
+or1k32bf_h_sys_gpr23_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR23 (newval);
+}
+
+/* Get the value of h-sys-gpr24.  */
+
+USI
+or1k32bf_h_sys_gpr24_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR24 ();
+}
+
+/* Set a value for h-sys-gpr24.  */
+
+void
+or1k32bf_h_sys_gpr24_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR24 (newval);
+}
+
+/* Get the value of h-sys-gpr25.  */
+
+USI
+or1k32bf_h_sys_gpr25_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR25 ();
+}
+
+/* Set a value for h-sys-gpr25.  */
+
+void
+or1k32bf_h_sys_gpr25_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR25 (newval);
+}
+
+/* Get the value of h-sys-gpr26.  */
+
+USI
+or1k32bf_h_sys_gpr26_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR26 ();
+}
+
+/* Set a value for h-sys-gpr26.  */
+
+void
+or1k32bf_h_sys_gpr26_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR26 (newval);
+}
+
+/* Get the value of h-sys-gpr27.  */
+
+USI
+or1k32bf_h_sys_gpr27_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR27 ();
+}
+
+/* Set a value for h-sys-gpr27.  */
+
+void
+or1k32bf_h_sys_gpr27_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR27 (newval);
+}
+
+/* Get the value of h-sys-gpr28.  */
+
+USI
+or1k32bf_h_sys_gpr28_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR28 ();
+}
+
+/* Set a value for h-sys-gpr28.  */
+
+void
+or1k32bf_h_sys_gpr28_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR28 (newval);
+}
+
+/* Get the value of h-sys-gpr29.  */
+
+USI
+or1k32bf_h_sys_gpr29_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR29 ();
+}
+
+/* Set a value for h-sys-gpr29.  */
+
+void
+or1k32bf_h_sys_gpr29_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR29 (newval);
+}
+
+/* Get the value of h-sys-gpr30.  */
+
+USI
+or1k32bf_h_sys_gpr30_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR30 ();
+}
+
+/* Set a value for h-sys-gpr30.  */
+
+void
+or1k32bf_h_sys_gpr30_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR30 (newval);
+}
+
+/* Get the value of h-sys-gpr31.  */
+
+USI
+or1k32bf_h_sys_gpr31_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR31 ();
+}
+
+/* Set a value for h-sys-gpr31.  */
+
+void
+or1k32bf_h_sys_gpr31_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR31 (newval);
+}
+
+/* Get the value of h-sys-gpr32.  */
+
+USI
+or1k32bf_h_sys_gpr32_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR32 ();
+}
+
+/* Set a value for h-sys-gpr32.  */
+
+void
+or1k32bf_h_sys_gpr32_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR32 (newval);
+}
+
+/* Get the value of h-sys-gpr33.  */
+
+USI
+or1k32bf_h_sys_gpr33_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR33 ();
+}
+
+/* Set a value for h-sys-gpr33.  */
+
+void
+or1k32bf_h_sys_gpr33_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR33 (newval);
+}
+
+/* Get the value of h-sys-gpr34.  */
+
+USI
+or1k32bf_h_sys_gpr34_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR34 ();
+}
+
+/* Set a value for h-sys-gpr34.  */
+
+void
+or1k32bf_h_sys_gpr34_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR34 (newval);
+}
+
+/* Get the value of h-sys-gpr35.  */
+
+USI
+or1k32bf_h_sys_gpr35_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR35 ();
+}
+
+/* Set a value for h-sys-gpr35.  */
+
+void
+or1k32bf_h_sys_gpr35_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR35 (newval);
+}
+
+/* Get the value of h-sys-gpr36.  */
+
+USI
+or1k32bf_h_sys_gpr36_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR36 ();
+}
+
+/* Set a value for h-sys-gpr36.  */
+
+void
+or1k32bf_h_sys_gpr36_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR36 (newval);
+}
+
+/* Get the value of h-sys-gpr37.  */
+
+USI
+or1k32bf_h_sys_gpr37_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR37 ();
+}
+
+/* Set a value for h-sys-gpr37.  */
+
+void
+or1k32bf_h_sys_gpr37_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR37 (newval);
+}
+
+/* Get the value of h-sys-gpr38.  */
+
+USI
+or1k32bf_h_sys_gpr38_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR38 ();
+}
+
+/* Set a value for h-sys-gpr38.  */
+
+void
+or1k32bf_h_sys_gpr38_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR38 (newval);
+}
+
+/* Get the value of h-sys-gpr39.  */
+
+USI
+or1k32bf_h_sys_gpr39_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR39 ();
+}
+
+/* Set a value for h-sys-gpr39.  */
+
+void
+or1k32bf_h_sys_gpr39_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR39 (newval);
+}
+
+/* Get the value of h-sys-gpr40.  */
+
+USI
+or1k32bf_h_sys_gpr40_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR40 ();
+}
+
+/* Set a value for h-sys-gpr40.  */
+
+void
+or1k32bf_h_sys_gpr40_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR40 (newval);
+}
+
+/* Get the value of h-sys-gpr41.  */
+
+USI
+or1k32bf_h_sys_gpr41_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR41 ();
+}
+
+/* Set a value for h-sys-gpr41.  */
+
+void
+or1k32bf_h_sys_gpr41_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR41 (newval);
+}
+
+/* Get the value of h-sys-gpr42.  */
+
+USI
+or1k32bf_h_sys_gpr42_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR42 ();
+}
+
+/* Set a value for h-sys-gpr42.  */
+
+void
+or1k32bf_h_sys_gpr42_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR42 (newval);
+}
+
+/* Get the value of h-sys-gpr43.  */
+
+USI
+or1k32bf_h_sys_gpr43_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR43 ();
+}
+
+/* Set a value for h-sys-gpr43.  */
+
+void
+or1k32bf_h_sys_gpr43_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR43 (newval);
+}
+
+/* Get the value of h-sys-gpr44.  */
+
+USI
+or1k32bf_h_sys_gpr44_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR44 ();
+}
+
+/* Set a value for h-sys-gpr44.  */
+
+void
+or1k32bf_h_sys_gpr44_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR44 (newval);
+}
+
+/* Get the value of h-sys-gpr45.  */
+
+USI
+or1k32bf_h_sys_gpr45_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR45 ();
+}
+
+/* Set a value for h-sys-gpr45.  */
+
+void
+or1k32bf_h_sys_gpr45_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR45 (newval);
+}
+
+/* Get the value of h-sys-gpr46.  */
+
+USI
+or1k32bf_h_sys_gpr46_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR46 ();
+}
+
+/* Set a value for h-sys-gpr46.  */
+
+void
+or1k32bf_h_sys_gpr46_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR46 (newval);
+}
+
+/* Get the value of h-sys-gpr47.  */
+
+USI
+or1k32bf_h_sys_gpr47_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR47 ();
+}
+
+/* Set a value for h-sys-gpr47.  */
+
+void
+or1k32bf_h_sys_gpr47_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR47 (newval);
+}
+
+/* Get the value of h-sys-gpr48.  */
+
+USI
+or1k32bf_h_sys_gpr48_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR48 ();
+}
+
+/* Set a value for h-sys-gpr48.  */
+
+void
+or1k32bf_h_sys_gpr48_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR48 (newval);
+}
+
+/* Get the value of h-sys-gpr49.  */
+
+USI
+or1k32bf_h_sys_gpr49_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR49 ();
+}
+
+/* Set a value for h-sys-gpr49.  */
+
+void
+or1k32bf_h_sys_gpr49_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR49 (newval);
+}
+
+/* Get the value of h-sys-gpr50.  */
+
+USI
+or1k32bf_h_sys_gpr50_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR50 ();
+}
+
+/* Set a value for h-sys-gpr50.  */
+
+void
+or1k32bf_h_sys_gpr50_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR50 (newval);
+}
+
+/* Get the value of h-sys-gpr51.  */
+
+USI
+or1k32bf_h_sys_gpr51_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR51 ();
+}
+
+/* Set a value for h-sys-gpr51.  */
+
+void
+or1k32bf_h_sys_gpr51_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR51 (newval);
+}
+
+/* Get the value of h-sys-gpr52.  */
+
+USI
+or1k32bf_h_sys_gpr52_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR52 ();
+}
+
+/* Set a value for h-sys-gpr52.  */
+
+void
+or1k32bf_h_sys_gpr52_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR52 (newval);
+}
+
+/* Get the value of h-sys-gpr53.  */
+
+USI
+or1k32bf_h_sys_gpr53_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR53 ();
+}
+
+/* Set a value for h-sys-gpr53.  */
+
+void
+or1k32bf_h_sys_gpr53_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR53 (newval);
+}
+
+/* Get the value of h-sys-gpr54.  */
+
+USI
+or1k32bf_h_sys_gpr54_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR54 ();
+}
+
+/* Set a value for h-sys-gpr54.  */
+
+void
+or1k32bf_h_sys_gpr54_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR54 (newval);
+}
+
+/* Get the value of h-sys-gpr55.  */
+
+USI
+or1k32bf_h_sys_gpr55_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR55 ();
+}
+
+/* Set a value for h-sys-gpr55.  */
+
+void
+or1k32bf_h_sys_gpr55_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR55 (newval);
+}
+
+/* Get the value of h-sys-gpr56.  */
+
+USI
+or1k32bf_h_sys_gpr56_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR56 ();
+}
+
+/* Set a value for h-sys-gpr56.  */
+
+void
+or1k32bf_h_sys_gpr56_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR56 (newval);
+}
+
+/* Get the value of h-sys-gpr57.  */
+
+USI
+or1k32bf_h_sys_gpr57_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR57 ();
+}
+
+/* Set a value for h-sys-gpr57.  */
+
+void
+or1k32bf_h_sys_gpr57_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR57 (newval);
+}
+
+/* Get the value of h-sys-gpr58.  */
+
+USI
+or1k32bf_h_sys_gpr58_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR58 ();
+}
+
+/* Set a value for h-sys-gpr58.  */
+
+void
+or1k32bf_h_sys_gpr58_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR58 (newval);
+}
+
+/* Get the value of h-sys-gpr59.  */
+
+USI
+or1k32bf_h_sys_gpr59_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR59 ();
+}
+
+/* Set a value for h-sys-gpr59.  */
+
+void
+or1k32bf_h_sys_gpr59_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR59 (newval);
+}
+
+/* Get the value of h-sys-gpr60.  */
+
+USI
+or1k32bf_h_sys_gpr60_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR60 ();
+}
+
+/* Set a value for h-sys-gpr60.  */
+
+void
+or1k32bf_h_sys_gpr60_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR60 (newval);
+}
+
+/* Get the value of h-sys-gpr61.  */
+
+USI
+or1k32bf_h_sys_gpr61_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR61 ();
+}
+
+/* Set a value for h-sys-gpr61.  */
+
+void
+or1k32bf_h_sys_gpr61_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR61 (newval);
+}
+
+/* Get the value of h-sys-gpr62.  */
+
+USI
+or1k32bf_h_sys_gpr62_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR62 ();
+}
+
+/* Set a value for h-sys-gpr62.  */
+
+void
+or1k32bf_h_sys_gpr62_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR62 (newval);
+}
+
+/* Get the value of h-sys-gpr63.  */
+
+USI
+or1k32bf_h_sys_gpr63_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR63 ();
+}
+
+/* Set a value for h-sys-gpr63.  */
+
+void
+or1k32bf_h_sys_gpr63_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR63 (newval);
+}
+
+/* Get the value of h-sys-gpr64.  */
+
+USI
+or1k32bf_h_sys_gpr64_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR64 ();
+}
+
+/* Set a value for h-sys-gpr64.  */
+
+void
+or1k32bf_h_sys_gpr64_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR64 (newval);
+}
+
+/* Get the value of h-sys-gpr65.  */
+
+USI
+or1k32bf_h_sys_gpr65_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR65 ();
+}
+
+/* Set a value for h-sys-gpr65.  */
+
+void
+or1k32bf_h_sys_gpr65_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR65 (newval);
+}
+
+/* Get the value of h-sys-gpr66.  */
+
+USI
+or1k32bf_h_sys_gpr66_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR66 ();
+}
+
+/* Set a value for h-sys-gpr66.  */
+
+void
+or1k32bf_h_sys_gpr66_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR66 (newval);
+}
+
+/* Get the value of h-sys-gpr67.  */
+
+USI
+or1k32bf_h_sys_gpr67_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR67 ();
+}
+
+/* Set a value for h-sys-gpr67.  */
+
+void
+or1k32bf_h_sys_gpr67_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR67 (newval);
+}
+
+/* Get the value of h-sys-gpr68.  */
+
+USI
+or1k32bf_h_sys_gpr68_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR68 ();
+}
+
+/* Set a value for h-sys-gpr68.  */
+
+void
+or1k32bf_h_sys_gpr68_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR68 (newval);
+}
+
+/* Get the value of h-sys-gpr69.  */
+
+USI
+or1k32bf_h_sys_gpr69_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR69 ();
+}
+
+/* Set a value for h-sys-gpr69.  */
+
+void
+or1k32bf_h_sys_gpr69_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR69 (newval);
+}
+
+/* Get the value of h-sys-gpr70.  */
+
+USI
+or1k32bf_h_sys_gpr70_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR70 ();
+}
+
+/* Set a value for h-sys-gpr70.  */
+
+void
+or1k32bf_h_sys_gpr70_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR70 (newval);
+}
+
+/* Get the value of h-sys-gpr71.  */
+
+USI
+or1k32bf_h_sys_gpr71_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR71 ();
+}
+
+/* Set a value for h-sys-gpr71.  */
+
+void
+or1k32bf_h_sys_gpr71_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR71 (newval);
+}
+
+/* Get the value of h-sys-gpr72.  */
+
+USI
+or1k32bf_h_sys_gpr72_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR72 ();
+}
+
+/* Set a value for h-sys-gpr72.  */
+
+void
+or1k32bf_h_sys_gpr72_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR72 (newval);
+}
+
+/* Get the value of h-sys-gpr73.  */
+
+USI
+or1k32bf_h_sys_gpr73_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR73 ();
+}
+
+/* Set a value for h-sys-gpr73.  */
+
+void
+or1k32bf_h_sys_gpr73_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR73 (newval);
+}
+
+/* Get the value of h-sys-gpr74.  */
+
+USI
+or1k32bf_h_sys_gpr74_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR74 ();
+}
+
+/* Set a value for h-sys-gpr74.  */
+
+void
+or1k32bf_h_sys_gpr74_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR74 (newval);
+}
+
+/* Get the value of h-sys-gpr75.  */
+
+USI
+or1k32bf_h_sys_gpr75_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR75 ();
+}
+
+/* Set a value for h-sys-gpr75.  */
+
+void
+or1k32bf_h_sys_gpr75_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR75 (newval);
+}
+
+/* Get the value of h-sys-gpr76.  */
+
+USI
+or1k32bf_h_sys_gpr76_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR76 ();
+}
+
+/* Set a value for h-sys-gpr76.  */
+
+void
+or1k32bf_h_sys_gpr76_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR76 (newval);
+}
+
+/* Get the value of h-sys-gpr77.  */
+
+USI
+or1k32bf_h_sys_gpr77_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR77 ();
+}
+
+/* Set a value for h-sys-gpr77.  */
+
+void
+or1k32bf_h_sys_gpr77_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR77 (newval);
+}
+
+/* Get the value of h-sys-gpr78.  */
+
+USI
+or1k32bf_h_sys_gpr78_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR78 ();
+}
+
+/* Set a value for h-sys-gpr78.  */
+
+void
+or1k32bf_h_sys_gpr78_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR78 (newval);
+}
+
+/* Get the value of h-sys-gpr79.  */
+
+USI
+or1k32bf_h_sys_gpr79_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR79 ();
+}
+
+/* Set a value for h-sys-gpr79.  */
+
+void
+or1k32bf_h_sys_gpr79_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR79 (newval);
+}
+
+/* Get the value of h-sys-gpr80.  */
+
+USI
+or1k32bf_h_sys_gpr80_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR80 ();
+}
+
+/* Set a value for h-sys-gpr80.  */
+
+void
+or1k32bf_h_sys_gpr80_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR80 (newval);
+}
+
+/* Get the value of h-sys-gpr81.  */
+
+USI
+or1k32bf_h_sys_gpr81_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR81 ();
+}
+
+/* Set a value for h-sys-gpr81.  */
+
+void
+or1k32bf_h_sys_gpr81_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR81 (newval);
+}
+
+/* Get the value of h-sys-gpr82.  */
+
+USI
+or1k32bf_h_sys_gpr82_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR82 ();
+}
+
+/* Set a value for h-sys-gpr82.  */
+
+void
+or1k32bf_h_sys_gpr82_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR82 (newval);
+}
+
+/* Get the value of h-sys-gpr83.  */
+
+USI
+or1k32bf_h_sys_gpr83_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR83 ();
+}
+
+/* Set a value for h-sys-gpr83.  */
+
+void
+or1k32bf_h_sys_gpr83_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR83 (newval);
+}
+
+/* Get the value of h-sys-gpr84.  */
+
+USI
+or1k32bf_h_sys_gpr84_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR84 ();
+}
+
+/* Set a value for h-sys-gpr84.  */
+
+void
+or1k32bf_h_sys_gpr84_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR84 (newval);
+}
+
+/* Get the value of h-sys-gpr85.  */
+
+USI
+or1k32bf_h_sys_gpr85_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR85 ();
+}
+
+/* Set a value for h-sys-gpr85.  */
+
+void
+or1k32bf_h_sys_gpr85_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR85 (newval);
+}
+
+/* Get the value of h-sys-gpr86.  */
+
+USI
+or1k32bf_h_sys_gpr86_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR86 ();
+}
+
+/* Set a value for h-sys-gpr86.  */
+
+void
+or1k32bf_h_sys_gpr86_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR86 (newval);
+}
+
+/* Get the value of h-sys-gpr87.  */
+
+USI
+or1k32bf_h_sys_gpr87_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR87 ();
+}
+
+/* Set a value for h-sys-gpr87.  */
+
+void
+or1k32bf_h_sys_gpr87_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR87 (newval);
+}
+
+/* Get the value of h-sys-gpr88.  */
+
+USI
+or1k32bf_h_sys_gpr88_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR88 ();
+}
+
+/* Set a value for h-sys-gpr88.  */
+
+void
+or1k32bf_h_sys_gpr88_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR88 (newval);
+}
+
+/* Get the value of h-sys-gpr89.  */
+
+USI
+or1k32bf_h_sys_gpr89_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR89 ();
+}
+
+/* Set a value for h-sys-gpr89.  */
+
+void
+or1k32bf_h_sys_gpr89_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR89 (newval);
+}
+
+/* Get the value of h-sys-gpr90.  */
+
+USI
+or1k32bf_h_sys_gpr90_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR90 ();
+}
+
+/* Set a value for h-sys-gpr90.  */
+
+void
+or1k32bf_h_sys_gpr90_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR90 (newval);
+}
+
+/* Get the value of h-sys-gpr91.  */
+
+USI
+or1k32bf_h_sys_gpr91_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR91 ();
+}
+
+/* Set a value for h-sys-gpr91.  */
+
+void
+or1k32bf_h_sys_gpr91_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR91 (newval);
+}
+
+/* Get the value of h-sys-gpr92.  */
+
+USI
+or1k32bf_h_sys_gpr92_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR92 ();
+}
+
+/* Set a value for h-sys-gpr92.  */
+
+void
+or1k32bf_h_sys_gpr92_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR92 (newval);
+}
+
+/* Get the value of h-sys-gpr93.  */
+
+USI
+or1k32bf_h_sys_gpr93_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR93 ();
+}
+
+/* Set a value for h-sys-gpr93.  */
+
+void
+or1k32bf_h_sys_gpr93_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR93 (newval);
+}
+
+/* Get the value of h-sys-gpr94.  */
+
+USI
+or1k32bf_h_sys_gpr94_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR94 ();
+}
+
+/* Set a value for h-sys-gpr94.  */
+
+void
+or1k32bf_h_sys_gpr94_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR94 (newval);
+}
+
+/* Get the value of h-sys-gpr95.  */
+
+USI
+or1k32bf_h_sys_gpr95_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR95 ();
+}
+
+/* Set a value for h-sys-gpr95.  */
+
+void
+or1k32bf_h_sys_gpr95_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR95 (newval);
+}
+
+/* Get the value of h-sys-gpr96.  */
+
+USI
+or1k32bf_h_sys_gpr96_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR96 ();
+}
+
+/* Set a value for h-sys-gpr96.  */
+
+void
+or1k32bf_h_sys_gpr96_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR96 (newval);
+}
+
+/* Get the value of h-sys-gpr97.  */
+
+USI
+or1k32bf_h_sys_gpr97_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR97 ();
+}
+
+/* Set a value for h-sys-gpr97.  */
+
+void
+or1k32bf_h_sys_gpr97_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR97 (newval);
+}
+
+/* Get the value of h-sys-gpr98.  */
+
+USI
+or1k32bf_h_sys_gpr98_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR98 ();
+}
+
+/* Set a value for h-sys-gpr98.  */
+
+void
+or1k32bf_h_sys_gpr98_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR98 (newval);
+}
+
+/* Get the value of h-sys-gpr99.  */
+
+USI
+or1k32bf_h_sys_gpr99_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR99 ();
+}
+
+/* Set a value for h-sys-gpr99.  */
+
+void
+or1k32bf_h_sys_gpr99_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR99 (newval);
+}
+
+/* Get the value of h-sys-gpr100.  */
+
+USI
+or1k32bf_h_sys_gpr100_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR100 ();
+}
+
+/* Set a value for h-sys-gpr100.  */
+
+void
+or1k32bf_h_sys_gpr100_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR100 (newval);
+}
+
+/* Get the value of h-sys-gpr101.  */
+
+USI
+or1k32bf_h_sys_gpr101_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR101 ();
+}
+
+/* Set a value for h-sys-gpr101.  */
+
+void
+or1k32bf_h_sys_gpr101_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR101 (newval);
+}
+
+/* Get the value of h-sys-gpr102.  */
+
+USI
+or1k32bf_h_sys_gpr102_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR102 ();
+}
+
+/* Set a value for h-sys-gpr102.  */
+
+void
+or1k32bf_h_sys_gpr102_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR102 (newval);
+}
+
+/* Get the value of h-sys-gpr103.  */
+
+USI
+or1k32bf_h_sys_gpr103_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR103 ();
+}
+
+/* Set a value for h-sys-gpr103.  */
+
+void
+or1k32bf_h_sys_gpr103_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR103 (newval);
+}
+
+/* Get the value of h-sys-gpr104.  */
+
+USI
+or1k32bf_h_sys_gpr104_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR104 ();
+}
+
+/* Set a value for h-sys-gpr104.  */
+
+void
+or1k32bf_h_sys_gpr104_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR104 (newval);
+}
+
+/* Get the value of h-sys-gpr105.  */
+
+USI
+or1k32bf_h_sys_gpr105_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR105 ();
+}
+
+/* Set a value for h-sys-gpr105.  */
+
+void
+or1k32bf_h_sys_gpr105_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR105 (newval);
+}
+
+/* Get the value of h-sys-gpr106.  */
+
+USI
+or1k32bf_h_sys_gpr106_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR106 ();
+}
+
+/* Set a value for h-sys-gpr106.  */
+
+void
+or1k32bf_h_sys_gpr106_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR106 (newval);
+}
+
+/* Get the value of h-sys-gpr107.  */
+
+USI
+or1k32bf_h_sys_gpr107_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR107 ();
+}
+
+/* Set a value for h-sys-gpr107.  */
+
+void
+or1k32bf_h_sys_gpr107_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR107 (newval);
+}
+
+/* Get the value of h-sys-gpr108.  */
+
+USI
+or1k32bf_h_sys_gpr108_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR108 ();
+}
+
+/* Set a value for h-sys-gpr108.  */
+
+void
+or1k32bf_h_sys_gpr108_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR108 (newval);
+}
+
+/* Get the value of h-sys-gpr109.  */
+
+USI
+or1k32bf_h_sys_gpr109_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR109 ();
+}
+
+/* Set a value for h-sys-gpr109.  */
+
+void
+or1k32bf_h_sys_gpr109_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR109 (newval);
+}
+
+/* Get the value of h-sys-gpr110.  */
+
+USI
+or1k32bf_h_sys_gpr110_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR110 ();
+}
+
+/* Set a value for h-sys-gpr110.  */
+
+void
+or1k32bf_h_sys_gpr110_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR110 (newval);
+}
+
+/* Get the value of h-sys-gpr111.  */
+
+USI
+or1k32bf_h_sys_gpr111_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR111 ();
+}
+
+/* Set a value for h-sys-gpr111.  */
+
+void
+or1k32bf_h_sys_gpr111_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR111 (newval);
+}
+
+/* Get the value of h-sys-gpr112.  */
+
+USI
+or1k32bf_h_sys_gpr112_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR112 ();
+}
+
+/* Set a value for h-sys-gpr112.  */
+
+void
+or1k32bf_h_sys_gpr112_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR112 (newval);
+}
+
+/* Get the value of h-sys-gpr113.  */
+
+USI
+or1k32bf_h_sys_gpr113_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR113 ();
+}
+
+/* Set a value for h-sys-gpr113.  */
+
+void
+or1k32bf_h_sys_gpr113_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR113 (newval);
+}
+
+/* Get the value of h-sys-gpr114.  */
+
+USI
+or1k32bf_h_sys_gpr114_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR114 ();
+}
+
+/* Set a value for h-sys-gpr114.  */
+
+void
+or1k32bf_h_sys_gpr114_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR114 (newval);
+}
+
+/* Get the value of h-sys-gpr115.  */
+
+USI
+or1k32bf_h_sys_gpr115_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR115 ();
+}
+
+/* Set a value for h-sys-gpr115.  */
+
+void
+or1k32bf_h_sys_gpr115_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR115 (newval);
+}
+
+/* Get the value of h-sys-gpr116.  */
+
+USI
+or1k32bf_h_sys_gpr116_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR116 ();
+}
+
+/* Set a value for h-sys-gpr116.  */
+
+void
+or1k32bf_h_sys_gpr116_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR116 (newval);
+}
+
+/* Get the value of h-sys-gpr117.  */
+
+USI
+or1k32bf_h_sys_gpr117_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR117 ();
+}
+
+/* Set a value for h-sys-gpr117.  */
+
+void
+or1k32bf_h_sys_gpr117_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR117 (newval);
+}
+
+/* Get the value of h-sys-gpr118.  */
+
+USI
+or1k32bf_h_sys_gpr118_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR118 ();
+}
+
+/* Set a value for h-sys-gpr118.  */
+
+void
+or1k32bf_h_sys_gpr118_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR118 (newval);
+}
+
+/* Get the value of h-sys-gpr119.  */
+
+USI
+or1k32bf_h_sys_gpr119_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR119 ();
+}
+
+/* Set a value for h-sys-gpr119.  */
+
+void
+or1k32bf_h_sys_gpr119_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR119 (newval);
+}
+
+/* Get the value of h-sys-gpr120.  */
+
+USI
+or1k32bf_h_sys_gpr120_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR120 ();
+}
+
+/* Set a value for h-sys-gpr120.  */
+
+void
+or1k32bf_h_sys_gpr120_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR120 (newval);
+}
+
+/* Get the value of h-sys-gpr121.  */
+
+USI
+or1k32bf_h_sys_gpr121_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR121 ();
+}
+
+/* Set a value for h-sys-gpr121.  */
+
+void
+or1k32bf_h_sys_gpr121_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR121 (newval);
+}
+
+/* Get the value of h-sys-gpr122.  */
+
+USI
+or1k32bf_h_sys_gpr122_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR122 ();
+}
+
+/* Set a value for h-sys-gpr122.  */
+
+void
+or1k32bf_h_sys_gpr122_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR122 (newval);
+}
+
+/* Get the value of h-sys-gpr123.  */
+
+USI
+or1k32bf_h_sys_gpr123_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR123 ();
+}
+
+/* Set a value for h-sys-gpr123.  */
+
+void
+or1k32bf_h_sys_gpr123_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR123 (newval);
+}
+
+/* Get the value of h-sys-gpr124.  */
+
+USI
+or1k32bf_h_sys_gpr124_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR124 ();
+}
+
+/* Set a value for h-sys-gpr124.  */
+
+void
+or1k32bf_h_sys_gpr124_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR124 (newval);
+}
+
+/* Get the value of h-sys-gpr125.  */
+
+USI
+or1k32bf_h_sys_gpr125_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR125 ();
+}
+
+/* Set a value for h-sys-gpr125.  */
+
+void
+or1k32bf_h_sys_gpr125_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR125 (newval);
+}
+
+/* Get the value of h-sys-gpr126.  */
+
+USI
+or1k32bf_h_sys_gpr126_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR126 ();
+}
+
+/* Set a value for h-sys-gpr126.  */
+
+void
+or1k32bf_h_sys_gpr126_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR126 (newval);
+}
+
+/* Get the value of h-sys-gpr127.  */
+
+USI
+or1k32bf_h_sys_gpr127_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR127 ();
+}
+
+/* Set a value for h-sys-gpr127.  */
+
+void
+or1k32bf_h_sys_gpr127_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR127 (newval);
+}
+
+/* Get the value of h-sys-gpr128.  */
+
+USI
+or1k32bf_h_sys_gpr128_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR128 ();
+}
+
+/* Set a value for h-sys-gpr128.  */
+
+void
+or1k32bf_h_sys_gpr128_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR128 (newval);
+}
+
+/* Get the value of h-sys-gpr129.  */
+
+USI
+or1k32bf_h_sys_gpr129_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR129 ();
+}
+
+/* Set a value for h-sys-gpr129.  */
+
+void
+or1k32bf_h_sys_gpr129_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR129 (newval);
+}
+
+/* Get the value of h-sys-gpr130.  */
+
+USI
+or1k32bf_h_sys_gpr130_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR130 ();
+}
+
+/* Set a value for h-sys-gpr130.  */
+
+void
+or1k32bf_h_sys_gpr130_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR130 (newval);
+}
+
+/* Get the value of h-sys-gpr131.  */
+
+USI
+or1k32bf_h_sys_gpr131_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR131 ();
+}
+
+/* Set a value for h-sys-gpr131.  */
+
+void
+or1k32bf_h_sys_gpr131_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR131 (newval);
+}
+
+/* Get the value of h-sys-gpr132.  */
+
+USI
+or1k32bf_h_sys_gpr132_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR132 ();
+}
+
+/* Set a value for h-sys-gpr132.  */
+
+void
+or1k32bf_h_sys_gpr132_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR132 (newval);
+}
+
+/* Get the value of h-sys-gpr133.  */
+
+USI
+or1k32bf_h_sys_gpr133_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR133 ();
+}
+
+/* Set a value for h-sys-gpr133.  */
+
+void
+or1k32bf_h_sys_gpr133_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR133 (newval);
+}
+
+/* Get the value of h-sys-gpr134.  */
+
+USI
+or1k32bf_h_sys_gpr134_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR134 ();
+}
+
+/* Set a value for h-sys-gpr134.  */
+
+void
+or1k32bf_h_sys_gpr134_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR134 (newval);
+}
+
+/* Get the value of h-sys-gpr135.  */
+
+USI
+or1k32bf_h_sys_gpr135_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR135 ();
+}
+
+/* Set a value for h-sys-gpr135.  */
+
+void
+or1k32bf_h_sys_gpr135_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR135 (newval);
+}
+
+/* Get the value of h-sys-gpr136.  */
+
+USI
+or1k32bf_h_sys_gpr136_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR136 ();
+}
+
+/* Set a value for h-sys-gpr136.  */
+
+void
+or1k32bf_h_sys_gpr136_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR136 (newval);
+}
+
+/* Get the value of h-sys-gpr137.  */
+
+USI
+or1k32bf_h_sys_gpr137_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR137 ();
+}
+
+/* Set a value for h-sys-gpr137.  */
+
+void
+or1k32bf_h_sys_gpr137_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR137 (newval);
+}
+
+/* Get the value of h-sys-gpr138.  */
+
+USI
+or1k32bf_h_sys_gpr138_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR138 ();
+}
+
+/* Set a value for h-sys-gpr138.  */
+
+void
+or1k32bf_h_sys_gpr138_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR138 (newval);
+}
+
+/* Get the value of h-sys-gpr139.  */
+
+USI
+or1k32bf_h_sys_gpr139_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR139 ();
+}
+
+/* Set a value for h-sys-gpr139.  */
+
+void
+or1k32bf_h_sys_gpr139_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR139 (newval);
+}
+
+/* Get the value of h-sys-gpr140.  */
+
+USI
+or1k32bf_h_sys_gpr140_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR140 ();
+}
+
+/* Set a value for h-sys-gpr140.  */
+
+void
+or1k32bf_h_sys_gpr140_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR140 (newval);
+}
+
+/* Get the value of h-sys-gpr141.  */
+
+USI
+or1k32bf_h_sys_gpr141_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR141 ();
+}
+
+/* Set a value for h-sys-gpr141.  */
+
+void
+or1k32bf_h_sys_gpr141_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR141 (newval);
+}
+
+/* Get the value of h-sys-gpr142.  */
+
+USI
+or1k32bf_h_sys_gpr142_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR142 ();
+}
+
+/* Set a value for h-sys-gpr142.  */
+
+void
+or1k32bf_h_sys_gpr142_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR142 (newval);
+}
+
+/* Get the value of h-sys-gpr143.  */
+
+USI
+or1k32bf_h_sys_gpr143_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR143 ();
+}
+
+/* Set a value for h-sys-gpr143.  */
+
+void
+or1k32bf_h_sys_gpr143_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR143 (newval);
+}
+
+/* Get the value of h-sys-gpr144.  */
+
+USI
+or1k32bf_h_sys_gpr144_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR144 ();
+}
+
+/* Set a value for h-sys-gpr144.  */
+
+void
+or1k32bf_h_sys_gpr144_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR144 (newval);
+}
+
+/* Get the value of h-sys-gpr145.  */
+
+USI
+or1k32bf_h_sys_gpr145_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR145 ();
+}
+
+/* Set a value for h-sys-gpr145.  */
+
+void
+or1k32bf_h_sys_gpr145_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR145 (newval);
+}
+
+/* Get the value of h-sys-gpr146.  */
+
+USI
+or1k32bf_h_sys_gpr146_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR146 ();
+}
+
+/* Set a value for h-sys-gpr146.  */
+
+void
+or1k32bf_h_sys_gpr146_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR146 (newval);
+}
+
+/* Get the value of h-sys-gpr147.  */
+
+USI
+or1k32bf_h_sys_gpr147_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR147 ();
+}
+
+/* Set a value for h-sys-gpr147.  */
+
+void
+or1k32bf_h_sys_gpr147_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR147 (newval);
+}
+
+/* Get the value of h-sys-gpr148.  */
+
+USI
+or1k32bf_h_sys_gpr148_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR148 ();
+}
+
+/* Set a value for h-sys-gpr148.  */
+
+void
+or1k32bf_h_sys_gpr148_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR148 (newval);
+}
+
+/* Get the value of h-sys-gpr149.  */
+
+USI
+or1k32bf_h_sys_gpr149_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR149 ();
+}
+
+/* Set a value for h-sys-gpr149.  */
+
+void
+or1k32bf_h_sys_gpr149_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR149 (newval);
+}
+
+/* Get the value of h-sys-gpr150.  */
+
+USI
+or1k32bf_h_sys_gpr150_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR150 ();
+}
+
+/* Set a value for h-sys-gpr150.  */
+
+void
+or1k32bf_h_sys_gpr150_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR150 (newval);
+}
+
+/* Get the value of h-sys-gpr151.  */
+
+USI
+or1k32bf_h_sys_gpr151_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR151 ();
+}
+
+/* Set a value for h-sys-gpr151.  */
+
+void
+or1k32bf_h_sys_gpr151_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR151 (newval);
+}
+
+/* Get the value of h-sys-gpr152.  */
+
+USI
+or1k32bf_h_sys_gpr152_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR152 ();
+}
+
+/* Set a value for h-sys-gpr152.  */
+
+void
+or1k32bf_h_sys_gpr152_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR152 (newval);
+}
+
+/* Get the value of h-sys-gpr153.  */
+
+USI
+or1k32bf_h_sys_gpr153_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR153 ();
+}
+
+/* Set a value for h-sys-gpr153.  */
+
+void
+or1k32bf_h_sys_gpr153_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR153 (newval);
+}
+
+/* Get the value of h-sys-gpr154.  */
+
+USI
+or1k32bf_h_sys_gpr154_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR154 ();
+}
+
+/* Set a value for h-sys-gpr154.  */
+
+void
+or1k32bf_h_sys_gpr154_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR154 (newval);
+}
+
+/* Get the value of h-sys-gpr155.  */
+
+USI
+or1k32bf_h_sys_gpr155_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR155 ();
+}
+
+/* Set a value for h-sys-gpr155.  */
+
+void
+or1k32bf_h_sys_gpr155_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR155 (newval);
+}
+
+/* Get the value of h-sys-gpr156.  */
+
+USI
+or1k32bf_h_sys_gpr156_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR156 ();
+}
+
+/* Set a value for h-sys-gpr156.  */
+
+void
+or1k32bf_h_sys_gpr156_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR156 (newval);
+}
+
+/* Get the value of h-sys-gpr157.  */
+
+USI
+or1k32bf_h_sys_gpr157_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR157 ();
+}
+
+/* Set a value for h-sys-gpr157.  */
+
+void
+or1k32bf_h_sys_gpr157_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR157 (newval);
+}
+
+/* Get the value of h-sys-gpr158.  */
+
+USI
+or1k32bf_h_sys_gpr158_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR158 ();
+}
+
+/* Set a value for h-sys-gpr158.  */
+
+void
+or1k32bf_h_sys_gpr158_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR158 (newval);
+}
+
+/* Get the value of h-sys-gpr159.  */
+
+USI
+or1k32bf_h_sys_gpr159_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR159 ();
+}
+
+/* Set a value for h-sys-gpr159.  */
+
+void
+or1k32bf_h_sys_gpr159_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR159 (newval);
+}
+
+/* Get the value of h-sys-gpr160.  */
+
+USI
+or1k32bf_h_sys_gpr160_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR160 ();
+}
+
+/* Set a value for h-sys-gpr160.  */
+
+void
+or1k32bf_h_sys_gpr160_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR160 (newval);
+}
+
+/* Get the value of h-sys-gpr161.  */
+
+USI
+or1k32bf_h_sys_gpr161_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR161 ();
+}
+
+/* Set a value for h-sys-gpr161.  */
+
+void
+or1k32bf_h_sys_gpr161_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR161 (newval);
+}
+
+/* Get the value of h-sys-gpr162.  */
+
+USI
+or1k32bf_h_sys_gpr162_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR162 ();
+}
+
+/* Set a value for h-sys-gpr162.  */
+
+void
+or1k32bf_h_sys_gpr162_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR162 (newval);
+}
+
+/* Get the value of h-sys-gpr163.  */
+
+USI
+or1k32bf_h_sys_gpr163_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR163 ();
+}
+
+/* Set a value for h-sys-gpr163.  */
+
+void
+or1k32bf_h_sys_gpr163_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR163 (newval);
+}
+
+/* Get the value of h-sys-gpr164.  */
+
+USI
+or1k32bf_h_sys_gpr164_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR164 ();
+}
+
+/* Set a value for h-sys-gpr164.  */
+
+void
+or1k32bf_h_sys_gpr164_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR164 (newval);
+}
+
+/* Get the value of h-sys-gpr165.  */
+
+USI
+or1k32bf_h_sys_gpr165_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR165 ();
+}
+
+/* Set a value for h-sys-gpr165.  */
+
+void
+or1k32bf_h_sys_gpr165_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR165 (newval);
+}
+
+/* Get the value of h-sys-gpr166.  */
+
+USI
+or1k32bf_h_sys_gpr166_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR166 ();
+}
+
+/* Set a value for h-sys-gpr166.  */
+
+void
+or1k32bf_h_sys_gpr166_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR166 (newval);
+}
+
+/* Get the value of h-sys-gpr167.  */
+
+USI
+or1k32bf_h_sys_gpr167_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR167 ();
+}
+
+/* Set a value for h-sys-gpr167.  */
+
+void
+or1k32bf_h_sys_gpr167_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR167 (newval);
+}
+
+/* Get the value of h-sys-gpr168.  */
+
+USI
+or1k32bf_h_sys_gpr168_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR168 ();
+}
+
+/* Set a value for h-sys-gpr168.  */
+
+void
+or1k32bf_h_sys_gpr168_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR168 (newval);
+}
+
+/* Get the value of h-sys-gpr169.  */
+
+USI
+or1k32bf_h_sys_gpr169_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR169 ();
+}
+
+/* Set a value for h-sys-gpr169.  */
+
+void
+or1k32bf_h_sys_gpr169_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR169 (newval);
+}
+
+/* Get the value of h-sys-gpr170.  */
+
+USI
+or1k32bf_h_sys_gpr170_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR170 ();
+}
+
+/* Set a value for h-sys-gpr170.  */
+
+void
+or1k32bf_h_sys_gpr170_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR170 (newval);
+}
+
+/* Get the value of h-sys-gpr171.  */
+
+USI
+or1k32bf_h_sys_gpr171_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR171 ();
+}
+
+/* Set a value for h-sys-gpr171.  */
+
+void
+or1k32bf_h_sys_gpr171_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR171 (newval);
+}
+
+/* Get the value of h-sys-gpr172.  */
+
+USI
+or1k32bf_h_sys_gpr172_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR172 ();
+}
+
+/* Set a value for h-sys-gpr172.  */
+
+void
+or1k32bf_h_sys_gpr172_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR172 (newval);
+}
+
+/* Get the value of h-sys-gpr173.  */
+
+USI
+or1k32bf_h_sys_gpr173_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR173 ();
+}
+
+/* Set a value for h-sys-gpr173.  */
+
+void
+or1k32bf_h_sys_gpr173_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR173 (newval);
+}
+
+/* Get the value of h-sys-gpr174.  */
+
+USI
+or1k32bf_h_sys_gpr174_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR174 ();
+}
+
+/* Set a value for h-sys-gpr174.  */
+
+void
+or1k32bf_h_sys_gpr174_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR174 (newval);
+}
+
+/* Get the value of h-sys-gpr175.  */
+
+USI
+or1k32bf_h_sys_gpr175_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR175 ();
+}
+
+/* Set a value for h-sys-gpr175.  */
+
+void
+or1k32bf_h_sys_gpr175_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR175 (newval);
+}
+
+/* Get the value of h-sys-gpr176.  */
+
+USI
+or1k32bf_h_sys_gpr176_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR176 ();
+}
+
+/* Set a value for h-sys-gpr176.  */
+
+void
+or1k32bf_h_sys_gpr176_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR176 (newval);
+}
+
+/* Get the value of h-sys-gpr177.  */
+
+USI
+or1k32bf_h_sys_gpr177_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR177 ();
+}
+
+/* Set a value for h-sys-gpr177.  */
+
+void
+or1k32bf_h_sys_gpr177_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR177 (newval);
+}
+
+/* Get the value of h-sys-gpr178.  */
+
+USI
+or1k32bf_h_sys_gpr178_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR178 ();
+}
+
+/* Set a value for h-sys-gpr178.  */
+
+void
+or1k32bf_h_sys_gpr178_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR178 (newval);
+}
+
+/* Get the value of h-sys-gpr179.  */
+
+USI
+or1k32bf_h_sys_gpr179_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR179 ();
+}
+
+/* Set a value for h-sys-gpr179.  */
+
+void
+or1k32bf_h_sys_gpr179_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR179 (newval);
+}
+
+/* Get the value of h-sys-gpr180.  */
+
+USI
+or1k32bf_h_sys_gpr180_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR180 ();
+}
+
+/* Set a value for h-sys-gpr180.  */
+
+void
+or1k32bf_h_sys_gpr180_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR180 (newval);
+}
+
+/* Get the value of h-sys-gpr181.  */
+
+USI
+or1k32bf_h_sys_gpr181_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR181 ();
+}
+
+/* Set a value for h-sys-gpr181.  */
+
+void
+or1k32bf_h_sys_gpr181_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR181 (newval);
+}
+
+/* Get the value of h-sys-gpr182.  */
+
+USI
+or1k32bf_h_sys_gpr182_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR182 ();
+}
+
+/* Set a value for h-sys-gpr182.  */
+
+void
+or1k32bf_h_sys_gpr182_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR182 (newval);
+}
+
+/* Get the value of h-sys-gpr183.  */
+
+USI
+or1k32bf_h_sys_gpr183_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR183 ();
+}
+
+/* Set a value for h-sys-gpr183.  */
+
+void
+or1k32bf_h_sys_gpr183_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR183 (newval);
+}
+
+/* Get the value of h-sys-gpr184.  */
+
+USI
+or1k32bf_h_sys_gpr184_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR184 ();
+}
+
+/* Set a value for h-sys-gpr184.  */
+
+void
+or1k32bf_h_sys_gpr184_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR184 (newval);
+}
+
+/* Get the value of h-sys-gpr185.  */
+
+USI
+or1k32bf_h_sys_gpr185_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR185 ();
+}
+
+/* Set a value for h-sys-gpr185.  */
+
+void
+or1k32bf_h_sys_gpr185_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR185 (newval);
+}
+
+/* Get the value of h-sys-gpr186.  */
+
+USI
+or1k32bf_h_sys_gpr186_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR186 ();
+}
+
+/* Set a value for h-sys-gpr186.  */
+
+void
+or1k32bf_h_sys_gpr186_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR186 (newval);
+}
+
+/* Get the value of h-sys-gpr187.  */
+
+USI
+or1k32bf_h_sys_gpr187_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR187 ();
+}
+
+/* Set a value for h-sys-gpr187.  */
+
+void
+or1k32bf_h_sys_gpr187_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR187 (newval);
+}
+
+/* Get the value of h-sys-gpr188.  */
+
+USI
+or1k32bf_h_sys_gpr188_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR188 ();
+}
+
+/* Set a value for h-sys-gpr188.  */
+
+void
+or1k32bf_h_sys_gpr188_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR188 (newval);
+}
+
+/* Get the value of h-sys-gpr189.  */
+
+USI
+or1k32bf_h_sys_gpr189_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR189 ();
+}
+
+/* Set a value for h-sys-gpr189.  */
+
+void
+or1k32bf_h_sys_gpr189_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR189 (newval);
+}
+
+/* Get the value of h-sys-gpr190.  */
+
+USI
+or1k32bf_h_sys_gpr190_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR190 ();
+}
+
+/* Set a value for h-sys-gpr190.  */
+
+void
+or1k32bf_h_sys_gpr190_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR190 (newval);
+}
+
+/* Get the value of h-sys-gpr191.  */
+
+USI
+or1k32bf_h_sys_gpr191_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR191 ();
+}
+
+/* Set a value for h-sys-gpr191.  */
+
+void
+or1k32bf_h_sys_gpr191_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR191 (newval);
+}
+
+/* Get the value of h-sys-gpr192.  */
+
+USI
+or1k32bf_h_sys_gpr192_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR192 ();
+}
+
+/* Set a value for h-sys-gpr192.  */
+
+void
+or1k32bf_h_sys_gpr192_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR192 (newval);
+}
+
+/* Get the value of h-sys-gpr193.  */
+
+USI
+or1k32bf_h_sys_gpr193_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR193 ();
+}
+
+/* Set a value for h-sys-gpr193.  */
+
+void
+or1k32bf_h_sys_gpr193_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR193 (newval);
+}
+
+/* Get the value of h-sys-gpr194.  */
+
+USI
+or1k32bf_h_sys_gpr194_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR194 ();
+}
+
+/* Set a value for h-sys-gpr194.  */
+
+void
+or1k32bf_h_sys_gpr194_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR194 (newval);
+}
+
+/* Get the value of h-sys-gpr195.  */
+
+USI
+or1k32bf_h_sys_gpr195_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR195 ();
+}
+
+/* Set a value for h-sys-gpr195.  */
+
+void
+or1k32bf_h_sys_gpr195_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR195 (newval);
+}
+
+/* Get the value of h-sys-gpr196.  */
+
+USI
+or1k32bf_h_sys_gpr196_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR196 ();
+}
+
+/* Set a value for h-sys-gpr196.  */
+
+void
+or1k32bf_h_sys_gpr196_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR196 (newval);
+}
+
+/* Get the value of h-sys-gpr197.  */
+
+USI
+or1k32bf_h_sys_gpr197_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR197 ();
+}
+
+/* Set a value for h-sys-gpr197.  */
+
+void
+or1k32bf_h_sys_gpr197_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR197 (newval);
+}
+
+/* Get the value of h-sys-gpr198.  */
+
+USI
+or1k32bf_h_sys_gpr198_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR198 ();
+}
+
+/* Set a value for h-sys-gpr198.  */
+
+void
+or1k32bf_h_sys_gpr198_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR198 (newval);
+}
+
+/* Get the value of h-sys-gpr199.  */
+
+USI
+or1k32bf_h_sys_gpr199_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR199 ();
+}
+
+/* Set a value for h-sys-gpr199.  */
+
+void
+or1k32bf_h_sys_gpr199_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR199 (newval);
+}
+
+/* Get the value of h-sys-gpr200.  */
+
+USI
+or1k32bf_h_sys_gpr200_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR200 ();
+}
+
+/* Set a value for h-sys-gpr200.  */
+
+void
+or1k32bf_h_sys_gpr200_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR200 (newval);
+}
+
+/* Get the value of h-sys-gpr201.  */
+
+USI
+or1k32bf_h_sys_gpr201_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR201 ();
+}
+
+/* Set a value for h-sys-gpr201.  */
+
+void
+or1k32bf_h_sys_gpr201_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR201 (newval);
+}
+
+/* Get the value of h-sys-gpr202.  */
+
+USI
+or1k32bf_h_sys_gpr202_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR202 ();
+}
+
+/* Set a value for h-sys-gpr202.  */
+
+void
+or1k32bf_h_sys_gpr202_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR202 (newval);
+}
+
+/* Get the value of h-sys-gpr203.  */
+
+USI
+or1k32bf_h_sys_gpr203_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR203 ();
+}
+
+/* Set a value for h-sys-gpr203.  */
+
+void
+or1k32bf_h_sys_gpr203_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR203 (newval);
+}
+
+/* Get the value of h-sys-gpr204.  */
+
+USI
+or1k32bf_h_sys_gpr204_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR204 ();
+}
+
+/* Set a value for h-sys-gpr204.  */
+
+void
+or1k32bf_h_sys_gpr204_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR204 (newval);
+}
+
+/* Get the value of h-sys-gpr205.  */
+
+USI
+or1k32bf_h_sys_gpr205_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR205 ();
+}
+
+/* Set a value for h-sys-gpr205.  */
+
+void
+or1k32bf_h_sys_gpr205_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR205 (newval);
+}
+
+/* Get the value of h-sys-gpr206.  */
+
+USI
+or1k32bf_h_sys_gpr206_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR206 ();
+}
+
+/* Set a value for h-sys-gpr206.  */
+
+void
+or1k32bf_h_sys_gpr206_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR206 (newval);
+}
+
+/* Get the value of h-sys-gpr207.  */
+
+USI
+or1k32bf_h_sys_gpr207_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR207 ();
+}
+
+/* Set a value for h-sys-gpr207.  */
+
+void
+or1k32bf_h_sys_gpr207_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR207 (newval);
+}
+
+/* Get the value of h-sys-gpr208.  */
+
+USI
+or1k32bf_h_sys_gpr208_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR208 ();
+}
+
+/* Set a value for h-sys-gpr208.  */
+
+void
+or1k32bf_h_sys_gpr208_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR208 (newval);
+}
+
+/* Get the value of h-sys-gpr209.  */
+
+USI
+or1k32bf_h_sys_gpr209_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR209 ();
+}
+
+/* Set a value for h-sys-gpr209.  */
+
+void
+or1k32bf_h_sys_gpr209_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR209 (newval);
+}
+
+/* Get the value of h-sys-gpr210.  */
+
+USI
+or1k32bf_h_sys_gpr210_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR210 ();
+}
+
+/* Set a value for h-sys-gpr210.  */
+
+void
+or1k32bf_h_sys_gpr210_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR210 (newval);
+}
+
+/* Get the value of h-sys-gpr211.  */
+
+USI
+or1k32bf_h_sys_gpr211_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR211 ();
+}
+
+/* Set a value for h-sys-gpr211.  */
+
+void
+or1k32bf_h_sys_gpr211_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR211 (newval);
+}
+
+/* Get the value of h-sys-gpr212.  */
+
+USI
+or1k32bf_h_sys_gpr212_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR212 ();
+}
+
+/* Set a value for h-sys-gpr212.  */
+
+void
+or1k32bf_h_sys_gpr212_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR212 (newval);
+}
+
+/* Get the value of h-sys-gpr213.  */
+
+USI
+or1k32bf_h_sys_gpr213_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR213 ();
+}
+
+/* Set a value for h-sys-gpr213.  */
+
+void
+or1k32bf_h_sys_gpr213_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR213 (newval);
+}
+
+/* Get the value of h-sys-gpr214.  */
+
+USI
+or1k32bf_h_sys_gpr214_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR214 ();
+}
+
+/* Set a value for h-sys-gpr214.  */
+
+void
+or1k32bf_h_sys_gpr214_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR214 (newval);
+}
+
+/* Get the value of h-sys-gpr215.  */
+
+USI
+or1k32bf_h_sys_gpr215_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR215 ();
+}
+
+/* Set a value for h-sys-gpr215.  */
+
+void
+or1k32bf_h_sys_gpr215_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR215 (newval);
+}
+
+/* Get the value of h-sys-gpr216.  */
+
+USI
+or1k32bf_h_sys_gpr216_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR216 ();
+}
+
+/* Set a value for h-sys-gpr216.  */
+
+void
+or1k32bf_h_sys_gpr216_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR216 (newval);
+}
+
+/* Get the value of h-sys-gpr217.  */
+
+USI
+or1k32bf_h_sys_gpr217_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR217 ();
+}
+
+/* Set a value for h-sys-gpr217.  */
+
+void
+or1k32bf_h_sys_gpr217_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR217 (newval);
+}
+
+/* Get the value of h-sys-gpr218.  */
+
+USI
+or1k32bf_h_sys_gpr218_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR218 ();
+}
+
+/* Set a value for h-sys-gpr218.  */
+
+void
+or1k32bf_h_sys_gpr218_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR218 (newval);
+}
+
+/* Get the value of h-sys-gpr219.  */
+
+USI
+or1k32bf_h_sys_gpr219_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR219 ();
+}
+
+/* Set a value for h-sys-gpr219.  */
+
+void
+or1k32bf_h_sys_gpr219_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR219 (newval);
+}
+
+/* Get the value of h-sys-gpr220.  */
+
+USI
+or1k32bf_h_sys_gpr220_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR220 ();
+}
+
+/* Set a value for h-sys-gpr220.  */
+
+void
+or1k32bf_h_sys_gpr220_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR220 (newval);
+}
+
+/* Get the value of h-sys-gpr221.  */
+
+USI
+or1k32bf_h_sys_gpr221_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR221 ();
+}
+
+/* Set a value for h-sys-gpr221.  */
+
+void
+or1k32bf_h_sys_gpr221_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR221 (newval);
+}
+
+/* Get the value of h-sys-gpr222.  */
+
+USI
+or1k32bf_h_sys_gpr222_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR222 ();
+}
+
+/* Set a value for h-sys-gpr222.  */
+
+void
+or1k32bf_h_sys_gpr222_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR222 (newval);
+}
+
+/* Get the value of h-sys-gpr223.  */
+
+USI
+or1k32bf_h_sys_gpr223_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR223 ();
+}
+
+/* Set a value for h-sys-gpr223.  */
+
+void
+or1k32bf_h_sys_gpr223_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR223 (newval);
+}
+
+/* Get the value of h-sys-gpr224.  */
+
+USI
+or1k32bf_h_sys_gpr224_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR224 ();
+}
+
+/* Set a value for h-sys-gpr224.  */
+
+void
+or1k32bf_h_sys_gpr224_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR224 (newval);
+}
+
+/* Get the value of h-sys-gpr225.  */
+
+USI
+or1k32bf_h_sys_gpr225_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR225 ();
+}
+
+/* Set a value for h-sys-gpr225.  */
+
+void
+or1k32bf_h_sys_gpr225_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR225 (newval);
+}
+
+/* Get the value of h-sys-gpr226.  */
+
+USI
+or1k32bf_h_sys_gpr226_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR226 ();
+}
+
+/* Set a value for h-sys-gpr226.  */
+
+void
+or1k32bf_h_sys_gpr226_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR226 (newval);
+}
+
+/* Get the value of h-sys-gpr227.  */
+
+USI
+or1k32bf_h_sys_gpr227_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR227 ();
+}
+
+/* Set a value for h-sys-gpr227.  */
+
+void
+or1k32bf_h_sys_gpr227_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR227 (newval);
+}
+
+/* Get the value of h-sys-gpr228.  */
+
+USI
+or1k32bf_h_sys_gpr228_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR228 ();
+}
+
+/* Set a value for h-sys-gpr228.  */
+
+void
+or1k32bf_h_sys_gpr228_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR228 (newval);
+}
+
+/* Get the value of h-sys-gpr229.  */
+
+USI
+or1k32bf_h_sys_gpr229_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR229 ();
+}
+
+/* Set a value for h-sys-gpr229.  */
+
+void
+or1k32bf_h_sys_gpr229_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR229 (newval);
+}
+
+/* Get the value of h-sys-gpr230.  */
+
+USI
+or1k32bf_h_sys_gpr230_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR230 ();
+}
+
+/* Set a value for h-sys-gpr230.  */
+
+void
+or1k32bf_h_sys_gpr230_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR230 (newval);
+}
+
+/* Get the value of h-sys-gpr231.  */
+
+USI
+or1k32bf_h_sys_gpr231_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR231 ();
+}
+
+/* Set a value for h-sys-gpr231.  */
+
+void
+or1k32bf_h_sys_gpr231_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR231 (newval);
+}
+
+/* Get the value of h-sys-gpr232.  */
+
+USI
+or1k32bf_h_sys_gpr232_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR232 ();
+}
+
+/* Set a value for h-sys-gpr232.  */
+
+void
+or1k32bf_h_sys_gpr232_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR232 (newval);
+}
+
+/* Get the value of h-sys-gpr233.  */
+
+USI
+or1k32bf_h_sys_gpr233_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR233 ();
+}
+
+/* Set a value for h-sys-gpr233.  */
+
+void
+or1k32bf_h_sys_gpr233_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR233 (newval);
+}
+
+/* Get the value of h-sys-gpr234.  */
+
+USI
+or1k32bf_h_sys_gpr234_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR234 ();
+}
+
+/* Set a value for h-sys-gpr234.  */
+
+void
+or1k32bf_h_sys_gpr234_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR234 (newval);
+}
+
+/* Get the value of h-sys-gpr235.  */
+
+USI
+or1k32bf_h_sys_gpr235_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR235 ();
+}
+
+/* Set a value for h-sys-gpr235.  */
+
+void
+or1k32bf_h_sys_gpr235_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR235 (newval);
+}
+
+/* Get the value of h-sys-gpr236.  */
+
+USI
+or1k32bf_h_sys_gpr236_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR236 ();
+}
+
+/* Set a value for h-sys-gpr236.  */
+
+void
+or1k32bf_h_sys_gpr236_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR236 (newval);
+}
+
+/* Get the value of h-sys-gpr237.  */
+
+USI
+or1k32bf_h_sys_gpr237_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR237 ();
+}
+
+/* Set a value for h-sys-gpr237.  */
+
+void
+or1k32bf_h_sys_gpr237_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR237 (newval);
+}
+
+/* Get the value of h-sys-gpr238.  */
+
+USI
+or1k32bf_h_sys_gpr238_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR238 ();
+}
+
+/* Set a value for h-sys-gpr238.  */
+
+void
+or1k32bf_h_sys_gpr238_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR238 (newval);
+}
+
+/* Get the value of h-sys-gpr239.  */
+
+USI
+or1k32bf_h_sys_gpr239_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR239 ();
+}
+
+/* Set a value for h-sys-gpr239.  */
+
+void
+or1k32bf_h_sys_gpr239_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR239 (newval);
+}
+
+/* Get the value of h-sys-gpr240.  */
+
+USI
+or1k32bf_h_sys_gpr240_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR240 ();
+}
+
+/* Set a value for h-sys-gpr240.  */
+
+void
+or1k32bf_h_sys_gpr240_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR240 (newval);
+}
+
+/* Get the value of h-sys-gpr241.  */
+
+USI
+or1k32bf_h_sys_gpr241_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR241 ();
+}
+
+/* Set a value for h-sys-gpr241.  */
+
+void
+or1k32bf_h_sys_gpr241_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR241 (newval);
+}
+
+/* Get the value of h-sys-gpr242.  */
+
+USI
+or1k32bf_h_sys_gpr242_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR242 ();
+}
+
+/* Set a value for h-sys-gpr242.  */
+
+void
+or1k32bf_h_sys_gpr242_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR242 (newval);
+}
+
+/* Get the value of h-sys-gpr243.  */
+
+USI
+or1k32bf_h_sys_gpr243_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR243 ();
+}
+
+/* Set a value for h-sys-gpr243.  */
+
+void
+or1k32bf_h_sys_gpr243_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR243 (newval);
+}
+
+/* Get the value of h-sys-gpr244.  */
+
+USI
+or1k32bf_h_sys_gpr244_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR244 ();
+}
+
+/* Set a value for h-sys-gpr244.  */
+
+void
+or1k32bf_h_sys_gpr244_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR244 (newval);
+}
+
+/* Get the value of h-sys-gpr245.  */
+
+USI
+or1k32bf_h_sys_gpr245_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR245 ();
+}
+
+/* Set a value for h-sys-gpr245.  */
+
+void
+or1k32bf_h_sys_gpr245_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR245 (newval);
+}
+
+/* Get the value of h-sys-gpr246.  */
+
+USI
+or1k32bf_h_sys_gpr246_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR246 ();
+}
+
+/* Set a value for h-sys-gpr246.  */
+
+void
+or1k32bf_h_sys_gpr246_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR246 (newval);
+}
+
+/* Get the value of h-sys-gpr247.  */
+
+USI
+or1k32bf_h_sys_gpr247_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR247 ();
+}
+
+/* Set a value for h-sys-gpr247.  */
+
+void
+or1k32bf_h_sys_gpr247_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR247 (newval);
+}
+
+/* Get the value of h-sys-gpr248.  */
+
+USI
+or1k32bf_h_sys_gpr248_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR248 ();
+}
+
+/* Set a value for h-sys-gpr248.  */
+
+void
+or1k32bf_h_sys_gpr248_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR248 (newval);
+}
+
+/* Get the value of h-sys-gpr249.  */
+
+USI
+or1k32bf_h_sys_gpr249_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR249 ();
+}
+
+/* Set a value for h-sys-gpr249.  */
+
+void
+or1k32bf_h_sys_gpr249_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR249 (newval);
+}
+
+/* Get the value of h-sys-gpr250.  */
+
+USI
+or1k32bf_h_sys_gpr250_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR250 ();
+}
+
+/* Set a value for h-sys-gpr250.  */
+
+void
+or1k32bf_h_sys_gpr250_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR250 (newval);
+}
+
+/* Get the value of h-sys-gpr251.  */
+
+USI
+or1k32bf_h_sys_gpr251_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR251 ();
+}
+
+/* Set a value for h-sys-gpr251.  */
+
+void
+or1k32bf_h_sys_gpr251_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR251 (newval);
+}
+
+/* Get the value of h-sys-gpr252.  */
+
+USI
+or1k32bf_h_sys_gpr252_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR252 ();
+}
+
+/* Set a value for h-sys-gpr252.  */
+
+void
+or1k32bf_h_sys_gpr252_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR252 (newval);
+}
+
+/* Get the value of h-sys-gpr253.  */
+
+USI
+or1k32bf_h_sys_gpr253_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR253 ();
+}
+
+/* Set a value for h-sys-gpr253.  */
+
+void
+or1k32bf_h_sys_gpr253_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR253 (newval);
+}
+
+/* Get the value of h-sys-gpr254.  */
+
+USI
+or1k32bf_h_sys_gpr254_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR254 ();
+}
+
+/* Set a value for h-sys-gpr254.  */
+
+void
+or1k32bf_h_sys_gpr254_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR254 (newval);
+}
+
+/* Get the value of h-sys-gpr255.  */
+
+USI
+or1k32bf_h_sys_gpr255_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR255 ();
+}
+
+/* Set a value for h-sys-gpr255.  */
+
+void
+or1k32bf_h_sys_gpr255_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR255 (newval);
+}
+
+/* Get the value of h-sys-gpr256.  */
+
+USI
+or1k32bf_h_sys_gpr256_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR256 ();
+}
+
+/* Set a value for h-sys-gpr256.  */
+
+void
+or1k32bf_h_sys_gpr256_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR256 (newval);
+}
+
+/* Get the value of h-sys-gpr257.  */
+
+USI
+or1k32bf_h_sys_gpr257_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR257 ();
+}
+
+/* Set a value for h-sys-gpr257.  */
+
+void
+or1k32bf_h_sys_gpr257_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR257 (newval);
+}
+
+/* Get the value of h-sys-gpr258.  */
+
+USI
+or1k32bf_h_sys_gpr258_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR258 ();
+}
+
+/* Set a value for h-sys-gpr258.  */
+
+void
+or1k32bf_h_sys_gpr258_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR258 (newval);
+}
+
+/* Get the value of h-sys-gpr259.  */
+
+USI
+or1k32bf_h_sys_gpr259_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR259 ();
+}
+
+/* Set a value for h-sys-gpr259.  */
+
+void
+or1k32bf_h_sys_gpr259_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR259 (newval);
+}
+
+/* Get the value of h-sys-gpr260.  */
+
+USI
+or1k32bf_h_sys_gpr260_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR260 ();
+}
+
+/* Set a value for h-sys-gpr260.  */
+
+void
+or1k32bf_h_sys_gpr260_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR260 (newval);
+}
+
+/* Get the value of h-sys-gpr261.  */
+
+USI
+or1k32bf_h_sys_gpr261_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR261 ();
+}
+
+/* Set a value for h-sys-gpr261.  */
+
+void
+or1k32bf_h_sys_gpr261_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR261 (newval);
+}
+
+/* Get the value of h-sys-gpr262.  */
+
+USI
+or1k32bf_h_sys_gpr262_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR262 ();
+}
+
+/* Set a value for h-sys-gpr262.  */
+
+void
+or1k32bf_h_sys_gpr262_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR262 (newval);
+}
+
+/* Get the value of h-sys-gpr263.  */
+
+USI
+or1k32bf_h_sys_gpr263_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR263 ();
+}
+
+/* Set a value for h-sys-gpr263.  */
+
+void
+or1k32bf_h_sys_gpr263_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR263 (newval);
+}
+
+/* Get the value of h-sys-gpr264.  */
+
+USI
+or1k32bf_h_sys_gpr264_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR264 ();
+}
+
+/* Set a value for h-sys-gpr264.  */
+
+void
+or1k32bf_h_sys_gpr264_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR264 (newval);
+}
+
+/* Get the value of h-sys-gpr265.  */
+
+USI
+or1k32bf_h_sys_gpr265_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR265 ();
+}
+
+/* Set a value for h-sys-gpr265.  */
+
+void
+or1k32bf_h_sys_gpr265_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR265 (newval);
+}
+
+/* Get the value of h-sys-gpr266.  */
+
+USI
+or1k32bf_h_sys_gpr266_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR266 ();
+}
+
+/* Set a value for h-sys-gpr266.  */
+
+void
+or1k32bf_h_sys_gpr266_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR266 (newval);
+}
+
+/* Get the value of h-sys-gpr267.  */
+
+USI
+or1k32bf_h_sys_gpr267_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR267 ();
+}
+
+/* Set a value for h-sys-gpr267.  */
+
+void
+or1k32bf_h_sys_gpr267_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR267 (newval);
+}
+
+/* Get the value of h-sys-gpr268.  */
+
+USI
+or1k32bf_h_sys_gpr268_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR268 ();
+}
+
+/* Set a value for h-sys-gpr268.  */
+
+void
+or1k32bf_h_sys_gpr268_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR268 (newval);
+}
+
+/* Get the value of h-sys-gpr269.  */
+
+USI
+or1k32bf_h_sys_gpr269_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR269 ();
+}
+
+/* Set a value for h-sys-gpr269.  */
+
+void
+or1k32bf_h_sys_gpr269_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR269 (newval);
+}
+
+/* Get the value of h-sys-gpr270.  */
+
+USI
+or1k32bf_h_sys_gpr270_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR270 ();
+}
+
+/* Set a value for h-sys-gpr270.  */
+
+void
+or1k32bf_h_sys_gpr270_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR270 (newval);
+}
+
+/* Get the value of h-sys-gpr271.  */
+
+USI
+or1k32bf_h_sys_gpr271_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR271 ();
+}
+
+/* Set a value for h-sys-gpr271.  */
+
+void
+or1k32bf_h_sys_gpr271_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR271 (newval);
+}
+
+/* Get the value of h-sys-gpr272.  */
+
+USI
+or1k32bf_h_sys_gpr272_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR272 ();
+}
+
+/* Set a value for h-sys-gpr272.  */
+
+void
+or1k32bf_h_sys_gpr272_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR272 (newval);
+}
+
+/* Get the value of h-sys-gpr273.  */
+
+USI
+or1k32bf_h_sys_gpr273_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR273 ();
+}
+
+/* Set a value for h-sys-gpr273.  */
+
+void
+or1k32bf_h_sys_gpr273_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR273 (newval);
+}
+
+/* Get the value of h-sys-gpr274.  */
+
+USI
+or1k32bf_h_sys_gpr274_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR274 ();
+}
+
+/* Set a value for h-sys-gpr274.  */
+
+void
+or1k32bf_h_sys_gpr274_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR274 (newval);
+}
+
+/* Get the value of h-sys-gpr275.  */
+
+USI
+or1k32bf_h_sys_gpr275_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR275 ();
+}
+
+/* Set a value for h-sys-gpr275.  */
+
+void
+or1k32bf_h_sys_gpr275_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR275 (newval);
+}
+
+/* Get the value of h-sys-gpr276.  */
+
+USI
+or1k32bf_h_sys_gpr276_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR276 ();
+}
+
+/* Set a value for h-sys-gpr276.  */
+
+void
+or1k32bf_h_sys_gpr276_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR276 (newval);
+}
+
+/* Get the value of h-sys-gpr277.  */
+
+USI
+or1k32bf_h_sys_gpr277_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR277 ();
+}
+
+/* Set a value for h-sys-gpr277.  */
+
+void
+or1k32bf_h_sys_gpr277_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR277 (newval);
+}
+
+/* Get the value of h-sys-gpr278.  */
+
+USI
+or1k32bf_h_sys_gpr278_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR278 ();
+}
+
+/* Set a value for h-sys-gpr278.  */
+
+void
+or1k32bf_h_sys_gpr278_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR278 (newval);
+}
+
+/* Get the value of h-sys-gpr279.  */
+
+USI
+or1k32bf_h_sys_gpr279_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR279 ();
+}
+
+/* Set a value for h-sys-gpr279.  */
+
+void
+or1k32bf_h_sys_gpr279_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR279 (newval);
+}
+
+/* Get the value of h-sys-gpr280.  */
+
+USI
+or1k32bf_h_sys_gpr280_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR280 ();
+}
+
+/* Set a value for h-sys-gpr280.  */
+
+void
+or1k32bf_h_sys_gpr280_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR280 (newval);
+}
+
+/* Get the value of h-sys-gpr281.  */
+
+USI
+or1k32bf_h_sys_gpr281_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR281 ();
+}
+
+/* Set a value for h-sys-gpr281.  */
+
+void
+or1k32bf_h_sys_gpr281_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR281 (newval);
+}
+
+/* Get the value of h-sys-gpr282.  */
+
+USI
+or1k32bf_h_sys_gpr282_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR282 ();
+}
+
+/* Set a value for h-sys-gpr282.  */
+
+void
+or1k32bf_h_sys_gpr282_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR282 (newval);
+}
+
+/* Get the value of h-sys-gpr283.  */
+
+USI
+or1k32bf_h_sys_gpr283_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR283 ();
+}
+
+/* Set a value for h-sys-gpr283.  */
+
+void
+or1k32bf_h_sys_gpr283_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR283 (newval);
+}
+
+/* Get the value of h-sys-gpr284.  */
+
+USI
+or1k32bf_h_sys_gpr284_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR284 ();
+}
+
+/* Set a value for h-sys-gpr284.  */
+
+void
+or1k32bf_h_sys_gpr284_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR284 (newval);
+}
+
+/* Get the value of h-sys-gpr285.  */
+
+USI
+or1k32bf_h_sys_gpr285_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR285 ();
+}
+
+/* Set a value for h-sys-gpr285.  */
+
+void
+or1k32bf_h_sys_gpr285_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR285 (newval);
+}
+
+/* Get the value of h-sys-gpr286.  */
+
+USI
+or1k32bf_h_sys_gpr286_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR286 ();
+}
+
+/* Set a value for h-sys-gpr286.  */
+
+void
+or1k32bf_h_sys_gpr286_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR286 (newval);
+}
+
+/* Get the value of h-sys-gpr287.  */
+
+USI
+or1k32bf_h_sys_gpr287_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR287 ();
+}
+
+/* Set a value for h-sys-gpr287.  */
+
+void
+or1k32bf_h_sys_gpr287_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR287 (newval);
+}
+
+/* Get the value of h-sys-gpr288.  */
+
+USI
+or1k32bf_h_sys_gpr288_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR288 ();
+}
+
+/* Set a value for h-sys-gpr288.  */
+
+void
+or1k32bf_h_sys_gpr288_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR288 (newval);
+}
+
+/* Get the value of h-sys-gpr289.  */
+
+USI
+or1k32bf_h_sys_gpr289_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR289 ();
+}
+
+/* Set a value for h-sys-gpr289.  */
+
+void
+or1k32bf_h_sys_gpr289_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR289 (newval);
+}
+
+/* Get the value of h-sys-gpr290.  */
+
+USI
+or1k32bf_h_sys_gpr290_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR290 ();
+}
+
+/* Set a value for h-sys-gpr290.  */
+
+void
+or1k32bf_h_sys_gpr290_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR290 (newval);
+}
+
+/* Get the value of h-sys-gpr291.  */
+
+USI
+or1k32bf_h_sys_gpr291_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR291 ();
+}
+
+/* Set a value for h-sys-gpr291.  */
+
+void
+or1k32bf_h_sys_gpr291_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR291 (newval);
+}
+
+/* Get the value of h-sys-gpr292.  */
+
+USI
+or1k32bf_h_sys_gpr292_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR292 ();
+}
+
+/* Set a value for h-sys-gpr292.  */
+
+void
+or1k32bf_h_sys_gpr292_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR292 (newval);
+}
+
+/* Get the value of h-sys-gpr293.  */
+
+USI
+or1k32bf_h_sys_gpr293_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR293 ();
+}
+
+/* Set a value for h-sys-gpr293.  */
+
+void
+or1k32bf_h_sys_gpr293_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR293 (newval);
+}
+
+/* Get the value of h-sys-gpr294.  */
+
+USI
+or1k32bf_h_sys_gpr294_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR294 ();
+}
+
+/* Set a value for h-sys-gpr294.  */
+
+void
+or1k32bf_h_sys_gpr294_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR294 (newval);
+}
+
+/* Get the value of h-sys-gpr295.  */
+
+USI
+or1k32bf_h_sys_gpr295_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR295 ();
+}
+
+/* Set a value for h-sys-gpr295.  */
+
+void
+or1k32bf_h_sys_gpr295_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR295 (newval);
+}
+
+/* Get the value of h-sys-gpr296.  */
+
+USI
+or1k32bf_h_sys_gpr296_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR296 ();
+}
+
+/* Set a value for h-sys-gpr296.  */
+
+void
+or1k32bf_h_sys_gpr296_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR296 (newval);
+}
+
+/* Get the value of h-sys-gpr297.  */
+
+USI
+or1k32bf_h_sys_gpr297_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR297 ();
+}
+
+/* Set a value for h-sys-gpr297.  */
+
+void
+or1k32bf_h_sys_gpr297_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR297 (newval);
+}
+
+/* Get the value of h-sys-gpr298.  */
+
+USI
+or1k32bf_h_sys_gpr298_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR298 ();
+}
+
+/* Set a value for h-sys-gpr298.  */
+
+void
+or1k32bf_h_sys_gpr298_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR298 (newval);
+}
+
+/* Get the value of h-sys-gpr299.  */
+
+USI
+or1k32bf_h_sys_gpr299_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR299 ();
+}
+
+/* Set a value for h-sys-gpr299.  */
+
+void
+or1k32bf_h_sys_gpr299_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR299 (newval);
+}
+
+/* Get the value of h-sys-gpr300.  */
+
+USI
+or1k32bf_h_sys_gpr300_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR300 ();
+}
+
+/* Set a value for h-sys-gpr300.  */
+
+void
+or1k32bf_h_sys_gpr300_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR300 (newval);
+}
+
+/* Get the value of h-sys-gpr301.  */
+
+USI
+or1k32bf_h_sys_gpr301_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR301 ();
+}
+
+/* Set a value for h-sys-gpr301.  */
+
+void
+or1k32bf_h_sys_gpr301_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR301 (newval);
+}
+
+/* Get the value of h-sys-gpr302.  */
+
+USI
+or1k32bf_h_sys_gpr302_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR302 ();
+}
+
+/* Set a value for h-sys-gpr302.  */
+
+void
+or1k32bf_h_sys_gpr302_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR302 (newval);
+}
+
+/* Get the value of h-sys-gpr303.  */
+
+USI
+or1k32bf_h_sys_gpr303_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR303 ();
+}
+
+/* Set a value for h-sys-gpr303.  */
+
+void
+or1k32bf_h_sys_gpr303_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR303 (newval);
+}
+
+/* Get the value of h-sys-gpr304.  */
+
+USI
+or1k32bf_h_sys_gpr304_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR304 ();
+}
+
+/* Set a value for h-sys-gpr304.  */
+
+void
+or1k32bf_h_sys_gpr304_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR304 (newval);
+}
+
+/* Get the value of h-sys-gpr305.  */
+
+USI
+or1k32bf_h_sys_gpr305_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR305 ();
+}
+
+/* Set a value for h-sys-gpr305.  */
+
+void
+or1k32bf_h_sys_gpr305_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR305 (newval);
+}
+
+/* Get the value of h-sys-gpr306.  */
+
+USI
+or1k32bf_h_sys_gpr306_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR306 ();
+}
+
+/* Set a value for h-sys-gpr306.  */
+
+void
+or1k32bf_h_sys_gpr306_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR306 (newval);
+}
+
+/* Get the value of h-sys-gpr307.  */
+
+USI
+or1k32bf_h_sys_gpr307_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR307 ();
+}
+
+/* Set a value for h-sys-gpr307.  */
+
+void
+or1k32bf_h_sys_gpr307_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR307 (newval);
+}
+
+/* Get the value of h-sys-gpr308.  */
+
+USI
+or1k32bf_h_sys_gpr308_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR308 ();
+}
+
+/* Set a value for h-sys-gpr308.  */
+
+void
+or1k32bf_h_sys_gpr308_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR308 (newval);
+}
+
+/* Get the value of h-sys-gpr309.  */
+
+USI
+or1k32bf_h_sys_gpr309_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR309 ();
+}
+
+/* Set a value for h-sys-gpr309.  */
+
+void
+or1k32bf_h_sys_gpr309_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR309 (newval);
+}
+
+/* Get the value of h-sys-gpr310.  */
+
+USI
+or1k32bf_h_sys_gpr310_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR310 ();
+}
+
+/* Set a value for h-sys-gpr310.  */
+
+void
+or1k32bf_h_sys_gpr310_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR310 (newval);
+}
+
+/* Get the value of h-sys-gpr311.  */
+
+USI
+or1k32bf_h_sys_gpr311_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR311 ();
+}
+
+/* Set a value for h-sys-gpr311.  */
+
+void
+or1k32bf_h_sys_gpr311_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR311 (newval);
+}
+
+/* Get the value of h-sys-gpr312.  */
+
+USI
+or1k32bf_h_sys_gpr312_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR312 ();
+}
+
+/* Set a value for h-sys-gpr312.  */
+
+void
+or1k32bf_h_sys_gpr312_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR312 (newval);
+}
+
+/* Get the value of h-sys-gpr313.  */
+
+USI
+or1k32bf_h_sys_gpr313_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR313 ();
+}
+
+/* Set a value for h-sys-gpr313.  */
+
+void
+or1k32bf_h_sys_gpr313_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR313 (newval);
+}
+
+/* Get the value of h-sys-gpr314.  */
+
+USI
+or1k32bf_h_sys_gpr314_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR314 ();
+}
+
+/* Set a value for h-sys-gpr314.  */
+
+void
+or1k32bf_h_sys_gpr314_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR314 (newval);
+}
+
+/* Get the value of h-sys-gpr315.  */
+
+USI
+or1k32bf_h_sys_gpr315_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR315 ();
+}
+
+/* Set a value for h-sys-gpr315.  */
+
+void
+or1k32bf_h_sys_gpr315_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR315 (newval);
+}
+
+/* Get the value of h-sys-gpr316.  */
+
+USI
+or1k32bf_h_sys_gpr316_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR316 ();
+}
+
+/* Set a value for h-sys-gpr316.  */
+
+void
+or1k32bf_h_sys_gpr316_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR316 (newval);
+}
+
+/* Get the value of h-sys-gpr317.  */
+
+USI
+or1k32bf_h_sys_gpr317_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR317 ();
+}
+
+/* Set a value for h-sys-gpr317.  */
+
+void
+or1k32bf_h_sys_gpr317_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR317 (newval);
+}
+
+/* Get the value of h-sys-gpr318.  */
+
+USI
+or1k32bf_h_sys_gpr318_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR318 ();
+}
+
+/* Set a value for h-sys-gpr318.  */
+
+void
+or1k32bf_h_sys_gpr318_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR318 (newval);
+}
+
+/* Get the value of h-sys-gpr319.  */
+
+USI
+or1k32bf_h_sys_gpr319_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR319 ();
+}
+
+/* Set a value for h-sys-gpr319.  */
+
+void
+or1k32bf_h_sys_gpr319_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR319 (newval);
+}
+
+/* Get the value of h-sys-gpr320.  */
+
+USI
+or1k32bf_h_sys_gpr320_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR320 ();
+}
+
+/* Set a value for h-sys-gpr320.  */
+
+void
+or1k32bf_h_sys_gpr320_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR320 (newval);
+}
+
+/* Get the value of h-sys-gpr321.  */
+
+USI
+or1k32bf_h_sys_gpr321_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR321 ();
+}
+
+/* Set a value for h-sys-gpr321.  */
+
+void
+or1k32bf_h_sys_gpr321_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR321 (newval);
+}
+
+/* Get the value of h-sys-gpr322.  */
+
+USI
+or1k32bf_h_sys_gpr322_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR322 ();
+}
+
+/* Set a value for h-sys-gpr322.  */
+
+void
+or1k32bf_h_sys_gpr322_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR322 (newval);
+}
+
+/* Get the value of h-sys-gpr323.  */
+
+USI
+or1k32bf_h_sys_gpr323_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR323 ();
+}
+
+/* Set a value for h-sys-gpr323.  */
+
+void
+or1k32bf_h_sys_gpr323_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR323 (newval);
+}
+
+/* Get the value of h-sys-gpr324.  */
+
+USI
+or1k32bf_h_sys_gpr324_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR324 ();
+}
+
+/* Set a value for h-sys-gpr324.  */
+
+void
+or1k32bf_h_sys_gpr324_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR324 (newval);
+}
+
+/* Get the value of h-sys-gpr325.  */
+
+USI
+or1k32bf_h_sys_gpr325_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR325 ();
+}
+
+/* Set a value for h-sys-gpr325.  */
+
+void
+or1k32bf_h_sys_gpr325_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR325 (newval);
+}
+
+/* Get the value of h-sys-gpr326.  */
+
+USI
+or1k32bf_h_sys_gpr326_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR326 ();
+}
+
+/* Set a value for h-sys-gpr326.  */
+
+void
+or1k32bf_h_sys_gpr326_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR326 (newval);
+}
+
+/* Get the value of h-sys-gpr327.  */
+
+USI
+or1k32bf_h_sys_gpr327_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR327 ();
+}
+
+/* Set a value for h-sys-gpr327.  */
+
+void
+or1k32bf_h_sys_gpr327_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR327 (newval);
+}
+
+/* Get the value of h-sys-gpr328.  */
+
+USI
+or1k32bf_h_sys_gpr328_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR328 ();
+}
+
+/* Set a value for h-sys-gpr328.  */
+
+void
+or1k32bf_h_sys_gpr328_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR328 (newval);
+}
+
+/* Get the value of h-sys-gpr329.  */
+
+USI
+or1k32bf_h_sys_gpr329_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR329 ();
+}
+
+/* Set a value for h-sys-gpr329.  */
+
+void
+or1k32bf_h_sys_gpr329_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR329 (newval);
+}
+
+/* Get the value of h-sys-gpr330.  */
+
+USI
+or1k32bf_h_sys_gpr330_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR330 ();
+}
+
+/* Set a value for h-sys-gpr330.  */
+
+void
+or1k32bf_h_sys_gpr330_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR330 (newval);
+}
+
+/* Get the value of h-sys-gpr331.  */
+
+USI
+or1k32bf_h_sys_gpr331_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR331 ();
+}
+
+/* Set a value for h-sys-gpr331.  */
+
+void
+or1k32bf_h_sys_gpr331_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR331 (newval);
+}
+
+/* Get the value of h-sys-gpr332.  */
+
+USI
+or1k32bf_h_sys_gpr332_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR332 ();
+}
+
+/* Set a value for h-sys-gpr332.  */
+
+void
+or1k32bf_h_sys_gpr332_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR332 (newval);
+}
+
+/* Get the value of h-sys-gpr333.  */
+
+USI
+or1k32bf_h_sys_gpr333_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR333 ();
+}
+
+/* Set a value for h-sys-gpr333.  */
+
+void
+or1k32bf_h_sys_gpr333_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR333 (newval);
+}
+
+/* Get the value of h-sys-gpr334.  */
+
+USI
+or1k32bf_h_sys_gpr334_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR334 ();
+}
+
+/* Set a value for h-sys-gpr334.  */
+
+void
+or1k32bf_h_sys_gpr334_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR334 (newval);
+}
+
+/* Get the value of h-sys-gpr335.  */
+
+USI
+or1k32bf_h_sys_gpr335_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR335 ();
+}
+
+/* Set a value for h-sys-gpr335.  */
+
+void
+or1k32bf_h_sys_gpr335_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR335 (newval);
+}
+
+/* Get the value of h-sys-gpr336.  */
+
+USI
+or1k32bf_h_sys_gpr336_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR336 ();
+}
+
+/* Set a value for h-sys-gpr336.  */
+
+void
+or1k32bf_h_sys_gpr336_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR336 (newval);
+}
+
+/* Get the value of h-sys-gpr337.  */
+
+USI
+or1k32bf_h_sys_gpr337_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR337 ();
+}
+
+/* Set a value for h-sys-gpr337.  */
+
+void
+or1k32bf_h_sys_gpr337_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR337 (newval);
+}
+
+/* Get the value of h-sys-gpr338.  */
+
+USI
+or1k32bf_h_sys_gpr338_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR338 ();
+}
+
+/* Set a value for h-sys-gpr338.  */
+
+void
+or1k32bf_h_sys_gpr338_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR338 (newval);
+}
+
+/* Get the value of h-sys-gpr339.  */
+
+USI
+or1k32bf_h_sys_gpr339_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR339 ();
+}
+
+/* Set a value for h-sys-gpr339.  */
+
+void
+or1k32bf_h_sys_gpr339_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR339 (newval);
+}
+
+/* Get the value of h-sys-gpr340.  */
+
+USI
+or1k32bf_h_sys_gpr340_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR340 ();
+}
+
+/* Set a value for h-sys-gpr340.  */
+
+void
+or1k32bf_h_sys_gpr340_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR340 (newval);
+}
+
+/* Get the value of h-sys-gpr341.  */
+
+USI
+or1k32bf_h_sys_gpr341_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR341 ();
+}
+
+/* Set a value for h-sys-gpr341.  */
+
+void
+or1k32bf_h_sys_gpr341_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR341 (newval);
+}
+
+/* Get the value of h-sys-gpr342.  */
+
+USI
+or1k32bf_h_sys_gpr342_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR342 ();
+}
+
+/* Set a value for h-sys-gpr342.  */
+
+void
+or1k32bf_h_sys_gpr342_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR342 (newval);
+}
+
+/* Get the value of h-sys-gpr343.  */
+
+USI
+or1k32bf_h_sys_gpr343_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR343 ();
+}
+
+/* Set a value for h-sys-gpr343.  */
+
+void
+or1k32bf_h_sys_gpr343_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR343 (newval);
+}
+
+/* Get the value of h-sys-gpr344.  */
+
+USI
+or1k32bf_h_sys_gpr344_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR344 ();
+}
+
+/* Set a value for h-sys-gpr344.  */
+
+void
+or1k32bf_h_sys_gpr344_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR344 (newval);
+}
+
+/* Get the value of h-sys-gpr345.  */
+
+USI
+or1k32bf_h_sys_gpr345_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR345 ();
+}
+
+/* Set a value for h-sys-gpr345.  */
+
+void
+or1k32bf_h_sys_gpr345_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR345 (newval);
+}
+
+/* Get the value of h-sys-gpr346.  */
+
+USI
+or1k32bf_h_sys_gpr346_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR346 ();
+}
+
+/* Set a value for h-sys-gpr346.  */
+
+void
+or1k32bf_h_sys_gpr346_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR346 (newval);
+}
+
+/* Get the value of h-sys-gpr347.  */
+
+USI
+or1k32bf_h_sys_gpr347_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR347 ();
+}
+
+/* Set a value for h-sys-gpr347.  */
+
+void
+or1k32bf_h_sys_gpr347_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR347 (newval);
+}
+
+/* Get the value of h-sys-gpr348.  */
+
+USI
+or1k32bf_h_sys_gpr348_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR348 ();
+}
+
+/* Set a value for h-sys-gpr348.  */
+
+void
+or1k32bf_h_sys_gpr348_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR348 (newval);
+}
+
+/* Get the value of h-sys-gpr349.  */
+
+USI
+or1k32bf_h_sys_gpr349_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR349 ();
+}
+
+/* Set a value for h-sys-gpr349.  */
+
+void
+or1k32bf_h_sys_gpr349_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR349 (newval);
+}
+
+/* Get the value of h-sys-gpr350.  */
+
+USI
+or1k32bf_h_sys_gpr350_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR350 ();
+}
+
+/* Set a value for h-sys-gpr350.  */
+
+void
+or1k32bf_h_sys_gpr350_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR350 (newval);
+}
+
+/* Get the value of h-sys-gpr351.  */
+
+USI
+or1k32bf_h_sys_gpr351_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR351 ();
+}
+
+/* Set a value for h-sys-gpr351.  */
+
+void
+or1k32bf_h_sys_gpr351_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR351 (newval);
+}
+
+/* Get the value of h-sys-gpr352.  */
+
+USI
+or1k32bf_h_sys_gpr352_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR352 ();
+}
+
+/* Set a value for h-sys-gpr352.  */
+
+void
+or1k32bf_h_sys_gpr352_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR352 (newval);
+}
+
+/* Get the value of h-sys-gpr353.  */
+
+USI
+or1k32bf_h_sys_gpr353_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR353 ();
+}
+
+/* Set a value for h-sys-gpr353.  */
+
+void
+or1k32bf_h_sys_gpr353_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR353 (newval);
+}
+
+/* Get the value of h-sys-gpr354.  */
+
+USI
+or1k32bf_h_sys_gpr354_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR354 ();
+}
+
+/* Set a value for h-sys-gpr354.  */
+
+void
+or1k32bf_h_sys_gpr354_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR354 (newval);
+}
+
+/* Get the value of h-sys-gpr355.  */
+
+USI
+or1k32bf_h_sys_gpr355_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR355 ();
+}
+
+/* Set a value for h-sys-gpr355.  */
+
+void
+or1k32bf_h_sys_gpr355_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR355 (newval);
+}
+
+/* Get the value of h-sys-gpr356.  */
+
+USI
+or1k32bf_h_sys_gpr356_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR356 ();
+}
+
+/* Set a value for h-sys-gpr356.  */
+
+void
+or1k32bf_h_sys_gpr356_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR356 (newval);
+}
+
+/* Get the value of h-sys-gpr357.  */
+
+USI
+or1k32bf_h_sys_gpr357_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR357 ();
+}
+
+/* Set a value for h-sys-gpr357.  */
+
+void
+or1k32bf_h_sys_gpr357_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR357 (newval);
+}
+
+/* Get the value of h-sys-gpr358.  */
+
+USI
+or1k32bf_h_sys_gpr358_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR358 ();
+}
+
+/* Set a value for h-sys-gpr358.  */
+
+void
+or1k32bf_h_sys_gpr358_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR358 (newval);
+}
+
+/* Get the value of h-sys-gpr359.  */
+
+USI
+or1k32bf_h_sys_gpr359_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR359 ();
+}
+
+/* Set a value for h-sys-gpr359.  */
+
+void
+or1k32bf_h_sys_gpr359_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR359 (newval);
+}
+
+/* Get the value of h-sys-gpr360.  */
+
+USI
+or1k32bf_h_sys_gpr360_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR360 ();
+}
+
+/* Set a value for h-sys-gpr360.  */
+
+void
+or1k32bf_h_sys_gpr360_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR360 (newval);
+}
+
+/* Get the value of h-sys-gpr361.  */
+
+USI
+or1k32bf_h_sys_gpr361_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR361 ();
+}
+
+/* Set a value for h-sys-gpr361.  */
+
+void
+or1k32bf_h_sys_gpr361_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR361 (newval);
+}
+
+/* Get the value of h-sys-gpr362.  */
+
+USI
+or1k32bf_h_sys_gpr362_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR362 ();
+}
+
+/* Set a value for h-sys-gpr362.  */
+
+void
+or1k32bf_h_sys_gpr362_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR362 (newval);
+}
+
+/* Get the value of h-sys-gpr363.  */
+
+USI
+or1k32bf_h_sys_gpr363_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR363 ();
+}
+
+/* Set a value for h-sys-gpr363.  */
+
+void
+or1k32bf_h_sys_gpr363_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR363 (newval);
+}
+
+/* Get the value of h-sys-gpr364.  */
+
+USI
+or1k32bf_h_sys_gpr364_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR364 ();
+}
+
+/* Set a value for h-sys-gpr364.  */
+
+void
+or1k32bf_h_sys_gpr364_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR364 (newval);
+}
+
+/* Get the value of h-sys-gpr365.  */
+
+USI
+or1k32bf_h_sys_gpr365_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR365 ();
+}
+
+/* Set a value for h-sys-gpr365.  */
+
+void
+or1k32bf_h_sys_gpr365_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR365 (newval);
+}
+
+/* Get the value of h-sys-gpr366.  */
+
+USI
+or1k32bf_h_sys_gpr366_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR366 ();
+}
+
+/* Set a value for h-sys-gpr366.  */
+
+void
+or1k32bf_h_sys_gpr366_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR366 (newval);
+}
+
+/* Get the value of h-sys-gpr367.  */
+
+USI
+or1k32bf_h_sys_gpr367_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR367 ();
+}
+
+/* Set a value for h-sys-gpr367.  */
+
+void
+or1k32bf_h_sys_gpr367_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR367 (newval);
+}
+
+/* Get the value of h-sys-gpr368.  */
+
+USI
+or1k32bf_h_sys_gpr368_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR368 ();
+}
+
+/* Set a value for h-sys-gpr368.  */
+
+void
+or1k32bf_h_sys_gpr368_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR368 (newval);
+}
+
+/* Get the value of h-sys-gpr369.  */
+
+USI
+or1k32bf_h_sys_gpr369_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR369 ();
+}
+
+/* Set a value for h-sys-gpr369.  */
+
+void
+or1k32bf_h_sys_gpr369_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR369 (newval);
+}
+
+/* Get the value of h-sys-gpr370.  */
+
+USI
+or1k32bf_h_sys_gpr370_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR370 ();
+}
+
+/* Set a value for h-sys-gpr370.  */
+
+void
+or1k32bf_h_sys_gpr370_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR370 (newval);
+}
+
+/* Get the value of h-sys-gpr371.  */
+
+USI
+or1k32bf_h_sys_gpr371_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR371 ();
+}
+
+/* Set a value for h-sys-gpr371.  */
+
+void
+or1k32bf_h_sys_gpr371_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR371 (newval);
+}
+
+/* Get the value of h-sys-gpr372.  */
+
+USI
+or1k32bf_h_sys_gpr372_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR372 ();
+}
+
+/* Set a value for h-sys-gpr372.  */
+
+void
+or1k32bf_h_sys_gpr372_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR372 (newval);
+}
+
+/* Get the value of h-sys-gpr373.  */
+
+USI
+or1k32bf_h_sys_gpr373_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR373 ();
+}
+
+/* Set a value for h-sys-gpr373.  */
+
+void
+or1k32bf_h_sys_gpr373_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR373 (newval);
+}
+
+/* Get the value of h-sys-gpr374.  */
+
+USI
+or1k32bf_h_sys_gpr374_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR374 ();
+}
+
+/* Set a value for h-sys-gpr374.  */
+
+void
+or1k32bf_h_sys_gpr374_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR374 (newval);
+}
+
+/* Get the value of h-sys-gpr375.  */
+
+USI
+or1k32bf_h_sys_gpr375_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR375 ();
+}
+
+/* Set a value for h-sys-gpr375.  */
+
+void
+or1k32bf_h_sys_gpr375_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR375 (newval);
+}
+
+/* Get the value of h-sys-gpr376.  */
+
+USI
+or1k32bf_h_sys_gpr376_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR376 ();
+}
+
+/* Set a value for h-sys-gpr376.  */
+
+void
+or1k32bf_h_sys_gpr376_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR376 (newval);
+}
+
+/* Get the value of h-sys-gpr377.  */
+
+USI
+or1k32bf_h_sys_gpr377_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR377 ();
+}
+
+/* Set a value for h-sys-gpr377.  */
+
+void
+or1k32bf_h_sys_gpr377_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR377 (newval);
+}
+
+/* Get the value of h-sys-gpr378.  */
+
+USI
+or1k32bf_h_sys_gpr378_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR378 ();
+}
+
+/* Set a value for h-sys-gpr378.  */
+
+void
+or1k32bf_h_sys_gpr378_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR378 (newval);
+}
+
+/* Get the value of h-sys-gpr379.  */
+
+USI
+or1k32bf_h_sys_gpr379_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR379 ();
+}
+
+/* Set a value for h-sys-gpr379.  */
+
+void
+or1k32bf_h_sys_gpr379_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR379 (newval);
+}
+
+/* Get the value of h-sys-gpr380.  */
+
+USI
+or1k32bf_h_sys_gpr380_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR380 ();
+}
+
+/* Set a value for h-sys-gpr380.  */
+
+void
+or1k32bf_h_sys_gpr380_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR380 (newval);
+}
+
+/* Get the value of h-sys-gpr381.  */
+
+USI
+or1k32bf_h_sys_gpr381_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR381 ();
+}
+
+/* Set a value for h-sys-gpr381.  */
+
+void
+or1k32bf_h_sys_gpr381_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR381 (newval);
+}
+
+/* Get the value of h-sys-gpr382.  */
+
+USI
+or1k32bf_h_sys_gpr382_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR382 ();
+}
+
+/* Set a value for h-sys-gpr382.  */
+
+void
+or1k32bf_h_sys_gpr382_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR382 (newval);
+}
+
+/* Get the value of h-sys-gpr383.  */
+
+USI
+or1k32bf_h_sys_gpr383_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR383 ();
+}
+
+/* Set a value for h-sys-gpr383.  */
+
+void
+or1k32bf_h_sys_gpr383_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR383 (newval);
+}
+
+/* Get the value of h-sys-gpr384.  */
+
+USI
+or1k32bf_h_sys_gpr384_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR384 ();
+}
+
+/* Set a value for h-sys-gpr384.  */
+
+void
+or1k32bf_h_sys_gpr384_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR384 (newval);
+}
+
+/* Get the value of h-sys-gpr385.  */
+
+USI
+or1k32bf_h_sys_gpr385_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR385 ();
+}
+
+/* Set a value for h-sys-gpr385.  */
+
+void
+or1k32bf_h_sys_gpr385_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR385 (newval);
+}
+
+/* Get the value of h-sys-gpr386.  */
+
+USI
+or1k32bf_h_sys_gpr386_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR386 ();
+}
+
+/* Set a value for h-sys-gpr386.  */
+
+void
+or1k32bf_h_sys_gpr386_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR386 (newval);
+}
+
+/* Get the value of h-sys-gpr387.  */
+
+USI
+or1k32bf_h_sys_gpr387_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR387 ();
+}
+
+/* Set a value for h-sys-gpr387.  */
+
+void
+or1k32bf_h_sys_gpr387_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR387 (newval);
+}
+
+/* Get the value of h-sys-gpr388.  */
+
+USI
+or1k32bf_h_sys_gpr388_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR388 ();
+}
+
+/* Set a value for h-sys-gpr388.  */
+
+void
+or1k32bf_h_sys_gpr388_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR388 (newval);
+}
+
+/* Get the value of h-sys-gpr389.  */
+
+USI
+or1k32bf_h_sys_gpr389_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR389 ();
+}
+
+/* Set a value for h-sys-gpr389.  */
+
+void
+or1k32bf_h_sys_gpr389_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR389 (newval);
+}
+
+/* Get the value of h-sys-gpr390.  */
+
+USI
+or1k32bf_h_sys_gpr390_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR390 ();
+}
+
+/* Set a value for h-sys-gpr390.  */
+
+void
+or1k32bf_h_sys_gpr390_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR390 (newval);
+}
+
+/* Get the value of h-sys-gpr391.  */
+
+USI
+or1k32bf_h_sys_gpr391_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR391 ();
+}
+
+/* Set a value for h-sys-gpr391.  */
+
+void
+or1k32bf_h_sys_gpr391_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR391 (newval);
+}
+
+/* Get the value of h-sys-gpr392.  */
+
+USI
+or1k32bf_h_sys_gpr392_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR392 ();
+}
+
+/* Set a value for h-sys-gpr392.  */
+
+void
+or1k32bf_h_sys_gpr392_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR392 (newval);
+}
+
+/* Get the value of h-sys-gpr393.  */
+
+USI
+or1k32bf_h_sys_gpr393_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR393 ();
+}
+
+/* Set a value for h-sys-gpr393.  */
+
+void
+or1k32bf_h_sys_gpr393_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR393 (newval);
+}
+
+/* Get the value of h-sys-gpr394.  */
+
+USI
+or1k32bf_h_sys_gpr394_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR394 ();
+}
+
+/* Set a value for h-sys-gpr394.  */
+
+void
+or1k32bf_h_sys_gpr394_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR394 (newval);
+}
+
+/* Get the value of h-sys-gpr395.  */
+
+USI
+or1k32bf_h_sys_gpr395_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR395 ();
+}
+
+/* Set a value for h-sys-gpr395.  */
+
+void
+or1k32bf_h_sys_gpr395_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR395 (newval);
+}
+
+/* Get the value of h-sys-gpr396.  */
+
+USI
+or1k32bf_h_sys_gpr396_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR396 ();
+}
+
+/* Set a value for h-sys-gpr396.  */
+
+void
+or1k32bf_h_sys_gpr396_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR396 (newval);
+}
+
+/* Get the value of h-sys-gpr397.  */
+
+USI
+or1k32bf_h_sys_gpr397_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR397 ();
+}
+
+/* Set a value for h-sys-gpr397.  */
+
+void
+or1k32bf_h_sys_gpr397_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR397 (newval);
+}
+
+/* Get the value of h-sys-gpr398.  */
+
+USI
+or1k32bf_h_sys_gpr398_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR398 ();
+}
+
+/* Set a value for h-sys-gpr398.  */
+
+void
+or1k32bf_h_sys_gpr398_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR398 (newval);
+}
+
+/* Get the value of h-sys-gpr399.  */
+
+USI
+or1k32bf_h_sys_gpr399_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR399 ();
+}
+
+/* Set a value for h-sys-gpr399.  */
+
+void
+or1k32bf_h_sys_gpr399_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR399 (newval);
+}
+
+/* Get the value of h-sys-gpr400.  */
+
+USI
+or1k32bf_h_sys_gpr400_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR400 ();
+}
+
+/* Set a value for h-sys-gpr400.  */
+
+void
+or1k32bf_h_sys_gpr400_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR400 (newval);
+}
+
+/* Get the value of h-sys-gpr401.  */
+
+USI
+or1k32bf_h_sys_gpr401_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR401 ();
+}
+
+/* Set a value for h-sys-gpr401.  */
+
+void
+or1k32bf_h_sys_gpr401_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR401 (newval);
+}
+
+/* Get the value of h-sys-gpr402.  */
+
+USI
+or1k32bf_h_sys_gpr402_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR402 ();
+}
+
+/* Set a value for h-sys-gpr402.  */
+
+void
+or1k32bf_h_sys_gpr402_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR402 (newval);
+}
+
+/* Get the value of h-sys-gpr403.  */
+
+USI
+or1k32bf_h_sys_gpr403_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR403 ();
+}
+
+/* Set a value for h-sys-gpr403.  */
+
+void
+or1k32bf_h_sys_gpr403_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR403 (newval);
+}
+
+/* Get the value of h-sys-gpr404.  */
+
+USI
+or1k32bf_h_sys_gpr404_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR404 ();
+}
+
+/* Set a value for h-sys-gpr404.  */
+
+void
+or1k32bf_h_sys_gpr404_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR404 (newval);
+}
+
+/* Get the value of h-sys-gpr405.  */
+
+USI
+or1k32bf_h_sys_gpr405_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR405 ();
+}
+
+/* Set a value for h-sys-gpr405.  */
+
+void
+or1k32bf_h_sys_gpr405_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR405 (newval);
+}
+
+/* Get the value of h-sys-gpr406.  */
+
+USI
+or1k32bf_h_sys_gpr406_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR406 ();
+}
+
+/* Set a value for h-sys-gpr406.  */
+
+void
+or1k32bf_h_sys_gpr406_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR406 (newval);
+}
+
+/* Get the value of h-sys-gpr407.  */
+
+USI
+or1k32bf_h_sys_gpr407_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR407 ();
+}
+
+/* Set a value for h-sys-gpr407.  */
+
+void
+or1k32bf_h_sys_gpr407_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR407 (newval);
+}
+
+/* Get the value of h-sys-gpr408.  */
+
+USI
+or1k32bf_h_sys_gpr408_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR408 ();
+}
+
+/* Set a value for h-sys-gpr408.  */
+
+void
+or1k32bf_h_sys_gpr408_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR408 (newval);
+}
+
+/* Get the value of h-sys-gpr409.  */
+
+USI
+or1k32bf_h_sys_gpr409_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR409 ();
+}
+
+/* Set a value for h-sys-gpr409.  */
+
+void
+or1k32bf_h_sys_gpr409_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR409 (newval);
+}
+
+/* Get the value of h-sys-gpr410.  */
+
+USI
+or1k32bf_h_sys_gpr410_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR410 ();
+}
+
+/* Set a value for h-sys-gpr410.  */
+
+void
+or1k32bf_h_sys_gpr410_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR410 (newval);
+}
+
+/* Get the value of h-sys-gpr411.  */
+
+USI
+or1k32bf_h_sys_gpr411_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR411 ();
+}
+
+/* Set a value for h-sys-gpr411.  */
+
+void
+or1k32bf_h_sys_gpr411_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR411 (newval);
+}
+
+/* Get the value of h-sys-gpr412.  */
+
+USI
+or1k32bf_h_sys_gpr412_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR412 ();
+}
+
+/* Set a value for h-sys-gpr412.  */
+
+void
+or1k32bf_h_sys_gpr412_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR412 (newval);
+}
+
+/* Get the value of h-sys-gpr413.  */
+
+USI
+or1k32bf_h_sys_gpr413_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR413 ();
+}
+
+/* Set a value for h-sys-gpr413.  */
+
+void
+or1k32bf_h_sys_gpr413_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR413 (newval);
+}
+
+/* Get the value of h-sys-gpr414.  */
+
+USI
+or1k32bf_h_sys_gpr414_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR414 ();
+}
+
+/* Set a value for h-sys-gpr414.  */
+
+void
+or1k32bf_h_sys_gpr414_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR414 (newval);
+}
+
+/* Get the value of h-sys-gpr415.  */
+
+USI
+or1k32bf_h_sys_gpr415_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR415 ();
+}
+
+/* Set a value for h-sys-gpr415.  */
+
+void
+or1k32bf_h_sys_gpr415_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR415 (newval);
+}
+
+/* Get the value of h-sys-gpr416.  */
+
+USI
+or1k32bf_h_sys_gpr416_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR416 ();
+}
+
+/* Set a value for h-sys-gpr416.  */
+
+void
+or1k32bf_h_sys_gpr416_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR416 (newval);
+}
+
+/* Get the value of h-sys-gpr417.  */
+
+USI
+or1k32bf_h_sys_gpr417_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR417 ();
+}
+
+/* Set a value for h-sys-gpr417.  */
+
+void
+or1k32bf_h_sys_gpr417_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR417 (newval);
+}
+
+/* Get the value of h-sys-gpr418.  */
+
+USI
+or1k32bf_h_sys_gpr418_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR418 ();
+}
+
+/* Set a value for h-sys-gpr418.  */
+
+void
+or1k32bf_h_sys_gpr418_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR418 (newval);
+}
+
+/* Get the value of h-sys-gpr419.  */
+
+USI
+or1k32bf_h_sys_gpr419_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR419 ();
+}
+
+/* Set a value for h-sys-gpr419.  */
+
+void
+or1k32bf_h_sys_gpr419_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR419 (newval);
+}
+
+/* Get the value of h-sys-gpr420.  */
+
+USI
+or1k32bf_h_sys_gpr420_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR420 ();
+}
+
+/* Set a value for h-sys-gpr420.  */
+
+void
+or1k32bf_h_sys_gpr420_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR420 (newval);
+}
+
+/* Get the value of h-sys-gpr421.  */
+
+USI
+or1k32bf_h_sys_gpr421_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR421 ();
+}
+
+/* Set a value for h-sys-gpr421.  */
+
+void
+or1k32bf_h_sys_gpr421_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR421 (newval);
+}
+
+/* Get the value of h-sys-gpr422.  */
+
+USI
+or1k32bf_h_sys_gpr422_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR422 ();
+}
+
+/* Set a value for h-sys-gpr422.  */
+
+void
+or1k32bf_h_sys_gpr422_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR422 (newval);
+}
+
+/* Get the value of h-sys-gpr423.  */
+
+USI
+or1k32bf_h_sys_gpr423_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR423 ();
+}
+
+/* Set a value for h-sys-gpr423.  */
+
+void
+or1k32bf_h_sys_gpr423_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR423 (newval);
+}
+
+/* Get the value of h-sys-gpr424.  */
+
+USI
+or1k32bf_h_sys_gpr424_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR424 ();
+}
+
+/* Set a value for h-sys-gpr424.  */
+
+void
+or1k32bf_h_sys_gpr424_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR424 (newval);
+}
+
+/* Get the value of h-sys-gpr425.  */
+
+USI
+or1k32bf_h_sys_gpr425_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR425 ();
+}
+
+/* Set a value for h-sys-gpr425.  */
+
+void
+or1k32bf_h_sys_gpr425_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR425 (newval);
+}
+
+/* Get the value of h-sys-gpr426.  */
+
+USI
+or1k32bf_h_sys_gpr426_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR426 ();
+}
+
+/* Set a value for h-sys-gpr426.  */
+
+void
+or1k32bf_h_sys_gpr426_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR426 (newval);
+}
+
+/* Get the value of h-sys-gpr427.  */
+
+USI
+or1k32bf_h_sys_gpr427_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR427 ();
+}
+
+/* Set a value for h-sys-gpr427.  */
+
+void
+or1k32bf_h_sys_gpr427_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR427 (newval);
+}
+
+/* Get the value of h-sys-gpr428.  */
+
+USI
+or1k32bf_h_sys_gpr428_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR428 ();
+}
+
+/* Set a value for h-sys-gpr428.  */
+
+void
+or1k32bf_h_sys_gpr428_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR428 (newval);
+}
+
+/* Get the value of h-sys-gpr429.  */
+
+USI
+or1k32bf_h_sys_gpr429_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR429 ();
+}
+
+/* Set a value for h-sys-gpr429.  */
+
+void
+or1k32bf_h_sys_gpr429_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR429 (newval);
+}
+
+/* Get the value of h-sys-gpr430.  */
+
+USI
+or1k32bf_h_sys_gpr430_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR430 ();
+}
+
+/* Set a value for h-sys-gpr430.  */
+
+void
+or1k32bf_h_sys_gpr430_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR430 (newval);
+}
+
+/* Get the value of h-sys-gpr431.  */
+
+USI
+or1k32bf_h_sys_gpr431_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR431 ();
+}
+
+/* Set a value for h-sys-gpr431.  */
+
+void
+or1k32bf_h_sys_gpr431_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR431 (newval);
+}
+
+/* Get the value of h-sys-gpr432.  */
+
+USI
+or1k32bf_h_sys_gpr432_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR432 ();
+}
+
+/* Set a value for h-sys-gpr432.  */
+
+void
+or1k32bf_h_sys_gpr432_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR432 (newval);
+}
+
+/* Get the value of h-sys-gpr433.  */
+
+USI
+or1k32bf_h_sys_gpr433_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR433 ();
+}
+
+/* Set a value for h-sys-gpr433.  */
+
+void
+or1k32bf_h_sys_gpr433_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR433 (newval);
+}
+
+/* Get the value of h-sys-gpr434.  */
+
+USI
+or1k32bf_h_sys_gpr434_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR434 ();
+}
+
+/* Set a value for h-sys-gpr434.  */
+
+void
+or1k32bf_h_sys_gpr434_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR434 (newval);
+}
+
+/* Get the value of h-sys-gpr435.  */
+
+USI
+or1k32bf_h_sys_gpr435_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR435 ();
+}
+
+/* Set a value for h-sys-gpr435.  */
+
+void
+or1k32bf_h_sys_gpr435_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR435 (newval);
+}
+
+/* Get the value of h-sys-gpr436.  */
+
+USI
+or1k32bf_h_sys_gpr436_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR436 ();
+}
+
+/* Set a value for h-sys-gpr436.  */
+
+void
+or1k32bf_h_sys_gpr436_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR436 (newval);
+}
+
+/* Get the value of h-sys-gpr437.  */
+
+USI
+or1k32bf_h_sys_gpr437_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR437 ();
+}
+
+/* Set a value for h-sys-gpr437.  */
+
+void
+or1k32bf_h_sys_gpr437_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR437 (newval);
+}
+
+/* Get the value of h-sys-gpr438.  */
+
+USI
+or1k32bf_h_sys_gpr438_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR438 ();
+}
+
+/* Set a value for h-sys-gpr438.  */
+
+void
+or1k32bf_h_sys_gpr438_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR438 (newval);
+}
+
+/* Get the value of h-sys-gpr439.  */
+
+USI
+or1k32bf_h_sys_gpr439_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR439 ();
+}
+
+/* Set a value for h-sys-gpr439.  */
+
+void
+or1k32bf_h_sys_gpr439_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR439 (newval);
+}
+
+/* Get the value of h-sys-gpr440.  */
+
+USI
+or1k32bf_h_sys_gpr440_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR440 ();
+}
+
+/* Set a value for h-sys-gpr440.  */
+
+void
+or1k32bf_h_sys_gpr440_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR440 (newval);
+}
+
+/* Get the value of h-sys-gpr441.  */
+
+USI
+or1k32bf_h_sys_gpr441_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR441 ();
+}
+
+/* Set a value for h-sys-gpr441.  */
+
+void
+or1k32bf_h_sys_gpr441_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR441 (newval);
+}
+
+/* Get the value of h-sys-gpr442.  */
+
+USI
+or1k32bf_h_sys_gpr442_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR442 ();
+}
+
+/* Set a value for h-sys-gpr442.  */
+
+void
+or1k32bf_h_sys_gpr442_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR442 (newval);
+}
+
+/* Get the value of h-sys-gpr443.  */
+
+USI
+or1k32bf_h_sys_gpr443_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR443 ();
+}
+
+/* Set a value for h-sys-gpr443.  */
+
+void
+or1k32bf_h_sys_gpr443_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR443 (newval);
+}
+
+/* Get the value of h-sys-gpr444.  */
+
+USI
+or1k32bf_h_sys_gpr444_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR444 ();
+}
+
+/* Set a value for h-sys-gpr444.  */
+
+void
+or1k32bf_h_sys_gpr444_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR444 (newval);
+}
+
+/* Get the value of h-sys-gpr445.  */
+
+USI
+or1k32bf_h_sys_gpr445_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR445 ();
+}
+
+/* Set a value for h-sys-gpr445.  */
+
+void
+or1k32bf_h_sys_gpr445_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR445 (newval);
+}
+
+/* Get the value of h-sys-gpr446.  */
+
+USI
+or1k32bf_h_sys_gpr446_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR446 ();
+}
+
+/* Set a value for h-sys-gpr446.  */
+
+void
+or1k32bf_h_sys_gpr446_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR446 (newval);
+}
+
+/* Get the value of h-sys-gpr447.  */
+
+USI
+or1k32bf_h_sys_gpr447_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR447 ();
+}
+
+/* Set a value for h-sys-gpr447.  */
+
+void
+or1k32bf_h_sys_gpr447_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR447 (newval);
+}
+
+/* Get the value of h-sys-gpr448.  */
+
+USI
+or1k32bf_h_sys_gpr448_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR448 ();
+}
+
+/* Set a value for h-sys-gpr448.  */
+
+void
+or1k32bf_h_sys_gpr448_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR448 (newval);
+}
+
+/* Get the value of h-sys-gpr449.  */
+
+USI
+or1k32bf_h_sys_gpr449_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR449 ();
+}
+
+/* Set a value for h-sys-gpr449.  */
+
+void
+or1k32bf_h_sys_gpr449_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR449 (newval);
+}
+
+/* Get the value of h-sys-gpr450.  */
+
+USI
+or1k32bf_h_sys_gpr450_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR450 ();
+}
+
+/* Set a value for h-sys-gpr450.  */
+
+void
+or1k32bf_h_sys_gpr450_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR450 (newval);
+}
+
+/* Get the value of h-sys-gpr451.  */
+
+USI
+or1k32bf_h_sys_gpr451_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR451 ();
+}
+
+/* Set a value for h-sys-gpr451.  */
+
+void
+or1k32bf_h_sys_gpr451_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR451 (newval);
+}
+
+/* Get the value of h-sys-gpr452.  */
+
+USI
+or1k32bf_h_sys_gpr452_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR452 ();
+}
+
+/* Set a value for h-sys-gpr452.  */
+
+void
+or1k32bf_h_sys_gpr452_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR452 (newval);
+}
+
+/* Get the value of h-sys-gpr453.  */
+
+USI
+or1k32bf_h_sys_gpr453_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR453 ();
+}
+
+/* Set a value for h-sys-gpr453.  */
+
+void
+or1k32bf_h_sys_gpr453_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR453 (newval);
+}
+
+/* Get the value of h-sys-gpr454.  */
+
+USI
+or1k32bf_h_sys_gpr454_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR454 ();
+}
+
+/* Set a value for h-sys-gpr454.  */
+
+void
+or1k32bf_h_sys_gpr454_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR454 (newval);
+}
+
+/* Get the value of h-sys-gpr455.  */
+
+USI
+or1k32bf_h_sys_gpr455_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR455 ();
+}
+
+/* Set a value for h-sys-gpr455.  */
+
+void
+or1k32bf_h_sys_gpr455_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR455 (newval);
+}
+
+/* Get the value of h-sys-gpr456.  */
+
+USI
+or1k32bf_h_sys_gpr456_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR456 ();
+}
+
+/* Set a value for h-sys-gpr456.  */
+
+void
+or1k32bf_h_sys_gpr456_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR456 (newval);
+}
+
+/* Get the value of h-sys-gpr457.  */
+
+USI
+or1k32bf_h_sys_gpr457_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR457 ();
+}
+
+/* Set a value for h-sys-gpr457.  */
+
+void
+or1k32bf_h_sys_gpr457_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR457 (newval);
+}
+
+/* Get the value of h-sys-gpr458.  */
+
+USI
+or1k32bf_h_sys_gpr458_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR458 ();
+}
+
+/* Set a value for h-sys-gpr458.  */
+
+void
+or1k32bf_h_sys_gpr458_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR458 (newval);
+}
+
+/* Get the value of h-sys-gpr459.  */
+
+USI
+or1k32bf_h_sys_gpr459_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR459 ();
+}
+
+/* Set a value for h-sys-gpr459.  */
+
+void
+or1k32bf_h_sys_gpr459_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR459 (newval);
+}
+
+/* Get the value of h-sys-gpr460.  */
+
+USI
+or1k32bf_h_sys_gpr460_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR460 ();
+}
+
+/* Set a value for h-sys-gpr460.  */
+
+void
+or1k32bf_h_sys_gpr460_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR460 (newval);
+}
+
+/* Get the value of h-sys-gpr461.  */
+
+USI
+or1k32bf_h_sys_gpr461_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR461 ();
+}
+
+/* Set a value for h-sys-gpr461.  */
+
+void
+or1k32bf_h_sys_gpr461_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR461 (newval);
+}
+
+/* Get the value of h-sys-gpr462.  */
+
+USI
+or1k32bf_h_sys_gpr462_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR462 ();
+}
+
+/* Set a value for h-sys-gpr462.  */
+
+void
+or1k32bf_h_sys_gpr462_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR462 (newval);
+}
+
+/* Get the value of h-sys-gpr463.  */
+
+USI
+or1k32bf_h_sys_gpr463_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR463 ();
+}
+
+/* Set a value for h-sys-gpr463.  */
+
+void
+or1k32bf_h_sys_gpr463_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR463 (newval);
+}
+
+/* Get the value of h-sys-gpr464.  */
+
+USI
+or1k32bf_h_sys_gpr464_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR464 ();
+}
+
+/* Set a value for h-sys-gpr464.  */
+
+void
+or1k32bf_h_sys_gpr464_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR464 (newval);
+}
+
+/* Get the value of h-sys-gpr465.  */
+
+USI
+or1k32bf_h_sys_gpr465_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR465 ();
+}
+
+/* Set a value for h-sys-gpr465.  */
+
+void
+or1k32bf_h_sys_gpr465_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR465 (newval);
+}
+
+/* Get the value of h-sys-gpr466.  */
+
+USI
+or1k32bf_h_sys_gpr466_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR466 ();
+}
+
+/* Set a value for h-sys-gpr466.  */
+
+void
+or1k32bf_h_sys_gpr466_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR466 (newval);
+}
+
+/* Get the value of h-sys-gpr467.  */
+
+USI
+or1k32bf_h_sys_gpr467_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR467 ();
+}
+
+/* Set a value for h-sys-gpr467.  */
+
+void
+or1k32bf_h_sys_gpr467_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR467 (newval);
+}
+
+/* Get the value of h-sys-gpr468.  */
+
+USI
+or1k32bf_h_sys_gpr468_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR468 ();
+}
+
+/* Set a value for h-sys-gpr468.  */
+
+void
+or1k32bf_h_sys_gpr468_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR468 (newval);
+}
+
+/* Get the value of h-sys-gpr469.  */
+
+USI
+or1k32bf_h_sys_gpr469_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR469 ();
+}
+
+/* Set a value for h-sys-gpr469.  */
+
+void
+or1k32bf_h_sys_gpr469_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR469 (newval);
+}
+
+/* Get the value of h-sys-gpr470.  */
+
+USI
+or1k32bf_h_sys_gpr470_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR470 ();
+}
+
+/* Set a value for h-sys-gpr470.  */
+
+void
+or1k32bf_h_sys_gpr470_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR470 (newval);
+}
+
+/* Get the value of h-sys-gpr471.  */
+
+USI
+or1k32bf_h_sys_gpr471_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR471 ();
+}
+
+/* Set a value for h-sys-gpr471.  */
+
+void
+or1k32bf_h_sys_gpr471_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR471 (newval);
+}
+
+/* Get the value of h-sys-gpr472.  */
+
+USI
+or1k32bf_h_sys_gpr472_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR472 ();
+}
+
+/* Set a value for h-sys-gpr472.  */
+
+void
+or1k32bf_h_sys_gpr472_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR472 (newval);
+}
+
+/* Get the value of h-sys-gpr473.  */
+
+USI
+or1k32bf_h_sys_gpr473_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR473 ();
+}
+
+/* Set a value for h-sys-gpr473.  */
+
+void
+or1k32bf_h_sys_gpr473_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR473 (newval);
+}
+
+/* Get the value of h-sys-gpr474.  */
+
+USI
+or1k32bf_h_sys_gpr474_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR474 ();
+}
+
+/* Set a value for h-sys-gpr474.  */
+
+void
+or1k32bf_h_sys_gpr474_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR474 (newval);
+}
+
+/* Get the value of h-sys-gpr475.  */
+
+USI
+or1k32bf_h_sys_gpr475_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR475 ();
+}
+
+/* Set a value for h-sys-gpr475.  */
+
+void
+or1k32bf_h_sys_gpr475_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR475 (newval);
+}
+
+/* Get the value of h-sys-gpr476.  */
+
+USI
+or1k32bf_h_sys_gpr476_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR476 ();
+}
+
+/* Set a value for h-sys-gpr476.  */
+
+void
+or1k32bf_h_sys_gpr476_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR476 (newval);
+}
+
+/* Get the value of h-sys-gpr477.  */
+
+USI
+or1k32bf_h_sys_gpr477_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR477 ();
+}
+
+/* Set a value for h-sys-gpr477.  */
+
+void
+or1k32bf_h_sys_gpr477_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR477 (newval);
+}
+
+/* Get the value of h-sys-gpr478.  */
+
+USI
+or1k32bf_h_sys_gpr478_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR478 ();
+}
+
+/* Set a value for h-sys-gpr478.  */
+
+void
+or1k32bf_h_sys_gpr478_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR478 (newval);
+}
+
+/* Get the value of h-sys-gpr479.  */
+
+USI
+or1k32bf_h_sys_gpr479_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR479 ();
+}
+
+/* Set a value for h-sys-gpr479.  */
+
+void
+or1k32bf_h_sys_gpr479_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR479 (newval);
+}
+
+/* Get the value of h-sys-gpr480.  */
+
+USI
+or1k32bf_h_sys_gpr480_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR480 ();
+}
+
+/* Set a value for h-sys-gpr480.  */
+
+void
+or1k32bf_h_sys_gpr480_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR480 (newval);
+}
+
+/* Get the value of h-sys-gpr481.  */
+
+USI
+or1k32bf_h_sys_gpr481_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR481 ();
+}
+
+/* Set a value for h-sys-gpr481.  */
+
+void
+or1k32bf_h_sys_gpr481_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR481 (newval);
+}
+
+/* Get the value of h-sys-gpr482.  */
+
+USI
+or1k32bf_h_sys_gpr482_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR482 ();
+}
+
+/* Set a value for h-sys-gpr482.  */
+
+void
+or1k32bf_h_sys_gpr482_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR482 (newval);
+}
+
+/* Get the value of h-sys-gpr483.  */
+
+USI
+or1k32bf_h_sys_gpr483_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR483 ();
+}
+
+/* Set a value for h-sys-gpr483.  */
+
+void
+or1k32bf_h_sys_gpr483_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR483 (newval);
+}
+
+/* Get the value of h-sys-gpr484.  */
+
+USI
+or1k32bf_h_sys_gpr484_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR484 ();
+}
+
+/* Set a value for h-sys-gpr484.  */
+
+void
+or1k32bf_h_sys_gpr484_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR484 (newval);
+}
+
+/* Get the value of h-sys-gpr485.  */
+
+USI
+or1k32bf_h_sys_gpr485_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR485 ();
+}
+
+/* Set a value for h-sys-gpr485.  */
+
+void
+or1k32bf_h_sys_gpr485_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR485 (newval);
+}
+
+/* Get the value of h-sys-gpr486.  */
+
+USI
+or1k32bf_h_sys_gpr486_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR486 ();
+}
+
+/* Set a value for h-sys-gpr486.  */
+
+void
+or1k32bf_h_sys_gpr486_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR486 (newval);
+}
+
+/* Get the value of h-sys-gpr487.  */
+
+USI
+or1k32bf_h_sys_gpr487_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR487 ();
+}
+
+/* Set a value for h-sys-gpr487.  */
+
+void
+or1k32bf_h_sys_gpr487_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR487 (newval);
+}
+
+/* Get the value of h-sys-gpr488.  */
+
+USI
+or1k32bf_h_sys_gpr488_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR488 ();
+}
+
+/* Set a value for h-sys-gpr488.  */
+
+void
+or1k32bf_h_sys_gpr488_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR488 (newval);
+}
+
+/* Get the value of h-sys-gpr489.  */
+
+USI
+or1k32bf_h_sys_gpr489_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR489 ();
+}
+
+/* Set a value for h-sys-gpr489.  */
+
+void
+or1k32bf_h_sys_gpr489_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR489 (newval);
+}
+
+/* Get the value of h-sys-gpr490.  */
+
+USI
+or1k32bf_h_sys_gpr490_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR490 ();
+}
+
+/* Set a value for h-sys-gpr490.  */
+
+void
+or1k32bf_h_sys_gpr490_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR490 (newval);
+}
+
+/* Get the value of h-sys-gpr491.  */
+
+USI
+or1k32bf_h_sys_gpr491_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR491 ();
+}
+
+/* Set a value for h-sys-gpr491.  */
+
+void
+or1k32bf_h_sys_gpr491_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR491 (newval);
+}
+
+/* Get the value of h-sys-gpr492.  */
+
+USI
+or1k32bf_h_sys_gpr492_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR492 ();
+}
+
+/* Set a value for h-sys-gpr492.  */
+
+void
+or1k32bf_h_sys_gpr492_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR492 (newval);
+}
+
+/* Get the value of h-sys-gpr493.  */
+
+USI
+or1k32bf_h_sys_gpr493_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR493 ();
+}
+
+/* Set a value for h-sys-gpr493.  */
+
+void
+or1k32bf_h_sys_gpr493_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR493 (newval);
+}
+
+/* Get the value of h-sys-gpr494.  */
+
+USI
+or1k32bf_h_sys_gpr494_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR494 ();
+}
+
+/* Set a value for h-sys-gpr494.  */
+
+void
+or1k32bf_h_sys_gpr494_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR494 (newval);
+}
+
+/* Get the value of h-sys-gpr495.  */
+
+USI
+or1k32bf_h_sys_gpr495_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR495 ();
+}
+
+/* Set a value for h-sys-gpr495.  */
+
+void
+or1k32bf_h_sys_gpr495_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR495 (newval);
+}
+
+/* Get the value of h-sys-gpr496.  */
+
+USI
+or1k32bf_h_sys_gpr496_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR496 ();
+}
+
+/* Set a value for h-sys-gpr496.  */
+
+void
+or1k32bf_h_sys_gpr496_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR496 (newval);
+}
+
+/* Get the value of h-sys-gpr497.  */
+
+USI
+or1k32bf_h_sys_gpr497_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR497 ();
+}
+
+/* Set a value for h-sys-gpr497.  */
+
+void
+or1k32bf_h_sys_gpr497_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR497 (newval);
+}
+
+/* Get the value of h-sys-gpr498.  */
+
+USI
+or1k32bf_h_sys_gpr498_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR498 ();
+}
+
+/* Set a value for h-sys-gpr498.  */
+
+void
+or1k32bf_h_sys_gpr498_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR498 (newval);
+}
+
+/* Get the value of h-sys-gpr499.  */
+
+USI
+or1k32bf_h_sys_gpr499_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR499 ();
+}
+
+/* Set a value for h-sys-gpr499.  */
+
+void
+or1k32bf_h_sys_gpr499_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR499 (newval);
+}
+
+/* Get the value of h-sys-gpr500.  */
+
+USI
+or1k32bf_h_sys_gpr500_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR500 ();
+}
+
+/* Set a value for h-sys-gpr500.  */
+
+void
+or1k32bf_h_sys_gpr500_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR500 (newval);
+}
+
+/* Get the value of h-sys-gpr501.  */
+
+USI
+or1k32bf_h_sys_gpr501_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR501 ();
+}
+
+/* Set a value for h-sys-gpr501.  */
+
+void
+or1k32bf_h_sys_gpr501_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR501 (newval);
+}
+
+/* Get the value of h-sys-gpr502.  */
+
+USI
+or1k32bf_h_sys_gpr502_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR502 ();
+}
+
+/* Set a value for h-sys-gpr502.  */
+
+void
+or1k32bf_h_sys_gpr502_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR502 (newval);
+}
+
+/* Get the value of h-sys-gpr503.  */
+
+USI
+or1k32bf_h_sys_gpr503_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR503 ();
+}
+
+/* Set a value for h-sys-gpr503.  */
+
+void
+or1k32bf_h_sys_gpr503_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR503 (newval);
+}
+
+/* Get the value of h-sys-gpr504.  */
+
+USI
+or1k32bf_h_sys_gpr504_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR504 ();
+}
+
+/* Set a value for h-sys-gpr504.  */
+
+void
+or1k32bf_h_sys_gpr504_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR504 (newval);
+}
+
+/* Get the value of h-sys-gpr505.  */
+
+USI
+or1k32bf_h_sys_gpr505_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR505 ();
+}
+
+/* Set a value for h-sys-gpr505.  */
+
+void
+or1k32bf_h_sys_gpr505_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR505 (newval);
+}
+
+/* Get the value of h-sys-gpr506.  */
+
+USI
+or1k32bf_h_sys_gpr506_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR506 ();
+}
+
+/* Set a value for h-sys-gpr506.  */
+
+void
+or1k32bf_h_sys_gpr506_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR506 (newval);
+}
+
+/* Get the value of h-sys-gpr507.  */
+
+USI
+or1k32bf_h_sys_gpr507_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR507 ();
+}
+
+/* Set a value for h-sys-gpr507.  */
+
+void
+or1k32bf_h_sys_gpr507_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR507 (newval);
+}
+
+/* Get the value of h-sys-gpr508.  */
+
+USI
+or1k32bf_h_sys_gpr508_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR508 ();
+}
+
+/* Set a value for h-sys-gpr508.  */
+
+void
+or1k32bf_h_sys_gpr508_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR508 (newval);
+}
+
+/* Get the value of h-sys-gpr509.  */
+
+USI
+or1k32bf_h_sys_gpr509_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR509 ();
+}
+
+/* Set a value for h-sys-gpr509.  */
+
+void
+or1k32bf_h_sys_gpr509_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR509 (newval);
+}
+
+/* Get the value of h-sys-gpr510.  */
+
+USI
+or1k32bf_h_sys_gpr510_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR510 ();
+}
+
+/* Set a value for h-sys-gpr510.  */
+
+void
+or1k32bf_h_sys_gpr510_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR510 (newval);
+}
+
+/* Get the value of h-sys-gpr511.  */
+
+USI
+or1k32bf_h_sys_gpr511_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR511 ();
+}
+
+/* Set a value for h-sys-gpr511.  */
+
+void
+or1k32bf_h_sys_gpr511_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_GPR511 (newval);
+}
+
+/* Get the value of h-mac-maclo.  */
+
+USI
+or1k32bf_h_mac_maclo_get (SIM_CPU *current_cpu)
+{
+  return GET_H_MAC_MACLO ();
+}
+
+/* Set a value for h-mac-maclo.  */
+
+void
+or1k32bf_h_mac_maclo_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_MAC_MACLO (newval);
+}
+
+/* Get the value of h-mac-machi.  */
+
+USI
+or1k32bf_h_mac_machi_get (SIM_CPU *current_cpu)
+{
+  return GET_H_MAC_MACHI ();
+}
+
+/* Set a value for h-mac-machi.  */
+
+void
+or1k32bf_h_mac_machi_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_MAC_MACHI (newval);
+}
+
+/* Get the value of h-tick-ttmr.  */
+
+USI
+or1k32bf_h_tick_ttmr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_TICK_TTMR ();
+}
+
+/* Set a value for h-tick-ttmr.  */
+
+void
+or1k32bf_h_tick_ttmr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_TICK_TTMR (newval);
+}
+
+/* Get the value of h-sys-vr-rev.  */
+
+USI
+or1k32bf_h_sys_vr_rev_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_REV ();
+}
+
+/* Set a value for h-sys-vr-rev.  */
+
+void
+or1k32bf_h_sys_vr_rev_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_VR_REV (newval);
+}
+
+/* Get the value of h-sys-vr-cfg.  */
+
+USI
+or1k32bf_h_sys_vr_cfg_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_CFG ();
+}
+
+/* Set a value for h-sys-vr-cfg.  */
+
+void
+or1k32bf_h_sys_vr_cfg_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_VR_CFG (newval);
+}
+
+/* Get the value of h-sys-vr-ver.  */
+
+USI
+or1k32bf_h_sys_vr_ver_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_VER ();
+}
+
+/* Set a value for h-sys-vr-ver.  */
+
+void
+or1k32bf_h_sys_vr_ver_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_VR_VER (newval);
+}
+
+/* Get the value of h-sys-upr-up.  */
+
+USI
+or1k32bf_h_sys_upr_up_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_UP ();
+}
+
+/* Set a value for h-sys-upr-up.  */
+
+void
+or1k32bf_h_sys_upr_up_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_UP (newval);
+}
+
+/* Get the value of h-sys-upr-dcp.  */
+
+USI
+or1k32bf_h_sys_upr_dcp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DCP ();
+}
+
+/* Set a value for h-sys-upr-dcp.  */
+
+void
+or1k32bf_h_sys_upr_dcp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_DCP (newval);
+}
+
+/* Get the value of h-sys-upr-icp.  */
+
+USI
+or1k32bf_h_sys_upr_icp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_ICP ();
+}
+
+/* Set a value for h-sys-upr-icp.  */
+
+void
+or1k32bf_h_sys_upr_icp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_ICP (newval);
+}
+
+/* Get the value of h-sys-upr-dmp.  */
+
+USI
+or1k32bf_h_sys_upr_dmp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DMP ();
+}
+
+/* Set a value for h-sys-upr-dmp.  */
+
+void
+or1k32bf_h_sys_upr_dmp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_DMP (newval);
+}
+
+/* Get the value of h-sys-upr-mp.  */
+
+USI
+or1k32bf_h_sys_upr_mp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_MP ();
+}
+
+/* Set a value for h-sys-upr-mp.  */
+
+void
+or1k32bf_h_sys_upr_mp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_MP (newval);
+}
+
+/* Get the value of h-sys-upr-imp.  */
+
+USI
+or1k32bf_h_sys_upr_imp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_IMP ();
+}
+
+/* Set a value for h-sys-upr-imp.  */
+
+void
+or1k32bf_h_sys_upr_imp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_IMP (newval);
+}
+
+/* Get the value of h-sys-upr-dup.  */
+
+USI
+or1k32bf_h_sys_upr_dup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DUP ();
+}
+
+/* Set a value for h-sys-upr-dup.  */
+
+void
+or1k32bf_h_sys_upr_dup_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_DUP (newval);
+}
+
+/* Get the value of h-sys-upr-pcup.  */
+
+USI
+or1k32bf_h_sys_upr_pcup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PCUP ();
+}
+
+/* Set a value for h-sys-upr-pcup.  */
+
+void
+or1k32bf_h_sys_upr_pcup_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_PCUP (newval);
+}
+
+/* Get the value of h-sys-upr-picp.  */
+
+USI
+or1k32bf_h_sys_upr_picp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PICP ();
+}
+
+/* Set a value for h-sys-upr-picp.  */
+
+void
+or1k32bf_h_sys_upr_picp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_PICP (newval);
+}
+
+/* Get the value of h-sys-upr-pmp.  */
+
+USI
+or1k32bf_h_sys_upr_pmp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PMP ();
+}
+
+/* Set a value for h-sys-upr-pmp.  */
+
+void
+or1k32bf_h_sys_upr_pmp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_PMP (newval);
+}
+
+/* Get the value of h-sys-upr-ttp.  */
+
+USI
+or1k32bf_h_sys_upr_ttp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_TTP ();
+}
+
+/* Set a value for h-sys-upr-ttp.  */
+
+void
+or1k32bf_h_sys_upr_ttp_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_TTP (newval);
+}
+
+/* Get the value of h-sys-upr-cup.  */
+
+USI
+or1k32bf_h_sys_upr_cup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_CUP ();
+}
+
+/* Set a value for h-sys-upr-cup.  */
+
+void
+or1k32bf_h_sys_upr_cup_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_UPR_CUP (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-nsgr.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_nsgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_NSGR ();
+}
+
+/* Set a value for h-sys-cpucfgr-nsgr.  */
+
+void
+or1k32bf_h_sys_cpucfgr_nsgr_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_NSGR (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-cgf.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_cgf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_CGF ();
+}
+
+/* Set a value for h-sys-cpucfgr-cgf.  */
+
+void
+or1k32bf_h_sys_cpucfgr_cgf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_CGF (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ob32s.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_ob32s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OB32S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ob32s.  */
+
+void
+or1k32bf_h_sys_cpucfgr_ob32s_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_OB32S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ob64s.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_ob64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OB64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ob64s.  */
+
+void
+or1k32bf_h_sys_cpucfgr_ob64s_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_OB64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-of32s.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_of32s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OF32S ();
+}
+
+/* Set a value for h-sys-cpucfgr-of32s.  */
+
+void
+or1k32bf_h_sys_cpucfgr_of32s_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_OF32S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-of64s.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_of64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OF64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-of64s.  */
+
+void
+or1k32bf_h_sys_cpucfgr_of64s_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_OF64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ov64s.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_ov64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OV64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ov64s.  */
+
+void
+or1k32bf_h_sys_cpucfgr_ov64s_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_OV64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-nd.  */
+
+USI
+or1k32bf_h_sys_cpucfgr_nd_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_ND ();
+}
+
+/* Set a value for h-sys-cpucfgr-nd.  */
+
+void
+or1k32bf_h_sys_cpucfgr_nd_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_CPUCFGR_ND (newval);
+}
+
+/* Get the value of h-sys-sr-sm.  */
+
+USI
+or1k32bf_h_sys_sr_sm_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_SM ();
+}
+
+/* Set a value for h-sys-sr-sm.  */
+
+void
+or1k32bf_h_sys_sr_sm_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_SM (newval);
+}
+
+/* Get the value of h-sys-sr-tee.  */
+
+USI
+or1k32bf_h_sys_sr_tee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_TEE ();
+}
+
+/* Set a value for h-sys-sr-tee.  */
+
+void
+or1k32bf_h_sys_sr_tee_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_TEE (newval);
+}
+
+/* Get the value of h-sys-sr-iee.  */
+
+USI
+or1k32bf_h_sys_sr_iee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_IEE ();
+}
+
+/* Set a value for h-sys-sr-iee.  */
+
+void
+or1k32bf_h_sys_sr_iee_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_IEE (newval);
+}
+
+/* Get the value of h-sys-sr-dce.  */
+
+USI
+or1k32bf_h_sys_sr_dce_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DCE ();
+}
+
+/* Set a value for h-sys-sr-dce.  */
+
+void
+or1k32bf_h_sys_sr_dce_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_DCE (newval);
+}
+
+/* Get the value of h-sys-sr-ice.  */
+
+USI
+or1k32bf_h_sys_sr_ice_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_ICE ();
+}
+
+/* Set a value for h-sys-sr-ice.  */
+
+void
+or1k32bf_h_sys_sr_ice_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_ICE (newval);
+}
+
+/* Get the value of h-sys-sr-dme.  */
+
+USI
+or1k32bf_h_sys_sr_dme_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DME ();
+}
+
+/* Set a value for h-sys-sr-dme.  */
+
+void
+or1k32bf_h_sys_sr_dme_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_DME (newval);
+}
+
+/* Get the value of h-sys-sr-ime.  */
+
+USI
+or1k32bf_h_sys_sr_ime_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_IME ();
+}
+
+/* Set a value for h-sys-sr-ime.  */
+
+void
+or1k32bf_h_sys_sr_ime_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_IME (newval);
+}
+
+/* Get the value of h-sys-sr-lee.  */
+
+USI
+or1k32bf_h_sys_sr_lee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_LEE ();
+}
+
+/* Set a value for h-sys-sr-lee.  */
+
+void
+or1k32bf_h_sys_sr_lee_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_LEE (newval);
+}
+
+/* Get the value of h-sys-sr-ce.  */
+
+USI
+or1k32bf_h_sys_sr_ce_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CE ();
+}
+
+/* Set a value for h-sys-sr-ce.  */
+
+void
+or1k32bf_h_sys_sr_ce_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_CE (newval);
+}
+
+/* Get the value of h-sys-sr-f.  */
+
+USI
+or1k32bf_h_sys_sr_f_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_F ();
+}
+
+/* Set a value for h-sys-sr-f.  */
+
+void
+or1k32bf_h_sys_sr_f_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_F (newval);
+}
+
+/* Get the value of h-sys-sr-cy.  */
+
+USI
+or1k32bf_h_sys_sr_cy_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CY ();
+}
+
+/* Set a value for h-sys-sr-cy.  */
+
+void
+or1k32bf_h_sys_sr_cy_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_CY (newval);
+}
+
+/* Get the value of h-sys-sr-ov.  */
+
+USI
+or1k32bf_h_sys_sr_ov_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_OV ();
+}
+
+/* Set a value for h-sys-sr-ov.  */
+
+void
+or1k32bf_h_sys_sr_ov_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_OV (newval);
+}
+
+/* Get the value of h-sys-sr-ove.  */
+
+USI
+or1k32bf_h_sys_sr_ove_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_OVE ();
+}
+
+/* Set a value for h-sys-sr-ove.  */
+
+void
+or1k32bf_h_sys_sr_ove_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_OVE (newval);
+}
+
+/* Get the value of h-sys-sr-dsx.  */
+
+USI
+or1k32bf_h_sys_sr_dsx_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DSX ();
+}
+
+/* Set a value for h-sys-sr-dsx.  */
+
+void
+or1k32bf_h_sys_sr_dsx_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_DSX (newval);
+}
+
+/* Get the value of h-sys-sr-eph.  */
+
+USI
+or1k32bf_h_sys_sr_eph_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_EPH ();
+}
+
+/* Set a value for h-sys-sr-eph.  */
+
+void
+or1k32bf_h_sys_sr_eph_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_EPH (newval);
+}
+
+/* Get the value of h-sys-sr-fo.  */
+
+USI
+or1k32bf_h_sys_sr_fo_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_FO ();
+}
+
+/* Set a value for h-sys-sr-fo.  */
+
+void
+or1k32bf_h_sys_sr_fo_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_FO (newval);
+}
+
+/* Get the value of h-sys-sr-sumra.  */
+
+USI
+or1k32bf_h_sys_sr_sumra_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_SUMRA ();
+}
+
+/* Set a value for h-sys-sr-sumra.  */
+
+void
+or1k32bf_h_sys_sr_sumra_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_SUMRA (newval);
+}
+
+/* Get the value of h-sys-sr-cid.  */
+
+USI
+or1k32bf_h_sys_sr_cid_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CID ();
+}
+
+/* Set a value for h-sys-sr-cid.  */
+
+void
+or1k32bf_h_sys_sr_cid_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_SR_CID (newval);
+}
+
+/* Get the value of h-sys-fpcsr-fpee.  */
+
+USI
+or1k32bf_h_sys_fpcsr_fpee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_FPEE ();
+}
+
+/* Set a value for h-sys-fpcsr-fpee.  */
+
+void
+or1k32bf_h_sys_fpcsr_fpee_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_FPEE (newval);
+}
+
+/* Get the value of h-sys-fpcsr-rm.  */
+
+USI
+or1k32bf_h_sys_fpcsr_rm_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_RM ();
+}
+
+/* Set a value for h-sys-fpcsr-rm.  */
+
+void
+or1k32bf_h_sys_fpcsr_rm_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_RM (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ovf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_ovf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_OVF ();
+}
+
+/* Set a value for h-sys-fpcsr-ovf.  */
+
+void
+or1k32bf_h_sys_fpcsr_ovf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_OVF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-unf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_unf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_UNF ();
+}
+
+/* Set a value for h-sys-fpcsr-unf.  */
+
+void
+or1k32bf_h_sys_fpcsr_unf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_UNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-snf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_snf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_SNF ();
+}
+
+/* Set a value for h-sys-fpcsr-snf.  */
+
+void
+or1k32bf_h_sys_fpcsr_snf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_SNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-qnf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_qnf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_QNF ();
+}
+
+/* Set a value for h-sys-fpcsr-qnf.  */
+
+void
+or1k32bf_h_sys_fpcsr_qnf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_QNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-zf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_zf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_ZF ();
+}
+
+/* Set a value for h-sys-fpcsr-zf.  */
+
+void
+or1k32bf_h_sys_fpcsr_zf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_ZF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ixf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_ixf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_IXF ();
+}
+
+/* Set a value for h-sys-fpcsr-ixf.  */
+
+void
+or1k32bf_h_sys_fpcsr_ixf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_IXF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ivf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_ivf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_IVF ();
+}
+
+/* Set a value for h-sys-fpcsr-ivf.  */
+
+void
+or1k32bf_h_sys_fpcsr_ivf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_IVF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-inf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_inf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_INF ();
+}
+
+/* Set a value for h-sys-fpcsr-inf.  */
+
+void
+or1k32bf_h_sys_fpcsr_inf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_INF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-dzf.  */
+
+USI
+or1k32bf_h_sys_fpcsr_dzf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_DZF ();
+}
+
+/* Set a value for h-sys-fpcsr-dzf.  */
+
+void
+or1k32bf_h_sys_fpcsr_dzf_set (SIM_CPU *current_cpu, USI newval)
+{
+  SET_H_SYS_FPCSR_DZF (newval);
+}
+
+/* Get the value of h-atomic-reserve.  */
+
+BI
+or1k32bf_h_atomic_reserve_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_atomic_reserve);
+}
+
+/* Set a value for h-atomic-reserve.  */
+
+void
+or1k32bf_h_atomic_reserve_set (SIM_CPU *current_cpu, BI newval)
+{
+  CPU (h_atomic_reserve) = newval;
+}
+
+/* Get the value of h-atomic-address.  */
+
+SI
+or1k32bf_h_atomic_address_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_atomic_address);
+}
+
+/* Set a value for h-atomic-address.  */
+
+void
+or1k32bf_h_atomic_address_set (SIM_CPU *current_cpu, SI newval)
+{
+  CPU (h_atomic_address) = newval;
+}
+
+/* Record trace results for INSN.  */
+
+void
+or1k32bf_record_trace_results (SIM_CPU *current_cpu, CGEN_INSN *insn,
+			    int *indices, TRACE_RECORD *tr)
+{
+}
diff --git a/sim/or1k/cpu32.h b/sim/or1k/cpu32.h
new file mode 100644
index 0000000..771fcdc
--- /dev/null
+++ b/sim/or1k/cpu32.h
@@ -0,0 +1,5018 @@
+/* CPU family header for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef CPU_OR1K32BF_H
+#define CPU_OR1K32BF_H
+
+/* Maximum number of instructions that are fetched at a time.
+   This is for LIW type instructions sets (e.g. m32r).  */
+#define MAX_LIW_INSNS 1
+
+/* Maximum number of instructions that can be executed in parallel.  */
+#define MAX_PARALLEL_INSNS 1
+
+/* The size of an "int" needed to hold an instruction word.
+   This is usually 32 bits, but some architectures needs 64 bits.  */
+typedef CGEN_INSN_INT CGEN_INSN_WORD;
+
+#include "cgen-engine.h"
+
+/* CPU state information.  */
+typedef struct {
+  /* Hardware elements.  */
+  struct {
+  /* program counter */
+  USI h_pc;
+#define GET_H_PC() CPU (h_pc)
+#define SET_H_PC(x) (CPU (h_pc) = (x))
+  /* general registers */
+  USI h_gpr[32];
+#define GET_H_GPR(index) GET_H_SPR (((index) + (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))))
+#define SET_H_GPR(index, x) \
+do { \
+SET_H_SPR ((((index)) + (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))), (x));\
+;} while (0)
+  /* atomic reserve flag */
+  BI h_atomic_reserve;
+#define GET_H_ATOMIC_RESERVE() CPU (h_atomic_reserve)
+#define SET_H_ATOMIC_RESERVE(x) (CPU (h_atomic_reserve) = (x))
+  /* atomic reserve address */
+  SI h_atomic_address;
+#define GET_H_ATOMIC_ADDRESS() CPU (h_atomic_address)
+#define SET_H_ATOMIC_ADDRESS(x) (CPU (h_atomic_address) = (x))
+  } hardware;
+#define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware)
+} OR1K32BF_CPU_DATA;
+
+/* Virtual regs.  */
+
+#define GET_H_FSR(index) SUBWORDSISF (TRUNCSISI (GET_H_GPR (index)))
+#define SET_H_FSR(index, x) \
+do { \
+SET_H_GPR ((index), ZEXTSISI (SUBWORDSFSI ((x))));\
+;} while (0)
+#define GET_H_SPR(index) or1k32bf_h_spr_get_raw (current_cpu, index)
+#define SET_H_SPR(index, x) \
+do { \
+or1k32bf_h_spr_set_raw (current_cpu, (index), (x));\
+;} while (0)
+#define GET_H_SYS_VR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR))
+#define SET_H_SYS_VR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), (x));\
+;} while (0)
+#define GET_H_SYS_UPR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR))
+#define SET_H_SYS_UPR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR))
+#define SET_H_SYS_CPUCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DMMUCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DMMUCFGR))
+#define SET_H_SYS_DMMUCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DMMUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_IMMUCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_IMMUCFGR))
+#define SET_H_SYS_IMMUCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_IMMUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DCCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCCFGR))
+#define SET_H_SYS_DCCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_ICCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ICCFGR))
+#define SET_H_SYS_ICCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ICCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCFGR))
+#define SET_H_SYS_DCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_PCCFGR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PCCFGR))
+#define SET_H_SYS_PCCFGR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PCCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_NPC() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NPC))
+#define SET_H_SYS_NPC(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NPC), (x));\
+;} while (0)
+#define GET_H_SYS_SR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR))
+#define SET_H_SYS_SR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), (x));\
+;} while (0)
+#define GET_H_SYS_PPC() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PPC))
+#define SET_H_SYS_PPC(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PPC), (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR))
+#define SET_H_SYS_FPCSR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR0() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR0))
+#define SET_H_SYS_EPCR0(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR0), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR1() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR1))
+#define SET_H_SYS_EPCR1(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR1), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR2() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR2))
+#define SET_H_SYS_EPCR2(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR2), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR3() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR3))
+#define SET_H_SYS_EPCR3(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR3), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR4() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR4))
+#define SET_H_SYS_EPCR4(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR4), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR5() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR5))
+#define SET_H_SYS_EPCR5(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR5), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR6() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR6))
+#define SET_H_SYS_EPCR6(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR6), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR7() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR7))
+#define SET_H_SYS_EPCR7(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR7), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR8() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR8))
+#define SET_H_SYS_EPCR8(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR8), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR9() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR9))
+#define SET_H_SYS_EPCR9(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR9), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR10() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR10))
+#define SET_H_SYS_EPCR10(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR10), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR11() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR11))
+#define SET_H_SYS_EPCR11(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR11), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR12() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR12))
+#define SET_H_SYS_EPCR12(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR12), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR13() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR13))
+#define SET_H_SYS_EPCR13(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR13), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR14() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR14))
+#define SET_H_SYS_EPCR14(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR14), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR15() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR15))
+#define SET_H_SYS_EPCR15(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR15), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR0() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR0))
+#define SET_H_SYS_EEAR0(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR0), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR1() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR1))
+#define SET_H_SYS_EEAR1(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR1), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR2() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR2))
+#define SET_H_SYS_EEAR2(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR2), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR3() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR3))
+#define SET_H_SYS_EEAR3(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR3), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR4() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR4))
+#define SET_H_SYS_EEAR4(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR4), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR5() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR5))
+#define SET_H_SYS_EEAR5(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR5), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR6() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR6))
+#define SET_H_SYS_EEAR6(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR6), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR7() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR7))
+#define SET_H_SYS_EEAR7(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR7), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR8() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR8))
+#define SET_H_SYS_EEAR8(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR8), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR9() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR9))
+#define SET_H_SYS_EEAR9(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR9), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR10() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR10))
+#define SET_H_SYS_EEAR10(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR10), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR11() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR11))
+#define SET_H_SYS_EEAR11(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR11), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR12() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR12))
+#define SET_H_SYS_EEAR12(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR12), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR13() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR13))
+#define SET_H_SYS_EEAR13(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR13), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR14() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR14))
+#define SET_H_SYS_EEAR14(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR14), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR15() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR15))
+#define SET_H_SYS_EEAR15(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR15), (x));\
+;} while (0)
+#define GET_H_SYS_ESR0() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR0))
+#define SET_H_SYS_ESR0(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR0), (x));\
+;} while (0)
+#define GET_H_SYS_ESR1() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR1))
+#define SET_H_SYS_ESR1(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR1), (x));\
+;} while (0)
+#define GET_H_SYS_ESR2() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR2))
+#define SET_H_SYS_ESR2(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR2), (x));\
+;} while (0)
+#define GET_H_SYS_ESR3() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR3))
+#define SET_H_SYS_ESR3(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR3), (x));\
+;} while (0)
+#define GET_H_SYS_ESR4() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR4))
+#define SET_H_SYS_ESR4(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR4), (x));\
+;} while (0)
+#define GET_H_SYS_ESR5() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR5))
+#define SET_H_SYS_ESR5(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR5), (x));\
+;} while (0)
+#define GET_H_SYS_ESR6() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR6))
+#define SET_H_SYS_ESR6(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR6), (x));\
+;} while (0)
+#define GET_H_SYS_ESR7() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR7))
+#define SET_H_SYS_ESR7(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR7), (x));\
+;} while (0)
+#define GET_H_SYS_ESR8() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR8))
+#define SET_H_SYS_ESR8(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR8), (x));\
+;} while (0)
+#define GET_H_SYS_ESR9() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR9))
+#define SET_H_SYS_ESR9(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR9), (x));\
+;} while (0)
+#define GET_H_SYS_ESR10() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR10))
+#define SET_H_SYS_ESR10(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR10), (x));\
+;} while (0)
+#define GET_H_SYS_ESR11() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR11))
+#define SET_H_SYS_ESR11(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR11), (x));\
+;} while (0)
+#define GET_H_SYS_ESR12() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR12))
+#define SET_H_SYS_ESR12(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR12), (x));\
+;} while (0)
+#define GET_H_SYS_ESR13() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR13))
+#define SET_H_SYS_ESR13(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR13), (x));\
+;} while (0)
+#define GET_H_SYS_ESR14() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR14))
+#define SET_H_SYS_ESR14(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR14), (x));\
+;} while (0)
+#define GET_H_SYS_ESR15() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR15))
+#define SET_H_SYS_ESR15(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR15), (x));\
+;} while (0)
+#define GET_H_SYS_GPR0() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))
+#define SET_H_SYS_GPR0(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0), (x));\
+;} while (0)
+#define GET_H_SYS_GPR1() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR1))
+#define SET_H_SYS_GPR1(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR1), (x));\
+;} while (0)
+#define GET_H_SYS_GPR2() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR2))
+#define SET_H_SYS_GPR2(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR2), (x));\
+;} while (0)
+#define GET_H_SYS_GPR3() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR3))
+#define SET_H_SYS_GPR3(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR3), (x));\
+;} while (0)
+#define GET_H_SYS_GPR4() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR4))
+#define SET_H_SYS_GPR4(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR4), (x));\
+;} while (0)
+#define GET_H_SYS_GPR5() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR5))
+#define SET_H_SYS_GPR5(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR5), (x));\
+;} while (0)
+#define GET_H_SYS_GPR6() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR6))
+#define SET_H_SYS_GPR6(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR6), (x));\
+;} while (0)
+#define GET_H_SYS_GPR7() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR7))
+#define SET_H_SYS_GPR7(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR7), (x));\
+;} while (0)
+#define GET_H_SYS_GPR8() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR8))
+#define SET_H_SYS_GPR8(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR8), (x));\
+;} while (0)
+#define GET_H_SYS_GPR9() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR9))
+#define SET_H_SYS_GPR9(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR9), (x));\
+;} while (0)
+#define GET_H_SYS_GPR10() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR10))
+#define SET_H_SYS_GPR10(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR10), (x));\
+;} while (0)
+#define GET_H_SYS_GPR11() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR11))
+#define SET_H_SYS_GPR11(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR11), (x));\
+;} while (0)
+#define GET_H_SYS_GPR12() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR12))
+#define SET_H_SYS_GPR12(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR12), (x));\
+;} while (0)
+#define GET_H_SYS_GPR13() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR13))
+#define SET_H_SYS_GPR13(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR13), (x));\
+;} while (0)
+#define GET_H_SYS_GPR14() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR14))
+#define SET_H_SYS_GPR14(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR14), (x));\
+;} while (0)
+#define GET_H_SYS_GPR15() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR15))
+#define SET_H_SYS_GPR15(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR15), (x));\
+;} while (0)
+#define GET_H_SYS_GPR16() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR16))
+#define SET_H_SYS_GPR16(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR16), (x));\
+;} while (0)
+#define GET_H_SYS_GPR17() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR17))
+#define SET_H_SYS_GPR17(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR17), (x));\
+;} while (0)
+#define GET_H_SYS_GPR18() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR18))
+#define SET_H_SYS_GPR18(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR18), (x));\
+;} while (0)
+#define GET_H_SYS_GPR19() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR19))
+#define SET_H_SYS_GPR19(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR19), (x));\
+;} while (0)
+#define GET_H_SYS_GPR20() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR20))
+#define SET_H_SYS_GPR20(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR20), (x));\
+;} while (0)
+#define GET_H_SYS_GPR21() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR21))
+#define SET_H_SYS_GPR21(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR21), (x));\
+;} while (0)
+#define GET_H_SYS_GPR22() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR22))
+#define SET_H_SYS_GPR22(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR22), (x));\
+;} while (0)
+#define GET_H_SYS_GPR23() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR23))
+#define SET_H_SYS_GPR23(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR23), (x));\
+;} while (0)
+#define GET_H_SYS_GPR24() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR24))
+#define SET_H_SYS_GPR24(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR24), (x));\
+;} while (0)
+#define GET_H_SYS_GPR25() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR25))
+#define SET_H_SYS_GPR25(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR25), (x));\
+;} while (0)
+#define GET_H_SYS_GPR26() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR26))
+#define SET_H_SYS_GPR26(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR26), (x));\
+;} while (0)
+#define GET_H_SYS_GPR27() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR27))
+#define SET_H_SYS_GPR27(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR27), (x));\
+;} while (0)
+#define GET_H_SYS_GPR28() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR28))
+#define SET_H_SYS_GPR28(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR28), (x));\
+;} while (0)
+#define GET_H_SYS_GPR29() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR29))
+#define SET_H_SYS_GPR29(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR29), (x));\
+;} while (0)
+#define GET_H_SYS_GPR30() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR30))
+#define SET_H_SYS_GPR30(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR30), (x));\
+;} while (0)
+#define GET_H_SYS_GPR31() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR31))
+#define SET_H_SYS_GPR31(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR31), (x));\
+;} while (0)
+#define GET_H_SYS_GPR32() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR32))
+#define SET_H_SYS_GPR32(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR32), (x));\
+;} while (0)
+#define GET_H_SYS_GPR33() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR33))
+#define SET_H_SYS_GPR33(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR33), (x));\
+;} while (0)
+#define GET_H_SYS_GPR34() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR34))
+#define SET_H_SYS_GPR34(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR34), (x));\
+;} while (0)
+#define GET_H_SYS_GPR35() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR35))
+#define SET_H_SYS_GPR35(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR35), (x));\
+;} while (0)
+#define GET_H_SYS_GPR36() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR36))
+#define SET_H_SYS_GPR36(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR36), (x));\
+;} while (0)
+#define GET_H_SYS_GPR37() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR37))
+#define SET_H_SYS_GPR37(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR37), (x));\
+;} while (0)
+#define GET_H_SYS_GPR38() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR38))
+#define SET_H_SYS_GPR38(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR38), (x));\
+;} while (0)
+#define GET_H_SYS_GPR39() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR39))
+#define SET_H_SYS_GPR39(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR39), (x));\
+;} while (0)
+#define GET_H_SYS_GPR40() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR40))
+#define SET_H_SYS_GPR40(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR40), (x));\
+;} while (0)
+#define GET_H_SYS_GPR41() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR41))
+#define SET_H_SYS_GPR41(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR41), (x));\
+;} while (0)
+#define GET_H_SYS_GPR42() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR42))
+#define SET_H_SYS_GPR42(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR42), (x));\
+;} while (0)
+#define GET_H_SYS_GPR43() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR43))
+#define SET_H_SYS_GPR43(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR43), (x));\
+;} while (0)
+#define GET_H_SYS_GPR44() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR44))
+#define SET_H_SYS_GPR44(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR44), (x));\
+;} while (0)
+#define GET_H_SYS_GPR45() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR45))
+#define SET_H_SYS_GPR45(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR45), (x));\
+;} while (0)
+#define GET_H_SYS_GPR46() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR46))
+#define SET_H_SYS_GPR46(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR46), (x));\
+;} while (0)
+#define GET_H_SYS_GPR47() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR47))
+#define SET_H_SYS_GPR47(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR47), (x));\
+;} while (0)
+#define GET_H_SYS_GPR48() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR48))
+#define SET_H_SYS_GPR48(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR48), (x));\
+;} while (0)
+#define GET_H_SYS_GPR49() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR49))
+#define SET_H_SYS_GPR49(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR49), (x));\
+;} while (0)
+#define GET_H_SYS_GPR50() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR50))
+#define SET_H_SYS_GPR50(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR50), (x));\
+;} while (0)
+#define GET_H_SYS_GPR51() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR51))
+#define SET_H_SYS_GPR51(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR51), (x));\
+;} while (0)
+#define GET_H_SYS_GPR52() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR52))
+#define SET_H_SYS_GPR52(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR52), (x));\
+;} while (0)
+#define GET_H_SYS_GPR53() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR53))
+#define SET_H_SYS_GPR53(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR53), (x));\
+;} while (0)
+#define GET_H_SYS_GPR54() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR54))
+#define SET_H_SYS_GPR54(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR54), (x));\
+;} while (0)
+#define GET_H_SYS_GPR55() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR55))
+#define SET_H_SYS_GPR55(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR55), (x));\
+;} while (0)
+#define GET_H_SYS_GPR56() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR56))
+#define SET_H_SYS_GPR56(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR56), (x));\
+;} while (0)
+#define GET_H_SYS_GPR57() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR57))
+#define SET_H_SYS_GPR57(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR57), (x));\
+;} while (0)
+#define GET_H_SYS_GPR58() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR58))
+#define SET_H_SYS_GPR58(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR58), (x));\
+;} while (0)
+#define GET_H_SYS_GPR59() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR59))
+#define SET_H_SYS_GPR59(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR59), (x));\
+;} while (0)
+#define GET_H_SYS_GPR60() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR60))
+#define SET_H_SYS_GPR60(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR60), (x));\
+;} while (0)
+#define GET_H_SYS_GPR61() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR61))
+#define SET_H_SYS_GPR61(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR61), (x));\
+;} while (0)
+#define GET_H_SYS_GPR62() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR62))
+#define SET_H_SYS_GPR62(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR62), (x));\
+;} while (0)
+#define GET_H_SYS_GPR63() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR63))
+#define SET_H_SYS_GPR63(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR63), (x));\
+;} while (0)
+#define GET_H_SYS_GPR64() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR64))
+#define SET_H_SYS_GPR64(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR64), (x));\
+;} while (0)
+#define GET_H_SYS_GPR65() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR65))
+#define SET_H_SYS_GPR65(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR65), (x));\
+;} while (0)
+#define GET_H_SYS_GPR66() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR66))
+#define SET_H_SYS_GPR66(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR66), (x));\
+;} while (0)
+#define GET_H_SYS_GPR67() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR67))
+#define SET_H_SYS_GPR67(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR67), (x));\
+;} while (0)
+#define GET_H_SYS_GPR68() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR68))
+#define SET_H_SYS_GPR68(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR68), (x));\
+;} while (0)
+#define GET_H_SYS_GPR69() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR69))
+#define SET_H_SYS_GPR69(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR69), (x));\
+;} while (0)
+#define GET_H_SYS_GPR70() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR70))
+#define SET_H_SYS_GPR70(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR70), (x));\
+;} while (0)
+#define GET_H_SYS_GPR71() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR71))
+#define SET_H_SYS_GPR71(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR71), (x));\
+;} while (0)
+#define GET_H_SYS_GPR72() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR72))
+#define SET_H_SYS_GPR72(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR72), (x));\
+;} while (0)
+#define GET_H_SYS_GPR73() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR73))
+#define SET_H_SYS_GPR73(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR73), (x));\
+;} while (0)
+#define GET_H_SYS_GPR74() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR74))
+#define SET_H_SYS_GPR74(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR74), (x));\
+;} while (0)
+#define GET_H_SYS_GPR75() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR75))
+#define SET_H_SYS_GPR75(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR75), (x));\
+;} while (0)
+#define GET_H_SYS_GPR76() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR76))
+#define SET_H_SYS_GPR76(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR76), (x));\
+;} while (0)
+#define GET_H_SYS_GPR77() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR77))
+#define SET_H_SYS_GPR77(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR77), (x));\
+;} while (0)
+#define GET_H_SYS_GPR78() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR78))
+#define SET_H_SYS_GPR78(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR78), (x));\
+;} while (0)
+#define GET_H_SYS_GPR79() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR79))
+#define SET_H_SYS_GPR79(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR79), (x));\
+;} while (0)
+#define GET_H_SYS_GPR80() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR80))
+#define SET_H_SYS_GPR80(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR80), (x));\
+;} while (0)
+#define GET_H_SYS_GPR81() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR81))
+#define SET_H_SYS_GPR81(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR81), (x));\
+;} while (0)
+#define GET_H_SYS_GPR82() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR82))
+#define SET_H_SYS_GPR82(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR82), (x));\
+;} while (0)
+#define GET_H_SYS_GPR83() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR83))
+#define SET_H_SYS_GPR83(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR83), (x));\
+;} while (0)
+#define GET_H_SYS_GPR84() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR84))
+#define SET_H_SYS_GPR84(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR84), (x));\
+;} while (0)
+#define GET_H_SYS_GPR85() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR85))
+#define SET_H_SYS_GPR85(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR85), (x));\
+;} while (0)
+#define GET_H_SYS_GPR86() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR86))
+#define SET_H_SYS_GPR86(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR86), (x));\
+;} while (0)
+#define GET_H_SYS_GPR87() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR87))
+#define SET_H_SYS_GPR87(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR87), (x));\
+;} while (0)
+#define GET_H_SYS_GPR88() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR88))
+#define SET_H_SYS_GPR88(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR88), (x));\
+;} while (0)
+#define GET_H_SYS_GPR89() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR89))
+#define SET_H_SYS_GPR89(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR89), (x));\
+;} while (0)
+#define GET_H_SYS_GPR90() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR90))
+#define SET_H_SYS_GPR90(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR90), (x));\
+;} while (0)
+#define GET_H_SYS_GPR91() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR91))
+#define SET_H_SYS_GPR91(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR91), (x));\
+;} while (0)
+#define GET_H_SYS_GPR92() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR92))
+#define SET_H_SYS_GPR92(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR92), (x));\
+;} while (0)
+#define GET_H_SYS_GPR93() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR93))
+#define SET_H_SYS_GPR93(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR93), (x));\
+;} while (0)
+#define GET_H_SYS_GPR94() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR94))
+#define SET_H_SYS_GPR94(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR94), (x));\
+;} while (0)
+#define GET_H_SYS_GPR95() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR95))
+#define SET_H_SYS_GPR95(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR95), (x));\
+;} while (0)
+#define GET_H_SYS_GPR96() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR96))
+#define SET_H_SYS_GPR96(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR96), (x));\
+;} while (0)
+#define GET_H_SYS_GPR97() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR97))
+#define SET_H_SYS_GPR97(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR97), (x));\
+;} while (0)
+#define GET_H_SYS_GPR98() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR98))
+#define SET_H_SYS_GPR98(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR98), (x));\
+;} while (0)
+#define GET_H_SYS_GPR99() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR99))
+#define SET_H_SYS_GPR99(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR99), (x));\
+;} while (0)
+#define GET_H_SYS_GPR100() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR100))
+#define SET_H_SYS_GPR100(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR100), (x));\
+;} while (0)
+#define GET_H_SYS_GPR101() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR101))
+#define SET_H_SYS_GPR101(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR101), (x));\
+;} while (0)
+#define GET_H_SYS_GPR102() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR102))
+#define SET_H_SYS_GPR102(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR102), (x));\
+;} while (0)
+#define GET_H_SYS_GPR103() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR103))
+#define SET_H_SYS_GPR103(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR103), (x));\
+;} while (0)
+#define GET_H_SYS_GPR104() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR104))
+#define SET_H_SYS_GPR104(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR104), (x));\
+;} while (0)
+#define GET_H_SYS_GPR105() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR105))
+#define SET_H_SYS_GPR105(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR105), (x));\
+;} while (0)
+#define GET_H_SYS_GPR106() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR106))
+#define SET_H_SYS_GPR106(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR106), (x));\
+;} while (0)
+#define GET_H_SYS_GPR107() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR107))
+#define SET_H_SYS_GPR107(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR107), (x));\
+;} while (0)
+#define GET_H_SYS_GPR108() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR108))
+#define SET_H_SYS_GPR108(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR108), (x));\
+;} while (0)
+#define GET_H_SYS_GPR109() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR109))
+#define SET_H_SYS_GPR109(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR109), (x));\
+;} while (0)
+#define GET_H_SYS_GPR110() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR110))
+#define SET_H_SYS_GPR110(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR110), (x));\
+;} while (0)
+#define GET_H_SYS_GPR111() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR111))
+#define SET_H_SYS_GPR111(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR111), (x));\
+;} while (0)
+#define GET_H_SYS_GPR112() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR112))
+#define SET_H_SYS_GPR112(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR112), (x));\
+;} while (0)
+#define GET_H_SYS_GPR113() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR113))
+#define SET_H_SYS_GPR113(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR113), (x));\
+;} while (0)
+#define GET_H_SYS_GPR114() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR114))
+#define SET_H_SYS_GPR114(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR114), (x));\
+;} while (0)
+#define GET_H_SYS_GPR115() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR115))
+#define SET_H_SYS_GPR115(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR115), (x));\
+;} while (0)
+#define GET_H_SYS_GPR116() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR116))
+#define SET_H_SYS_GPR116(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR116), (x));\
+;} while (0)
+#define GET_H_SYS_GPR117() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR117))
+#define SET_H_SYS_GPR117(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR117), (x));\
+;} while (0)
+#define GET_H_SYS_GPR118() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR118))
+#define SET_H_SYS_GPR118(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR118), (x));\
+;} while (0)
+#define GET_H_SYS_GPR119() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR119))
+#define SET_H_SYS_GPR119(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR119), (x));\
+;} while (0)
+#define GET_H_SYS_GPR120() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR120))
+#define SET_H_SYS_GPR120(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR120), (x));\
+;} while (0)
+#define GET_H_SYS_GPR121() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR121))
+#define SET_H_SYS_GPR121(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR121), (x));\
+;} while (0)
+#define GET_H_SYS_GPR122() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR122))
+#define SET_H_SYS_GPR122(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR122), (x));\
+;} while (0)
+#define GET_H_SYS_GPR123() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR123))
+#define SET_H_SYS_GPR123(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR123), (x));\
+;} while (0)
+#define GET_H_SYS_GPR124() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR124))
+#define SET_H_SYS_GPR124(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR124), (x));\
+;} while (0)
+#define GET_H_SYS_GPR125() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR125))
+#define SET_H_SYS_GPR125(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR125), (x));\
+;} while (0)
+#define GET_H_SYS_GPR126() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR126))
+#define SET_H_SYS_GPR126(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR126), (x));\
+;} while (0)
+#define GET_H_SYS_GPR127() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR127))
+#define SET_H_SYS_GPR127(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR127), (x));\
+;} while (0)
+#define GET_H_SYS_GPR128() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR128))
+#define SET_H_SYS_GPR128(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR128), (x));\
+;} while (0)
+#define GET_H_SYS_GPR129() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR129))
+#define SET_H_SYS_GPR129(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR129), (x));\
+;} while (0)
+#define GET_H_SYS_GPR130() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR130))
+#define SET_H_SYS_GPR130(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR130), (x));\
+;} while (0)
+#define GET_H_SYS_GPR131() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR131))
+#define SET_H_SYS_GPR131(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR131), (x));\
+;} while (0)
+#define GET_H_SYS_GPR132() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR132))
+#define SET_H_SYS_GPR132(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR132), (x));\
+;} while (0)
+#define GET_H_SYS_GPR133() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR133))
+#define SET_H_SYS_GPR133(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR133), (x));\
+;} while (0)
+#define GET_H_SYS_GPR134() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR134))
+#define SET_H_SYS_GPR134(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR134), (x));\
+;} while (0)
+#define GET_H_SYS_GPR135() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR135))
+#define SET_H_SYS_GPR135(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR135), (x));\
+;} while (0)
+#define GET_H_SYS_GPR136() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR136))
+#define SET_H_SYS_GPR136(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR136), (x));\
+;} while (0)
+#define GET_H_SYS_GPR137() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR137))
+#define SET_H_SYS_GPR137(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR137), (x));\
+;} while (0)
+#define GET_H_SYS_GPR138() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR138))
+#define SET_H_SYS_GPR138(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR138), (x));\
+;} while (0)
+#define GET_H_SYS_GPR139() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR139))
+#define SET_H_SYS_GPR139(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR139), (x));\
+;} while (0)
+#define GET_H_SYS_GPR140() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR140))
+#define SET_H_SYS_GPR140(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR140), (x));\
+;} while (0)
+#define GET_H_SYS_GPR141() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR141))
+#define SET_H_SYS_GPR141(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR141), (x));\
+;} while (0)
+#define GET_H_SYS_GPR142() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR142))
+#define SET_H_SYS_GPR142(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR142), (x));\
+;} while (0)
+#define GET_H_SYS_GPR143() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR143))
+#define SET_H_SYS_GPR143(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR143), (x));\
+;} while (0)
+#define GET_H_SYS_GPR144() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR144))
+#define SET_H_SYS_GPR144(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR144), (x));\
+;} while (0)
+#define GET_H_SYS_GPR145() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR145))
+#define SET_H_SYS_GPR145(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR145), (x));\
+;} while (0)
+#define GET_H_SYS_GPR146() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR146))
+#define SET_H_SYS_GPR146(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR146), (x));\
+;} while (0)
+#define GET_H_SYS_GPR147() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR147))
+#define SET_H_SYS_GPR147(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR147), (x));\
+;} while (0)
+#define GET_H_SYS_GPR148() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR148))
+#define SET_H_SYS_GPR148(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR148), (x));\
+;} while (0)
+#define GET_H_SYS_GPR149() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR149))
+#define SET_H_SYS_GPR149(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR149), (x));\
+;} while (0)
+#define GET_H_SYS_GPR150() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR150))
+#define SET_H_SYS_GPR150(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR150), (x));\
+;} while (0)
+#define GET_H_SYS_GPR151() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR151))
+#define SET_H_SYS_GPR151(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR151), (x));\
+;} while (0)
+#define GET_H_SYS_GPR152() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR152))
+#define SET_H_SYS_GPR152(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR152), (x));\
+;} while (0)
+#define GET_H_SYS_GPR153() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR153))
+#define SET_H_SYS_GPR153(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR153), (x));\
+;} while (0)
+#define GET_H_SYS_GPR154() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR154))
+#define SET_H_SYS_GPR154(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR154), (x));\
+;} while (0)
+#define GET_H_SYS_GPR155() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR155))
+#define SET_H_SYS_GPR155(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR155), (x));\
+;} while (0)
+#define GET_H_SYS_GPR156() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR156))
+#define SET_H_SYS_GPR156(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR156), (x));\
+;} while (0)
+#define GET_H_SYS_GPR157() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR157))
+#define SET_H_SYS_GPR157(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR157), (x));\
+;} while (0)
+#define GET_H_SYS_GPR158() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR158))
+#define SET_H_SYS_GPR158(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR158), (x));\
+;} while (0)
+#define GET_H_SYS_GPR159() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR159))
+#define SET_H_SYS_GPR159(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR159), (x));\
+;} while (0)
+#define GET_H_SYS_GPR160() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR160))
+#define SET_H_SYS_GPR160(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR160), (x));\
+;} while (0)
+#define GET_H_SYS_GPR161() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR161))
+#define SET_H_SYS_GPR161(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR161), (x));\
+;} while (0)
+#define GET_H_SYS_GPR162() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR162))
+#define SET_H_SYS_GPR162(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR162), (x));\
+;} while (0)
+#define GET_H_SYS_GPR163() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR163))
+#define SET_H_SYS_GPR163(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR163), (x));\
+;} while (0)
+#define GET_H_SYS_GPR164() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR164))
+#define SET_H_SYS_GPR164(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR164), (x));\
+;} while (0)
+#define GET_H_SYS_GPR165() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR165))
+#define SET_H_SYS_GPR165(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR165), (x));\
+;} while (0)
+#define GET_H_SYS_GPR166() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR166))
+#define SET_H_SYS_GPR166(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR166), (x));\
+;} while (0)
+#define GET_H_SYS_GPR167() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR167))
+#define SET_H_SYS_GPR167(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR167), (x));\
+;} while (0)
+#define GET_H_SYS_GPR168() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR168))
+#define SET_H_SYS_GPR168(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR168), (x));\
+;} while (0)
+#define GET_H_SYS_GPR169() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR169))
+#define SET_H_SYS_GPR169(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR169), (x));\
+;} while (0)
+#define GET_H_SYS_GPR170() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR170))
+#define SET_H_SYS_GPR170(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR170), (x));\
+;} while (0)
+#define GET_H_SYS_GPR171() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR171))
+#define SET_H_SYS_GPR171(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR171), (x));\
+;} while (0)
+#define GET_H_SYS_GPR172() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR172))
+#define SET_H_SYS_GPR172(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR172), (x));\
+;} while (0)
+#define GET_H_SYS_GPR173() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR173))
+#define SET_H_SYS_GPR173(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR173), (x));\
+;} while (0)
+#define GET_H_SYS_GPR174() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR174))
+#define SET_H_SYS_GPR174(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR174), (x));\
+;} while (0)
+#define GET_H_SYS_GPR175() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR175))
+#define SET_H_SYS_GPR175(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR175), (x));\
+;} while (0)
+#define GET_H_SYS_GPR176() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR176))
+#define SET_H_SYS_GPR176(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR176), (x));\
+;} while (0)
+#define GET_H_SYS_GPR177() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR177))
+#define SET_H_SYS_GPR177(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR177), (x));\
+;} while (0)
+#define GET_H_SYS_GPR178() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR178))
+#define SET_H_SYS_GPR178(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR178), (x));\
+;} while (0)
+#define GET_H_SYS_GPR179() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR179))
+#define SET_H_SYS_GPR179(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR179), (x));\
+;} while (0)
+#define GET_H_SYS_GPR180() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR180))
+#define SET_H_SYS_GPR180(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR180), (x));\
+;} while (0)
+#define GET_H_SYS_GPR181() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR181))
+#define SET_H_SYS_GPR181(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR181), (x));\
+;} while (0)
+#define GET_H_SYS_GPR182() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR182))
+#define SET_H_SYS_GPR182(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR182), (x));\
+;} while (0)
+#define GET_H_SYS_GPR183() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR183))
+#define SET_H_SYS_GPR183(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR183), (x));\
+;} while (0)
+#define GET_H_SYS_GPR184() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR184))
+#define SET_H_SYS_GPR184(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR184), (x));\
+;} while (0)
+#define GET_H_SYS_GPR185() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR185))
+#define SET_H_SYS_GPR185(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR185), (x));\
+;} while (0)
+#define GET_H_SYS_GPR186() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR186))
+#define SET_H_SYS_GPR186(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR186), (x));\
+;} while (0)
+#define GET_H_SYS_GPR187() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR187))
+#define SET_H_SYS_GPR187(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR187), (x));\
+;} while (0)
+#define GET_H_SYS_GPR188() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR188))
+#define SET_H_SYS_GPR188(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR188), (x));\
+;} while (0)
+#define GET_H_SYS_GPR189() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR189))
+#define SET_H_SYS_GPR189(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR189), (x));\
+;} while (0)
+#define GET_H_SYS_GPR190() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR190))
+#define SET_H_SYS_GPR190(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR190), (x));\
+;} while (0)
+#define GET_H_SYS_GPR191() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR191))
+#define SET_H_SYS_GPR191(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR191), (x));\
+;} while (0)
+#define GET_H_SYS_GPR192() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR192))
+#define SET_H_SYS_GPR192(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR192), (x));\
+;} while (0)
+#define GET_H_SYS_GPR193() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR193))
+#define SET_H_SYS_GPR193(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR193), (x));\
+;} while (0)
+#define GET_H_SYS_GPR194() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR194))
+#define SET_H_SYS_GPR194(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR194), (x));\
+;} while (0)
+#define GET_H_SYS_GPR195() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR195))
+#define SET_H_SYS_GPR195(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR195), (x));\
+;} while (0)
+#define GET_H_SYS_GPR196() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR196))
+#define SET_H_SYS_GPR196(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR196), (x));\
+;} while (0)
+#define GET_H_SYS_GPR197() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR197))
+#define SET_H_SYS_GPR197(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR197), (x));\
+;} while (0)
+#define GET_H_SYS_GPR198() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR198))
+#define SET_H_SYS_GPR198(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR198), (x));\
+;} while (0)
+#define GET_H_SYS_GPR199() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR199))
+#define SET_H_SYS_GPR199(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR199), (x));\
+;} while (0)
+#define GET_H_SYS_GPR200() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR200))
+#define SET_H_SYS_GPR200(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR200), (x));\
+;} while (0)
+#define GET_H_SYS_GPR201() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR201))
+#define SET_H_SYS_GPR201(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR201), (x));\
+;} while (0)
+#define GET_H_SYS_GPR202() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR202))
+#define SET_H_SYS_GPR202(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR202), (x));\
+;} while (0)
+#define GET_H_SYS_GPR203() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR203))
+#define SET_H_SYS_GPR203(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR203), (x));\
+;} while (0)
+#define GET_H_SYS_GPR204() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR204))
+#define SET_H_SYS_GPR204(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR204), (x));\
+;} while (0)
+#define GET_H_SYS_GPR205() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR205))
+#define SET_H_SYS_GPR205(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR205), (x));\
+;} while (0)
+#define GET_H_SYS_GPR206() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR206))
+#define SET_H_SYS_GPR206(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR206), (x));\
+;} while (0)
+#define GET_H_SYS_GPR207() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR207))
+#define SET_H_SYS_GPR207(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR207), (x));\
+;} while (0)
+#define GET_H_SYS_GPR208() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR208))
+#define SET_H_SYS_GPR208(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR208), (x));\
+;} while (0)
+#define GET_H_SYS_GPR209() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR209))
+#define SET_H_SYS_GPR209(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR209), (x));\
+;} while (0)
+#define GET_H_SYS_GPR210() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR210))
+#define SET_H_SYS_GPR210(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR210), (x));\
+;} while (0)
+#define GET_H_SYS_GPR211() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR211))
+#define SET_H_SYS_GPR211(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR211), (x));\
+;} while (0)
+#define GET_H_SYS_GPR212() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR212))
+#define SET_H_SYS_GPR212(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR212), (x));\
+;} while (0)
+#define GET_H_SYS_GPR213() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR213))
+#define SET_H_SYS_GPR213(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR213), (x));\
+;} while (0)
+#define GET_H_SYS_GPR214() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR214))
+#define SET_H_SYS_GPR214(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR214), (x));\
+;} while (0)
+#define GET_H_SYS_GPR215() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR215))
+#define SET_H_SYS_GPR215(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR215), (x));\
+;} while (0)
+#define GET_H_SYS_GPR216() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR216))
+#define SET_H_SYS_GPR216(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR216), (x));\
+;} while (0)
+#define GET_H_SYS_GPR217() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR217))
+#define SET_H_SYS_GPR217(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR217), (x));\
+;} while (0)
+#define GET_H_SYS_GPR218() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR218))
+#define SET_H_SYS_GPR218(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR218), (x));\
+;} while (0)
+#define GET_H_SYS_GPR219() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR219))
+#define SET_H_SYS_GPR219(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR219), (x));\
+;} while (0)
+#define GET_H_SYS_GPR220() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR220))
+#define SET_H_SYS_GPR220(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR220), (x));\
+;} while (0)
+#define GET_H_SYS_GPR221() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR221))
+#define SET_H_SYS_GPR221(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR221), (x));\
+;} while (0)
+#define GET_H_SYS_GPR222() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR222))
+#define SET_H_SYS_GPR222(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR222), (x));\
+;} while (0)
+#define GET_H_SYS_GPR223() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR223))
+#define SET_H_SYS_GPR223(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR223), (x));\
+;} while (0)
+#define GET_H_SYS_GPR224() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR224))
+#define SET_H_SYS_GPR224(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR224), (x));\
+;} while (0)
+#define GET_H_SYS_GPR225() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR225))
+#define SET_H_SYS_GPR225(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR225), (x));\
+;} while (0)
+#define GET_H_SYS_GPR226() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR226))
+#define SET_H_SYS_GPR226(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR226), (x));\
+;} while (0)
+#define GET_H_SYS_GPR227() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR227))
+#define SET_H_SYS_GPR227(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR227), (x));\
+;} while (0)
+#define GET_H_SYS_GPR228() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR228))
+#define SET_H_SYS_GPR228(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR228), (x));\
+;} while (0)
+#define GET_H_SYS_GPR229() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR229))
+#define SET_H_SYS_GPR229(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR229), (x));\
+;} while (0)
+#define GET_H_SYS_GPR230() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR230))
+#define SET_H_SYS_GPR230(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR230), (x));\
+;} while (0)
+#define GET_H_SYS_GPR231() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR231))
+#define SET_H_SYS_GPR231(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR231), (x));\
+;} while (0)
+#define GET_H_SYS_GPR232() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR232))
+#define SET_H_SYS_GPR232(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR232), (x));\
+;} while (0)
+#define GET_H_SYS_GPR233() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR233))
+#define SET_H_SYS_GPR233(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR233), (x));\
+;} while (0)
+#define GET_H_SYS_GPR234() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR234))
+#define SET_H_SYS_GPR234(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR234), (x));\
+;} while (0)
+#define GET_H_SYS_GPR235() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR235))
+#define SET_H_SYS_GPR235(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR235), (x));\
+;} while (0)
+#define GET_H_SYS_GPR236() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR236))
+#define SET_H_SYS_GPR236(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR236), (x));\
+;} while (0)
+#define GET_H_SYS_GPR237() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR237))
+#define SET_H_SYS_GPR237(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR237), (x));\
+;} while (0)
+#define GET_H_SYS_GPR238() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR238))
+#define SET_H_SYS_GPR238(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR238), (x));\
+;} while (0)
+#define GET_H_SYS_GPR239() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR239))
+#define SET_H_SYS_GPR239(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR239), (x));\
+;} while (0)
+#define GET_H_SYS_GPR240() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR240))
+#define SET_H_SYS_GPR240(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR240), (x));\
+;} while (0)
+#define GET_H_SYS_GPR241() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR241))
+#define SET_H_SYS_GPR241(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR241), (x));\
+;} while (0)
+#define GET_H_SYS_GPR242() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR242))
+#define SET_H_SYS_GPR242(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR242), (x));\
+;} while (0)
+#define GET_H_SYS_GPR243() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR243))
+#define SET_H_SYS_GPR243(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR243), (x));\
+;} while (0)
+#define GET_H_SYS_GPR244() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR244))
+#define SET_H_SYS_GPR244(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR244), (x));\
+;} while (0)
+#define GET_H_SYS_GPR245() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR245))
+#define SET_H_SYS_GPR245(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR245), (x));\
+;} while (0)
+#define GET_H_SYS_GPR246() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR246))
+#define SET_H_SYS_GPR246(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR246), (x));\
+;} while (0)
+#define GET_H_SYS_GPR247() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR247))
+#define SET_H_SYS_GPR247(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR247), (x));\
+;} while (0)
+#define GET_H_SYS_GPR248() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR248))
+#define SET_H_SYS_GPR248(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR248), (x));\
+;} while (0)
+#define GET_H_SYS_GPR249() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR249))
+#define SET_H_SYS_GPR249(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR249), (x));\
+;} while (0)
+#define GET_H_SYS_GPR250() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR250))
+#define SET_H_SYS_GPR250(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR250), (x));\
+;} while (0)
+#define GET_H_SYS_GPR251() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR251))
+#define SET_H_SYS_GPR251(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR251), (x));\
+;} while (0)
+#define GET_H_SYS_GPR252() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR252))
+#define SET_H_SYS_GPR252(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR252), (x));\
+;} while (0)
+#define GET_H_SYS_GPR253() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR253))
+#define SET_H_SYS_GPR253(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR253), (x));\
+;} while (0)
+#define GET_H_SYS_GPR254() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR254))
+#define SET_H_SYS_GPR254(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR254), (x));\
+;} while (0)
+#define GET_H_SYS_GPR255() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR255))
+#define SET_H_SYS_GPR255(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR255), (x));\
+;} while (0)
+#define GET_H_SYS_GPR256() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR256))
+#define SET_H_SYS_GPR256(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR256), (x));\
+;} while (0)
+#define GET_H_SYS_GPR257() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR257))
+#define SET_H_SYS_GPR257(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR257), (x));\
+;} while (0)
+#define GET_H_SYS_GPR258() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR258))
+#define SET_H_SYS_GPR258(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR258), (x));\
+;} while (0)
+#define GET_H_SYS_GPR259() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR259))
+#define SET_H_SYS_GPR259(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR259), (x));\
+;} while (0)
+#define GET_H_SYS_GPR260() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR260))
+#define SET_H_SYS_GPR260(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR260), (x));\
+;} while (0)
+#define GET_H_SYS_GPR261() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR261))
+#define SET_H_SYS_GPR261(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR261), (x));\
+;} while (0)
+#define GET_H_SYS_GPR262() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR262))
+#define SET_H_SYS_GPR262(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR262), (x));\
+;} while (0)
+#define GET_H_SYS_GPR263() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR263))
+#define SET_H_SYS_GPR263(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR263), (x));\
+;} while (0)
+#define GET_H_SYS_GPR264() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR264))
+#define SET_H_SYS_GPR264(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR264), (x));\
+;} while (0)
+#define GET_H_SYS_GPR265() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR265))
+#define SET_H_SYS_GPR265(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR265), (x));\
+;} while (0)
+#define GET_H_SYS_GPR266() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR266))
+#define SET_H_SYS_GPR266(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR266), (x));\
+;} while (0)
+#define GET_H_SYS_GPR267() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR267))
+#define SET_H_SYS_GPR267(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR267), (x));\
+;} while (0)
+#define GET_H_SYS_GPR268() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR268))
+#define SET_H_SYS_GPR268(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR268), (x));\
+;} while (0)
+#define GET_H_SYS_GPR269() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR269))
+#define SET_H_SYS_GPR269(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR269), (x));\
+;} while (0)
+#define GET_H_SYS_GPR270() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR270))
+#define SET_H_SYS_GPR270(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR270), (x));\
+;} while (0)
+#define GET_H_SYS_GPR271() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR271))
+#define SET_H_SYS_GPR271(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR271), (x));\
+;} while (0)
+#define GET_H_SYS_GPR272() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR272))
+#define SET_H_SYS_GPR272(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR272), (x));\
+;} while (0)
+#define GET_H_SYS_GPR273() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR273))
+#define SET_H_SYS_GPR273(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR273), (x));\
+;} while (0)
+#define GET_H_SYS_GPR274() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR274))
+#define SET_H_SYS_GPR274(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR274), (x));\
+;} while (0)
+#define GET_H_SYS_GPR275() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR275))
+#define SET_H_SYS_GPR275(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR275), (x));\
+;} while (0)
+#define GET_H_SYS_GPR276() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR276))
+#define SET_H_SYS_GPR276(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR276), (x));\
+;} while (0)
+#define GET_H_SYS_GPR277() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR277))
+#define SET_H_SYS_GPR277(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR277), (x));\
+;} while (0)
+#define GET_H_SYS_GPR278() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR278))
+#define SET_H_SYS_GPR278(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR278), (x));\
+;} while (0)
+#define GET_H_SYS_GPR279() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR279))
+#define SET_H_SYS_GPR279(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR279), (x));\
+;} while (0)
+#define GET_H_SYS_GPR280() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR280))
+#define SET_H_SYS_GPR280(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR280), (x));\
+;} while (0)
+#define GET_H_SYS_GPR281() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR281))
+#define SET_H_SYS_GPR281(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR281), (x));\
+;} while (0)
+#define GET_H_SYS_GPR282() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR282))
+#define SET_H_SYS_GPR282(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR282), (x));\
+;} while (0)
+#define GET_H_SYS_GPR283() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR283))
+#define SET_H_SYS_GPR283(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR283), (x));\
+;} while (0)
+#define GET_H_SYS_GPR284() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR284))
+#define SET_H_SYS_GPR284(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR284), (x));\
+;} while (0)
+#define GET_H_SYS_GPR285() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR285))
+#define SET_H_SYS_GPR285(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR285), (x));\
+;} while (0)
+#define GET_H_SYS_GPR286() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR286))
+#define SET_H_SYS_GPR286(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR286), (x));\
+;} while (0)
+#define GET_H_SYS_GPR287() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR287))
+#define SET_H_SYS_GPR287(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR287), (x));\
+;} while (0)
+#define GET_H_SYS_GPR288() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR288))
+#define SET_H_SYS_GPR288(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR288), (x));\
+;} while (0)
+#define GET_H_SYS_GPR289() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR289))
+#define SET_H_SYS_GPR289(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR289), (x));\
+;} while (0)
+#define GET_H_SYS_GPR290() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR290))
+#define SET_H_SYS_GPR290(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR290), (x));\
+;} while (0)
+#define GET_H_SYS_GPR291() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR291))
+#define SET_H_SYS_GPR291(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR291), (x));\
+;} while (0)
+#define GET_H_SYS_GPR292() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR292))
+#define SET_H_SYS_GPR292(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR292), (x));\
+;} while (0)
+#define GET_H_SYS_GPR293() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR293))
+#define SET_H_SYS_GPR293(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR293), (x));\
+;} while (0)
+#define GET_H_SYS_GPR294() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR294))
+#define SET_H_SYS_GPR294(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR294), (x));\
+;} while (0)
+#define GET_H_SYS_GPR295() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR295))
+#define SET_H_SYS_GPR295(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR295), (x));\
+;} while (0)
+#define GET_H_SYS_GPR296() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR296))
+#define SET_H_SYS_GPR296(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR296), (x));\
+;} while (0)
+#define GET_H_SYS_GPR297() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR297))
+#define SET_H_SYS_GPR297(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR297), (x));\
+;} while (0)
+#define GET_H_SYS_GPR298() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR298))
+#define SET_H_SYS_GPR298(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR298), (x));\
+;} while (0)
+#define GET_H_SYS_GPR299() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR299))
+#define SET_H_SYS_GPR299(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR299), (x));\
+;} while (0)
+#define GET_H_SYS_GPR300() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR300))
+#define SET_H_SYS_GPR300(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR300), (x));\
+;} while (0)
+#define GET_H_SYS_GPR301() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR301))
+#define SET_H_SYS_GPR301(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR301), (x));\
+;} while (0)
+#define GET_H_SYS_GPR302() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR302))
+#define SET_H_SYS_GPR302(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR302), (x));\
+;} while (0)
+#define GET_H_SYS_GPR303() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR303))
+#define SET_H_SYS_GPR303(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR303), (x));\
+;} while (0)
+#define GET_H_SYS_GPR304() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR304))
+#define SET_H_SYS_GPR304(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR304), (x));\
+;} while (0)
+#define GET_H_SYS_GPR305() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR305))
+#define SET_H_SYS_GPR305(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR305), (x));\
+;} while (0)
+#define GET_H_SYS_GPR306() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR306))
+#define SET_H_SYS_GPR306(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR306), (x));\
+;} while (0)
+#define GET_H_SYS_GPR307() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR307))
+#define SET_H_SYS_GPR307(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR307), (x));\
+;} while (0)
+#define GET_H_SYS_GPR308() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR308))
+#define SET_H_SYS_GPR308(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR308), (x));\
+;} while (0)
+#define GET_H_SYS_GPR309() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR309))
+#define SET_H_SYS_GPR309(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR309), (x));\
+;} while (0)
+#define GET_H_SYS_GPR310() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR310))
+#define SET_H_SYS_GPR310(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR310), (x));\
+;} while (0)
+#define GET_H_SYS_GPR311() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR311))
+#define SET_H_SYS_GPR311(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR311), (x));\
+;} while (0)
+#define GET_H_SYS_GPR312() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR312))
+#define SET_H_SYS_GPR312(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR312), (x));\
+;} while (0)
+#define GET_H_SYS_GPR313() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR313))
+#define SET_H_SYS_GPR313(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR313), (x));\
+;} while (0)
+#define GET_H_SYS_GPR314() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR314))
+#define SET_H_SYS_GPR314(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR314), (x));\
+;} while (0)
+#define GET_H_SYS_GPR315() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR315))
+#define SET_H_SYS_GPR315(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR315), (x));\
+;} while (0)
+#define GET_H_SYS_GPR316() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR316))
+#define SET_H_SYS_GPR316(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR316), (x));\
+;} while (0)
+#define GET_H_SYS_GPR317() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR317))
+#define SET_H_SYS_GPR317(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR317), (x));\
+;} while (0)
+#define GET_H_SYS_GPR318() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR318))
+#define SET_H_SYS_GPR318(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR318), (x));\
+;} while (0)
+#define GET_H_SYS_GPR319() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR319))
+#define SET_H_SYS_GPR319(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR319), (x));\
+;} while (0)
+#define GET_H_SYS_GPR320() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR320))
+#define SET_H_SYS_GPR320(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR320), (x));\
+;} while (0)
+#define GET_H_SYS_GPR321() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR321))
+#define SET_H_SYS_GPR321(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR321), (x));\
+;} while (0)
+#define GET_H_SYS_GPR322() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR322))
+#define SET_H_SYS_GPR322(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR322), (x));\
+;} while (0)
+#define GET_H_SYS_GPR323() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR323))
+#define SET_H_SYS_GPR323(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR323), (x));\
+;} while (0)
+#define GET_H_SYS_GPR324() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR324))
+#define SET_H_SYS_GPR324(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR324), (x));\
+;} while (0)
+#define GET_H_SYS_GPR325() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR325))
+#define SET_H_SYS_GPR325(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR325), (x));\
+;} while (0)
+#define GET_H_SYS_GPR326() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR326))
+#define SET_H_SYS_GPR326(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR326), (x));\
+;} while (0)
+#define GET_H_SYS_GPR327() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR327))
+#define SET_H_SYS_GPR327(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR327), (x));\
+;} while (0)
+#define GET_H_SYS_GPR328() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR328))
+#define SET_H_SYS_GPR328(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR328), (x));\
+;} while (0)
+#define GET_H_SYS_GPR329() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR329))
+#define SET_H_SYS_GPR329(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR329), (x));\
+;} while (0)
+#define GET_H_SYS_GPR330() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR330))
+#define SET_H_SYS_GPR330(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR330), (x));\
+;} while (0)
+#define GET_H_SYS_GPR331() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR331))
+#define SET_H_SYS_GPR331(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR331), (x));\
+;} while (0)
+#define GET_H_SYS_GPR332() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR332))
+#define SET_H_SYS_GPR332(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR332), (x));\
+;} while (0)
+#define GET_H_SYS_GPR333() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR333))
+#define SET_H_SYS_GPR333(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR333), (x));\
+;} while (0)
+#define GET_H_SYS_GPR334() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR334))
+#define SET_H_SYS_GPR334(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR334), (x));\
+;} while (0)
+#define GET_H_SYS_GPR335() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR335))
+#define SET_H_SYS_GPR335(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR335), (x));\
+;} while (0)
+#define GET_H_SYS_GPR336() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR336))
+#define SET_H_SYS_GPR336(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR336), (x));\
+;} while (0)
+#define GET_H_SYS_GPR337() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR337))
+#define SET_H_SYS_GPR337(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR337), (x));\
+;} while (0)
+#define GET_H_SYS_GPR338() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR338))
+#define SET_H_SYS_GPR338(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR338), (x));\
+;} while (0)
+#define GET_H_SYS_GPR339() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR339))
+#define SET_H_SYS_GPR339(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR339), (x));\
+;} while (0)
+#define GET_H_SYS_GPR340() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR340))
+#define SET_H_SYS_GPR340(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR340), (x));\
+;} while (0)
+#define GET_H_SYS_GPR341() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR341))
+#define SET_H_SYS_GPR341(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR341), (x));\
+;} while (0)
+#define GET_H_SYS_GPR342() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR342))
+#define SET_H_SYS_GPR342(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR342), (x));\
+;} while (0)
+#define GET_H_SYS_GPR343() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR343))
+#define SET_H_SYS_GPR343(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR343), (x));\
+;} while (0)
+#define GET_H_SYS_GPR344() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR344))
+#define SET_H_SYS_GPR344(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR344), (x));\
+;} while (0)
+#define GET_H_SYS_GPR345() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR345))
+#define SET_H_SYS_GPR345(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR345), (x));\
+;} while (0)
+#define GET_H_SYS_GPR346() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR346))
+#define SET_H_SYS_GPR346(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR346), (x));\
+;} while (0)
+#define GET_H_SYS_GPR347() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR347))
+#define SET_H_SYS_GPR347(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR347), (x));\
+;} while (0)
+#define GET_H_SYS_GPR348() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR348))
+#define SET_H_SYS_GPR348(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR348), (x));\
+;} while (0)
+#define GET_H_SYS_GPR349() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR349))
+#define SET_H_SYS_GPR349(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR349), (x));\
+;} while (0)
+#define GET_H_SYS_GPR350() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR350))
+#define SET_H_SYS_GPR350(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR350), (x));\
+;} while (0)
+#define GET_H_SYS_GPR351() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR351))
+#define SET_H_SYS_GPR351(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR351), (x));\
+;} while (0)
+#define GET_H_SYS_GPR352() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR352))
+#define SET_H_SYS_GPR352(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR352), (x));\
+;} while (0)
+#define GET_H_SYS_GPR353() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR353))
+#define SET_H_SYS_GPR353(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR353), (x));\
+;} while (0)
+#define GET_H_SYS_GPR354() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR354))
+#define SET_H_SYS_GPR354(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR354), (x));\
+;} while (0)
+#define GET_H_SYS_GPR355() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR355))
+#define SET_H_SYS_GPR355(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR355), (x));\
+;} while (0)
+#define GET_H_SYS_GPR356() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR356))
+#define SET_H_SYS_GPR356(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR356), (x));\
+;} while (0)
+#define GET_H_SYS_GPR357() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR357))
+#define SET_H_SYS_GPR357(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR357), (x));\
+;} while (0)
+#define GET_H_SYS_GPR358() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR358))
+#define SET_H_SYS_GPR358(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR358), (x));\
+;} while (0)
+#define GET_H_SYS_GPR359() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR359))
+#define SET_H_SYS_GPR359(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR359), (x));\
+;} while (0)
+#define GET_H_SYS_GPR360() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR360))
+#define SET_H_SYS_GPR360(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR360), (x));\
+;} while (0)
+#define GET_H_SYS_GPR361() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR361))
+#define SET_H_SYS_GPR361(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR361), (x));\
+;} while (0)
+#define GET_H_SYS_GPR362() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR362))
+#define SET_H_SYS_GPR362(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR362), (x));\
+;} while (0)
+#define GET_H_SYS_GPR363() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR363))
+#define SET_H_SYS_GPR363(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR363), (x));\
+;} while (0)
+#define GET_H_SYS_GPR364() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR364))
+#define SET_H_SYS_GPR364(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR364), (x));\
+;} while (0)
+#define GET_H_SYS_GPR365() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR365))
+#define SET_H_SYS_GPR365(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR365), (x));\
+;} while (0)
+#define GET_H_SYS_GPR366() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR366))
+#define SET_H_SYS_GPR366(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR366), (x));\
+;} while (0)
+#define GET_H_SYS_GPR367() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR367))
+#define SET_H_SYS_GPR367(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR367), (x));\
+;} while (0)
+#define GET_H_SYS_GPR368() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR368))
+#define SET_H_SYS_GPR368(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR368), (x));\
+;} while (0)
+#define GET_H_SYS_GPR369() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR369))
+#define SET_H_SYS_GPR369(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR369), (x));\
+;} while (0)
+#define GET_H_SYS_GPR370() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR370))
+#define SET_H_SYS_GPR370(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR370), (x));\
+;} while (0)
+#define GET_H_SYS_GPR371() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR371))
+#define SET_H_SYS_GPR371(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR371), (x));\
+;} while (0)
+#define GET_H_SYS_GPR372() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR372))
+#define SET_H_SYS_GPR372(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR372), (x));\
+;} while (0)
+#define GET_H_SYS_GPR373() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR373))
+#define SET_H_SYS_GPR373(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR373), (x));\
+;} while (0)
+#define GET_H_SYS_GPR374() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR374))
+#define SET_H_SYS_GPR374(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR374), (x));\
+;} while (0)
+#define GET_H_SYS_GPR375() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR375))
+#define SET_H_SYS_GPR375(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR375), (x));\
+;} while (0)
+#define GET_H_SYS_GPR376() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR376))
+#define SET_H_SYS_GPR376(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR376), (x));\
+;} while (0)
+#define GET_H_SYS_GPR377() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR377))
+#define SET_H_SYS_GPR377(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR377), (x));\
+;} while (0)
+#define GET_H_SYS_GPR378() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR378))
+#define SET_H_SYS_GPR378(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR378), (x));\
+;} while (0)
+#define GET_H_SYS_GPR379() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR379))
+#define SET_H_SYS_GPR379(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR379), (x));\
+;} while (0)
+#define GET_H_SYS_GPR380() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR380))
+#define SET_H_SYS_GPR380(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR380), (x));\
+;} while (0)
+#define GET_H_SYS_GPR381() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR381))
+#define SET_H_SYS_GPR381(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR381), (x));\
+;} while (0)
+#define GET_H_SYS_GPR382() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR382))
+#define SET_H_SYS_GPR382(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR382), (x));\
+;} while (0)
+#define GET_H_SYS_GPR383() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR383))
+#define SET_H_SYS_GPR383(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR383), (x));\
+;} while (0)
+#define GET_H_SYS_GPR384() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR384))
+#define SET_H_SYS_GPR384(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR384), (x));\
+;} while (0)
+#define GET_H_SYS_GPR385() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR385))
+#define SET_H_SYS_GPR385(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR385), (x));\
+;} while (0)
+#define GET_H_SYS_GPR386() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR386))
+#define SET_H_SYS_GPR386(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR386), (x));\
+;} while (0)
+#define GET_H_SYS_GPR387() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR387))
+#define SET_H_SYS_GPR387(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR387), (x));\
+;} while (0)
+#define GET_H_SYS_GPR388() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR388))
+#define SET_H_SYS_GPR388(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR388), (x));\
+;} while (0)
+#define GET_H_SYS_GPR389() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR389))
+#define SET_H_SYS_GPR389(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR389), (x));\
+;} while (0)
+#define GET_H_SYS_GPR390() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR390))
+#define SET_H_SYS_GPR390(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR390), (x));\
+;} while (0)
+#define GET_H_SYS_GPR391() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR391))
+#define SET_H_SYS_GPR391(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR391), (x));\
+;} while (0)
+#define GET_H_SYS_GPR392() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR392))
+#define SET_H_SYS_GPR392(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR392), (x));\
+;} while (0)
+#define GET_H_SYS_GPR393() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR393))
+#define SET_H_SYS_GPR393(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR393), (x));\
+;} while (0)
+#define GET_H_SYS_GPR394() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR394))
+#define SET_H_SYS_GPR394(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR394), (x));\
+;} while (0)
+#define GET_H_SYS_GPR395() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR395))
+#define SET_H_SYS_GPR395(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR395), (x));\
+;} while (0)
+#define GET_H_SYS_GPR396() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR396))
+#define SET_H_SYS_GPR396(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR396), (x));\
+;} while (0)
+#define GET_H_SYS_GPR397() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR397))
+#define SET_H_SYS_GPR397(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR397), (x));\
+;} while (0)
+#define GET_H_SYS_GPR398() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR398))
+#define SET_H_SYS_GPR398(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR398), (x));\
+;} while (0)
+#define GET_H_SYS_GPR399() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR399))
+#define SET_H_SYS_GPR399(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR399), (x));\
+;} while (0)
+#define GET_H_SYS_GPR400() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR400))
+#define SET_H_SYS_GPR400(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR400), (x));\
+;} while (0)
+#define GET_H_SYS_GPR401() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR401))
+#define SET_H_SYS_GPR401(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR401), (x));\
+;} while (0)
+#define GET_H_SYS_GPR402() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR402))
+#define SET_H_SYS_GPR402(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR402), (x));\
+;} while (0)
+#define GET_H_SYS_GPR403() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR403))
+#define SET_H_SYS_GPR403(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR403), (x));\
+;} while (0)
+#define GET_H_SYS_GPR404() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR404))
+#define SET_H_SYS_GPR404(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR404), (x));\
+;} while (0)
+#define GET_H_SYS_GPR405() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR405))
+#define SET_H_SYS_GPR405(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR405), (x));\
+;} while (0)
+#define GET_H_SYS_GPR406() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR406))
+#define SET_H_SYS_GPR406(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR406), (x));\
+;} while (0)
+#define GET_H_SYS_GPR407() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR407))
+#define SET_H_SYS_GPR407(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR407), (x));\
+;} while (0)
+#define GET_H_SYS_GPR408() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR408))
+#define SET_H_SYS_GPR408(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR408), (x));\
+;} while (0)
+#define GET_H_SYS_GPR409() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR409))
+#define SET_H_SYS_GPR409(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR409), (x));\
+;} while (0)
+#define GET_H_SYS_GPR410() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR410))
+#define SET_H_SYS_GPR410(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR410), (x));\
+;} while (0)
+#define GET_H_SYS_GPR411() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR411))
+#define SET_H_SYS_GPR411(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR411), (x));\
+;} while (0)
+#define GET_H_SYS_GPR412() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR412))
+#define SET_H_SYS_GPR412(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR412), (x));\
+;} while (0)
+#define GET_H_SYS_GPR413() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR413))
+#define SET_H_SYS_GPR413(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR413), (x));\
+;} while (0)
+#define GET_H_SYS_GPR414() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR414))
+#define SET_H_SYS_GPR414(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR414), (x));\
+;} while (0)
+#define GET_H_SYS_GPR415() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR415))
+#define SET_H_SYS_GPR415(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR415), (x));\
+;} while (0)
+#define GET_H_SYS_GPR416() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR416))
+#define SET_H_SYS_GPR416(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR416), (x));\
+;} while (0)
+#define GET_H_SYS_GPR417() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR417))
+#define SET_H_SYS_GPR417(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR417), (x));\
+;} while (0)
+#define GET_H_SYS_GPR418() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR418))
+#define SET_H_SYS_GPR418(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR418), (x));\
+;} while (0)
+#define GET_H_SYS_GPR419() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR419))
+#define SET_H_SYS_GPR419(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR419), (x));\
+;} while (0)
+#define GET_H_SYS_GPR420() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR420))
+#define SET_H_SYS_GPR420(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR420), (x));\
+;} while (0)
+#define GET_H_SYS_GPR421() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR421))
+#define SET_H_SYS_GPR421(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR421), (x));\
+;} while (0)
+#define GET_H_SYS_GPR422() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR422))
+#define SET_H_SYS_GPR422(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR422), (x));\
+;} while (0)
+#define GET_H_SYS_GPR423() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR423))
+#define SET_H_SYS_GPR423(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR423), (x));\
+;} while (0)
+#define GET_H_SYS_GPR424() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR424))
+#define SET_H_SYS_GPR424(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR424), (x));\
+;} while (0)
+#define GET_H_SYS_GPR425() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR425))
+#define SET_H_SYS_GPR425(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR425), (x));\
+;} while (0)
+#define GET_H_SYS_GPR426() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR426))
+#define SET_H_SYS_GPR426(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR426), (x));\
+;} while (0)
+#define GET_H_SYS_GPR427() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR427))
+#define SET_H_SYS_GPR427(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR427), (x));\
+;} while (0)
+#define GET_H_SYS_GPR428() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR428))
+#define SET_H_SYS_GPR428(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR428), (x));\
+;} while (0)
+#define GET_H_SYS_GPR429() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR429))
+#define SET_H_SYS_GPR429(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR429), (x));\
+;} while (0)
+#define GET_H_SYS_GPR430() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR430))
+#define SET_H_SYS_GPR430(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR430), (x));\
+;} while (0)
+#define GET_H_SYS_GPR431() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR431))
+#define SET_H_SYS_GPR431(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR431), (x));\
+;} while (0)
+#define GET_H_SYS_GPR432() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR432))
+#define SET_H_SYS_GPR432(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR432), (x));\
+;} while (0)
+#define GET_H_SYS_GPR433() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR433))
+#define SET_H_SYS_GPR433(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR433), (x));\
+;} while (0)
+#define GET_H_SYS_GPR434() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR434))
+#define SET_H_SYS_GPR434(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR434), (x));\
+;} while (0)
+#define GET_H_SYS_GPR435() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR435))
+#define SET_H_SYS_GPR435(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR435), (x));\
+;} while (0)
+#define GET_H_SYS_GPR436() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR436))
+#define SET_H_SYS_GPR436(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR436), (x));\
+;} while (0)
+#define GET_H_SYS_GPR437() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR437))
+#define SET_H_SYS_GPR437(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR437), (x));\
+;} while (0)
+#define GET_H_SYS_GPR438() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR438))
+#define SET_H_SYS_GPR438(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR438), (x));\
+;} while (0)
+#define GET_H_SYS_GPR439() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR439))
+#define SET_H_SYS_GPR439(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR439), (x));\
+;} while (0)
+#define GET_H_SYS_GPR440() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR440))
+#define SET_H_SYS_GPR440(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR440), (x));\
+;} while (0)
+#define GET_H_SYS_GPR441() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR441))
+#define SET_H_SYS_GPR441(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR441), (x));\
+;} while (0)
+#define GET_H_SYS_GPR442() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR442))
+#define SET_H_SYS_GPR442(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR442), (x));\
+;} while (0)
+#define GET_H_SYS_GPR443() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR443))
+#define SET_H_SYS_GPR443(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR443), (x));\
+;} while (0)
+#define GET_H_SYS_GPR444() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR444))
+#define SET_H_SYS_GPR444(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR444), (x));\
+;} while (0)
+#define GET_H_SYS_GPR445() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR445))
+#define SET_H_SYS_GPR445(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR445), (x));\
+;} while (0)
+#define GET_H_SYS_GPR446() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR446))
+#define SET_H_SYS_GPR446(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR446), (x));\
+;} while (0)
+#define GET_H_SYS_GPR447() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR447))
+#define SET_H_SYS_GPR447(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR447), (x));\
+;} while (0)
+#define GET_H_SYS_GPR448() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR448))
+#define SET_H_SYS_GPR448(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR448), (x));\
+;} while (0)
+#define GET_H_SYS_GPR449() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR449))
+#define SET_H_SYS_GPR449(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR449), (x));\
+;} while (0)
+#define GET_H_SYS_GPR450() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR450))
+#define SET_H_SYS_GPR450(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR450), (x));\
+;} while (0)
+#define GET_H_SYS_GPR451() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR451))
+#define SET_H_SYS_GPR451(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR451), (x));\
+;} while (0)
+#define GET_H_SYS_GPR452() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR452))
+#define SET_H_SYS_GPR452(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR452), (x));\
+;} while (0)
+#define GET_H_SYS_GPR453() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR453))
+#define SET_H_SYS_GPR453(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR453), (x));\
+;} while (0)
+#define GET_H_SYS_GPR454() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR454))
+#define SET_H_SYS_GPR454(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR454), (x));\
+;} while (0)
+#define GET_H_SYS_GPR455() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR455))
+#define SET_H_SYS_GPR455(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR455), (x));\
+;} while (0)
+#define GET_H_SYS_GPR456() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR456))
+#define SET_H_SYS_GPR456(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR456), (x));\
+;} while (0)
+#define GET_H_SYS_GPR457() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR457))
+#define SET_H_SYS_GPR457(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR457), (x));\
+;} while (0)
+#define GET_H_SYS_GPR458() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR458))
+#define SET_H_SYS_GPR458(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR458), (x));\
+;} while (0)
+#define GET_H_SYS_GPR459() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR459))
+#define SET_H_SYS_GPR459(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR459), (x));\
+;} while (0)
+#define GET_H_SYS_GPR460() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR460))
+#define SET_H_SYS_GPR460(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR460), (x));\
+;} while (0)
+#define GET_H_SYS_GPR461() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR461))
+#define SET_H_SYS_GPR461(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR461), (x));\
+;} while (0)
+#define GET_H_SYS_GPR462() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR462))
+#define SET_H_SYS_GPR462(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR462), (x));\
+;} while (0)
+#define GET_H_SYS_GPR463() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR463))
+#define SET_H_SYS_GPR463(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR463), (x));\
+;} while (0)
+#define GET_H_SYS_GPR464() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR464))
+#define SET_H_SYS_GPR464(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR464), (x));\
+;} while (0)
+#define GET_H_SYS_GPR465() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR465))
+#define SET_H_SYS_GPR465(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR465), (x));\
+;} while (0)
+#define GET_H_SYS_GPR466() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR466))
+#define SET_H_SYS_GPR466(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR466), (x));\
+;} while (0)
+#define GET_H_SYS_GPR467() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR467))
+#define SET_H_SYS_GPR467(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR467), (x));\
+;} while (0)
+#define GET_H_SYS_GPR468() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR468))
+#define SET_H_SYS_GPR468(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR468), (x));\
+;} while (0)
+#define GET_H_SYS_GPR469() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR469))
+#define SET_H_SYS_GPR469(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR469), (x));\
+;} while (0)
+#define GET_H_SYS_GPR470() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR470))
+#define SET_H_SYS_GPR470(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR470), (x));\
+;} while (0)
+#define GET_H_SYS_GPR471() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR471))
+#define SET_H_SYS_GPR471(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR471), (x));\
+;} while (0)
+#define GET_H_SYS_GPR472() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR472))
+#define SET_H_SYS_GPR472(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR472), (x));\
+;} while (0)
+#define GET_H_SYS_GPR473() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR473))
+#define SET_H_SYS_GPR473(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR473), (x));\
+;} while (0)
+#define GET_H_SYS_GPR474() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR474))
+#define SET_H_SYS_GPR474(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR474), (x));\
+;} while (0)
+#define GET_H_SYS_GPR475() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR475))
+#define SET_H_SYS_GPR475(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR475), (x));\
+;} while (0)
+#define GET_H_SYS_GPR476() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR476))
+#define SET_H_SYS_GPR476(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR476), (x));\
+;} while (0)
+#define GET_H_SYS_GPR477() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR477))
+#define SET_H_SYS_GPR477(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR477), (x));\
+;} while (0)
+#define GET_H_SYS_GPR478() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR478))
+#define SET_H_SYS_GPR478(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR478), (x));\
+;} while (0)
+#define GET_H_SYS_GPR479() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR479))
+#define SET_H_SYS_GPR479(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR479), (x));\
+;} while (0)
+#define GET_H_SYS_GPR480() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR480))
+#define SET_H_SYS_GPR480(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR480), (x));\
+;} while (0)
+#define GET_H_SYS_GPR481() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR481))
+#define SET_H_SYS_GPR481(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR481), (x));\
+;} while (0)
+#define GET_H_SYS_GPR482() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR482))
+#define SET_H_SYS_GPR482(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR482), (x));\
+;} while (0)
+#define GET_H_SYS_GPR483() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR483))
+#define SET_H_SYS_GPR483(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR483), (x));\
+;} while (0)
+#define GET_H_SYS_GPR484() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR484))
+#define SET_H_SYS_GPR484(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR484), (x));\
+;} while (0)
+#define GET_H_SYS_GPR485() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR485))
+#define SET_H_SYS_GPR485(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR485), (x));\
+;} while (0)
+#define GET_H_SYS_GPR486() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR486))
+#define SET_H_SYS_GPR486(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR486), (x));\
+;} while (0)
+#define GET_H_SYS_GPR487() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR487))
+#define SET_H_SYS_GPR487(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR487), (x));\
+;} while (0)
+#define GET_H_SYS_GPR488() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR488))
+#define SET_H_SYS_GPR488(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR488), (x));\
+;} while (0)
+#define GET_H_SYS_GPR489() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR489))
+#define SET_H_SYS_GPR489(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR489), (x));\
+;} while (0)
+#define GET_H_SYS_GPR490() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR490))
+#define SET_H_SYS_GPR490(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR490), (x));\
+;} while (0)
+#define GET_H_SYS_GPR491() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR491))
+#define SET_H_SYS_GPR491(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR491), (x));\
+;} while (0)
+#define GET_H_SYS_GPR492() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR492))
+#define SET_H_SYS_GPR492(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR492), (x));\
+;} while (0)
+#define GET_H_SYS_GPR493() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR493))
+#define SET_H_SYS_GPR493(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR493), (x));\
+;} while (0)
+#define GET_H_SYS_GPR494() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR494))
+#define SET_H_SYS_GPR494(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR494), (x));\
+;} while (0)
+#define GET_H_SYS_GPR495() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR495))
+#define SET_H_SYS_GPR495(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR495), (x));\
+;} while (0)
+#define GET_H_SYS_GPR496() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR496))
+#define SET_H_SYS_GPR496(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR496), (x));\
+;} while (0)
+#define GET_H_SYS_GPR497() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR497))
+#define SET_H_SYS_GPR497(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR497), (x));\
+;} while (0)
+#define GET_H_SYS_GPR498() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR498))
+#define SET_H_SYS_GPR498(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR498), (x));\
+;} while (0)
+#define GET_H_SYS_GPR499() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR499))
+#define SET_H_SYS_GPR499(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR499), (x));\
+;} while (0)
+#define GET_H_SYS_GPR500() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR500))
+#define SET_H_SYS_GPR500(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR500), (x));\
+;} while (0)
+#define GET_H_SYS_GPR501() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR501))
+#define SET_H_SYS_GPR501(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR501), (x));\
+;} while (0)
+#define GET_H_SYS_GPR502() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR502))
+#define SET_H_SYS_GPR502(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR502), (x));\
+;} while (0)
+#define GET_H_SYS_GPR503() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR503))
+#define SET_H_SYS_GPR503(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR503), (x));\
+;} while (0)
+#define GET_H_SYS_GPR504() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR504))
+#define SET_H_SYS_GPR504(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR504), (x));\
+;} while (0)
+#define GET_H_SYS_GPR505() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR505))
+#define SET_H_SYS_GPR505(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR505), (x));\
+;} while (0)
+#define GET_H_SYS_GPR506() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR506))
+#define SET_H_SYS_GPR506(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR506), (x));\
+;} while (0)
+#define GET_H_SYS_GPR507() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR507))
+#define SET_H_SYS_GPR507(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR507), (x));\
+;} while (0)
+#define GET_H_SYS_GPR508() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR508))
+#define SET_H_SYS_GPR508(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR508), (x));\
+;} while (0)
+#define GET_H_SYS_GPR509() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR509))
+#define SET_H_SYS_GPR509(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR509), (x));\
+;} while (0)
+#define GET_H_SYS_GPR510() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR510))
+#define SET_H_SYS_GPR510(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR510), (x));\
+;} while (0)
+#define GET_H_SYS_GPR511() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR511))
+#define SET_H_SYS_GPR511(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR511), (x));\
+;} while (0)
+#define GET_H_MAC_MACLO() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACLO))
+#define SET_H_MAC_MACLO(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACLO), (x));\
+;} while (0)
+#define GET_H_MAC_MACHI() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACHI))
+#define SET_H_MAC_MACHI(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACHI), (x));\
+;} while (0)
+#define GET_H_TICK_TTMR() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_TICK, 11), SPR_INDEX_TICK_TTMR))
+#define SET_H_TICK_TTMR(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_TICK, 11), SPR_INDEX_TICK_TTMR), (x));\
+;} while (0)
+#define GET_H_SYS_VR_REV() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 5, 0)
+#define SET_H_SYS_VR_REV(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 5, 0, (x));\
+;} while (0)
+#define GET_H_SYS_VR_CFG() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 23, 16)
+#define SET_H_SYS_VR_CFG(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 23, 16, (x));\
+;} while (0)
+#define GET_H_SYS_VR_VER() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 31, 24)
+#define SET_H_SYS_VR_VER(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 31, 24, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_UP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 0, 0)
+#define SET_H_SYS_UPR_UP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DCP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 1, 1)
+#define SET_H_SYS_UPR_DCP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 1, 1, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_ICP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 2, 2)
+#define SET_H_SYS_UPR_ICP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 2, 2, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DMP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 3, 3)
+#define SET_H_SYS_UPR_DMP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_MP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 4, 4)
+#define SET_H_SYS_UPR_MP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_IMP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 5, 5)
+#define SET_H_SYS_UPR_IMP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DUP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 6, 6)
+#define SET_H_SYS_UPR_DUP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PCUP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 7, 7)
+#define SET_H_SYS_UPR_PCUP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PICP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 8, 8)
+#define SET_H_SYS_UPR_PICP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PMP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 9, 9)
+#define SET_H_SYS_UPR_PMP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_TTP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 10, 10)
+#define SET_H_SYS_UPR_TTP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_CUP() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 31, 24)
+#define SET_H_SYS_UPR_CUP(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 31, 24, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_NSGR() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 3, 0)
+#define SET_H_SYS_CPUCFGR_NSGR(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 3, 0, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_CGF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 4, 4)
+#define SET_H_SYS_CPUCFGR_CGF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OB32S() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 5, 5)
+#define SET_H_SYS_CPUCFGR_OB32S(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OB64S() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 6, 6)
+#define SET_H_SYS_CPUCFGR_OB64S(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OF32S() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 7, 7)
+#define SET_H_SYS_CPUCFGR_OF32S(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OF64S() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 8, 8)
+#define SET_H_SYS_CPUCFGR_OF64S(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OV64S() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 9, 9)
+#define SET_H_SYS_CPUCFGR_OV64S(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_ND() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 10, 10)
+#define SET_H_SYS_CPUCFGR_ND(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_SR_SM() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 0, 0)
+#define SET_H_SYS_SR_SM(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_SR_TEE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 1, 1)
+#define SET_H_SYS_SR_TEE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 1, 1, (x));\
+;} while (0)
+#define GET_H_SYS_SR_IEE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 2, 2)
+#define SET_H_SYS_SR_IEE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 2, 2, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DCE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 3, 3)
+#define SET_H_SYS_SR_DCE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_SR_ICE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 4, 4)
+#define SET_H_SYS_SR_ICE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DME() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 5, 5)
+#define SET_H_SYS_SR_DME(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_SR_IME() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 6, 6)
+#define SET_H_SYS_SR_IME(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_SR_LEE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 7, 7)
+#define SET_H_SYS_SR_LEE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 8, 8)
+#define SET_H_SYS_SR_CE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_SR_F() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 9, 9)
+#define SET_H_SYS_SR_F(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CY() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 10, 10)
+#define SET_H_SYS_SR_CY(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_SR_OV() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 11, 11)
+#define SET_H_SYS_SR_OV(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 11, 11, (x));\
+;} while (0)
+#define GET_H_SYS_SR_OVE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 12, 12)
+#define SET_H_SYS_SR_OVE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 12, 12, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DSX() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 13, 13)
+#define SET_H_SYS_SR_DSX(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 13, 13, (x));\
+;} while (0)
+#define GET_H_SYS_SR_EPH() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 14, 14)
+#define SET_H_SYS_SR_EPH(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 14, 14, (x));\
+;} while (0)
+#define GET_H_SYS_SR_FO() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 15, 15)
+#define SET_H_SYS_SR_FO(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 15, 15, (x));\
+;} while (0)
+#define GET_H_SYS_SR_SUMRA() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 16, 16)
+#define SET_H_SYS_SR_SUMRA(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 16, 16, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CID() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 31, 28)
+#define SET_H_SYS_SR_CID(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 31, 28, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_FPEE() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 0, 0)
+#define SET_H_SYS_FPCSR_FPEE(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_RM() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 2, 1)
+#define SET_H_SYS_FPCSR_RM(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 2, 1, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_OVF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 3, 3)
+#define SET_H_SYS_FPCSR_OVF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_UNF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 4, 4)
+#define SET_H_SYS_FPCSR_UNF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_SNF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 5, 5)
+#define SET_H_SYS_FPCSR_SNF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_QNF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 6, 6)
+#define SET_H_SYS_FPCSR_QNF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_ZF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 7, 7)
+#define SET_H_SYS_FPCSR_ZF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_IXF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 8, 8)
+#define SET_H_SYS_FPCSR_IXF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_IVF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 9, 9)
+#define SET_H_SYS_FPCSR_IVF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_INF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 10, 10)
+#define SET_H_SYS_FPCSR_INF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_DZF() or1k32bf_h_spr_field_get_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 11, 11)
+#define SET_H_SYS_FPCSR_DZF(x) \
+do { \
+or1k32bf_h_spr_field_set_raw (current_cpu, ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 11, 11, (x));\
+;} while (0)
+
+/* Cover fns for register access.  */
+USI or1k32bf_h_pc_get (SIM_CPU *);
+void or1k32bf_h_pc_set (SIM_CPU *, USI);
+SF or1k32bf_h_fsr_get (SIM_CPU *, UINT);
+void or1k32bf_h_fsr_set (SIM_CPU *, UINT, SF);
+USI or1k32bf_h_spr_get (SIM_CPU *, UINT);
+void or1k32bf_h_spr_set (SIM_CPU *, UINT, USI);
+USI or1k32bf_h_gpr_get (SIM_CPU *, UINT);
+void or1k32bf_h_gpr_set (SIM_CPU *, UINT, USI);
+USI or1k32bf_h_sys_vr_get (SIM_CPU *);
+void or1k32bf_h_sys_vr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_dmmucfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_dmmucfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_immucfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_immucfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_dccfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_dccfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_iccfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_iccfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_dcfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_dcfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_pccfgr_get (SIM_CPU *);
+void or1k32bf_h_sys_pccfgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_npc_get (SIM_CPU *);
+void or1k32bf_h_sys_npc_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_ppc_get (SIM_CPU *);
+void or1k32bf_h_sys_ppc_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr0_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr0_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr1_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr1_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr2_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr2_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr3_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr3_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr4_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr4_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr5_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr5_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr6_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr6_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr7_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr7_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr8_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr8_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr9_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr9_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr10_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr10_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr11_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr11_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr12_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr12_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr13_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr13_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr14_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr14_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_epcr15_get (SIM_CPU *);
+void or1k32bf_h_sys_epcr15_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear0_get (SIM_CPU *);
+void or1k32bf_h_sys_eear0_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear1_get (SIM_CPU *);
+void or1k32bf_h_sys_eear1_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear2_get (SIM_CPU *);
+void or1k32bf_h_sys_eear2_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear3_get (SIM_CPU *);
+void or1k32bf_h_sys_eear3_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear4_get (SIM_CPU *);
+void or1k32bf_h_sys_eear4_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear5_get (SIM_CPU *);
+void or1k32bf_h_sys_eear5_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear6_get (SIM_CPU *);
+void or1k32bf_h_sys_eear6_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear7_get (SIM_CPU *);
+void or1k32bf_h_sys_eear7_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear8_get (SIM_CPU *);
+void or1k32bf_h_sys_eear8_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear9_get (SIM_CPU *);
+void or1k32bf_h_sys_eear9_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear10_get (SIM_CPU *);
+void or1k32bf_h_sys_eear10_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear11_get (SIM_CPU *);
+void or1k32bf_h_sys_eear11_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear12_get (SIM_CPU *);
+void or1k32bf_h_sys_eear12_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear13_get (SIM_CPU *);
+void or1k32bf_h_sys_eear13_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear14_get (SIM_CPU *);
+void or1k32bf_h_sys_eear14_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_eear15_get (SIM_CPU *);
+void or1k32bf_h_sys_eear15_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr0_get (SIM_CPU *);
+void or1k32bf_h_sys_esr0_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr1_get (SIM_CPU *);
+void or1k32bf_h_sys_esr1_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr2_get (SIM_CPU *);
+void or1k32bf_h_sys_esr2_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr3_get (SIM_CPU *);
+void or1k32bf_h_sys_esr3_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr4_get (SIM_CPU *);
+void or1k32bf_h_sys_esr4_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr5_get (SIM_CPU *);
+void or1k32bf_h_sys_esr5_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr6_get (SIM_CPU *);
+void or1k32bf_h_sys_esr6_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr7_get (SIM_CPU *);
+void or1k32bf_h_sys_esr7_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr8_get (SIM_CPU *);
+void or1k32bf_h_sys_esr8_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr9_get (SIM_CPU *);
+void or1k32bf_h_sys_esr9_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr10_get (SIM_CPU *);
+void or1k32bf_h_sys_esr10_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr11_get (SIM_CPU *);
+void or1k32bf_h_sys_esr11_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr12_get (SIM_CPU *);
+void or1k32bf_h_sys_esr12_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr13_get (SIM_CPU *);
+void or1k32bf_h_sys_esr13_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr14_get (SIM_CPU *);
+void or1k32bf_h_sys_esr14_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_esr15_get (SIM_CPU *);
+void or1k32bf_h_sys_esr15_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr0_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr0_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr1_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr1_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr2_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr2_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr3_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr3_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr4_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr4_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr5_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr5_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr6_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr6_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr7_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr7_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr8_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr8_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr9_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr9_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr10_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr10_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr11_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr11_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr12_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr12_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr13_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr13_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr14_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr14_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr15_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr15_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr16_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr16_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr17_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr17_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr18_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr18_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr19_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr19_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr20_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr20_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr21_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr21_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr22_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr22_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr23_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr23_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr24_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr24_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr25_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr25_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr26_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr26_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr27_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr27_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr28_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr28_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr29_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr29_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr30_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr30_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr31_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr31_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr32_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr32_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr33_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr33_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr34_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr34_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr35_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr35_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr36_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr36_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr37_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr37_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr38_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr38_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr39_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr39_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr40_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr40_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr41_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr41_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr42_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr42_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr43_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr43_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr44_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr44_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr45_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr45_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr46_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr46_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr47_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr47_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr48_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr48_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr49_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr49_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr50_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr50_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr51_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr51_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr52_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr52_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr53_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr53_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr54_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr54_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr55_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr55_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr56_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr56_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr57_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr57_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr58_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr58_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr59_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr59_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr60_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr60_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr61_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr61_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr62_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr62_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr63_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr63_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr64_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr64_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr65_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr65_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr66_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr66_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr67_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr67_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr68_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr68_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr69_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr69_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr70_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr70_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr71_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr71_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr72_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr72_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr73_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr73_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr74_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr74_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr75_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr75_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr76_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr76_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr77_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr77_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr78_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr78_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr79_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr79_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr80_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr80_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr81_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr81_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr82_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr82_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr83_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr83_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr84_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr84_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr85_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr85_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr86_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr86_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr87_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr87_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr88_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr88_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr89_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr89_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr90_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr90_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr91_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr91_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr92_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr92_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr93_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr93_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr94_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr94_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr95_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr95_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr96_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr96_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr97_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr97_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr98_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr98_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr99_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr99_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr100_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr100_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr101_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr101_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr102_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr102_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr103_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr103_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr104_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr104_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr105_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr105_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr106_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr106_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr107_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr107_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr108_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr108_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr109_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr109_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr110_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr110_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr111_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr111_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr112_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr112_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr113_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr113_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr114_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr114_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr115_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr115_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr116_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr116_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr117_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr117_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr118_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr118_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr119_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr119_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr120_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr120_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr121_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr121_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr122_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr122_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr123_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr123_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr124_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr124_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr125_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr125_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr126_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr126_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr127_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr127_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr128_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr128_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr129_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr129_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr130_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr130_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr131_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr131_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr132_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr132_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr133_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr133_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr134_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr134_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr135_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr135_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr136_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr136_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr137_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr137_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr138_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr138_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr139_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr139_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr140_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr140_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr141_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr141_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr142_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr142_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr143_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr143_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr144_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr144_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr145_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr145_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr146_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr146_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr147_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr147_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr148_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr148_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr149_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr149_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr150_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr150_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr151_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr151_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr152_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr152_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr153_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr153_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr154_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr154_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr155_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr155_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr156_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr156_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr157_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr157_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr158_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr158_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr159_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr159_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr160_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr160_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr161_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr161_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr162_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr162_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr163_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr163_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr164_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr164_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr165_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr165_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr166_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr166_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr167_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr167_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr168_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr168_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr169_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr169_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr170_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr170_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr171_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr171_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr172_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr172_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr173_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr173_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr174_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr174_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr175_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr175_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr176_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr176_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr177_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr177_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr178_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr178_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr179_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr179_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr180_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr180_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr181_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr181_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr182_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr182_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr183_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr183_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr184_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr184_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr185_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr185_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr186_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr186_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr187_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr187_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr188_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr188_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr189_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr189_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr190_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr190_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr191_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr191_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr192_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr192_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr193_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr193_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr194_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr194_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr195_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr195_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr196_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr196_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr197_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr197_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr198_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr198_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr199_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr199_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr200_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr200_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr201_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr201_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr202_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr202_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr203_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr203_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr204_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr204_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr205_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr205_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr206_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr206_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr207_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr207_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr208_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr208_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr209_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr209_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr210_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr210_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr211_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr211_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr212_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr212_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr213_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr213_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr214_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr214_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr215_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr215_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr216_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr216_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr217_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr217_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr218_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr218_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr219_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr219_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr220_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr220_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr221_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr221_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr222_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr222_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr223_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr223_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr224_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr224_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr225_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr225_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr226_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr226_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr227_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr227_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr228_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr228_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr229_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr229_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr230_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr230_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr231_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr231_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr232_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr232_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr233_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr233_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr234_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr234_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr235_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr235_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr236_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr236_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr237_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr237_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr238_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr238_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr239_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr239_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr240_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr240_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr241_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr241_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr242_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr242_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr243_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr243_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr244_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr244_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr245_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr245_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr246_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr246_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr247_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr247_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr248_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr248_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr249_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr249_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr250_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr250_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr251_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr251_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr252_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr252_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr253_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr253_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr254_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr254_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr255_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr255_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr256_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr256_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr257_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr257_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr258_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr258_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr259_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr259_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr260_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr260_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr261_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr261_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr262_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr262_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr263_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr263_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr264_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr264_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr265_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr265_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr266_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr266_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr267_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr267_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr268_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr268_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr269_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr269_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr270_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr270_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr271_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr271_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr272_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr272_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr273_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr273_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr274_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr274_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr275_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr275_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr276_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr276_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr277_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr277_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr278_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr278_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr279_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr279_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr280_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr280_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr281_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr281_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr282_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr282_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr283_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr283_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr284_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr284_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr285_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr285_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr286_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr286_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr287_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr287_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr288_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr288_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr289_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr289_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr290_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr290_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr291_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr291_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr292_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr292_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr293_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr293_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr294_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr294_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr295_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr295_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr296_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr296_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr297_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr297_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr298_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr298_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr299_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr299_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr300_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr300_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr301_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr301_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr302_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr302_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr303_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr303_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr304_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr304_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr305_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr305_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr306_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr306_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr307_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr307_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr308_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr308_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr309_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr309_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr310_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr310_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr311_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr311_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr312_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr312_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr313_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr313_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr314_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr314_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr315_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr315_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr316_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr316_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr317_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr317_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr318_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr318_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr319_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr319_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr320_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr320_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr321_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr321_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr322_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr322_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr323_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr323_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr324_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr324_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr325_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr325_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr326_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr326_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr327_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr327_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr328_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr328_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr329_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr329_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr330_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr330_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr331_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr331_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr332_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr332_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr333_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr333_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr334_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr334_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr335_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr335_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr336_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr336_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr337_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr337_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr338_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr338_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr339_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr339_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr340_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr340_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr341_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr341_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr342_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr342_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr343_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr343_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr344_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr344_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr345_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr345_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr346_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr346_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr347_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr347_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr348_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr348_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr349_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr349_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr350_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr350_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr351_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr351_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr352_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr352_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr353_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr353_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr354_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr354_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr355_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr355_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr356_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr356_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr357_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr357_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr358_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr358_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr359_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr359_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr360_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr360_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr361_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr361_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr362_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr362_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr363_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr363_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr364_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr364_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr365_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr365_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr366_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr366_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr367_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr367_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr368_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr368_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr369_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr369_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr370_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr370_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr371_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr371_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr372_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr372_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr373_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr373_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr374_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr374_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr375_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr375_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr376_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr376_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr377_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr377_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr378_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr378_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr379_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr379_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr380_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr380_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr381_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr381_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr382_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr382_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr383_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr383_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr384_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr384_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr385_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr385_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr386_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr386_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr387_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr387_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr388_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr388_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr389_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr389_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr390_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr390_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr391_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr391_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr392_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr392_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr393_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr393_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr394_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr394_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr395_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr395_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr396_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr396_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr397_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr397_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr398_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr398_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr399_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr399_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr400_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr400_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr401_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr401_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr402_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr402_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr403_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr403_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr404_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr404_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr405_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr405_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr406_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr406_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr407_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr407_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr408_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr408_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr409_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr409_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr410_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr410_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr411_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr411_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr412_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr412_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr413_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr413_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr414_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr414_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr415_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr415_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr416_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr416_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr417_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr417_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr418_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr418_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr419_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr419_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr420_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr420_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr421_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr421_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr422_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr422_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr423_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr423_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr424_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr424_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr425_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr425_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr426_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr426_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr427_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr427_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr428_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr428_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr429_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr429_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr430_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr430_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr431_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr431_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr432_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr432_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr433_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr433_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr434_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr434_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr435_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr435_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr436_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr436_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr437_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr437_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr438_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr438_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr439_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr439_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr440_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr440_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr441_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr441_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr442_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr442_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr443_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr443_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr444_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr444_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr445_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr445_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr446_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr446_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr447_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr447_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr448_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr448_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr449_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr449_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr450_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr450_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr451_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr451_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr452_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr452_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr453_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr453_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr454_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr454_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr455_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr455_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr456_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr456_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr457_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr457_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr458_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr458_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr459_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr459_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr460_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr460_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr461_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr461_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr462_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr462_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr463_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr463_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr464_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr464_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr465_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr465_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr466_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr466_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr467_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr467_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr468_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr468_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr469_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr469_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr470_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr470_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr471_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr471_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr472_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr472_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr473_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr473_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr474_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr474_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr475_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr475_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr476_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr476_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr477_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr477_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr478_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr478_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr479_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr479_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr480_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr480_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr481_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr481_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr482_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr482_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr483_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr483_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr484_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr484_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr485_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr485_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr486_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr486_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr487_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr487_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr488_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr488_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr489_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr489_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr490_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr490_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr491_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr491_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr492_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr492_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr493_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr493_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr494_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr494_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr495_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr495_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr496_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr496_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr497_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr497_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr498_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr498_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr499_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr499_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr500_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr500_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr501_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr501_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr502_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr502_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr503_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr503_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr504_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr504_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr505_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr505_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr506_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr506_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr507_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr507_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr508_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr508_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr509_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr509_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr510_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr510_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_gpr511_get (SIM_CPU *);
+void or1k32bf_h_sys_gpr511_set (SIM_CPU *, USI);
+USI or1k32bf_h_mac_maclo_get (SIM_CPU *);
+void or1k32bf_h_mac_maclo_set (SIM_CPU *, USI);
+USI or1k32bf_h_mac_machi_get (SIM_CPU *);
+void or1k32bf_h_mac_machi_set (SIM_CPU *, USI);
+USI or1k32bf_h_tick_ttmr_get (SIM_CPU *);
+void or1k32bf_h_tick_ttmr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_vr_rev_get (SIM_CPU *);
+void or1k32bf_h_sys_vr_rev_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_vr_cfg_get (SIM_CPU *);
+void or1k32bf_h_sys_vr_cfg_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_vr_ver_get (SIM_CPU *);
+void or1k32bf_h_sys_vr_ver_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_up_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_up_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_dcp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_dcp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_icp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_icp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_dmp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_dmp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_mp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_mp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_imp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_imp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_dup_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_dup_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_pcup_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_pcup_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_picp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_picp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_pmp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_pmp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_ttp_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_ttp_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_upr_cup_get (SIM_CPU *);
+void or1k32bf_h_sys_upr_cup_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_nsgr_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_nsgr_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_cgf_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_cgf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_ob32s_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_ob32s_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_ob64s_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_ob64s_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_of32s_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_of32s_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_of64s_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_of64s_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_ov64s_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_ov64s_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_cpucfgr_nd_get (SIM_CPU *);
+void or1k32bf_h_sys_cpucfgr_nd_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_sm_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_sm_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_tee_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_tee_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_iee_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_iee_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_dce_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_dce_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_ice_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_ice_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_dme_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_dme_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_ime_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_ime_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_lee_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_lee_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_ce_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_ce_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_f_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_f_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_cy_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_cy_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_ov_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_ov_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_ove_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_ove_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_dsx_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_dsx_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_eph_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_eph_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_fo_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_fo_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_sumra_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_sumra_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_sr_cid_get (SIM_CPU *);
+void or1k32bf_h_sys_sr_cid_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_fpee_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_fpee_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_rm_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_rm_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_ovf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_ovf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_unf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_unf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_snf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_snf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_qnf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_qnf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_zf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_zf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_ixf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_ixf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_ivf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_ivf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_inf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_inf_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_fpcsr_dzf_get (SIM_CPU *);
+void or1k32bf_h_sys_fpcsr_dzf_set (SIM_CPU *, USI);
+BI or1k32bf_h_atomic_reserve_get (SIM_CPU *);
+void or1k32bf_h_atomic_reserve_set (SIM_CPU *, BI);
+SI or1k32bf_h_atomic_address_get (SIM_CPU *);
+void or1k32bf_h_atomic_address_set (SIM_CPU *, SI);
+
+/* These must be hand-written.  */
+extern CPUREG_FETCH_FN or1k32bf_fetch_register;
+extern CPUREG_STORE_FN or1k32bf_store_register;
+
+typedef struct {
+  int empty;
+} MODEL_OR1200_DATA;
+
+typedef struct {
+  int empty;
+} MODEL_OR1200ND_DATA;
+
+/* Instruction argument buffer.  */
+
+union sem_fields {
+  struct { /* no operands */
+    int empty;
+  } sfmt_empty;
+  struct { /*  */
+    IADDR i_disp26;
+  } sfmt_l_j;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm6;
+  } sfmt_l_slli;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+  } sfmt_l_sll;
+  struct { /*  */
+    INT f_simm16_split;
+    UINT f_r2;
+    UINT f_r3;
+  } sfmt_l_sw;
+  struct { /*  */
+    INT f_simm16;
+    UINT f_r1;
+    UINT f_r2;
+  } sfmt_l_lwz;
+  struct { /*  */
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_uimm16_split;
+  } sfmt_l_mtspr;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm16;
+  } sfmt_l_mfspr;
+#if WITH_SCACHE_PBB
+  /* Writeback handler.  */
+  struct {
+    /* Pointer to argbuf entry for insn whose results need writing back.  */
+    const struct argbuf *abuf;
+  } write;
+  /* x-before handler */
+  struct {
+    /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
+    int first_p;
+  } before;
+  /* x-after handler */
+  struct {
+    int empty;
+  } after;
+  /* This entry is used to terminate each pbb.  */
+  struct {
+    /* Number of insns in pbb.  */
+    int insn_count;
+    /* Next pbb to execute.  */
+    SCACHE *next;
+    SCACHE *branch_target;
+  } chain;
+#endif
+};
+
+/* The ARGBUF struct.  */
+struct argbuf {
+  /* These are the baseclass definitions.  */
+  IADDR addr;
+  const IDESC *idesc;
+  char trace_p;
+  char profile_p;
+  /* ??? Temporary hack for skip insns.  */
+  char skip_count;
+  char unused;
+  /* cpu specific data follows */
+  union sem semantic;
+  int written;
+  union sem_fields fields;
+};
+
+/* A cached insn.
+
+   ??? SCACHE used to contain more than just argbuf.  We could delete the
+   type entirely and always just use ARGBUF, but for future concerns and as
+   a level of abstraction it is left in.  */
+
+struct scache {
+  struct argbuf argbuf;
+};
+
+/* Macros to simplify extraction, reading and semantic code.
+   These define and assign the local vars that contain the insn's fields.  */
+
+#define EXTRACT_IFMT_EMPTY_VARS \
+  unsigned int length;
+#define EXTRACT_IFMT_EMPTY_CODE \
+  length = 0; \
+
+#define EXTRACT_IFMT_L_J_VARS \
+  UINT f_opcode; \
+  USI f_disp26; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_J_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc)); \
+
+#define EXTRACT_IFMT_L_JR_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_10; \
+  UINT f_r3; \
+  UINT f_resv_10_11; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_JR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_10 = EXTRACT_LSB0_UINT (insn, 32, 25, 10); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+
+#define EXTRACT_IFMT_L_TRAP_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_resv_20_5; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_TRAP_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_5 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MSYNC_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_resv_20_21; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MSYNC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_21 = EXTRACT_LSB0_UINT (insn, 32, 20, 21); \
+
+#define EXTRACT_IFMT_L_RFE_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_26; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_RFE_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_26 = EXTRACT_LSB0_UINT (insn, 32, 25, 26); \
+
+#define EXTRACT_IFMT_L_NOP_IMM_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_2; \
+  UINT f_resv_23_8; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_NOP_IMM_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_2 = EXTRACT_LSB0_UINT (insn, 32, 25, 2); \
+  f_resv_23_8 = EXTRACT_LSB0_UINT (insn, 32, 23, 8); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MOVHI_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_resv_20_4; \
+  UINT f_op_16_1; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MOVHI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_4 = EXTRACT_LSB0_UINT (insn, 32, 20, 4); \
+  f_op_16_1 = EXTRACT_LSB0_UINT (insn, 32, 16, 1); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MACRC_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_resv_20_4; \
+  UINT f_op_16_1; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MACRC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_4 = EXTRACT_LSB0_UINT (insn, 32, 20, 4); \
+  f_op_16_1 = EXTRACT_LSB0_UINT (insn, 32, 16, 1); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MFSPR_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MFSPR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MTSPR_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_imm16_25_5; \
+  UINT f_imm16_10_11; \
+  UINT f_uimm16_split; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MTSPR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+  f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));\
+
+#define EXTRACT_IFMT_L_LWZ_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_LWZ_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_SW_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_imm16_25_5; \
+  UINT f_imm16_10_11; \
+  INT f_simm16_split; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SW_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));\
+
+#define EXTRACT_IFMT_L_SWA_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SWA_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_SLL_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_2; \
+  UINT f_resv_5_2; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SLL_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_2 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
+  f_resv_5_2 = EXTRACT_LSB0_UINT (insn, 32, 5, 2); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_SLLI_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_resv_15_8; \
+  UINT f_op_7_2; \
+  UINT f_uimm6; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SLLI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_resv_15_8 = EXTRACT_LSB0_UINT (insn, 32, 15, 8); \
+  f_op_7_2 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
+  f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
+
+#define EXTRACT_IFMT_L_AND_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_7; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_AND_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_7 = EXTRACT_LSB0_UINT (insn, 32, 10, 7); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_EXTHS_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_resv_15_6; \
+  UINT f_op_9_4; \
+  UINT f_resv_5_2; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_EXTHS_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_resv_15_6 = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
+  f_op_9_4 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
+  f_resv_5_2 = EXTRACT_LSB0_UINT (insn, 32, 5, 2); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_CMOV_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_1; \
+  UINT f_op_9_2; \
+  UINT f_resv_7_4; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_CMOV_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1); \
+  f_op_9_2 = EXTRACT_LSB0_UINT (insn, 32, 9, 2); \
+  f_resv_7_4 = EXTRACT_LSB0_UINT (insn, 32, 7, 4); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_SFGTS_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_11; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SFGTS_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+
+#define EXTRACT_IFMT_L_SFGTSI_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SFGTSI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MAC_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_7; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MAC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_7 = EXTRACT_LSB0_UINT (insn, 32, 10, 7); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_MACI_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_5; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MACI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_LF_ADD_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_ADD_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_ITOF_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_ITOF_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_FTOI_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_FTOI_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_EQ_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_EQ_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_CUST1_S_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_CUST1_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+/* Collection of various things for the trace handler to use.  */
+
+typedef struct trace_record {
+  IADDR pc;
+  /* FIXME:wip */
+} TRACE_RECORD;
+
+#endif /* CPU_OR1K32BF_H */
diff --git a/sim/or1k/cpu64.c b/sim/or1k/cpu64.c
new file mode 100644
index 0000000..5f5d605
--- /dev/null
+++ b/sim/or1k/cpu64.c
@@ -0,0 +1,10197 @@
+/* Misc. support for CPU family or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+
+#include "sim-main.h"
+#include "cgen-ops.h"
+
+/* Get the value of h-pc.  */
+
+UDI
+or1k64bf_h_pc_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_pc);
+}
+
+/* Set a value for h-pc.  */
+
+void
+or1k64bf_h_pc_set (SIM_CPU *current_cpu, UDI newval)
+{
+  CPU (h_pc) = newval;
+}
+
+/* Get the value of h-fsr.  */
+
+SF
+or1k64bf_h_fsr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_FSR (regno);
+}
+
+/* Set a value for h-fsr.  */
+
+void
+or1k64bf_h_fsr_set (SIM_CPU *current_cpu, UINT regno, SF newval)
+{
+  SET_H_FSR (regno, newval);
+}
+
+/* Get the value of h-fdr.  */
+
+DF
+or1k64bf_h_fdr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_FDR (regno);
+}
+
+/* Set a value for h-fdr.  */
+
+void
+or1k64bf_h_fdr_set (SIM_CPU *current_cpu, UINT regno, DF newval)
+{
+  SET_H_FDR (regno, newval);
+}
+
+/* Get the value of h-spr.  */
+
+UDI
+or1k64bf_h_spr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_SPR (regno);
+}
+
+/* Set a value for h-spr.  */
+
+void
+or1k64bf_h_spr_set (SIM_CPU *current_cpu, UINT regno, UDI newval)
+{
+  SET_H_SPR (regno, newval);
+}
+
+/* Get the value of h-gpr.  */
+
+UDI
+or1k64bf_h_gpr_get (SIM_CPU *current_cpu, UINT regno)
+{
+  return GET_H_GPR (regno);
+}
+
+/* Set a value for h-gpr.  */
+
+void
+or1k64bf_h_gpr_set (SIM_CPU *current_cpu, UINT regno, UDI newval)
+{
+  SET_H_GPR (regno, newval);
+}
+
+/* Get the value of h-sys-vr.  */
+
+UDI
+or1k64bf_h_sys_vr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR ();
+}
+
+/* Set a value for h-sys-vr.  */
+
+void
+or1k64bf_h_sys_vr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_VR (newval);
+}
+
+/* Get the value of h-sys-upr.  */
+
+UDI
+or1k64bf_h_sys_upr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR ();
+}
+
+/* Set a value for h-sys-upr.  */
+
+void
+or1k64bf_h_sys_upr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR (newval);
+}
+
+/* Get the value of h-sys-cpucfgr.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR ();
+}
+
+/* Set a value for h-sys-cpucfgr.  */
+
+void
+or1k64bf_h_sys_cpucfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR (newval);
+}
+
+/* Get the value of h-sys-dmmucfgr.  */
+
+UDI
+or1k64bf_h_sys_dmmucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DMMUCFGR ();
+}
+
+/* Set a value for h-sys-dmmucfgr.  */
+
+void
+or1k64bf_h_sys_dmmucfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_DMMUCFGR (newval);
+}
+
+/* Get the value of h-sys-immucfgr.  */
+
+UDI
+or1k64bf_h_sys_immucfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_IMMUCFGR ();
+}
+
+/* Set a value for h-sys-immucfgr.  */
+
+void
+or1k64bf_h_sys_immucfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_IMMUCFGR (newval);
+}
+
+/* Get the value of h-sys-dccfgr.  */
+
+UDI
+or1k64bf_h_sys_dccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DCCFGR ();
+}
+
+/* Set a value for h-sys-dccfgr.  */
+
+void
+or1k64bf_h_sys_dccfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_DCCFGR (newval);
+}
+
+/* Get the value of h-sys-iccfgr.  */
+
+UDI
+or1k64bf_h_sys_iccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ICCFGR ();
+}
+
+/* Set a value for h-sys-iccfgr.  */
+
+void
+or1k64bf_h_sys_iccfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ICCFGR (newval);
+}
+
+/* Get the value of h-sys-dcfgr.  */
+
+UDI
+or1k64bf_h_sys_dcfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_DCFGR ();
+}
+
+/* Set a value for h-sys-dcfgr.  */
+
+void
+or1k64bf_h_sys_dcfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_DCFGR (newval);
+}
+
+/* Get the value of h-sys-pccfgr.  */
+
+UDI
+or1k64bf_h_sys_pccfgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_PCCFGR ();
+}
+
+/* Set a value for h-sys-pccfgr.  */
+
+void
+or1k64bf_h_sys_pccfgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_PCCFGR (newval);
+}
+
+/* Get the value of h-sys-npc.  */
+
+UDI
+or1k64bf_h_sys_npc_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_NPC ();
+}
+
+/* Set a value for h-sys-npc.  */
+
+void
+or1k64bf_h_sys_npc_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_NPC (newval);
+}
+
+/* Get the value of h-sys-sr.  */
+
+UDI
+or1k64bf_h_sys_sr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR ();
+}
+
+/* Set a value for h-sys-sr.  */
+
+void
+or1k64bf_h_sys_sr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR (newval);
+}
+
+/* Get the value of h-sys-ppc.  */
+
+UDI
+or1k64bf_h_sys_ppc_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_PPC ();
+}
+
+/* Set a value for h-sys-ppc.  */
+
+void
+or1k64bf_h_sys_ppc_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_PPC (newval);
+}
+
+/* Get the value of h-sys-fpcsr.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR ();
+}
+
+/* Set a value for h-sys-fpcsr.  */
+
+void
+or1k64bf_h_sys_fpcsr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR (newval);
+}
+
+/* Get the value of h-sys-epcr0.  */
+
+UDI
+or1k64bf_h_sys_epcr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR0 ();
+}
+
+/* Set a value for h-sys-epcr0.  */
+
+void
+or1k64bf_h_sys_epcr0_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR0 (newval);
+}
+
+/* Get the value of h-sys-epcr1.  */
+
+UDI
+or1k64bf_h_sys_epcr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR1 ();
+}
+
+/* Set a value for h-sys-epcr1.  */
+
+void
+or1k64bf_h_sys_epcr1_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR1 (newval);
+}
+
+/* Get the value of h-sys-epcr2.  */
+
+UDI
+or1k64bf_h_sys_epcr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR2 ();
+}
+
+/* Set a value for h-sys-epcr2.  */
+
+void
+or1k64bf_h_sys_epcr2_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR2 (newval);
+}
+
+/* Get the value of h-sys-epcr3.  */
+
+UDI
+or1k64bf_h_sys_epcr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR3 ();
+}
+
+/* Set a value for h-sys-epcr3.  */
+
+void
+or1k64bf_h_sys_epcr3_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR3 (newval);
+}
+
+/* Get the value of h-sys-epcr4.  */
+
+UDI
+or1k64bf_h_sys_epcr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR4 ();
+}
+
+/* Set a value for h-sys-epcr4.  */
+
+void
+or1k64bf_h_sys_epcr4_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR4 (newval);
+}
+
+/* Get the value of h-sys-epcr5.  */
+
+UDI
+or1k64bf_h_sys_epcr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR5 ();
+}
+
+/* Set a value for h-sys-epcr5.  */
+
+void
+or1k64bf_h_sys_epcr5_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR5 (newval);
+}
+
+/* Get the value of h-sys-epcr6.  */
+
+UDI
+or1k64bf_h_sys_epcr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR6 ();
+}
+
+/* Set a value for h-sys-epcr6.  */
+
+void
+or1k64bf_h_sys_epcr6_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR6 (newval);
+}
+
+/* Get the value of h-sys-epcr7.  */
+
+UDI
+or1k64bf_h_sys_epcr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR7 ();
+}
+
+/* Set a value for h-sys-epcr7.  */
+
+void
+or1k64bf_h_sys_epcr7_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR7 (newval);
+}
+
+/* Get the value of h-sys-epcr8.  */
+
+UDI
+or1k64bf_h_sys_epcr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR8 ();
+}
+
+/* Set a value for h-sys-epcr8.  */
+
+void
+or1k64bf_h_sys_epcr8_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR8 (newval);
+}
+
+/* Get the value of h-sys-epcr9.  */
+
+UDI
+or1k64bf_h_sys_epcr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR9 ();
+}
+
+/* Set a value for h-sys-epcr9.  */
+
+void
+or1k64bf_h_sys_epcr9_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR9 (newval);
+}
+
+/* Get the value of h-sys-epcr10.  */
+
+UDI
+or1k64bf_h_sys_epcr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR10 ();
+}
+
+/* Set a value for h-sys-epcr10.  */
+
+void
+or1k64bf_h_sys_epcr10_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR10 (newval);
+}
+
+/* Get the value of h-sys-epcr11.  */
+
+UDI
+or1k64bf_h_sys_epcr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR11 ();
+}
+
+/* Set a value for h-sys-epcr11.  */
+
+void
+or1k64bf_h_sys_epcr11_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR11 (newval);
+}
+
+/* Get the value of h-sys-epcr12.  */
+
+UDI
+or1k64bf_h_sys_epcr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR12 ();
+}
+
+/* Set a value for h-sys-epcr12.  */
+
+void
+or1k64bf_h_sys_epcr12_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR12 (newval);
+}
+
+/* Get the value of h-sys-epcr13.  */
+
+UDI
+or1k64bf_h_sys_epcr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR13 ();
+}
+
+/* Set a value for h-sys-epcr13.  */
+
+void
+or1k64bf_h_sys_epcr13_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR13 (newval);
+}
+
+/* Get the value of h-sys-epcr14.  */
+
+UDI
+or1k64bf_h_sys_epcr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR14 ();
+}
+
+/* Set a value for h-sys-epcr14.  */
+
+void
+or1k64bf_h_sys_epcr14_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR14 (newval);
+}
+
+/* Get the value of h-sys-epcr15.  */
+
+UDI
+or1k64bf_h_sys_epcr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EPCR15 ();
+}
+
+/* Set a value for h-sys-epcr15.  */
+
+void
+or1k64bf_h_sys_epcr15_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EPCR15 (newval);
+}
+
+/* Get the value of h-sys-eear0.  */
+
+UDI
+or1k64bf_h_sys_eear0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR0 ();
+}
+
+/* Set a value for h-sys-eear0.  */
+
+void
+or1k64bf_h_sys_eear0_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR0 (newval);
+}
+
+/* Get the value of h-sys-eear1.  */
+
+UDI
+or1k64bf_h_sys_eear1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR1 ();
+}
+
+/* Set a value for h-sys-eear1.  */
+
+void
+or1k64bf_h_sys_eear1_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR1 (newval);
+}
+
+/* Get the value of h-sys-eear2.  */
+
+UDI
+or1k64bf_h_sys_eear2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR2 ();
+}
+
+/* Set a value for h-sys-eear2.  */
+
+void
+or1k64bf_h_sys_eear2_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR2 (newval);
+}
+
+/* Get the value of h-sys-eear3.  */
+
+UDI
+or1k64bf_h_sys_eear3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR3 ();
+}
+
+/* Set a value for h-sys-eear3.  */
+
+void
+or1k64bf_h_sys_eear3_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR3 (newval);
+}
+
+/* Get the value of h-sys-eear4.  */
+
+UDI
+or1k64bf_h_sys_eear4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR4 ();
+}
+
+/* Set a value for h-sys-eear4.  */
+
+void
+or1k64bf_h_sys_eear4_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR4 (newval);
+}
+
+/* Get the value of h-sys-eear5.  */
+
+UDI
+or1k64bf_h_sys_eear5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR5 ();
+}
+
+/* Set a value for h-sys-eear5.  */
+
+void
+or1k64bf_h_sys_eear5_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR5 (newval);
+}
+
+/* Get the value of h-sys-eear6.  */
+
+UDI
+or1k64bf_h_sys_eear6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR6 ();
+}
+
+/* Set a value for h-sys-eear6.  */
+
+void
+or1k64bf_h_sys_eear6_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR6 (newval);
+}
+
+/* Get the value of h-sys-eear7.  */
+
+UDI
+or1k64bf_h_sys_eear7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR7 ();
+}
+
+/* Set a value for h-sys-eear7.  */
+
+void
+or1k64bf_h_sys_eear7_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR7 (newval);
+}
+
+/* Get the value of h-sys-eear8.  */
+
+UDI
+or1k64bf_h_sys_eear8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR8 ();
+}
+
+/* Set a value for h-sys-eear8.  */
+
+void
+or1k64bf_h_sys_eear8_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR8 (newval);
+}
+
+/* Get the value of h-sys-eear9.  */
+
+UDI
+or1k64bf_h_sys_eear9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR9 ();
+}
+
+/* Set a value for h-sys-eear9.  */
+
+void
+or1k64bf_h_sys_eear9_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR9 (newval);
+}
+
+/* Get the value of h-sys-eear10.  */
+
+UDI
+or1k64bf_h_sys_eear10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR10 ();
+}
+
+/* Set a value for h-sys-eear10.  */
+
+void
+or1k64bf_h_sys_eear10_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR10 (newval);
+}
+
+/* Get the value of h-sys-eear11.  */
+
+UDI
+or1k64bf_h_sys_eear11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR11 ();
+}
+
+/* Set a value for h-sys-eear11.  */
+
+void
+or1k64bf_h_sys_eear11_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR11 (newval);
+}
+
+/* Get the value of h-sys-eear12.  */
+
+UDI
+or1k64bf_h_sys_eear12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR12 ();
+}
+
+/* Set a value for h-sys-eear12.  */
+
+void
+or1k64bf_h_sys_eear12_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR12 (newval);
+}
+
+/* Get the value of h-sys-eear13.  */
+
+UDI
+or1k64bf_h_sys_eear13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR13 ();
+}
+
+/* Set a value for h-sys-eear13.  */
+
+void
+or1k64bf_h_sys_eear13_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR13 (newval);
+}
+
+/* Get the value of h-sys-eear14.  */
+
+UDI
+or1k64bf_h_sys_eear14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR14 ();
+}
+
+/* Set a value for h-sys-eear14.  */
+
+void
+or1k64bf_h_sys_eear14_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR14 (newval);
+}
+
+/* Get the value of h-sys-eear15.  */
+
+UDI
+or1k64bf_h_sys_eear15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_EEAR15 ();
+}
+
+/* Set a value for h-sys-eear15.  */
+
+void
+or1k64bf_h_sys_eear15_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_EEAR15 (newval);
+}
+
+/* Get the value of h-sys-esr0.  */
+
+UDI
+or1k64bf_h_sys_esr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR0 ();
+}
+
+/* Set a value for h-sys-esr0.  */
+
+void
+or1k64bf_h_sys_esr0_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR0 (newval);
+}
+
+/* Get the value of h-sys-esr1.  */
+
+UDI
+or1k64bf_h_sys_esr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR1 ();
+}
+
+/* Set a value for h-sys-esr1.  */
+
+void
+or1k64bf_h_sys_esr1_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR1 (newval);
+}
+
+/* Get the value of h-sys-esr2.  */
+
+UDI
+or1k64bf_h_sys_esr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR2 ();
+}
+
+/* Set a value for h-sys-esr2.  */
+
+void
+or1k64bf_h_sys_esr2_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR2 (newval);
+}
+
+/* Get the value of h-sys-esr3.  */
+
+UDI
+or1k64bf_h_sys_esr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR3 ();
+}
+
+/* Set a value for h-sys-esr3.  */
+
+void
+or1k64bf_h_sys_esr3_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR3 (newval);
+}
+
+/* Get the value of h-sys-esr4.  */
+
+UDI
+or1k64bf_h_sys_esr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR4 ();
+}
+
+/* Set a value for h-sys-esr4.  */
+
+void
+or1k64bf_h_sys_esr4_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR4 (newval);
+}
+
+/* Get the value of h-sys-esr5.  */
+
+UDI
+or1k64bf_h_sys_esr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR5 ();
+}
+
+/* Set a value for h-sys-esr5.  */
+
+void
+or1k64bf_h_sys_esr5_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR5 (newval);
+}
+
+/* Get the value of h-sys-esr6.  */
+
+UDI
+or1k64bf_h_sys_esr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR6 ();
+}
+
+/* Set a value for h-sys-esr6.  */
+
+void
+or1k64bf_h_sys_esr6_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR6 (newval);
+}
+
+/* Get the value of h-sys-esr7.  */
+
+UDI
+or1k64bf_h_sys_esr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR7 ();
+}
+
+/* Set a value for h-sys-esr7.  */
+
+void
+or1k64bf_h_sys_esr7_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR7 (newval);
+}
+
+/* Get the value of h-sys-esr8.  */
+
+UDI
+or1k64bf_h_sys_esr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR8 ();
+}
+
+/* Set a value for h-sys-esr8.  */
+
+void
+or1k64bf_h_sys_esr8_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR8 (newval);
+}
+
+/* Get the value of h-sys-esr9.  */
+
+UDI
+or1k64bf_h_sys_esr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR9 ();
+}
+
+/* Set a value for h-sys-esr9.  */
+
+void
+or1k64bf_h_sys_esr9_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR9 (newval);
+}
+
+/* Get the value of h-sys-esr10.  */
+
+UDI
+or1k64bf_h_sys_esr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR10 ();
+}
+
+/* Set a value for h-sys-esr10.  */
+
+void
+or1k64bf_h_sys_esr10_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR10 (newval);
+}
+
+/* Get the value of h-sys-esr11.  */
+
+UDI
+or1k64bf_h_sys_esr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR11 ();
+}
+
+/* Set a value for h-sys-esr11.  */
+
+void
+or1k64bf_h_sys_esr11_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR11 (newval);
+}
+
+/* Get the value of h-sys-esr12.  */
+
+UDI
+or1k64bf_h_sys_esr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR12 ();
+}
+
+/* Set a value for h-sys-esr12.  */
+
+void
+or1k64bf_h_sys_esr12_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR12 (newval);
+}
+
+/* Get the value of h-sys-esr13.  */
+
+UDI
+or1k64bf_h_sys_esr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR13 ();
+}
+
+/* Set a value for h-sys-esr13.  */
+
+void
+or1k64bf_h_sys_esr13_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR13 (newval);
+}
+
+/* Get the value of h-sys-esr14.  */
+
+UDI
+or1k64bf_h_sys_esr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR14 ();
+}
+
+/* Set a value for h-sys-esr14.  */
+
+void
+or1k64bf_h_sys_esr14_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR14 (newval);
+}
+
+/* Get the value of h-sys-esr15.  */
+
+UDI
+or1k64bf_h_sys_esr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_ESR15 ();
+}
+
+/* Set a value for h-sys-esr15.  */
+
+void
+or1k64bf_h_sys_esr15_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_ESR15 (newval);
+}
+
+/* Get the value of h-sys-gpr0.  */
+
+UDI
+or1k64bf_h_sys_gpr0_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR0 ();
+}
+
+/* Set a value for h-sys-gpr0.  */
+
+void
+or1k64bf_h_sys_gpr0_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR0 (newval);
+}
+
+/* Get the value of h-sys-gpr1.  */
+
+UDI
+or1k64bf_h_sys_gpr1_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR1 ();
+}
+
+/* Set a value for h-sys-gpr1.  */
+
+void
+or1k64bf_h_sys_gpr1_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR1 (newval);
+}
+
+/* Get the value of h-sys-gpr2.  */
+
+UDI
+or1k64bf_h_sys_gpr2_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR2 ();
+}
+
+/* Set a value for h-sys-gpr2.  */
+
+void
+or1k64bf_h_sys_gpr2_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR2 (newval);
+}
+
+/* Get the value of h-sys-gpr3.  */
+
+UDI
+or1k64bf_h_sys_gpr3_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR3 ();
+}
+
+/* Set a value for h-sys-gpr3.  */
+
+void
+or1k64bf_h_sys_gpr3_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR3 (newval);
+}
+
+/* Get the value of h-sys-gpr4.  */
+
+UDI
+or1k64bf_h_sys_gpr4_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR4 ();
+}
+
+/* Set a value for h-sys-gpr4.  */
+
+void
+or1k64bf_h_sys_gpr4_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR4 (newval);
+}
+
+/* Get the value of h-sys-gpr5.  */
+
+UDI
+or1k64bf_h_sys_gpr5_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR5 ();
+}
+
+/* Set a value for h-sys-gpr5.  */
+
+void
+or1k64bf_h_sys_gpr5_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR5 (newval);
+}
+
+/* Get the value of h-sys-gpr6.  */
+
+UDI
+or1k64bf_h_sys_gpr6_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR6 ();
+}
+
+/* Set a value for h-sys-gpr6.  */
+
+void
+or1k64bf_h_sys_gpr6_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR6 (newval);
+}
+
+/* Get the value of h-sys-gpr7.  */
+
+UDI
+or1k64bf_h_sys_gpr7_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR7 ();
+}
+
+/* Set a value for h-sys-gpr7.  */
+
+void
+or1k64bf_h_sys_gpr7_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR7 (newval);
+}
+
+/* Get the value of h-sys-gpr8.  */
+
+UDI
+or1k64bf_h_sys_gpr8_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR8 ();
+}
+
+/* Set a value for h-sys-gpr8.  */
+
+void
+or1k64bf_h_sys_gpr8_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR8 (newval);
+}
+
+/* Get the value of h-sys-gpr9.  */
+
+UDI
+or1k64bf_h_sys_gpr9_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR9 ();
+}
+
+/* Set a value for h-sys-gpr9.  */
+
+void
+or1k64bf_h_sys_gpr9_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR9 (newval);
+}
+
+/* Get the value of h-sys-gpr10.  */
+
+UDI
+or1k64bf_h_sys_gpr10_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR10 ();
+}
+
+/* Set a value for h-sys-gpr10.  */
+
+void
+or1k64bf_h_sys_gpr10_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR10 (newval);
+}
+
+/* Get the value of h-sys-gpr11.  */
+
+UDI
+or1k64bf_h_sys_gpr11_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR11 ();
+}
+
+/* Set a value for h-sys-gpr11.  */
+
+void
+or1k64bf_h_sys_gpr11_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR11 (newval);
+}
+
+/* Get the value of h-sys-gpr12.  */
+
+UDI
+or1k64bf_h_sys_gpr12_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR12 ();
+}
+
+/* Set a value for h-sys-gpr12.  */
+
+void
+or1k64bf_h_sys_gpr12_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR12 (newval);
+}
+
+/* Get the value of h-sys-gpr13.  */
+
+UDI
+or1k64bf_h_sys_gpr13_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR13 ();
+}
+
+/* Set a value for h-sys-gpr13.  */
+
+void
+or1k64bf_h_sys_gpr13_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR13 (newval);
+}
+
+/* Get the value of h-sys-gpr14.  */
+
+UDI
+or1k64bf_h_sys_gpr14_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR14 ();
+}
+
+/* Set a value for h-sys-gpr14.  */
+
+void
+or1k64bf_h_sys_gpr14_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR14 (newval);
+}
+
+/* Get the value of h-sys-gpr15.  */
+
+UDI
+or1k64bf_h_sys_gpr15_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR15 ();
+}
+
+/* Set a value for h-sys-gpr15.  */
+
+void
+or1k64bf_h_sys_gpr15_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR15 (newval);
+}
+
+/* Get the value of h-sys-gpr16.  */
+
+UDI
+or1k64bf_h_sys_gpr16_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR16 ();
+}
+
+/* Set a value for h-sys-gpr16.  */
+
+void
+or1k64bf_h_sys_gpr16_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR16 (newval);
+}
+
+/* Get the value of h-sys-gpr17.  */
+
+UDI
+or1k64bf_h_sys_gpr17_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR17 ();
+}
+
+/* Set a value for h-sys-gpr17.  */
+
+void
+or1k64bf_h_sys_gpr17_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR17 (newval);
+}
+
+/* Get the value of h-sys-gpr18.  */
+
+UDI
+or1k64bf_h_sys_gpr18_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR18 ();
+}
+
+/* Set a value for h-sys-gpr18.  */
+
+void
+or1k64bf_h_sys_gpr18_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR18 (newval);
+}
+
+/* Get the value of h-sys-gpr19.  */
+
+UDI
+or1k64bf_h_sys_gpr19_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR19 ();
+}
+
+/* Set a value for h-sys-gpr19.  */
+
+void
+or1k64bf_h_sys_gpr19_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR19 (newval);
+}
+
+/* Get the value of h-sys-gpr20.  */
+
+UDI
+or1k64bf_h_sys_gpr20_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR20 ();
+}
+
+/* Set a value for h-sys-gpr20.  */
+
+void
+or1k64bf_h_sys_gpr20_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR20 (newval);
+}
+
+/* Get the value of h-sys-gpr21.  */
+
+UDI
+or1k64bf_h_sys_gpr21_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR21 ();
+}
+
+/* Set a value for h-sys-gpr21.  */
+
+void
+or1k64bf_h_sys_gpr21_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR21 (newval);
+}
+
+/* Get the value of h-sys-gpr22.  */
+
+UDI
+or1k64bf_h_sys_gpr22_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR22 ();
+}
+
+/* Set a value for h-sys-gpr22.  */
+
+void
+or1k64bf_h_sys_gpr22_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR22 (newval);
+}
+
+/* Get the value of h-sys-gpr23.  */
+
+UDI
+or1k64bf_h_sys_gpr23_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR23 ();
+}
+
+/* Set a value for h-sys-gpr23.  */
+
+void
+or1k64bf_h_sys_gpr23_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR23 (newval);
+}
+
+/* Get the value of h-sys-gpr24.  */
+
+UDI
+or1k64bf_h_sys_gpr24_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR24 ();
+}
+
+/* Set a value for h-sys-gpr24.  */
+
+void
+or1k64bf_h_sys_gpr24_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR24 (newval);
+}
+
+/* Get the value of h-sys-gpr25.  */
+
+UDI
+or1k64bf_h_sys_gpr25_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR25 ();
+}
+
+/* Set a value for h-sys-gpr25.  */
+
+void
+or1k64bf_h_sys_gpr25_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR25 (newval);
+}
+
+/* Get the value of h-sys-gpr26.  */
+
+UDI
+or1k64bf_h_sys_gpr26_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR26 ();
+}
+
+/* Set a value for h-sys-gpr26.  */
+
+void
+or1k64bf_h_sys_gpr26_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR26 (newval);
+}
+
+/* Get the value of h-sys-gpr27.  */
+
+UDI
+or1k64bf_h_sys_gpr27_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR27 ();
+}
+
+/* Set a value for h-sys-gpr27.  */
+
+void
+or1k64bf_h_sys_gpr27_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR27 (newval);
+}
+
+/* Get the value of h-sys-gpr28.  */
+
+UDI
+or1k64bf_h_sys_gpr28_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR28 ();
+}
+
+/* Set a value for h-sys-gpr28.  */
+
+void
+or1k64bf_h_sys_gpr28_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR28 (newval);
+}
+
+/* Get the value of h-sys-gpr29.  */
+
+UDI
+or1k64bf_h_sys_gpr29_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR29 ();
+}
+
+/* Set a value for h-sys-gpr29.  */
+
+void
+or1k64bf_h_sys_gpr29_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR29 (newval);
+}
+
+/* Get the value of h-sys-gpr30.  */
+
+UDI
+or1k64bf_h_sys_gpr30_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR30 ();
+}
+
+/* Set a value for h-sys-gpr30.  */
+
+void
+or1k64bf_h_sys_gpr30_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR30 (newval);
+}
+
+/* Get the value of h-sys-gpr31.  */
+
+UDI
+or1k64bf_h_sys_gpr31_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR31 ();
+}
+
+/* Set a value for h-sys-gpr31.  */
+
+void
+or1k64bf_h_sys_gpr31_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR31 (newval);
+}
+
+/* Get the value of h-sys-gpr32.  */
+
+UDI
+or1k64bf_h_sys_gpr32_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR32 ();
+}
+
+/* Set a value for h-sys-gpr32.  */
+
+void
+or1k64bf_h_sys_gpr32_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR32 (newval);
+}
+
+/* Get the value of h-sys-gpr33.  */
+
+UDI
+or1k64bf_h_sys_gpr33_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR33 ();
+}
+
+/* Set a value for h-sys-gpr33.  */
+
+void
+or1k64bf_h_sys_gpr33_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR33 (newval);
+}
+
+/* Get the value of h-sys-gpr34.  */
+
+UDI
+or1k64bf_h_sys_gpr34_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR34 ();
+}
+
+/* Set a value for h-sys-gpr34.  */
+
+void
+or1k64bf_h_sys_gpr34_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR34 (newval);
+}
+
+/* Get the value of h-sys-gpr35.  */
+
+UDI
+or1k64bf_h_sys_gpr35_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR35 ();
+}
+
+/* Set a value for h-sys-gpr35.  */
+
+void
+or1k64bf_h_sys_gpr35_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR35 (newval);
+}
+
+/* Get the value of h-sys-gpr36.  */
+
+UDI
+or1k64bf_h_sys_gpr36_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR36 ();
+}
+
+/* Set a value for h-sys-gpr36.  */
+
+void
+or1k64bf_h_sys_gpr36_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR36 (newval);
+}
+
+/* Get the value of h-sys-gpr37.  */
+
+UDI
+or1k64bf_h_sys_gpr37_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR37 ();
+}
+
+/* Set a value for h-sys-gpr37.  */
+
+void
+or1k64bf_h_sys_gpr37_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR37 (newval);
+}
+
+/* Get the value of h-sys-gpr38.  */
+
+UDI
+or1k64bf_h_sys_gpr38_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR38 ();
+}
+
+/* Set a value for h-sys-gpr38.  */
+
+void
+or1k64bf_h_sys_gpr38_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR38 (newval);
+}
+
+/* Get the value of h-sys-gpr39.  */
+
+UDI
+or1k64bf_h_sys_gpr39_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR39 ();
+}
+
+/* Set a value for h-sys-gpr39.  */
+
+void
+or1k64bf_h_sys_gpr39_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR39 (newval);
+}
+
+/* Get the value of h-sys-gpr40.  */
+
+UDI
+or1k64bf_h_sys_gpr40_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR40 ();
+}
+
+/* Set a value for h-sys-gpr40.  */
+
+void
+or1k64bf_h_sys_gpr40_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR40 (newval);
+}
+
+/* Get the value of h-sys-gpr41.  */
+
+UDI
+or1k64bf_h_sys_gpr41_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR41 ();
+}
+
+/* Set a value for h-sys-gpr41.  */
+
+void
+or1k64bf_h_sys_gpr41_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR41 (newval);
+}
+
+/* Get the value of h-sys-gpr42.  */
+
+UDI
+or1k64bf_h_sys_gpr42_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR42 ();
+}
+
+/* Set a value for h-sys-gpr42.  */
+
+void
+or1k64bf_h_sys_gpr42_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR42 (newval);
+}
+
+/* Get the value of h-sys-gpr43.  */
+
+UDI
+or1k64bf_h_sys_gpr43_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR43 ();
+}
+
+/* Set a value for h-sys-gpr43.  */
+
+void
+or1k64bf_h_sys_gpr43_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR43 (newval);
+}
+
+/* Get the value of h-sys-gpr44.  */
+
+UDI
+or1k64bf_h_sys_gpr44_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR44 ();
+}
+
+/* Set a value for h-sys-gpr44.  */
+
+void
+or1k64bf_h_sys_gpr44_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR44 (newval);
+}
+
+/* Get the value of h-sys-gpr45.  */
+
+UDI
+or1k64bf_h_sys_gpr45_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR45 ();
+}
+
+/* Set a value for h-sys-gpr45.  */
+
+void
+or1k64bf_h_sys_gpr45_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR45 (newval);
+}
+
+/* Get the value of h-sys-gpr46.  */
+
+UDI
+or1k64bf_h_sys_gpr46_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR46 ();
+}
+
+/* Set a value for h-sys-gpr46.  */
+
+void
+or1k64bf_h_sys_gpr46_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR46 (newval);
+}
+
+/* Get the value of h-sys-gpr47.  */
+
+UDI
+or1k64bf_h_sys_gpr47_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR47 ();
+}
+
+/* Set a value for h-sys-gpr47.  */
+
+void
+or1k64bf_h_sys_gpr47_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR47 (newval);
+}
+
+/* Get the value of h-sys-gpr48.  */
+
+UDI
+or1k64bf_h_sys_gpr48_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR48 ();
+}
+
+/* Set a value for h-sys-gpr48.  */
+
+void
+or1k64bf_h_sys_gpr48_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR48 (newval);
+}
+
+/* Get the value of h-sys-gpr49.  */
+
+UDI
+or1k64bf_h_sys_gpr49_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR49 ();
+}
+
+/* Set a value for h-sys-gpr49.  */
+
+void
+or1k64bf_h_sys_gpr49_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR49 (newval);
+}
+
+/* Get the value of h-sys-gpr50.  */
+
+UDI
+or1k64bf_h_sys_gpr50_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR50 ();
+}
+
+/* Set a value for h-sys-gpr50.  */
+
+void
+or1k64bf_h_sys_gpr50_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR50 (newval);
+}
+
+/* Get the value of h-sys-gpr51.  */
+
+UDI
+or1k64bf_h_sys_gpr51_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR51 ();
+}
+
+/* Set a value for h-sys-gpr51.  */
+
+void
+or1k64bf_h_sys_gpr51_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR51 (newval);
+}
+
+/* Get the value of h-sys-gpr52.  */
+
+UDI
+or1k64bf_h_sys_gpr52_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR52 ();
+}
+
+/* Set a value for h-sys-gpr52.  */
+
+void
+or1k64bf_h_sys_gpr52_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR52 (newval);
+}
+
+/* Get the value of h-sys-gpr53.  */
+
+UDI
+or1k64bf_h_sys_gpr53_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR53 ();
+}
+
+/* Set a value for h-sys-gpr53.  */
+
+void
+or1k64bf_h_sys_gpr53_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR53 (newval);
+}
+
+/* Get the value of h-sys-gpr54.  */
+
+UDI
+or1k64bf_h_sys_gpr54_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR54 ();
+}
+
+/* Set a value for h-sys-gpr54.  */
+
+void
+or1k64bf_h_sys_gpr54_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR54 (newval);
+}
+
+/* Get the value of h-sys-gpr55.  */
+
+UDI
+or1k64bf_h_sys_gpr55_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR55 ();
+}
+
+/* Set a value for h-sys-gpr55.  */
+
+void
+or1k64bf_h_sys_gpr55_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR55 (newval);
+}
+
+/* Get the value of h-sys-gpr56.  */
+
+UDI
+or1k64bf_h_sys_gpr56_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR56 ();
+}
+
+/* Set a value for h-sys-gpr56.  */
+
+void
+or1k64bf_h_sys_gpr56_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR56 (newval);
+}
+
+/* Get the value of h-sys-gpr57.  */
+
+UDI
+or1k64bf_h_sys_gpr57_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR57 ();
+}
+
+/* Set a value for h-sys-gpr57.  */
+
+void
+or1k64bf_h_sys_gpr57_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR57 (newval);
+}
+
+/* Get the value of h-sys-gpr58.  */
+
+UDI
+or1k64bf_h_sys_gpr58_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR58 ();
+}
+
+/* Set a value for h-sys-gpr58.  */
+
+void
+or1k64bf_h_sys_gpr58_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR58 (newval);
+}
+
+/* Get the value of h-sys-gpr59.  */
+
+UDI
+or1k64bf_h_sys_gpr59_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR59 ();
+}
+
+/* Set a value for h-sys-gpr59.  */
+
+void
+or1k64bf_h_sys_gpr59_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR59 (newval);
+}
+
+/* Get the value of h-sys-gpr60.  */
+
+UDI
+or1k64bf_h_sys_gpr60_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR60 ();
+}
+
+/* Set a value for h-sys-gpr60.  */
+
+void
+or1k64bf_h_sys_gpr60_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR60 (newval);
+}
+
+/* Get the value of h-sys-gpr61.  */
+
+UDI
+or1k64bf_h_sys_gpr61_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR61 ();
+}
+
+/* Set a value for h-sys-gpr61.  */
+
+void
+or1k64bf_h_sys_gpr61_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR61 (newval);
+}
+
+/* Get the value of h-sys-gpr62.  */
+
+UDI
+or1k64bf_h_sys_gpr62_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR62 ();
+}
+
+/* Set a value for h-sys-gpr62.  */
+
+void
+or1k64bf_h_sys_gpr62_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR62 (newval);
+}
+
+/* Get the value of h-sys-gpr63.  */
+
+UDI
+or1k64bf_h_sys_gpr63_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR63 ();
+}
+
+/* Set a value for h-sys-gpr63.  */
+
+void
+or1k64bf_h_sys_gpr63_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR63 (newval);
+}
+
+/* Get the value of h-sys-gpr64.  */
+
+UDI
+or1k64bf_h_sys_gpr64_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR64 ();
+}
+
+/* Set a value for h-sys-gpr64.  */
+
+void
+or1k64bf_h_sys_gpr64_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR64 (newval);
+}
+
+/* Get the value of h-sys-gpr65.  */
+
+UDI
+or1k64bf_h_sys_gpr65_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR65 ();
+}
+
+/* Set a value for h-sys-gpr65.  */
+
+void
+or1k64bf_h_sys_gpr65_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR65 (newval);
+}
+
+/* Get the value of h-sys-gpr66.  */
+
+UDI
+or1k64bf_h_sys_gpr66_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR66 ();
+}
+
+/* Set a value for h-sys-gpr66.  */
+
+void
+or1k64bf_h_sys_gpr66_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR66 (newval);
+}
+
+/* Get the value of h-sys-gpr67.  */
+
+UDI
+or1k64bf_h_sys_gpr67_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR67 ();
+}
+
+/* Set a value for h-sys-gpr67.  */
+
+void
+or1k64bf_h_sys_gpr67_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR67 (newval);
+}
+
+/* Get the value of h-sys-gpr68.  */
+
+UDI
+or1k64bf_h_sys_gpr68_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR68 ();
+}
+
+/* Set a value for h-sys-gpr68.  */
+
+void
+or1k64bf_h_sys_gpr68_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR68 (newval);
+}
+
+/* Get the value of h-sys-gpr69.  */
+
+UDI
+or1k64bf_h_sys_gpr69_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR69 ();
+}
+
+/* Set a value for h-sys-gpr69.  */
+
+void
+or1k64bf_h_sys_gpr69_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR69 (newval);
+}
+
+/* Get the value of h-sys-gpr70.  */
+
+UDI
+or1k64bf_h_sys_gpr70_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR70 ();
+}
+
+/* Set a value for h-sys-gpr70.  */
+
+void
+or1k64bf_h_sys_gpr70_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR70 (newval);
+}
+
+/* Get the value of h-sys-gpr71.  */
+
+UDI
+or1k64bf_h_sys_gpr71_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR71 ();
+}
+
+/* Set a value for h-sys-gpr71.  */
+
+void
+or1k64bf_h_sys_gpr71_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR71 (newval);
+}
+
+/* Get the value of h-sys-gpr72.  */
+
+UDI
+or1k64bf_h_sys_gpr72_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR72 ();
+}
+
+/* Set a value for h-sys-gpr72.  */
+
+void
+or1k64bf_h_sys_gpr72_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR72 (newval);
+}
+
+/* Get the value of h-sys-gpr73.  */
+
+UDI
+or1k64bf_h_sys_gpr73_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR73 ();
+}
+
+/* Set a value for h-sys-gpr73.  */
+
+void
+or1k64bf_h_sys_gpr73_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR73 (newval);
+}
+
+/* Get the value of h-sys-gpr74.  */
+
+UDI
+or1k64bf_h_sys_gpr74_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR74 ();
+}
+
+/* Set a value for h-sys-gpr74.  */
+
+void
+or1k64bf_h_sys_gpr74_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR74 (newval);
+}
+
+/* Get the value of h-sys-gpr75.  */
+
+UDI
+or1k64bf_h_sys_gpr75_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR75 ();
+}
+
+/* Set a value for h-sys-gpr75.  */
+
+void
+or1k64bf_h_sys_gpr75_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR75 (newval);
+}
+
+/* Get the value of h-sys-gpr76.  */
+
+UDI
+or1k64bf_h_sys_gpr76_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR76 ();
+}
+
+/* Set a value for h-sys-gpr76.  */
+
+void
+or1k64bf_h_sys_gpr76_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR76 (newval);
+}
+
+/* Get the value of h-sys-gpr77.  */
+
+UDI
+or1k64bf_h_sys_gpr77_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR77 ();
+}
+
+/* Set a value for h-sys-gpr77.  */
+
+void
+or1k64bf_h_sys_gpr77_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR77 (newval);
+}
+
+/* Get the value of h-sys-gpr78.  */
+
+UDI
+or1k64bf_h_sys_gpr78_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR78 ();
+}
+
+/* Set a value for h-sys-gpr78.  */
+
+void
+or1k64bf_h_sys_gpr78_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR78 (newval);
+}
+
+/* Get the value of h-sys-gpr79.  */
+
+UDI
+or1k64bf_h_sys_gpr79_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR79 ();
+}
+
+/* Set a value for h-sys-gpr79.  */
+
+void
+or1k64bf_h_sys_gpr79_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR79 (newval);
+}
+
+/* Get the value of h-sys-gpr80.  */
+
+UDI
+or1k64bf_h_sys_gpr80_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR80 ();
+}
+
+/* Set a value for h-sys-gpr80.  */
+
+void
+or1k64bf_h_sys_gpr80_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR80 (newval);
+}
+
+/* Get the value of h-sys-gpr81.  */
+
+UDI
+or1k64bf_h_sys_gpr81_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR81 ();
+}
+
+/* Set a value for h-sys-gpr81.  */
+
+void
+or1k64bf_h_sys_gpr81_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR81 (newval);
+}
+
+/* Get the value of h-sys-gpr82.  */
+
+UDI
+or1k64bf_h_sys_gpr82_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR82 ();
+}
+
+/* Set a value for h-sys-gpr82.  */
+
+void
+or1k64bf_h_sys_gpr82_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR82 (newval);
+}
+
+/* Get the value of h-sys-gpr83.  */
+
+UDI
+or1k64bf_h_sys_gpr83_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR83 ();
+}
+
+/* Set a value for h-sys-gpr83.  */
+
+void
+or1k64bf_h_sys_gpr83_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR83 (newval);
+}
+
+/* Get the value of h-sys-gpr84.  */
+
+UDI
+or1k64bf_h_sys_gpr84_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR84 ();
+}
+
+/* Set a value for h-sys-gpr84.  */
+
+void
+or1k64bf_h_sys_gpr84_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR84 (newval);
+}
+
+/* Get the value of h-sys-gpr85.  */
+
+UDI
+or1k64bf_h_sys_gpr85_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR85 ();
+}
+
+/* Set a value for h-sys-gpr85.  */
+
+void
+or1k64bf_h_sys_gpr85_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR85 (newval);
+}
+
+/* Get the value of h-sys-gpr86.  */
+
+UDI
+or1k64bf_h_sys_gpr86_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR86 ();
+}
+
+/* Set a value for h-sys-gpr86.  */
+
+void
+or1k64bf_h_sys_gpr86_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR86 (newval);
+}
+
+/* Get the value of h-sys-gpr87.  */
+
+UDI
+or1k64bf_h_sys_gpr87_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR87 ();
+}
+
+/* Set a value for h-sys-gpr87.  */
+
+void
+or1k64bf_h_sys_gpr87_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR87 (newval);
+}
+
+/* Get the value of h-sys-gpr88.  */
+
+UDI
+or1k64bf_h_sys_gpr88_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR88 ();
+}
+
+/* Set a value for h-sys-gpr88.  */
+
+void
+or1k64bf_h_sys_gpr88_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR88 (newval);
+}
+
+/* Get the value of h-sys-gpr89.  */
+
+UDI
+or1k64bf_h_sys_gpr89_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR89 ();
+}
+
+/* Set a value for h-sys-gpr89.  */
+
+void
+or1k64bf_h_sys_gpr89_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR89 (newval);
+}
+
+/* Get the value of h-sys-gpr90.  */
+
+UDI
+or1k64bf_h_sys_gpr90_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR90 ();
+}
+
+/* Set a value for h-sys-gpr90.  */
+
+void
+or1k64bf_h_sys_gpr90_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR90 (newval);
+}
+
+/* Get the value of h-sys-gpr91.  */
+
+UDI
+or1k64bf_h_sys_gpr91_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR91 ();
+}
+
+/* Set a value for h-sys-gpr91.  */
+
+void
+or1k64bf_h_sys_gpr91_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR91 (newval);
+}
+
+/* Get the value of h-sys-gpr92.  */
+
+UDI
+or1k64bf_h_sys_gpr92_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR92 ();
+}
+
+/* Set a value for h-sys-gpr92.  */
+
+void
+or1k64bf_h_sys_gpr92_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR92 (newval);
+}
+
+/* Get the value of h-sys-gpr93.  */
+
+UDI
+or1k64bf_h_sys_gpr93_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR93 ();
+}
+
+/* Set a value for h-sys-gpr93.  */
+
+void
+or1k64bf_h_sys_gpr93_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR93 (newval);
+}
+
+/* Get the value of h-sys-gpr94.  */
+
+UDI
+or1k64bf_h_sys_gpr94_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR94 ();
+}
+
+/* Set a value for h-sys-gpr94.  */
+
+void
+or1k64bf_h_sys_gpr94_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR94 (newval);
+}
+
+/* Get the value of h-sys-gpr95.  */
+
+UDI
+or1k64bf_h_sys_gpr95_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR95 ();
+}
+
+/* Set a value for h-sys-gpr95.  */
+
+void
+or1k64bf_h_sys_gpr95_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR95 (newval);
+}
+
+/* Get the value of h-sys-gpr96.  */
+
+UDI
+or1k64bf_h_sys_gpr96_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR96 ();
+}
+
+/* Set a value for h-sys-gpr96.  */
+
+void
+or1k64bf_h_sys_gpr96_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR96 (newval);
+}
+
+/* Get the value of h-sys-gpr97.  */
+
+UDI
+or1k64bf_h_sys_gpr97_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR97 ();
+}
+
+/* Set a value for h-sys-gpr97.  */
+
+void
+or1k64bf_h_sys_gpr97_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR97 (newval);
+}
+
+/* Get the value of h-sys-gpr98.  */
+
+UDI
+or1k64bf_h_sys_gpr98_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR98 ();
+}
+
+/* Set a value for h-sys-gpr98.  */
+
+void
+or1k64bf_h_sys_gpr98_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR98 (newval);
+}
+
+/* Get the value of h-sys-gpr99.  */
+
+UDI
+or1k64bf_h_sys_gpr99_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR99 ();
+}
+
+/* Set a value for h-sys-gpr99.  */
+
+void
+or1k64bf_h_sys_gpr99_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR99 (newval);
+}
+
+/* Get the value of h-sys-gpr100.  */
+
+UDI
+or1k64bf_h_sys_gpr100_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR100 ();
+}
+
+/* Set a value for h-sys-gpr100.  */
+
+void
+or1k64bf_h_sys_gpr100_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR100 (newval);
+}
+
+/* Get the value of h-sys-gpr101.  */
+
+UDI
+or1k64bf_h_sys_gpr101_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR101 ();
+}
+
+/* Set a value for h-sys-gpr101.  */
+
+void
+or1k64bf_h_sys_gpr101_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR101 (newval);
+}
+
+/* Get the value of h-sys-gpr102.  */
+
+UDI
+or1k64bf_h_sys_gpr102_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR102 ();
+}
+
+/* Set a value for h-sys-gpr102.  */
+
+void
+or1k64bf_h_sys_gpr102_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR102 (newval);
+}
+
+/* Get the value of h-sys-gpr103.  */
+
+UDI
+or1k64bf_h_sys_gpr103_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR103 ();
+}
+
+/* Set a value for h-sys-gpr103.  */
+
+void
+or1k64bf_h_sys_gpr103_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR103 (newval);
+}
+
+/* Get the value of h-sys-gpr104.  */
+
+UDI
+or1k64bf_h_sys_gpr104_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR104 ();
+}
+
+/* Set a value for h-sys-gpr104.  */
+
+void
+or1k64bf_h_sys_gpr104_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR104 (newval);
+}
+
+/* Get the value of h-sys-gpr105.  */
+
+UDI
+or1k64bf_h_sys_gpr105_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR105 ();
+}
+
+/* Set a value for h-sys-gpr105.  */
+
+void
+or1k64bf_h_sys_gpr105_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR105 (newval);
+}
+
+/* Get the value of h-sys-gpr106.  */
+
+UDI
+or1k64bf_h_sys_gpr106_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR106 ();
+}
+
+/* Set a value for h-sys-gpr106.  */
+
+void
+or1k64bf_h_sys_gpr106_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR106 (newval);
+}
+
+/* Get the value of h-sys-gpr107.  */
+
+UDI
+or1k64bf_h_sys_gpr107_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR107 ();
+}
+
+/* Set a value for h-sys-gpr107.  */
+
+void
+or1k64bf_h_sys_gpr107_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR107 (newval);
+}
+
+/* Get the value of h-sys-gpr108.  */
+
+UDI
+or1k64bf_h_sys_gpr108_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR108 ();
+}
+
+/* Set a value for h-sys-gpr108.  */
+
+void
+or1k64bf_h_sys_gpr108_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR108 (newval);
+}
+
+/* Get the value of h-sys-gpr109.  */
+
+UDI
+or1k64bf_h_sys_gpr109_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR109 ();
+}
+
+/* Set a value for h-sys-gpr109.  */
+
+void
+or1k64bf_h_sys_gpr109_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR109 (newval);
+}
+
+/* Get the value of h-sys-gpr110.  */
+
+UDI
+or1k64bf_h_sys_gpr110_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR110 ();
+}
+
+/* Set a value for h-sys-gpr110.  */
+
+void
+or1k64bf_h_sys_gpr110_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR110 (newval);
+}
+
+/* Get the value of h-sys-gpr111.  */
+
+UDI
+or1k64bf_h_sys_gpr111_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR111 ();
+}
+
+/* Set a value for h-sys-gpr111.  */
+
+void
+or1k64bf_h_sys_gpr111_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR111 (newval);
+}
+
+/* Get the value of h-sys-gpr112.  */
+
+UDI
+or1k64bf_h_sys_gpr112_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR112 ();
+}
+
+/* Set a value for h-sys-gpr112.  */
+
+void
+or1k64bf_h_sys_gpr112_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR112 (newval);
+}
+
+/* Get the value of h-sys-gpr113.  */
+
+UDI
+or1k64bf_h_sys_gpr113_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR113 ();
+}
+
+/* Set a value for h-sys-gpr113.  */
+
+void
+or1k64bf_h_sys_gpr113_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR113 (newval);
+}
+
+/* Get the value of h-sys-gpr114.  */
+
+UDI
+or1k64bf_h_sys_gpr114_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR114 ();
+}
+
+/* Set a value for h-sys-gpr114.  */
+
+void
+or1k64bf_h_sys_gpr114_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR114 (newval);
+}
+
+/* Get the value of h-sys-gpr115.  */
+
+UDI
+or1k64bf_h_sys_gpr115_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR115 ();
+}
+
+/* Set a value for h-sys-gpr115.  */
+
+void
+or1k64bf_h_sys_gpr115_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR115 (newval);
+}
+
+/* Get the value of h-sys-gpr116.  */
+
+UDI
+or1k64bf_h_sys_gpr116_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR116 ();
+}
+
+/* Set a value for h-sys-gpr116.  */
+
+void
+or1k64bf_h_sys_gpr116_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR116 (newval);
+}
+
+/* Get the value of h-sys-gpr117.  */
+
+UDI
+or1k64bf_h_sys_gpr117_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR117 ();
+}
+
+/* Set a value for h-sys-gpr117.  */
+
+void
+or1k64bf_h_sys_gpr117_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR117 (newval);
+}
+
+/* Get the value of h-sys-gpr118.  */
+
+UDI
+or1k64bf_h_sys_gpr118_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR118 ();
+}
+
+/* Set a value for h-sys-gpr118.  */
+
+void
+or1k64bf_h_sys_gpr118_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR118 (newval);
+}
+
+/* Get the value of h-sys-gpr119.  */
+
+UDI
+or1k64bf_h_sys_gpr119_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR119 ();
+}
+
+/* Set a value for h-sys-gpr119.  */
+
+void
+or1k64bf_h_sys_gpr119_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR119 (newval);
+}
+
+/* Get the value of h-sys-gpr120.  */
+
+UDI
+or1k64bf_h_sys_gpr120_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR120 ();
+}
+
+/* Set a value for h-sys-gpr120.  */
+
+void
+or1k64bf_h_sys_gpr120_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR120 (newval);
+}
+
+/* Get the value of h-sys-gpr121.  */
+
+UDI
+or1k64bf_h_sys_gpr121_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR121 ();
+}
+
+/* Set a value for h-sys-gpr121.  */
+
+void
+or1k64bf_h_sys_gpr121_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR121 (newval);
+}
+
+/* Get the value of h-sys-gpr122.  */
+
+UDI
+or1k64bf_h_sys_gpr122_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR122 ();
+}
+
+/* Set a value for h-sys-gpr122.  */
+
+void
+or1k64bf_h_sys_gpr122_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR122 (newval);
+}
+
+/* Get the value of h-sys-gpr123.  */
+
+UDI
+or1k64bf_h_sys_gpr123_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR123 ();
+}
+
+/* Set a value for h-sys-gpr123.  */
+
+void
+or1k64bf_h_sys_gpr123_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR123 (newval);
+}
+
+/* Get the value of h-sys-gpr124.  */
+
+UDI
+or1k64bf_h_sys_gpr124_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR124 ();
+}
+
+/* Set a value for h-sys-gpr124.  */
+
+void
+or1k64bf_h_sys_gpr124_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR124 (newval);
+}
+
+/* Get the value of h-sys-gpr125.  */
+
+UDI
+or1k64bf_h_sys_gpr125_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR125 ();
+}
+
+/* Set a value for h-sys-gpr125.  */
+
+void
+or1k64bf_h_sys_gpr125_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR125 (newval);
+}
+
+/* Get the value of h-sys-gpr126.  */
+
+UDI
+or1k64bf_h_sys_gpr126_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR126 ();
+}
+
+/* Set a value for h-sys-gpr126.  */
+
+void
+or1k64bf_h_sys_gpr126_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR126 (newval);
+}
+
+/* Get the value of h-sys-gpr127.  */
+
+UDI
+or1k64bf_h_sys_gpr127_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR127 ();
+}
+
+/* Set a value for h-sys-gpr127.  */
+
+void
+or1k64bf_h_sys_gpr127_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR127 (newval);
+}
+
+/* Get the value of h-sys-gpr128.  */
+
+UDI
+or1k64bf_h_sys_gpr128_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR128 ();
+}
+
+/* Set a value for h-sys-gpr128.  */
+
+void
+or1k64bf_h_sys_gpr128_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR128 (newval);
+}
+
+/* Get the value of h-sys-gpr129.  */
+
+UDI
+or1k64bf_h_sys_gpr129_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR129 ();
+}
+
+/* Set a value for h-sys-gpr129.  */
+
+void
+or1k64bf_h_sys_gpr129_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR129 (newval);
+}
+
+/* Get the value of h-sys-gpr130.  */
+
+UDI
+or1k64bf_h_sys_gpr130_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR130 ();
+}
+
+/* Set a value for h-sys-gpr130.  */
+
+void
+or1k64bf_h_sys_gpr130_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR130 (newval);
+}
+
+/* Get the value of h-sys-gpr131.  */
+
+UDI
+or1k64bf_h_sys_gpr131_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR131 ();
+}
+
+/* Set a value for h-sys-gpr131.  */
+
+void
+or1k64bf_h_sys_gpr131_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR131 (newval);
+}
+
+/* Get the value of h-sys-gpr132.  */
+
+UDI
+or1k64bf_h_sys_gpr132_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR132 ();
+}
+
+/* Set a value for h-sys-gpr132.  */
+
+void
+or1k64bf_h_sys_gpr132_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR132 (newval);
+}
+
+/* Get the value of h-sys-gpr133.  */
+
+UDI
+or1k64bf_h_sys_gpr133_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR133 ();
+}
+
+/* Set a value for h-sys-gpr133.  */
+
+void
+or1k64bf_h_sys_gpr133_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR133 (newval);
+}
+
+/* Get the value of h-sys-gpr134.  */
+
+UDI
+or1k64bf_h_sys_gpr134_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR134 ();
+}
+
+/* Set a value for h-sys-gpr134.  */
+
+void
+or1k64bf_h_sys_gpr134_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR134 (newval);
+}
+
+/* Get the value of h-sys-gpr135.  */
+
+UDI
+or1k64bf_h_sys_gpr135_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR135 ();
+}
+
+/* Set a value for h-sys-gpr135.  */
+
+void
+or1k64bf_h_sys_gpr135_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR135 (newval);
+}
+
+/* Get the value of h-sys-gpr136.  */
+
+UDI
+or1k64bf_h_sys_gpr136_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR136 ();
+}
+
+/* Set a value for h-sys-gpr136.  */
+
+void
+or1k64bf_h_sys_gpr136_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR136 (newval);
+}
+
+/* Get the value of h-sys-gpr137.  */
+
+UDI
+or1k64bf_h_sys_gpr137_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR137 ();
+}
+
+/* Set a value for h-sys-gpr137.  */
+
+void
+or1k64bf_h_sys_gpr137_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR137 (newval);
+}
+
+/* Get the value of h-sys-gpr138.  */
+
+UDI
+or1k64bf_h_sys_gpr138_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR138 ();
+}
+
+/* Set a value for h-sys-gpr138.  */
+
+void
+or1k64bf_h_sys_gpr138_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR138 (newval);
+}
+
+/* Get the value of h-sys-gpr139.  */
+
+UDI
+or1k64bf_h_sys_gpr139_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR139 ();
+}
+
+/* Set a value for h-sys-gpr139.  */
+
+void
+or1k64bf_h_sys_gpr139_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR139 (newval);
+}
+
+/* Get the value of h-sys-gpr140.  */
+
+UDI
+or1k64bf_h_sys_gpr140_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR140 ();
+}
+
+/* Set a value for h-sys-gpr140.  */
+
+void
+or1k64bf_h_sys_gpr140_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR140 (newval);
+}
+
+/* Get the value of h-sys-gpr141.  */
+
+UDI
+or1k64bf_h_sys_gpr141_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR141 ();
+}
+
+/* Set a value for h-sys-gpr141.  */
+
+void
+or1k64bf_h_sys_gpr141_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR141 (newval);
+}
+
+/* Get the value of h-sys-gpr142.  */
+
+UDI
+or1k64bf_h_sys_gpr142_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR142 ();
+}
+
+/* Set a value for h-sys-gpr142.  */
+
+void
+or1k64bf_h_sys_gpr142_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR142 (newval);
+}
+
+/* Get the value of h-sys-gpr143.  */
+
+UDI
+or1k64bf_h_sys_gpr143_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR143 ();
+}
+
+/* Set a value for h-sys-gpr143.  */
+
+void
+or1k64bf_h_sys_gpr143_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR143 (newval);
+}
+
+/* Get the value of h-sys-gpr144.  */
+
+UDI
+or1k64bf_h_sys_gpr144_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR144 ();
+}
+
+/* Set a value for h-sys-gpr144.  */
+
+void
+or1k64bf_h_sys_gpr144_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR144 (newval);
+}
+
+/* Get the value of h-sys-gpr145.  */
+
+UDI
+or1k64bf_h_sys_gpr145_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR145 ();
+}
+
+/* Set a value for h-sys-gpr145.  */
+
+void
+or1k64bf_h_sys_gpr145_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR145 (newval);
+}
+
+/* Get the value of h-sys-gpr146.  */
+
+UDI
+or1k64bf_h_sys_gpr146_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR146 ();
+}
+
+/* Set a value for h-sys-gpr146.  */
+
+void
+or1k64bf_h_sys_gpr146_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR146 (newval);
+}
+
+/* Get the value of h-sys-gpr147.  */
+
+UDI
+or1k64bf_h_sys_gpr147_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR147 ();
+}
+
+/* Set a value for h-sys-gpr147.  */
+
+void
+or1k64bf_h_sys_gpr147_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR147 (newval);
+}
+
+/* Get the value of h-sys-gpr148.  */
+
+UDI
+or1k64bf_h_sys_gpr148_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR148 ();
+}
+
+/* Set a value for h-sys-gpr148.  */
+
+void
+or1k64bf_h_sys_gpr148_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR148 (newval);
+}
+
+/* Get the value of h-sys-gpr149.  */
+
+UDI
+or1k64bf_h_sys_gpr149_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR149 ();
+}
+
+/* Set a value for h-sys-gpr149.  */
+
+void
+or1k64bf_h_sys_gpr149_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR149 (newval);
+}
+
+/* Get the value of h-sys-gpr150.  */
+
+UDI
+or1k64bf_h_sys_gpr150_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR150 ();
+}
+
+/* Set a value for h-sys-gpr150.  */
+
+void
+or1k64bf_h_sys_gpr150_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR150 (newval);
+}
+
+/* Get the value of h-sys-gpr151.  */
+
+UDI
+or1k64bf_h_sys_gpr151_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR151 ();
+}
+
+/* Set a value for h-sys-gpr151.  */
+
+void
+or1k64bf_h_sys_gpr151_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR151 (newval);
+}
+
+/* Get the value of h-sys-gpr152.  */
+
+UDI
+or1k64bf_h_sys_gpr152_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR152 ();
+}
+
+/* Set a value for h-sys-gpr152.  */
+
+void
+or1k64bf_h_sys_gpr152_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR152 (newval);
+}
+
+/* Get the value of h-sys-gpr153.  */
+
+UDI
+or1k64bf_h_sys_gpr153_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR153 ();
+}
+
+/* Set a value for h-sys-gpr153.  */
+
+void
+or1k64bf_h_sys_gpr153_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR153 (newval);
+}
+
+/* Get the value of h-sys-gpr154.  */
+
+UDI
+or1k64bf_h_sys_gpr154_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR154 ();
+}
+
+/* Set a value for h-sys-gpr154.  */
+
+void
+or1k64bf_h_sys_gpr154_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR154 (newval);
+}
+
+/* Get the value of h-sys-gpr155.  */
+
+UDI
+or1k64bf_h_sys_gpr155_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR155 ();
+}
+
+/* Set a value for h-sys-gpr155.  */
+
+void
+or1k64bf_h_sys_gpr155_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR155 (newval);
+}
+
+/* Get the value of h-sys-gpr156.  */
+
+UDI
+or1k64bf_h_sys_gpr156_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR156 ();
+}
+
+/* Set a value for h-sys-gpr156.  */
+
+void
+or1k64bf_h_sys_gpr156_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR156 (newval);
+}
+
+/* Get the value of h-sys-gpr157.  */
+
+UDI
+or1k64bf_h_sys_gpr157_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR157 ();
+}
+
+/* Set a value for h-sys-gpr157.  */
+
+void
+or1k64bf_h_sys_gpr157_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR157 (newval);
+}
+
+/* Get the value of h-sys-gpr158.  */
+
+UDI
+or1k64bf_h_sys_gpr158_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR158 ();
+}
+
+/* Set a value for h-sys-gpr158.  */
+
+void
+or1k64bf_h_sys_gpr158_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR158 (newval);
+}
+
+/* Get the value of h-sys-gpr159.  */
+
+UDI
+or1k64bf_h_sys_gpr159_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR159 ();
+}
+
+/* Set a value for h-sys-gpr159.  */
+
+void
+or1k64bf_h_sys_gpr159_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR159 (newval);
+}
+
+/* Get the value of h-sys-gpr160.  */
+
+UDI
+or1k64bf_h_sys_gpr160_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR160 ();
+}
+
+/* Set a value for h-sys-gpr160.  */
+
+void
+or1k64bf_h_sys_gpr160_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR160 (newval);
+}
+
+/* Get the value of h-sys-gpr161.  */
+
+UDI
+or1k64bf_h_sys_gpr161_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR161 ();
+}
+
+/* Set a value for h-sys-gpr161.  */
+
+void
+or1k64bf_h_sys_gpr161_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR161 (newval);
+}
+
+/* Get the value of h-sys-gpr162.  */
+
+UDI
+or1k64bf_h_sys_gpr162_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR162 ();
+}
+
+/* Set a value for h-sys-gpr162.  */
+
+void
+or1k64bf_h_sys_gpr162_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR162 (newval);
+}
+
+/* Get the value of h-sys-gpr163.  */
+
+UDI
+or1k64bf_h_sys_gpr163_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR163 ();
+}
+
+/* Set a value for h-sys-gpr163.  */
+
+void
+or1k64bf_h_sys_gpr163_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR163 (newval);
+}
+
+/* Get the value of h-sys-gpr164.  */
+
+UDI
+or1k64bf_h_sys_gpr164_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR164 ();
+}
+
+/* Set a value for h-sys-gpr164.  */
+
+void
+or1k64bf_h_sys_gpr164_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR164 (newval);
+}
+
+/* Get the value of h-sys-gpr165.  */
+
+UDI
+or1k64bf_h_sys_gpr165_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR165 ();
+}
+
+/* Set a value for h-sys-gpr165.  */
+
+void
+or1k64bf_h_sys_gpr165_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR165 (newval);
+}
+
+/* Get the value of h-sys-gpr166.  */
+
+UDI
+or1k64bf_h_sys_gpr166_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR166 ();
+}
+
+/* Set a value for h-sys-gpr166.  */
+
+void
+or1k64bf_h_sys_gpr166_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR166 (newval);
+}
+
+/* Get the value of h-sys-gpr167.  */
+
+UDI
+or1k64bf_h_sys_gpr167_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR167 ();
+}
+
+/* Set a value for h-sys-gpr167.  */
+
+void
+or1k64bf_h_sys_gpr167_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR167 (newval);
+}
+
+/* Get the value of h-sys-gpr168.  */
+
+UDI
+or1k64bf_h_sys_gpr168_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR168 ();
+}
+
+/* Set a value for h-sys-gpr168.  */
+
+void
+or1k64bf_h_sys_gpr168_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR168 (newval);
+}
+
+/* Get the value of h-sys-gpr169.  */
+
+UDI
+or1k64bf_h_sys_gpr169_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR169 ();
+}
+
+/* Set a value for h-sys-gpr169.  */
+
+void
+or1k64bf_h_sys_gpr169_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR169 (newval);
+}
+
+/* Get the value of h-sys-gpr170.  */
+
+UDI
+or1k64bf_h_sys_gpr170_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR170 ();
+}
+
+/* Set a value for h-sys-gpr170.  */
+
+void
+or1k64bf_h_sys_gpr170_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR170 (newval);
+}
+
+/* Get the value of h-sys-gpr171.  */
+
+UDI
+or1k64bf_h_sys_gpr171_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR171 ();
+}
+
+/* Set a value for h-sys-gpr171.  */
+
+void
+or1k64bf_h_sys_gpr171_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR171 (newval);
+}
+
+/* Get the value of h-sys-gpr172.  */
+
+UDI
+or1k64bf_h_sys_gpr172_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR172 ();
+}
+
+/* Set a value for h-sys-gpr172.  */
+
+void
+or1k64bf_h_sys_gpr172_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR172 (newval);
+}
+
+/* Get the value of h-sys-gpr173.  */
+
+UDI
+or1k64bf_h_sys_gpr173_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR173 ();
+}
+
+/* Set a value for h-sys-gpr173.  */
+
+void
+or1k64bf_h_sys_gpr173_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR173 (newval);
+}
+
+/* Get the value of h-sys-gpr174.  */
+
+UDI
+or1k64bf_h_sys_gpr174_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR174 ();
+}
+
+/* Set a value for h-sys-gpr174.  */
+
+void
+or1k64bf_h_sys_gpr174_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR174 (newval);
+}
+
+/* Get the value of h-sys-gpr175.  */
+
+UDI
+or1k64bf_h_sys_gpr175_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR175 ();
+}
+
+/* Set a value for h-sys-gpr175.  */
+
+void
+or1k64bf_h_sys_gpr175_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR175 (newval);
+}
+
+/* Get the value of h-sys-gpr176.  */
+
+UDI
+or1k64bf_h_sys_gpr176_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR176 ();
+}
+
+/* Set a value for h-sys-gpr176.  */
+
+void
+or1k64bf_h_sys_gpr176_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR176 (newval);
+}
+
+/* Get the value of h-sys-gpr177.  */
+
+UDI
+or1k64bf_h_sys_gpr177_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR177 ();
+}
+
+/* Set a value for h-sys-gpr177.  */
+
+void
+or1k64bf_h_sys_gpr177_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR177 (newval);
+}
+
+/* Get the value of h-sys-gpr178.  */
+
+UDI
+or1k64bf_h_sys_gpr178_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR178 ();
+}
+
+/* Set a value for h-sys-gpr178.  */
+
+void
+or1k64bf_h_sys_gpr178_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR178 (newval);
+}
+
+/* Get the value of h-sys-gpr179.  */
+
+UDI
+or1k64bf_h_sys_gpr179_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR179 ();
+}
+
+/* Set a value for h-sys-gpr179.  */
+
+void
+or1k64bf_h_sys_gpr179_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR179 (newval);
+}
+
+/* Get the value of h-sys-gpr180.  */
+
+UDI
+or1k64bf_h_sys_gpr180_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR180 ();
+}
+
+/* Set a value for h-sys-gpr180.  */
+
+void
+or1k64bf_h_sys_gpr180_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR180 (newval);
+}
+
+/* Get the value of h-sys-gpr181.  */
+
+UDI
+or1k64bf_h_sys_gpr181_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR181 ();
+}
+
+/* Set a value for h-sys-gpr181.  */
+
+void
+or1k64bf_h_sys_gpr181_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR181 (newval);
+}
+
+/* Get the value of h-sys-gpr182.  */
+
+UDI
+or1k64bf_h_sys_gpr182_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR182 ();
+}
+
+/* Set a value for h-sys-gpr182.  */
+
+void
+or1k64bf_h_sys_gpr182_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR182 (newval);
+}
+
+/* Get the value of h-sys-gpr183.  */
+
+UDI
+or1k64bf_h_sys_gpr183_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR183 ();
+}
+
+/* Set a value for h-sys-gpr183.  */
+
+void
+or1k64bf_h_sys_gpr183_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR183 (newval);
+}
+
+/* Get the value of h-sys-gpr184.  */
+
+UDI
+or1k64bf_h_sys_gpr184_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR184 ();
+}
+
+/* Set a value for h-sys-gpr184.  */
+
+void
+or1k64bf_h_sys_gpr184_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR184 (newval);
+}
+
+/* Get the value of h-sys-gpr185.  */
+
+UDI
+or1k64bf_h_sys_gpr185_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR185 ();
+}
+
+/* Set a value for h-sys-gpr185.  */
+
+void
+or1k64bf_h_sys_gpr185_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR185 (newval);
+}
+
+/* Get the value of h-sys-gpr186.  */
+
+UDI
+or1k64bf_h_sys_gpr186_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR186 ();
+}
+
+/* Set a value for h-sys-gpr186.  */
+
+void
+or1k64bf_h_sys_gpr186_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR186 (newval);
+}
+
+/* Get the value of h-sys-gpr187.  */
+
+UDI
+or1k64bf_h_sys_gpr187_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR187 ();
+}
+
+/* Set a value for h-sys-gpr187.  */
+
+void
+or1k64bf_h_sys_gpr187_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR187 (newval);
+}
+
+/* Get the value of h-sys-gpr188.  */
+
+UDI
+or1k64bf_h_sys_gpr188_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR188 ();
+}
+
+/* Set a value for h-sys-gpr188.  */
+
+void
+or1k64bf_h_sys_gpr188_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR188 (newval);
+}
+
+/* Get the value of h-sys-gpr189.  */
+
+UDI
+or1k64bf_h_sys_gpr189_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR189 ();
+}
+
+/* Set a value for h-sys-gpr189.  */
+
+void
+or1k64bf_h_sys_gpr189_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR189 (newval);
+}
+
+/* Get the value of h-sys-gpr190.  */
+
+UDI
+or1k64bf_h_sys_gpr190_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR190 ();
+}
+
+/* Set a value for h-sys-gpr190.  */
+
+void
+or1k64bf_h_sys_gpr190_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR190 (newval);
+}
+
+/* Get the value of h-sys-gpr191.  */
+
+UDI
+or1k64bf_h_sys_gpr191_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR191 ();
+}
+
+/* Set a value for h-sys-gpr191.  */
+
+void
+or1k64bf_h_sys_gpr191_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR191 (newval);
+}
+
+/* Get the value of h-sys-gpr192.  */
+
+UDI
+or1k64bf_h_sys_gpr192_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR192 ();
+}
+
+/* Set a value for h-sys-gpr192.  */
+
+void
+or1k64bf_h_sys_gpr192_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR192 (newval);
+}
+
+/* Get the value of h-sys-gpr193.  */
+
+UDI
+or1k64bf_h_sys_gpr193_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR193 ();
+}
+
+/* Set a value for h-sys-gpr193.  */
+
+void
+or1k64bf_h_sys_gpr193_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR193 (newval);
+}
+
+/* Get the value of h-sys-gpr194.  */
+
+UDI
+or1k64bf_h_sys_gpr194_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR194 ();
+}
+
+/* Set a value for h-sys-gpr194.  */
+
+void
+or1k64bf_h_sys_gpr194_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR194 (newval);
+}
+
+/* Get the value of h-sys-gpr195.  */
+
+UDI
+or1k64bf_h_sys_gpr195_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR195 ();
+}
+
+/* Set a value for h-sys-gpr195.  */
+
+void
+or1k64bf_h_sys_gpr195_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR195 (newval);
+}
+
+/* Get the value of h-sys-gpr196.  */
+
+UDI
+or1k64bf_h_sys_gpr196_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR196 ();
+}
+
+/* Set a value for h-sys-gpr196.  */
+
+void
+or1k64bf_h_sys_gpr196_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR196 (newval);
+}
+
+/* Get the value of h-sys-gpr197.  */
+
+UDI
+or1k64bf_h_sys_gpr197_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR197 ();
+}
+
+/* Set a value for h-sys-gpr197.  */
+
+void
+or1k64bf_h_sys_gpr197_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR197 (newval);
+}
+
+/* Get the value of h-sys-gpr198.  */
+
+UDI
+or1k64bf_h_sys_gpr198_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR198 ();
+}
+
+/* Set a value for h-sys-gpr198.  */
+
+void
+or1k64bf_h_sys_gpr198_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR198 (newval);
+}
+
+/* Get the value of h-sys-gpr199.  */
+
+UDI
+or1k64bf_h_sys_gpr199_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR199 ();
+}
+
+/* Set a value for h-sys-gpr199.  */
+
+void
+or1k64bf_h_sys_gpr199_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR199 (newval);
+}
+
+/* Get the value of h-sys-gpr200.  */
+
+UDI
+or1k64bf_h_sys_gpr200_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR200 ();
+}
+
+/* Set a value for h-sys-gpr200.  */
+
+void
+or1k64bf_h_sys_gpr200_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR200 (newval);
+}
+
+/* Get the value of h-sys-gpr201.  */
+
+UDI
+or1k64bf_h_sys_gpr201_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR201 ();
+}
+
+/* Set a value for h-sys-gpr201.  */
+
+void
+or1k64bf_h_sys_gpr201_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR201 (newval);
+}
+
+/* Get the value of h-sys-gpr202.  */
+
+UDI
+or1k64bf_h_sys_gpr202_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR202 ();
+}
+
+/* Set a value for h-sys-gpr202.  */
+
+void
+or1k64bf_h_sys_gpr202_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR202 (newval);
+}
+
+/* Get the value of h-sys-gpr203.  */
+
+UDI
+or1k64bf_h_sys_gpr203_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR203 ();
+}
+
+/* Set a value for h-sys-gpr203.  */
+
+void
+or1k64bf_h_sys_gpr203_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR203 (newval);
+}
+
+/* Get the value of h-sys-gpr204.  */
+
+UDI
+or1k64bf_h_sys_gpr204_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR204 ();
+}
+
+/* Set a value for h-sys-gpr204.  */
+
+void
+or1k64bf_h_sys_gpr204_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR204 (newval);
+}
+
+/* Get the value of h-sys-gpr205.  */
+
+UDI
+or1k64bf_h_sys_gpr205_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR205 ();
+}
+
+/* Set a value for h-sys-gpr205.  */
+
+void
+or1k64bf_h_sys_gpr205_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR205 (newval);
+}
+
+/* Get the value of h-sys-gpr206.  */
+
+UDI
+or1k64bf_h_sys_gpr206_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR206 ();
+}
+
+/* Set a value for h-sys-gpr206.  */
+
+void
+or1k64bf_h_sys_gpr206_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR206 (newval);
+}
+
+/* Get the value of h-sys-gpr207.  */
+
+UDI
+or1k64bf_h_sys_gpr207_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR207 ();
+}
+
+/* Set a value for h-sys-gpr207.  */
+
+void
+or1k64bf_h_sys_gpr207_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR207 (newval);
+}
+
+/* Get the value of h-sys-gpr208.  */
+
+UDI
+or1k64bf_h_sys_gpr208_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR208 ();
+}
+
+/* Set a value for h-sys-gpr208.  */
+
+void
+or1k64bf_h_sys_gpr208_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR208 (newval);
+}
+
+/* Get the value of h-sys-gpr209.  */
+
+UDI
+or1k64bf_h_sys_gpr209_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR209 ();
+}
+
+/* Set a value for h-sys-gpr209.  */
+
+void
+or1k64bf_h_sys_gpr209_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR209 (newval);
+}
+
+/* Get the value of h-sys-gpr210.  */
+
+UDI
+or1k64bf_h_sys_gpr210_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR210 ();
+}
+
+/* Set a value for h-sys-gpr210.  */
+
+void
+or1k64bf_h_sys_gpr210_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR210 (newval);
+}
+
+/* Get the value of h-sys-gpr211.  */
+
+UDI
+or1k64bf_h_sys_gpr211_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR211 ();
+}
+
+/* Set a value for h-sys-gpr211.  */
+
+void
+or1k64bf_h_sys_gpr211_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR211 (newval);
+}
+
+/* Get the value of h-sys-gpr212.  */
+
+UDI
+or1k64bf_h_sys_gpr212_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR212 ();
+}
+
+/* Set a value for h-sys-gpr212.  */
+
+void
+or1k64bf_h_sys_gpr212_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR212 (newval);
+}
+
+/* Get the value of h-sys-gpr213.  */
+
+UDI
+or1k64bf_h_sys_gpr213_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR213 ();
+}
+
+/* Set a value for h-sys-gpr213.  */
+
+void
+or1k64bf_h_sys_gpr213_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR213 (newval);
+}
+
+/* Get the value of h-sys-gpr214.  */
+
+UDI
+or1k64bf_h_sys_gpr214_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR214 ();
+}
+
+/* Set a value for h-sys-gpr214.  */
+
+void
+or1k64bf_h_sys_gpr214_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR214 (newval);
+}
+
+/* Get the value of h-sys-gpr215.  */
+
+UDI
+or1k64bf_h_sys_gpr215_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR215 ();
+}
+
+/* Set a value for h-sys-gpr215.  */
+
+void
+or1k64bf_h_sys_gpr215_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR215 (newval);
+}
+
+/* Get the value of h-sys-gpr216.  */
+
+UDI
+or1k64bf_h_sys_gpr216_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR216 ();
+}
+
+/* Set a value for h-sys-gpr216.  */
+
+void
+or1k64bf_h_sys_gpr216_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR216 (newval);
+}
+
+/* Get the value of h-sys-gpr217.  */
+
+UDI
+or1k64bf_h_sys_gpr217_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR217 ();
+}
+
+/* Set a value for h-sys-gpr217.  */
+
+void
+or1k64bf_h_sys_gpr217_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR217 (newval);
+}
+
+/* Get the value of h-sys-gpr218.  */
+
+UDI
+or1k64bf_h_sys_gpr218_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR218 ();
+}
+
+/* Set a value for h-sys-gpr218.  */
+
+void
+or1k64bf_h_sys_gpr218_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR218 (newval);
+}
+
+/* Get the value of h-sys-gpr219.  */
+
+UDI
+or1k64bf_h_sys_gpr219_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR219 ();
+}
+
+/* Set a value for h-sys-gpr219.  */
+
+void
+or1k64bf_h_sys_gpr219_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR219 (newval);
+}
+
+/* Get the value of h-sys-gpr220.  */
+
+UDI
+or1k64bf_h_sys_gpr220_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR220 ();
+}
+
+/* Set a value for h-sys-gpr220.  */
+
+void
+or1k64bf_h_sys_gpr220_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR220 (newval);
+}
+
+/* Get the value of h-sys-gpr221.  */
+
+UDI
+or1k64bf_h_sys_gpr221_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR221 ();
+}
+
+/* Set a value for h-sys-gpr221.  */
+
+void
+or1k64bf_h_sys_gpr221_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR221 (newval);
+}
+
+/* Get the value of h-sys-gpr222.  */
+
+UDI
+or1k64bf_h_sys_gpr222_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR222 ();
+}
+
+/* Set a value for h-sys-gpr222.  */
+
+void
+or1k64bf_h_sys_gpr222_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR222 (newval);
+}
+
+/* Get the value of h-sys-gpr223.  */
+
+UDI
+or1k64bf_h_sys_gpr223_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR223 ();
+}
+
+/* Set a value for h-sys-gpr223.  */
+
+void
+or1k64bf_h_sys_gpr223_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR223 (newval);
+}
+
+/* Get the value of h-sys-gpr224.  */
+
+UDI
+or1k64bf_h_sys_gpr224_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR224 ();
+}
+
+/* Set a value for h-sys-gpr224.  */
+
+void
+or1k64bf_h_sys_gpr224_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR224 (newval);
+}
+
+/* Get the value of h-sys-gpr225.  */
+
+UDI
+or1k64bf_h_sys_gpr225_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR225 ();
+}
+
+/* Set a value for h-sys-gpr225.  */
+
+void
+or1k64bf_h_sys_gpr225_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR225 (newval);
+}
+
+/* Get the value of h-sys-gpr226.  */
+
+UDI
+or1k64bf_h_sys_gpr226_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR226 ();
+}
+
+/* Set a value for h-sys-gpr226.  */
+
+void
+or1k64bf_h_sys_gpr226_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR226 (newval);
+}
+
+/* Get the value of h-sys-gpr227.  */
+
+UDI
+or1k64bf_h_sys_gpr227_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR227 ();
+}
+
+/* Set a value for h-sys-gpr227.  */
+
+void
+or1k64bf_h_sys_gpr227_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR227 (newval);
+}
+
+/* Get the value of h-sys-gpr228.  */
+
+UDI
+or1k64bf_h_sys_gpr228_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR228 ();
+}
+
+/* Set a value for h-sys-gpr228.  */
+
+void
+or1k64bf_h_sys_gpr228_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR228 (newval);
+}
+
+/* Get the value of h-sys-gpr229.  */
+
+UDI
+or1k64bf_h_sys_gpr229_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR229 ();
+}
+
+/* Set a value for h-sys-gpr229.  */
+
+void
+or1k64bf_h_sys_gpr229_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR229 (newval);
+}
+
+/* Get the value of h-sys-gpr230.  */
+
+UDI
+or1k64bf_h_sys_gpr230_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR230 ();
+}
+
+/* Set a value for h-sys-gpr230.  */
+
+void
+or1k64bf_h_sys_gpr230_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR230 (newval);
+}
+
+/* Get the value of h-sys-gpr231.  */
+
+UDI
+or1k64bf_h_sys_gpr231_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR231 ();
+}
+
+/* Set a value for h-sys-gpr231.  */
+
+void
+or1k64bf_h_sys_gpr231_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR231 (newval);
+}
+
+/* Get the value of h-sys-gpr232.  */
+
+UDI
+or1k64bf_h_sys_gpr232_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR232 ();
+}
+
+/* Set a value for h-sys-gpr232.  */
+
+void
+or1k64bf_h_sys_gpr232_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR232 (newval);
+}
+
+/* Get the value of h-sys-gpr233.  */
+
+UDI
+or1k64bf_h_sys_gpr233_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR233 ();
+}
+
+/* Set a value for h-sys-gpr233.  */
+
+void
+or1k64bf_h_sys_gpr233_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR233 (newval);
+}
+
+/* Get the value of h-sys-gpr234.  */
+
+UDI
+or1k64bf_h_sys_gpr234_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR234 ();
+}
+
+/* Set a value for h-sys-gpr234.  */
+
+void
+or1k64bf_h_sys_gpr234_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR234 (newval);
+}
+
+/* Get the value of h-sys-gpr235.  */
+
+UDI
+or1k64bf_h_sys_gpr235_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR235 ();
+}
+
+/* Set a value for h-sys-gpr235.  */
+
+void
+or1k64bf_h_sys_gpr235_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR235 (newval);
+}
+
+/* Get the value of h-sys-gpr236.  */
+
+UDI
+or1k64bf_h_sys_gpr236_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR236 ();
+}
+
+/* Set a value for h-sys-gpr236.  */
+
+void
+or1k64bf_h_sys_gpr236_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR236 (newval);
+}
+
+/* Get the value of h-sys-gpr237.  */
+
+UDI
+or1k64bf_h_sys_gpr237_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR237 ();
+}
+
+/* Set a value for h-sys-gpr237.  */
+
+void
+or1k64bf_h_sys_gpr237_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR237 (newval);
+}
+
+/* Get the value of h-sys-gpr238.  */
+
+UDI
+or1k64bf_h_sys_gpr238_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR238 ();
+}
+
+/* Set a value for h-sys-gpr238.  */
+
+void
+or1k64bf_h_sys_gpr238_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR238 (newval);
+}
+
+/* Get the value of h-sys-gpr239.  */
+
+UDI
+or1k64bf_h_sys_gpr239_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR239 ();
+}
+
+/* Set a value for h-sys-gpr239.  */
+
+void
+or1k64bf_h_sys_gpr239_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR239 (newval);
+}
+
+/* Get the value of h-sys-gpr240.  */
+
+UDI
+or1k64bf_h_sys_gpr240_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR240 ();
+}
+
+/* Set a value for h-sys-gpr240.  */
+
+void
+or1k64bf_h_sys_gpr240_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR240 (newval);
+}
+
+/* Get the value of h-sys-gpr241.  */
+
+UDI
+or1k64bf_h_sys_gpr241_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR241 ();
+}
+
+/* Set a value for h-sys-gpr241.  */
+
+void
+or1k64bf_h_sys_gpr241_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR241 (newval);
+}
+
+/* Get the value of h-sys-gpr242.  */
+
+UDI
+or1k64bf_h_sys_gpr242_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR242 ();
+}
+
+/* Set a value for h-sys-gpr242.  */
+
+void
+or1k64bf_h_sys_gpr242_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR242 (newval);
+}
+
+/* Get the value of h-sys-gpr243.  */
+
+UDI
+or1k64bf_h_sys_gpr243_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR243 ();
+}
+
+/* Set a value for h-sys-gpr243.  */
+
+void
+or1k64bf_h_sys_gpr243_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR243 (newval);
+}
+
+/* Get the value of h-sys-gpr244.  */
+
+UDI
+or1k64bf_h_sys_gpr244_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR244 ();
+}
+
+/* Set a value for h-sys-gpr244.  */
+
+void
+or1k64bf_h_sys_gpr244_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR244 (newval);
+}
+
+/* Get the value of h-sys-gpr245.  */
+
+UDI
+or1k64bf_h_sys_gpr245_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR245 ();
+}
+
+/* Set a value for h-sys-gpr245.  */
+
+void
+or1k64bf_h_sys_gpr245_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR245 (newval);
+}
+
+/* Get the value of h-sys-gpr246.  */
+
+UDI
+or1k64bf_h_sys_gpr246_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR246 ();
+}
+
+/* Set a value for h-sys-gpr246.  */
+
+void
+or1k64bf_h_sys_gpr246_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR246 (newval);
+}
+
+/* Get the value of h-sys-gpr247.  */
+
+UDI
+or1k64bf_h_sys_gpr247_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR247 ();
+}
+
+/* Set a value for h-sys-gpr247.  */
+
+void
+or1k64bf_h_sys_gpr247_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR247 (newval);
+}
+
+/* Get the value of h-sys-gpr248.  */
+
+UDI
+or1k64bf_h_sys_gpr248_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR248 ();
+}
+
+/* Set a value for h-sys-gpr248.  */
+
+void
+or1k64bf_h_sys_gpr248_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR248 (newval);
+}
+
+/* Get the value of h-sys-gpr249.  */
+
+UDI
+or1k64bf_h_sys_gpr249_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR249 ();
+}
+
+/* Set a value for h-sys-gpr249.  */
+
+void
+or1k64bf_h_sys_gpr249_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR249 (newval);
+}
+
+/* Get the value of h-sys-gpr250.  */
+
+UDI
+or1k64bf_h_sys_gpr250_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR250 ();
+}
+
+/* Set a value for h-sys-gpr250.  */
+
+void
+or1k64bf_h_sys_gpr250_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR250 (newval);
+}
+
+/* Get the value of h-sys-gpr251.  */
+
+UDI
+or1k64bf_h_sys_gpr251_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR251 ();
+}
+
+/* Set a value for h-sys-gpr251.  */
+
+void
+or1k64bf_h_sys_gpr251_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR251 (newval);
+}
+
+/* Get the value of h-sys-gpr252.  */
+
+UDI
+or1k64bf_h_sys_gpr252_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR252 ();
+}
+
+/* Set a value for h-sys-gpr252.  */
+
+void
+or1k64bf_h_sys_gpr252_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR252 (newval);
+}
+
+/* Get the value of h-sys-gpr253.  */
+
+UDI
+or1k64bf_h_sys_gpr253_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR253 ();
+}
+
+/* Set a value for h-sys-gpr253.  */
+
+void
+or1k64bf_h_sys_gpr253_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR253 (newval);
+}
+
+/* Get the value of h-sys-gpr254.  */
+
+UDI
+or1k64bf_h_sys_gpr254_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR254 ();
+}
+
+/* Set a value for h-sys-gpr254.  */
+
+void
+or1k64bf_h_sys_gpr254_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR254 (newval);
+}
+
+/* Get the value of h-sys-gpr255.  */
+
+UDI
+or1k64bf_h_sys_gpr255_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR255 ();
+}
+
+/* Set a value for h-sys-gpr255.  */
+
+void
+or1k64bf_h_sys_gpr255_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR255 (newval);
+}
+
+/* Get the value of h-sys-gpr256.  */
+
+UDI
+or1k64bf_h_sys_gpr256_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR256 ();
+}
+
+/* Set a value for h-sys-gpr256.  */
+
+void
+or1k64bf_h_sys_gpr256_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR256 (newval);
+}
+
+/* Get the value of h-sys-gpr257.  */
+
+UDI
+or1k64bf_h_sys_gpr257_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR257 ();
+}
+
+/* Set a value for h-sys-gpr257.  */
+
+void
+or1k64bf_h_sys_gpr257_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR257 (newval);
+}
+
+/* Get the value of h-sys-gpr258.  */
+
+UDI
+or1k64bf_h_sys_gpr258_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR258 ();
+}
+
+/* Set a value for h-sys-gpr258.  */
+
+void
+or1k64bf_h_sys_gpr258_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR258 (newval);
+}
+
+/* Get the value of h-sys-gpr259.  */
+
+UDI
+or1k64bf_h_sys_gpr259_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR259 ();
+}
+
+/* Set a value for h-sys-gpr259.  */
+
+void
+or1k64bf_h_sys_gpr259_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR259 (newval);
+}
+
+/* Get the value of h-sys-gpr260.  */
+
+UDI
+or1k64bf_h_sys_gpr260_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR260 ();
+}
+
+/* Set a value for h-sys-gpr260.  */
+
+void
+or1k64bf_h_sys_gpr260_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR260 (newval);
+}
+
+/* Get the value of h-sys-gpr261.  */
+
+UDI
+or1k64bf_h_sys_gpr261_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR261 ();
+}
+
+/* Set a value for h-sys-gpr261.  */
+
+void
+or1k64bf_h_sys_gpr261_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR261 (newval);
+}
+
+/* Get the value of h-sys-gpr262.  */
+
+UDI
+or1k64bf_h_sys_gpr262_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR262 ();
+}
+
+/* Set a value for h-sys-gpr262.  */
+
+void
+or1k64bf_h_sys_gpr262_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR262 (newval);
+}
+
+/* Get the value of h-sys-gpr263.  */
+
+UDI
+or1k64bf_h_sys_gpr263_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR263 ();
+}
+
+/* Set a value for h-sys-gpr263.  */
+
+void
+or1k64bf_h_sys_gpr263_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR263 (newval);
+}
+
+/* Get the value of h-sys-gpr264.  */
+
+UDI
+or1k64bf_h_sys_gpr264_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR264 ();
+}
+
+/* Set a value for h-sys-gpr264.  */
+
+void
+or1k64bf_h_sys_gpr264_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR264 (newval);
+}
+
+/* Get the value of h-sys-gpr265.  */
+
+UDI
+or1k64bf_h_sys_gpr265_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR265 ();
+}
+
+/* Set a value for h-sys-gpr265.  */
+
+void
+or1k64bf_h_sys_gpr265_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR265 (newval);
+}
+
+/* Get the value of h-sys-gpr266.  */
+
+UDI
+or1k64bf_h_sys_gpr266_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR266 ();
+}
+
+/* Set a value for h-sys-gpr266.  */
+
+void
+or1k64bf_h_sys_gpr266_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR266 (newval);
+}
+
+/* Get the value of h-sys-gpr267.  */
+
+UDI
+or1k64bf_h_sys_gpr267_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR267 ();
+}
+
+/* Set a value for h-sys-gpr267.  */
+
+void
+or1k64bf_h_sys_gpr267_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR267 (newval);
+}
+
+/* Get the value of h-sys-gpr268.  */
+
+UDI
+or1k64bf_h_sys_gpr268_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR268 ();
+}
+
+/* Set a value for h-sys-gpr268.  */
+
+void
+or1k64bf_h_sys_gpr268_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR268 (newval);
+}
+
+/* Get the value of h-sys-gpr269.  */
+
+UDI
+or1k64bf_h_sys_gpr269_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR269 ();
+}
+
+/* Set a value for h-sys-gpr269.  */
+
+void
+or1k64bf_h_sys_gpr269_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR269 (newval);
+}
+
+/* Get the value of h-sys-gpr270.  */
+
+UDI
+or1k64bf_h_sys_gpr270_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR270 ();
+}
+
+/* Set a value for h-sys-gpr270.  */
+
+void
+or1k64bf_h_sys_gpr270_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR270 (newval);
+}
+
+/* Get the value of h-sys-gpr271.  */
+
+UDI
+or1k64bf_h_sys_gpr271_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR271 ();
+}
+
+/* Set a value for h-sys-gpr271.  */
+
+void
+or1k64bf_h_sys_gpr271_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR271 (newval);
+}
+
+/* Get the value of h-sys-gpr272.  */
+
+UDI
+or1k64bf_h_sys_gpr272_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR272 ();
+}
+
+/* Set a value for h-sys-gpr272.  */
+
+void
+or1k64bf_h_sys_gpr272_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR272 (newval);
+}
+
+/* Get the value of h-sys-gpr273.  */
+
+UDI
+or1k64bf_h_sys_gpr273_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR273 ();
+}
+
+/* Set a value for h-sys-gpr273.  */
+
+void
+or1k64bf_h_sys_gpr273_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR273 (newval);
+}
+
+/* Get the value of h-sys-gpr274.  */
+
+UDI
+or1k64bf_h_sys_gpr274_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR274 ();
+}
+
+/* Set a value for h-sys-gpr274.  */
+
+void
+or1k64bf_h_sys_gpr274_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR274 (newval);
+}
+
+/* Get the value of h-sys-gpr275.  */
+
+UDI
+or1k64bf_h_sys_gpr275_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR275 ();
+}
+
+/* Set a value for h-sys-gpr275.  */
+
+void
+or1k64bf_h_sys_gpr275_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR275 (newval);
+}
+
+/* Get the value of h-sys-gpr276.  */
+
+UDI
+or1k64bf_h_sys_gpr276_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR276 ();
+}
+
+/* Set a value for h-sys-gpr276.  */
+
+void
+or1k64bf_h_sys_gpr276_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR276 (newval);
+}
+
+/* Get the value of h-sys-gpr277.  */
+
+UDI
+or1k64bf_h_sys_gpr277_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR277 ();
+}
+
+/* Set a value for h-sys-gpr277.  */
+
+void
+or1k64bf_h_sys_gpr277_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR277 (newval);
+}
+
+/* Get the value of h-sys-gpr278.  */
+
+UDI
+or1k64bf_h_sys_gpr278_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR278 ();
+}
+
+/* Set a value for h-sys-gpr278.  */
+
+void
+or1k64bf_h_sys_gpr278_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR278 (newval);
+}
+
+/* Get the value of h-sys-gpr279.  */
+
+UDI
+or1k64bf_h_sys_gpr279_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR279 ();
+}
+
+/* Set a value for h-sys-gpr279.  */
+
+void
+or1k64bf_h_sys_gpr279_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR279 (newval);
+}
+
+/* Get the value of h-sys-gpr280.  */
+
+UDI
+or1k64bf_h_sys_gpr280_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR280 ();
+}
+
+/* Set a value for h-sys-gpr280.  */
+
+void
+or1k64bf_h_sys_gpr280_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR280 (newval);
+}
+
+/* Get the value of h-sys-gpr281.  */
+
+UDI
+or1k64bf_h_sys_gpr281_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR281 ();
+}
+
+/* Set a value for h-sys-gpr281.  */
+
+void
+or1k64bf_h_sys_gpr281_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR281 (newval);
+}
+
+/* Get the value of h-sys-gpr282.  */
+
+UDI
+or1k64bf_h_sys_gpr282_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR282 ();
+}
+
+/* Set a value for h-sys-gpr282.  */
+
+void
+or1k64bf_h_sys_gpr282_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR282 (newval);
+}
+
+/* Get the value of h-sys-gpr283.  */
+
+UDI
+or1k64bf_h_sys_gpr283_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR283 ();
+}
+
+/* Set a value for h-sys-gpr283.  */
+
+void
+or1k64bf_h_sys_gpr283_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR283 (newval);
+}
+
+/* Get the value of h-sys-gpr284.  */
+
+UDI
+or1k64bf_h_sys_gpr284_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR284 ();
+}
+
+/* Set a value for h-sys-gpr284.  */
+
+void
+or1k64bf_h_sys_gpr284_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR284 (newval);
+}
+
+/* Get the value of h-sys-gpr285.  */
+
+UDI
+or1k64bf_h_sys_gpr285_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR285 ();
+}
+
+/* Set a value for h-sys-gpr285.  */
+
+void
+or1k64bf_h_sys_gpr285_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR285 (newval);
+}
+
+/* Get the value of h-sys-gpr286.  */
+
+UDI
+or1k64bf_h_sys_gpr286_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR286 ();
+}
+
+/* Set a value for h-sys-gpr286.  */
+
+void
+or1k64bf_h_sys_gpr286_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR286 (newval);
+}
+
+/* Get the value of h-sys-gpr287.  */
+
+UDI
+or1k64bf_h_sys_gpr287_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR287 ();
+}
+
+/* Set a value for h-sys-gpr287.  */
+
+void
+or1k64bf_h_sys_gpr287_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR287 (newval);
+}
+
+/* Get the value of h-sys-gpr288.  */
+
+UDI
+or1k64bf_h_sys_gpr288_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR288 ();
+}
+
+/* Set a value for h-sys-gpr288.  */
+
+void
+or1k64bf_h_sys_gpr288_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR288 (newval);
+}
+
+/* Get the value of h-sys-gpr289.  */
+
+UDI
+or1k64bf_h_sys_gpr289_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR289 ();
+}
+
+/* Set a value for h-sys-gpr289.  */
+
+void
+or1k64bf_h_sys_gpr289_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR289 (newval);
+}
+
+/* Get the value of h-sys-gpr290.  */
+
+UDI
+or1k64bf_h_sys_gpr290_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR290 ();
+}
+
+/* Set a value for h-sys-gpr290.  */
+
+void
+or1k64bf_h_sys_gpr290_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR290 (newval);
+}
+
+/* Get the value of h-sys-gpr291.  */
+
+UDI
+or1k64bf_h_sys_gpr291_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR291 ();
+}
+
+/* Set a value for h-sys-gpr291.  */
+
+void
+or1k64bf_h_sys_gpr291_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR291 (newval);
+}
+
+/* Get the value of h-sys-gpr292.  */
+
+UDI
+or1k64bf_h_sys_gpr292_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR292 ();
+}
+
+/* Set a value for h-sys-gpr292.  */
+
+void
+or1k64bf_h_sys_gpr292_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR292 (newval);
+}
+
+/* Get the value of h-sys-gpr293.  */
+
+UDI
+or1k64bf_h_sys_gpr293_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR293 ();
+}
+
+/* Set a value for h-sys-gpr293.  */
+
+void
+or1k64bf_h_sys_gpr293_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR293 (newval);
+}
+
+/* Get the value of h-sys-gpr294.  */
+
+UDI
+or1k64bf_h_sys_gpr294_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR294 ();
+}
+
+/* Set a value for h-sys-gpr294.  */
+
+void
+or1k64bf_h_sys_gpr294_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR294 (newval);
+}
+
+/* Get the value of h-sys-gpr295.  */
+
+UDI
+or1k64bf_h_sys_gpr295_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR295 ();
+}
+
+/* Set a value for h-sys-gpr295.  */
+
+void
+or1k64bf_h_sys_gpr295_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR295 (newval);
+}
+
+/* Get the value of h-sys-gpr296.  */
+
+UDI
+or1k64bf_h_sys_gpr296_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR296 ();
+}
+
+/* Set a value for h-sys-gpr296.  */
+
+void
+or1k64bf_h_sys_gpr296_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR296 (newval);
+}
+
+/* Get the value of h-sys-gpr297.  */
+
+UDI
+or1k64bf_h_sys_gpr297_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR297 ();
+}
+
+/* Set a value for h-sys-gpr297.  */
+
+void
+or1k64bf_h_sys_gpr297_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR297 (newval);
+}
+
+/* Get the value of h-sys-gpr298.  */
+
+UDI
+or1k64bf_h_sys_gpr298_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR298 ();
+}
+
+/* Set a value for h-sys-gpr298.  */
+
+void
+or1k64bf_h_sys_gpr298_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR298 (newval);
+}
+
+/* Get the value of h-sys-gpr299.  */
+
+UDI
+or1k64bf_h_sys_gpr299_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR299 ();
+}
+
+/* Set a value for h-sys-gpr299.  */
+
+void
+or1k64bf_h_sys_gpr299_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR299 (newval);
+}
+
+/* Get the value of h-sys-gpr300.  */
+
+UDI
+or1k64bf_h_sys_gpr300_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR300 ();
+}
+
+/* Set a value for h-sys-gpr300.  */
+
+void
+or1k64bf_h_sys_gpr300_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR300 (newval);
+}
+
+/* Get the value of h-sys-gpr301.  */
+
+UDI
+or1k64bf_h_sys_gpr301_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR301 ();
+}
+
+/* Set a value for h-sys-gpr301.  */
+
+void
+or1k64bf_h_sys_gpr301_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR301 (newval);
+}
+
+/* Get the value of h-sys-gpr302.  */
+
+UDI
+or1k64bf_h_sys_gpr302_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR302 ();
+}
+
+/* Set a value for h-sys-gpr302.  */
+
+void
+or1k64bf_h_sys_gpr302_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR302 (newval);
+}
+
+/* Get the value of h-sys-gpr303.  */
+
+UDI
+or1k64bf_h_sys_gpr303_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR303 ();
+}
+
+/* Set a value for h-sys-gpr303.  */
+
+void
+or1k64bf_h_sys_gpr303_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR303 (newval);
+}
+
+/* Get the value of h-sys-gpr304.  */
+
+UDI
+or1k64bf_h_sys_gpr304_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR304 ();
+}
+
+/* Set a value for h-sys-gpr304.  */
+
+void
+or1k64bf_h_sys_gpr304_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR304 (newval);
+}
+
+/* Get the value of h-sys-gpr305.  */
+
+UDI
+or1k64bf_h_sys_gpr305_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR305 ();
+}
+
+/* Set a value for h-sys-gpr305.  */
+
+void
+or1k64bf_h_sys_gpr305_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR305 (newval);
+}
+
+/* Get the value of h-sys-gpr306.  */
+
+UDI
+or1k64bf_h_sys_gpr306_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR306 ();
+}
+
+/* Set a value for h-sys-gpr306.  */
+
+void
+or1k64bf_h_sys_gpr306_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR306 (newval);
+}
+
+/* Get the value of h-sys-gpr307.  */
+
+UDI
+or1k64bf_h_sys_gpr307_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR307 ();
+}
+
+/* Set a value for h-sys-gpr307.  */
+
+void
+or1k64bf_h_sys_gpr307_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR307 (newval);
+}
+
+/* Get the value of h-sys-gpr308.  */
+
+UDI
+or1k64bf_h_sys_gpr308_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR308 ();
+}
+
+/* Set a value for h-sys-gpr308.  */
+
+void
+or1k64bf_h_sys_gpr308_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR308 (newval);
+}
+
+/* Get the value of h-sys-gpr309.  */
+
+UDI
+or1k64bf_h_sys_gpr309_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR309 ();
+}
+
+/* Set a value for h-sys-gpr309.  */
+
+void
+or1k64bf_h_sys_gpr309_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR309 (newval);
+}
+
+/* Get the value of h-sys-gpr310.  */
+
+UDI
+or1k64bf_h_sys_gpr310_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR310 ();
+}
+
+/* Set a value for h-sys-gpr310.  */
+
+void
+or1k64bf_h_sys_gpr310_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR310 (newval);
+}
+
+/* Get the value of h-sys-gpr311.  */
+
+UDI
+or1k64bf_h_sys_gpr311_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR311 ();
+}
+
+/* Set a value for h-sys-gpr311.  */
+
+void
+or1k64bf_h_sys_gpr311_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR311 (newval);
+}
+
+/* Get the value of h-sys-gpr312.  */
+
+UDI
+or1k64bf_h_sys_gpr312_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR312 ();
+}
+
+/* Set a value for h-sys-gpr312.  */
+
+void
+or1k64bf_h_sys_gpr312_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR312 (newval);
+}
+
+/* Get the value of h-sys-gpr313.  */
+
+UDI
+or1k64bf_h_sys_gpr313_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR313 ();
+}
+
+/* Set a value for h-sys-gpr313.  */
+
+void
+or1k64bf_h_sys_gpr313_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR313 (newval);
+}
+
+/* Get the value of h-sys-gpr314.  */
+
+UDI
+or1k64bf_h_sys_gpr314_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR314 ();
+}
+
+/* Set a value for h-sys-gpr314.  */
+
+void
+or1k64bf_h_sys_gpr314_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR314 (newval);
+}
+
+/* Get the value of h-sys-gpr315.  */
+
+UDI
+or1k64bf_h_sys_gpr315_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR315 ();
+}
+
+/* Set a value for h-sys-gpr315.  */
+
+void
+or1k64bf_h_sys_gpr315_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR315 (newval);
+}
+
+/* Get the value of h-sys-gpr316.  */
+
+UDI
+or1k64bf_h_sys_gpr316_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR316 ();
+}
+
+/* Set a value for h-sys-gpr316.  */
+
+void
+or1k64bf_h_sys_gpr316_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR316 (newval);
+}
+
+/* Get the value of h-sys-gpr317.  */
+
+UDI
+or1k64bf_h_sys_gpr317_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR317 ();
+}
+
+/* Set a value for h-sys-gpr317.  */
+
+void
+or1k64bf_h_sys_gpr317_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR317 (newval);
+}
+
+/* Get the value of h-sys-gpr318.  */
+
+UDI
+or1k64bf_h_sys_gpr318_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR318 ();
+}
+
+/* Set a value for h-sys-gpr318.  */
+
+void
+or1k64bf_h_sys_gpr318_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR318 (newval);
+}
+
+/* Get the value of h-sys-gpr319.  */
+
+UDI
+or1k64bf_h_sys_gpr319_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR319 ();
+}
+
+/* Set a value for h-sys-gpr319.  */
+
+void
+or1k64bf_h_sys_gpr319_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR319 (newval);
+}
+
+/* Get the value of h-sys-gpr320.  */
+
+UDI
+or1k64bf_h_sys_gpr320_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR320 ();
+}
+
+/* Set a value for h-sys-gpr320.  */
+
+void
+or1k64bf_h_sys_gpr320_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR320 (newval);
+}
+
+/* Get the value of h-sys-gpr321.  */
+
+UDI
+or1k64bf_h_sys_gpr321_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR321 ();
+}
+
+/* Set a value for h-sys-gpr321.  */
+
+void
+or1k64bf_h_sys_gpr321_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR321 (newval);
+}
+
+/* Get the value of h-sys-gpr322.  */
+
+UDI
+or1k64bf_h_sys_gpr322_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR322 ();
+}
+
+/* Set a value for h-sys-gpr322.  */
+
+void
+or1k64bf_h_sys_gpr322_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR322 (newval);
+}
+
+/* Get the value of h-sys-gpr323.  */
+
+UDI
+or1k64bf_h_sys_gpr323_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR323 ();
+}
+
+/* Set a value for h-sys-gpr323.  */
+
+void
+or1k64bf_h_sys_gpr323_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR323 (newval);
+}
+
+/* Get the value of h-sys-gpr324.  */
+
+UDI
+or1k64bf_h_sys_gpr324_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR324 ();
+}
+
+/* Set a value for h-sys-gpr324.  */
+
+void
+or1k64bf_h_sys_gpr324_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR324 (newval);
+}
+
+/* Get the value of h-sys-gpr325.  */
+
+UDI
+or1k64bf_h_sys_gpr325_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR325 ();
+}
+
+/* Set a value for h-sys-gpr325.  */
+
+void
+or1k64bf_h_sys_gpr325_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR325 (newval);
+}
+
+/* Get the value of h-sys-gpr326.  */
+
+UDI
+or1k64bf_h_sys_gpr326_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR326 ();
+}
+
+/* Set a value for h-sys-gpr326.  */
+
+void
+or1k64bf_h_sys_gpr326_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR326 (newval);
+}
+
+/* Get the value of h-sys-gpr327.  */
+
+UDI
+or1k64bf_h_sys_gpr327_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR327 ();
+}
+
+/* Set a value for h-sys-gpr327.  */
+
+void
+or1k64bf_h_sys_gpr327_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR327 (newval);
+}
+
+/* Get the value of h-sys-gpr328.  */
+
+UDI
+or1k64bf_h_sys_gpr328_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR328 ();
+}
+
+/* Set a value for h-sys-gpr328.  */
+
+void
+or1k64bf_h_sys_gpr328_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR328 (newval);
+}
+
+/* Get the value of h-sys-gpr329.  */
+
+UDI
+or1k64bf_h_sys_gpr329_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR329 ();
+}
+
+/* Set a value for h-sys-gpr329.  */
+
+void
+or1k64bf_h_sys_gpr329_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR329 (newval);
+}
+
+/* Get the value of h-sys-gpr330.  */
+
+UDI
+or1k64bf_h_sys_gpr330_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR330 ();
+}
+
+/* Set a value for h-sys-gpr330.  */
+
+void
+or1k64bf_h_sys_gpr330_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR330 (newval);
+}
+
+/* Get the value of h-sys-gpr331.  */
+
+UDI
+or1k64bf_h_sys_gpr331_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR331 ();
+}
+
+/* Set a value for h-sys-gpr331.  */
+
+void
+or1k64bf_h_sys_gpr331_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR331 (newval);
+}
+
+/* Get the value of h-sys-gpr332.  */
+
+UDI
+or1k64bf_h_sys_gpr332_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR332 ();
+}
+
+/* Set a value for h-sys-gpr332.  */
+
+void
+or1k64bf_h_sys_gpr332_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR332 (newval);
+}
+
+/* Get the value of h-sys-gpr333.  */
+
+UDI
+or1k64bf_h_sys_gpr333_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR333 ();
+}
+
+/* Set a value for h-sys-gpr333.  */
+
+void
+or1k64bf_h_sys_gpr333_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR333 (newval);
+}
+
+/* Get the value of h-sys-gpr334.  */
+
+UDI
+or1k64bf_h_sys_gpr334_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR334 ();
+}
+
+/* Set a value for h-sys-gpr334.  */
+
+void
+or1k64bf_h_sys_gpr334_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR334 (newval);
+}
+
+/* Get the value of h-sys-gpr335.  */
+
+UDI
+or1k64bf_h_sys_gpr335_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR335 ();
+}
+
+/* Set a value for h-sys-gpr335.  */
+
+void
+or1k64bf_h_sys_gpr335_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR335 (newval);
+}
+
+/* Get the value of h-sys-gpr336.  */
+
+UDI
+or1k64bf_h_sys_gpr336_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR336 ();
+}
+
+/* Set a value for h-sys-gpr336.  */
+
+void
+or1k64bf_h_sys_gpr336_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR336 (newval);
+}
+
+/* Get the value of h-sys-gpr337.  */
+
+UDI
+or1k64bf_h_sys_gpr337_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR337 ();
+}
+
+/* Set a value for h-sys-gpr337.  */
+
+void
+or1k64bf_h_sys_gpr337_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR337 (newval);
+}
+
+/* Get the value of h-sys-gpr338.  */
+
+UDI
+or1k64bf_h_sys_gpr338_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR338 ();
+}
+
+/* Set a value for h-sys-gpr338.  */
+
+void
+or1k64bf_h_sys_gpr338_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR338 (newval);
+}
+
+/* Get the value of h-sys-gpr339.  */
+
+UDI
+or1k64bf_h_sys_gpr339_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR339 ();
+}
+
+/* Set a value for h-sys-gpr339.  */
+
+void
+or1k64bf_h_sys_gpr339_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR339 (newval);
+}
+
+/* Get the value of h-sys-gpr340.  */
+
+UDI
+or1k64bf_h_sys_gpr340_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR340 ();
+}
+
+/* Set a value for h-sys-gpr340.  */
+
+void
+or1k64bf_h_sys_gpr340_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR340 (newval);
+}
+
+/* Get the value of h-sys-gpr341.  */
+
+UDI
+or1k64bf_h_sys_gpr341_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR341 ();
+}
+
+/* Set a value for h-sys-gpr341.  */
+
+void
+or1k64bf_h_sys_gpr341_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR341 (newval);
+}
+
+/* Get the value of h-sys-gpr342.  */
+
+UDI
+or1k64bf_h_sys_gpr342_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR342 ();
+}
+
+/* Set a value for h-sys-gpr342.  */
+
+void
+or1k64bf_h_sys_gpr342_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR342 (newval);
+}
+
+/* Get the value of h-sys-gpr343.  */
+
+UDI
+or1k64bf_h_sys_gpr343_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR343 ();
+}
+
+/* Set a value for h-sys-gpr343.  */
+
+void
+or1k64bf_h_sys_gpr343_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR343 (newval);
+}
+
+/* Get the value of h-sys-gpr344.  */
+
+UDI
+or1k64bf_h_sys_gpr344_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR344 ();
+}
+
+/* Set a value for h-sys-gpr344.  */
+
+void
+or1k64bf_h_sys_gpr344_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR344 (newval);
+}
+
+/* Get the value of h-sys-gpr345.  */
+
+UDI
+or1k64bf_h_sys_gpr345_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR345 ();
+}
+
+/* Set a value for h-sys-gpr345.  */
+
+void
+or1k64bf_h_sys_gpr345_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR345 (newval);
+}
+
+/* Get the value of h-sys-gpr346.  */
+
+UDI
+or1k64bf_h_sys_gpr346_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR346 ();
+}
+
+/* Set a value for h-sys-gpr346.  */
+
+void
+or1k64bf_h_sys_gpr346_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR346 (newval);
+}
+
+/* Get the value of h-sys-gpr347.  */
+
+UDI
+or1k64bf_h_sys_gpr347_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR347 ();
+}
+
+/* Set a value for h-sys-gpr347.  */
+
+void
+or1k64bf_h_sys_gpr347_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR347 (newval);
+}
+
+/* Get the value of h-sys-gpr348.  */
+
+UDI
+or1k64bf_h_sys_gpr348_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR348 ();
+}
+
+/* Set a value for h-sys-gpr348.  */
+
+void
+or1k64bf_h_sys_gpr348_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR348 (newval);
+}
+
+/* Get the value of h-sys-gpr349.  */
+
+UDI
+or1k64bf_h_sys_gpr349_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR349 ();
+}
+
+/* Set a value for h-sys-gpr349.  */
+
+void
+or1k64bf_h_sys_gpr349_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR349 (newval);
+}
+
+/* Get the value of h-sys-gpr350.  */
+
+UDI
+or1k64bf_h_sys_gpr350_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR350 ();
+}
+
+/* Set a value for h-sys-gpr350.  */
+
+void
+or1k64bf_h_sys_gpr350_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR350 (newval);
+}
+
+/* Get the value of h-sys-gpr351.  */
+
+UDI
+or1k64bf_h_sys_gpr351_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR351 ();
+}
+
+/* Set a value for h-sys-gpr351.  */
+
+void
+or1k64bf_h_sys_gpr351_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR351 (newval);
+}
+
+/* Get the value of h-sys-gpr352.  */
+
+UDI
+or1k64bf_h_sys_gpr352_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR352 ();
+}
+
+/* Set a value for h-sys-gpr352.  */
+
+void
+or1k64bf_h_sys_gpr352_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR352 (newval);
+}
+
+/* Get the value of h-sys-gpr353.  */
+
+UDI
+or1k64bf_h_sys_gpr353_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR353 ();
+}
+
+/* Set a value for h-sys-gpr353.  */
+
+void
+or1k64bf_h_sys_gpr353_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR353 (newval);
+}
+
+/* Get the value of h-sys-gpr354.  */
+
+UDI
+or1k64bf_h_sys_gpr354_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR354 ();
+}
+
+/* Set a value for h-sys-gpr354.  */
+
+void
+or1k64bf_h_sys_gpr354_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR354 (newval);
+}
+
+/* Get the value of h-sys-gpr355.  */
+
+UDI
+or1k64bf_h_sys_gpr355_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR355 ();
+}
+
+/* Set a value for h-sys-gpr355.  */
+
+void
+or1k64bf_h_sys_gpr355_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR355 (newval);
+}
+
+/* Get the value of h-sys-gpr356.  */
+
+UDI
+or1k64bf_h_sys_gpr356_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR356 ();
+}
+
+/* Set a value for h-sys-gpr356.  */
+
+void
+or1k64bf_h_sys_gpr356_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR356 (newval);
+}
+
+/* Get the value of h-sys-gpr357.  */
+
+UDI
+or1k64bf_h_sys_gpr357_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR357 ();
+}
+
+/* Set a value for h-sys-gpr357.  */
+
+void
+or1k64bf_h_sys_gpr357_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR357 (newval);
+}
+
+/* Get the value of h-sys-gpr358.  */
+
+UDI
+or1k64bf_h_sys_gpr358_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR358 ();
+}
+
+/* Set a value for h-sys-gpr358.  */
+
+void
+or1k64bf_h_sys_gpr358_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR358 (newval);
+}
+
+/* Get the value of h-sys-gpr359.  */
+
+UDI
+or1k64bf_h_sys_gpr359_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR359 ();
+}
+
+/* Set a value for h-sys-gpr359.  */
+
+void
+or1k64bf_h_sys_gpr359_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR359 (newval);
+}
+
+/* Get the value of h-sys-gpr360.  */
+
+UDI
+or1k64bf_h_sys_gpr360_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR360 ();
+}
+
+/* Set a value for h-sys-gpr360.  */
+
+void
+or1k64bf_h_sys_gpr360_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR360 (newval);
+}
+
+/* Get the value of h-sys-gpr361.  */
+
+UDI
+or1k64bf_h_sys_gpr361_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR361 ();
+}
+
+/* Set a value for h-sys-gpr361.  */
+
+void
+or1k64bf_h_sys_gpr361_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR361 (newval);
+}
+
+/* Get the value of h-sys-gpr362.  */
+
+UDI
+or1k64bf_h_sys_gpr362_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR362 ();
+}
+
+/* Set a value for h-sys-gpr362.  */
+
+void
+or1k64bf_h_sys_gpr362_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR362 (newval);
+}
+
+/* Get the value of h-sys-gpr363.  */
+
+UDI
+or1k64bf_h_sys_gpr363_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR363 ();
+}
+
+/* Set a value for h-sys-gpr363.  */
+
+void
+or1k64bf_h_sys_gpr363_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR363 (newval);
+}
+
+/* Get the value of h-sys-gpr364.  */
+
+UDI
+or1k64bf_h_sys_gpr364_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR364 ();
+}
+
+/* Set a value for h-sys-gpr364.  */
+
+void
+or1k64bf_h_sys_gpr364_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR364 (newval);
+}
+
+/* Get the value of h-sys-gpr365.  */
+
+UDI
+or1k64bf_h_sys_gpr365_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR365 ();
+}
+
+/* Set a value for h-sys-gpr365.  */
+
+void
+or1k64bf_h_sys_gpr365_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR365 (newval);
+}
+
+/* Get the value of h-sys-gpr366.  */
+
+UDI
+or1k64bf_h_sys_gpr366_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR366 ();
+}
+
+/* Set a value for h-sys-gpr366.  */
+
+void
+or1k64bf_h_sys_gpr366_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR366 (newval);
+}
+
+/* Get the value of h-sys-gpr367.  */
+
+UDI
+or1k64bf_h_sys_gpr367_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR367 ();
+}
+
+/* Set a value for h-sys-gpr367.  */
+
+void
+or1k64bf_h_sys_gpr367_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR367 (newval);
+}
+
+/* Get the value of h-sys-gpr368.  */
+
+UDI
+or1k64bf_h_sys_gpr368_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR368 ();
+}
+
+/* Set a value for h-sys-gpr368.  */
+
+void
+or1k64bf_h_sys_gpr368_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR368 (newval);
+}
+
+/* Get the value of h-sys-gpr369.  */
+
+UDI
+or1k64bf_h_sys_gpr369_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR369 ();
+}
+
+/* Set a value for h-sys-gpr369.  */
+
+void
+or1k64bf_h_sys_gpr369_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR369 (newval);
+}
+
+/* Get the value of h-sys-gpr370.  */
+
+UDI
+or1k64bf_h_sys_gpr370_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR370 ();
+}
+
+/* Set a value for h-sys-gpr370.  */
+
+void
+or1k64bf_h_sys_gpr370_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR370 (newval);
+}
+
+/* Get the value of h-sys-gpr371.  */
+
+UDI
+or1k64bf_h_sys_gpr371_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR371 ();
+}
+
+/* Set a value for h-sys-gpr371.  */
+
+void
+or1k64bf_h_sys_gpr371_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR371 (newval);
+}
+
+/* Get the value of h-sys-gpr372.  */
+
+UDI
+or1k64bf_h_sys_gpr372_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR372 ();
+}
+
+/* Set a value for h-sys-gpr372.  */
+
+void
+or1k64bf_h_sys_gpr372_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR372 (newval);
+}
+
+/* Get the value of h-sys-gpr373.  */
+
+UDI
+or1k64bf_h_sys_gpr373_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR373 ();
+}
+
+/* Set a value for h-sys-gpr373.  */
+
+void
+or1k64bf_h_sys_gpr373_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR373 (newval);
+}
+
+/* Get the value of h-sys-gpr374.  */
+
+UDI
+or1k64bf_h_sys_gpr374_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR374 ();
+}
+
+/* Set a value for h-sys-gpr374.  */
+
+void
+or1k64bf_h_sys_gpr374_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR374 (newval);
+}
+
+/* Get the value of h-sys-gpr375.  */
+
+UDI
+or1k64bf_h_sys_gpr375_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR375 ();
+}
+
+/* Set a value for h-sys-gpr375.  */
+
+void
+or1k64bf_h_sys_gpr375_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR375 (newval);
+}
+
+/* Get the value of h-sys-gpr376.  */
+
+UDI
+or1k64bf_h_sys_gpr376_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR376 ();
+}
+
+/* Set a value for h-sys-gpr376.  */
+
+void
+or1k64bf_h_sys_gpr376_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR376 (newval);
+}
+
+/* Get the value of h-sys-gpr377.  */
+
+UDI
+or1k64bf_h_sys_gpr377_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR377 ();
+}
+
+/* Set a value for h-sys-gpr377.  */
+
+void
+or1k64bf_h_sys_gpr377_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR377 (newval);
+}
+
+/* Get the value of h-sys-gpr378.  */
+
+UDI
+or1k64bf_h_sys_gpr378_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR378 ();
+}
+
+/* Set a value for h-sys-gpr378.  */
+
+void
+or1k64bf_h_sys_gpr378_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR378 (newval);
+}
+
+/* Get the value of h-sys-gpr379.  */
+
+UDI
+or1k64bf_h_sys_gpr379_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR379 ();
+}
+
+/* Set a value for h-sys-gpr379.  */
+
+void
+or1k64bf_h_sys_gpr379_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR379 (newval);
+}
+
+/* Get the value of h-sys-gpr380.  */
+
+UDI
+or1k64bf_h_sys_gpr380_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR380 ();
+}
+
+/* Set a value for h-sys-gpr380.  */
+
+void
+or1k64bf_h_sys_gpr380_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR380 (newval);
+}
+
+/* Get the value of h-sys-gpr381.  */
+
+UDI
+or1k64bf_h_sys_gpr381_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR381 ();
+}
+
+/* Set a value for h-sys-gpr381.  */
+
+void
+or1k64bf_h_sys_gpr381_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR381 (newval);
+}
+
+/* Get the value of h-sys-gpr382.  */
+
+UDI
+or1k64bf_h_sys_gpr382_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR382 ();
+}
+
+/* Set a value for h-sys-gpr382.  */
+
+void
+or1k64bf_h_sys_gpr382_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR382 (newval);
+}
+
+/* Get the value of h-sys-gpr383.  */
+
+UDI
+or1k64bf_h_sys_gpr383_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR383 ();
+}
+
+/* Set a value for h-sys-gpr383.  */
+
+void
+or1k64bf_h_sys_gpr383_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR383 (newval);
+}
+
+/* Get the value of h-sys-gpr384.  */
+
+UDI
+or1k64bf_h_sys_gpr384_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR384 ();
+}
+
+/* Set a value for h-sys-gpr384.  */
+
+void
+or1k64bf_h_sys_gpr384_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR384 (newval);
+}
+
+/* Get the value of h-sys-gpr385.  */
+
+UDI
+or1k64bf_h_sys_gpr385_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR385 ();
+}
+
+/* Set a value for h-sys-gpr385.  */
+
+void
+or1k64bf_h_sys_gpr385_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR385 (newval);
+}
+
+/* Get the value of h-sys-gpr386.  */
+
+UDI
+or1k64bf_h_sys_gpr386_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR386 ();
+}
+
+/* Set a value for h-sys-gpr386.  */
+
+void
+or1k64bf_h_sys_gpr386_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR386 (newval);
+}
+
+/* Get the value of h-sys-gpr387.  */
+
+UDI
+or1k64bf_h_sys_gpr387_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR387 ();
+}
+
+/* Set a value for h-sys-gpr387.  */
+
+void
+or1k64bf_h_sys_gpr387_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR387 (newval);
+}
+
+/* Get the value of h-sys-gpr388.  */
+
+UDI
+or1k64bf_h_sys_gpr388_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR388 ();
+}
+
+/* Set a value for h-sys-gpr388.  */
+
+void
+or1k64bf_h_sys_gpr388_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR388 (newval);
+}
+
+/* Get the value of h-sys-gpr389.  */
+
+UDI
+or1k64bf_h_sys_gpr389_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR389 ();
+}
+
+/* Set a value for h-sys-gpr389.  */
+
+void
+or1k64bf_h_sys_gpr389_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR389 (newval);
+}
+
+/* Get the value of h-sys-gpr390.  */
+
+UDI
+or1k64bf_h_sys_gpr390_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR390 ();
+}
+
+/* Set a value for h-sys-gpr390.  */
+
+void
+or1k64bf_h_sys_gpr390_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR390 (newval);
+}
+
+/* Get the value of h-sys-gpr391.  */
+
+UDI
+or1k64bf_h_sys_gpr391_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR391 ();
+}
+
+/* Set a value for h-sys-gpr391.  */
+
+void
+or1k64bf_h_sys_gpr391_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR391 (newval);
+}
+
+/* Get the value of h-sys-gpr392.  */
+
+UDI
+or1k64bf_h_sys_gpr392_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR392 ();
+}
+
+/* Set a value for h-sys-gpr392.  */
+
+void
+or1k64bf_h_sys_gpr392_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR392 (newval);
+}
+
+/* Get the value of h-sys-gpr393.  */
+
+UDI
+or1k64bf_h_sys_gpr393_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR393 ();
+}
+
+/* Set a value for h-sys-gpr393.  */
+
+void
+or1k64bf_h_sys_gpr393_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR393 (newval);
+}
+
+/* Get the value of h-sys-gpr394.  */
+
+UDI
+or1k64bf_h_sys_gpr394_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR394 ();
+}
+
+/* Set a value for h-sys-gpr394.  */
+
+void
+or1k64bf_h_sys_gpr394_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR394 (newval);
+}
+
+/* Get the value of h-sys-gpr395.  */
+
+UDI
+or1k64bf_h_sys_gpr395_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR395 ();
+}
+
+/* Set a value for h-sys-gpr395.  */
+
+void
+or1k64bf_h_sys_gpr395_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR395 (newval);
+}
+
+/* Get the value of h-sys-gpr396.  */
+
+UDI
+or1k64bf_h_sys_gpr396_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR396 ();
+}
+
+/* Set a value for h-sys-gpr396.  */
+
+void
+or1k64bf_h_sys_gpr396_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR396 (newval);
+}
+
+/* Get the value of h-sys-gpr397.  */
+
+UDI
+or1k64bf_h_sys_gpr397_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR397 ();
+}
+
+/* Set a value for h-sys-gpr397.  */
+
+void
+or1k64bf_h_sys_gpr397_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR397 (newval);
+}
+
+/* Get the value of h-sys-gpr398.  */
+
+UDI
+or1k64bf_h_sys_gpr398_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR398 ();
+}
+
+/* Set a value for h-sys-gpr398.  */
+
+void
+or1k64bf_h_sys_gpr398_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR398 (newval);
+}
+
+/* Get the value of h-sys-gpr399.  */
+
+UDI
+or1k64bf_h_sys_gpr399_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR399 ();
+}
+
+/* Set a value for h-sys-gpr399.  */
+
+void
+or1k64bf_h_sys_gpr399_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR399 (newval);
+}
+
+/* Get the value of h-sys-gpr400.  */
+
+UDI
+or1k64bf_h_sys_gpr400_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR400 ();
+}
+
+/* Set a value for h-sys-gpr400.  */
+
+void
+or1k64bf_h_sys_gpr400_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR400 (newval);
+}
+
+/* Get the value of h-sys-gpr401.  */
+
+UDI
+or1k64bf_h_sys_gpr401_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR401 ();
+}
+
+/* Set a value for h-sys-gpr401.  */
+
+void
+or1k64bf_h_sys_gpr401_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR401 (newval);
+}
+
+/* Get the value of h-sys-gpr402.  */
+
+UDI
+or1k64bf_h_sys_gpr402_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR402 ();
+}
+
+/* Set a value for h-sys-gpr402.  */
+
+void
+or1k64bf_h_sys_gpr402_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR402 (newval);
+}
+
+/* Get the value of h-sys-gpr403.  */
+
+UDI
+or1k64bf_h_sys_gpr403_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR403 ();
+}
+
+/* Set a value for h-sys-gpr403.  */
+
+void
+or1k64bf_h_sys_gpr403_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR403 (newval);
+}
+
+/* Get the value of h-sys-gpr404.  */
+
+UDI
+or1k64bf_h_sys_gpr404_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR404 ();
+}
+
+/* Set a value for h-sys-gpr404.  */
+
+void
+or1k64bf_h_sys_gpr404_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR404 (newval);
+}
+
+/* Get the value of h-sys-gpr405.  */
+
+UDI
+or1k64bf_h_sys_gpr405_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR405 ();
+}
+
+/* Set a value for h-sys-gpr405.  */
+
+void
+or1k64bf_h_sys_gpr405_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR405 (newval);
+}
+
+/* Get the value of h-sys-gpr406.  */
+
+UDI
+or1k64bf_h_sys_gpr406_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR406 ();
+}
+
+/* Set a value for h-sys-gpr406.  */
+
+void
+or1k64bf_h_sys_gpr406_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR406 (newval);
+}
+
+/* Get the value of h-sys-gpr407.  */
+
+UDI
+or1k64bf_h_sys_gpr407_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR407 ();
+}
+
+/* Set a value for h-sys-gpr407.  */
+
+void
+or1k64bf_h_sys_gpr407_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR407 (newval);
+}
+
+/* Get the value of h-sys-gpr408.  */
+
+UDI
+or1k64bf_h_sys_gpr408_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR408 ();
+}
+
+/* Set a value for h-sys-gpr408.  */
+
+void
+or1k64bf_h_sys_gpr408_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR408 (newval);
+}
+
+/* Get the value of h-sys-gpr409.  */
+
+UDI
+or1k64bf_h_sys_gpr409_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR409 ();
+}
+
+/* Set a value for h-sys-gpr409.  */
+
+void
+or1k64bf_h_sys_gpr409_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR409 (newval);
+}
+
+/* Get the value of h-sys-gpr410.  */
+
+UDI
+or1k64bf_h_sys_gpr410_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR410 ();
+}
+
+/* Set a value for h-sys-gpr410.  */
+
+void
+or1k64bf_h_sys_gpr410_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR410 (newval);
+}
+
+/* Get the value of h-sys-gpr411.  */
+
+UDI
+or1k64bf_h_sys_gpr411_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR411 ();
+}
+
+/* Set a value for h-sys-gpr411.  */
+
+void
+or1k64bf_h_sys_gpr411_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR411 (newval);
+}
+
+/* Get the value of h-sys-gpr412.  */
+
+UDI
+or1k64bf_h_sys_gpr412_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR412 ();
+}
+
+/* Set a value for h-sys-gpr412.  */
+
+void
+or1k64bf_h_sys_gpr412_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR412 (newval);
+}
+
+/* Get the value of h-sys-gpr413.  */
+
+UDI
+or1k64bf_h_sys_gpr413_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR413 ();
+}
+
+/* Set a value for h-sys-gpr413.  */
+
+void
+or1k64bf_h_sys_gpr413_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR413 (newval);
+}
+
+/* Get the value of h-sys-gpr414.  */
+
+UDI
+or1k64bf_h_sys_gpr414_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR414 ();
+}
+
+/* Set a value for h-sys-gpr414.  */
+
+void
+or1k64bf_h_sys_gpr414_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR414 (newval);
+}
+
+/* Get the value of h-sys-gpr415.  */
+
+UDI
+or1k64bf_h_sys_gpr415_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR415 ();
+}
+
+/* Set a value for h-sys-gpr415.  */
+
+void
+or1k64bf_h_sys_gpr415_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR415 (newval);
+}
+
+/* Get the value of h-sys-gpr416.  */
+
+UDI
+or1k64bf_h_sys_gpr416_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR416 ();
+}
+
+/* Set a value for h-sys-gpr416.  */
+
+void
+or1k64bf_h_sys_gpr416_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR416 (newval);
+}
+
+/* Get the value of h-sys-gpr417.  */
+
+UDI
+or1k64bf_h_sys_gpr417_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR417 ();
+}
+
+/* Set a value for h-sys-gpr417.  */
+
+void
+or1k64bf_h_sys_gpr417_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR417 (newval);
+}
+
+/* Get the value of h-sys-gpr418.  */
+
+UDI
+or1k64bf_h_sys_gpr418_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR418 ();
+}
+
+/* Set a value for h-sys-gpr418.  */
+
+void
+or1k64bf_h_sys_gpr418_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR418 (newval);
+}
+
+/* Get the value of h-sys-gpr419.  */
+
+UDI
+or1k64bf_h_sys_gpr419_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR419 ();
+}
+
+/* Set a value for h-sys-gpr419.  */
+
+void
+or1k64bf_h_sys_gpr419_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR419 (newval);
+}
+
+/* Get the value of h-sys-gpr420.  */
+
+UDI
+or1k64bf_h_sys_gpr420_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR420 ();
+}
+
+/* Set a value for h-sys-gpr420.  */
+
+void
+or1k64bf_h_sys_gpr420_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR420 (newval);
+}
+
+/* Get the value of h-sys-gpr421.  */
+
+UDI
+or1k64bf_h_sys_gpr421_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR421 ();
+}
+
+/* Set a value for h-sys-gpr421.  */
+
+void
+or1k64bf_h_sys_gpr421_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR421 (newval);
+}
+
+/* Get the value of h-sys-gpr422.  */
+
+UDI
+or1k64bf_h_sys_gpr422_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR422 ();
+}
+
+/* Set a value for h-sys-gpr422.  */
+
+void
+or1k64bf_h_sys_gpr422_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR422 (newval);
+}
+
+/* Get the value of h-sys-gpr423.  */
+
+UDI
+or1k64bf_h_sys_gpr423_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR423 ();
+}
+
+/* Set a value for h-sys-gpr423.  */
+
+void
+or1k64bf_h_sys_gpr423_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR423 (newval);
+}
+
+/* Get the value of h-sys-gpr424.  */
+
+UDI
+or1k64bf_h_sys_gpr424_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR424 ();
+}
+
+/* Set a value for h-sys-gpr424.  */
+
+void
+or1k64bf_h_sys_gpr424_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR424 (newval);
+}
+
+/* Get the value of h-sys-gpr425.  */
+
+UDI
+or1k64bf_h_sys_gpr425_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR425 ();
+}
+
+/* Set a value for h-sys-gpr425.  */
+
+void
+or1k64bf_h_sys_gpr425_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR425 (newval);
+}
+
+/* Get the value of h-sys-gpr426.  */
+
+UDI
+or1k64bf_h_sys_gpr426_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR426 ();
+}
+
+/* Set a value for h-sys-gpr426.  */
+
+void
+or1k64bf_h_sys_gpr426_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR426 (newval);
+}
+
+/* Get the value of h-sys-gpr427.  */
+
+UDI
+or1k64bf_h_sys_gpr427_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR427 ();
+}
+
+/* Set a value for h-sys-gpr427.  */
+
+void
+or1k64bf_h_sys_gpr427_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR427 (newval);
+}
+
+/* Get the value of h-sys-gpr428.  */
+
+UDI
+or1k64bf_h_sys_gpr428_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR428 ();
+}
+
+/* Set a value for h-sys-gpr428.  */
+
+void
+or1k64bf_h_sys_gpr428_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR428 (newval);
+}
+
+/* Get the value of h-sys-gpr429.  */
+
+UDI
+or1k64bf_h_sys_gpr429_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR429 ();
+}
+
+/* Set a value for h-sys-gpr429.  */
+
+void
+or1k64bf_h_sys_gpr429_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR429 (newval);
+}
+
+/* Get the value of h-sys-gpr430.  */
+
+UDI
+or1k64bf_h_sys_gpr430_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR430 ();
+}
+
+/* Set a value for h-sys-gpr430.  */
+
+void
+or1k64bf_h_sys_gpr430_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR430 (newval);
+}
+
+/* Get the value of h-sys-gpr431.  */
+
+UDI
+or1k64bf_h_sys_gpr431_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR431 ();
+}
+
+/* Set a value for h-sys-gpr431.  */
+
+void
+or1k64bf_h_sys_gpr431_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR431 (newval);
+}
+
+/* Get the value of h-sys-gpr432.  */
+
+UDI
+or1k64bf_h_sys_gpr432_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR432 ();
+}
+
+/* Set a value for h-sys-gpr432.  */
+
+void
+or1k64bf_h_sys_gpr432_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR432 (newval);
+}
+
+/* Get the value of h-sys-gpr433.  */
+
+UDI
+or1k64bf_h_sys_gpr433_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR433 ();
+}
+
+/* Set a value for h-sys-gpr433.  */
+
+void
+or1k64bf_h_sys_gpr433_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR433 (newval);
+}
+
+/* Get the value of h-sys-gpr434.  */
+
+UDI
+or1k64bf_h_sys_gpr434_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR434 ();
+}
+
+/* Set a value for h-sys-gpr434.  */
+
+void
+or1k64bf_h_sys_gpr434_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR434 (newval);
+}
+
+/* Get the value of h-sys-gpr435.  */
+
+UDI
+or1k64bf_h_sys_gpr435_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR435 ();
+}
+
+/* Set a value for h-sys-gpr435.  */
+
+void
+or1k64bf_h_sys_gpr435_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR435 (newval);
+}
+
+/* Get the value of h-sys-gpr436.  */
+
+UDI
+or1k64bf_h_sys_gpr436_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR436 ();
+}
+
+/* Set a value for h-sys-gpr436.  */
+
+void
+or1k64bf_h_sys_gpr436_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR436 (newval);
+}
+
+/* Get the value of h-sys-gpr437.  */
+
+UDI
+or1k64bf_h_sys_gpr437_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR437 ();
+}
+
+/* Set a value for h-sys-gpr437.  */
+
+void
+or1k64bf_h_sys_gpr437_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR437 (newval);
+}
+
+/* Get the value of h-sys-gpr438.  */
+
+UDI
+or1k64bf_h_sys_gpr438_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR438 ();
+}
+
+/* Set a value for h-sys-gpr438.  */
+
+void
+or1k64bf_h_sys_gpr438_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR438 (newval);
+}
+
+/* Get the value of h-sys-gpr439.  */
+
+UDI
+or1k64bf_h_sys_gpr439_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR439 ();
+}
+
+/* Set a value for h-sys-gpr439.  */
+
+void
+or1k64bf_h_sys_gpr439_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR439 (newval);
+}
+
+/* Get the value of h-sys-gpr440.  */
+
+UDI
+or1k64bf_h_sys_gpr440_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR440 ();
+}
+
+/* Set a value for h-sys-gpr440.  */
+
+void
+or1k64bf_h_sys_gpr440_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR440 (newval);
+}
+
+/* Get the value of h-sys-gpr441.  */
+
+UDI
+or1k64bf_h_sys_gpr441_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR441 ();
+}
+
+/* Set a value for h-sys-gpr441.  */
+
+void
+or1k64bf_h_sys_gpr441_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR441 (newval);
+}
+
+/* Get the value of h-sys-gpr442.  */
+
+UDI
+or1k64bf_h_sys_gpr442_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR442 ();
+}
+
+/* Set a value for h-sys-gpr442.  */
+
+void
+or1k64bf_h_sys_gpr442_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR442 (newval);
+}
+
+/* Get the value of h-sys-gpr443.  */
+
+UDI
+or1k64bf_h_sys_gpr443_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR443 ();
+}
+
+/* Set a value for h-sys-gpr443.  */
+
+void
+or1k64bf_h_sys_gpr443_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR443 (newval);
+}
+
+/* Get the value of h-sys-gpr444.  */
+
+UDI
+or1k64bf_h_sys_gpr444_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR444 ();
+}
+
+/* Set a value for h-sys-gpr444.  */
+
+void
+or1k64bf_h_sys_gpr444_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR444 (newval);
+}
+
+/* Get the value of h-sys-gpr445.  */
+
+UDI
+or1k64bf_h_sys_gpr445_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR445 ();
+}
+
+/* Set a value for h-sys-gpr445.  */
+
+void
+or1k64bf_h_sys_gpr445_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR445 (newval);
+}
+
+/* Get the value of h-sys-gpr446.  */
+
+UDI
+or1k64bf_h_sys_gpr446_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR446 ();
+}
+
+/* Set a value for h-sys-gpr446.  */
+
+void
+or1k64bf_h_sys_gpr446_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR446 (newval);
+}
+
+/* Get the value of h-sys-gpr447.  */
+
+UDI
+or1k64bf_h_sys_gpr447_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR447 ();
+}
+
+/* Set a value for h-sys-gpr447.  */
+
+void
+or1k64bf_h_sys_gpr447_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR447 (newval);
+}
+
+/* Get the value of h-sys-gpr448.  */
+
+UDI
+or1k64bf_h_sys_gpr448_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR448 ();
+}
+
+/* Set a value for h-sys-gpr448.  */
+
+void
+or1k64bf_h_sys_gpr448_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR448 (newval);
+}
+
+/* Get the value of h-sys-gpr449.  */
+
+UDI
+or1k64bf_h_sys_gpr449_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR449 ();
+}
+
+/* Set a value for h-sys-gpr449.  */
+
+void
+or1k64bf_h_sys_gpr449_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR449 (newval);
+}
+
+/* Get the value of h-sys-gpr450.  */
+
+UDI
+or1k64bf_h_sys_gpr450_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR450 ();
+}
+
+/* Set a value for h-sys-gpr450.  */
+
+void
+or1k64bf_h_sys_gpr450_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR450 (newval);
+}
+
+/* Get the value of h-sys-gpr451.  */
+
+UDI
+or1k64bf_h_sys_gpr451_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR451 ();
+}
+
+/* Set a value for h-sys-gpr451.  */
+
+void
+or1k64bf_h_sys_gpr451_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR451 (newval);
+}
+
+/* Get the value of h-sys-gpr452.  */
+
+UDI
+or1k64bf_h_sys_gpr452_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR452 ();
+}
+
+/* Set a value for h-sys-gpr452.  */
+
+void
+or1k64bf_h_sys_gpr452_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR452 (newval);
+}
+
+/* Get the value of h-sys-gpr453.  */
+
+UDI
+or1k64bf_h_sys_gpr453_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR453 ();
+}
+
+/* Set a value for h-sys-gpr453.  */
+
+void
+or1k64bf_h_sys_gpr453_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR453 (newval);
+}
+
+/* Get the value of h-sys-gpr454.  */
+
+UDI
+or1k64bf_h_sys_gpr454_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR454 ();
+}
+
+/* Set a value for h-sys-gpr454.  */
+
+void
+or1k64bf_h_sys_gpr454_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR454 (newval);
+}
+
+/* Get the value of h-sys-gpr455.  */
+
+UDI
+or1k64bf_h_sys_gpr455_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR455 ();
+}
+
+/* Set a value for h-sys-gpr455.  */
+
+void
+or1k64bf_h_sys_gpr455_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR455 (newval);
+}
+
+/* Get the value of h-sys-gpr456.  */
+
+UDI
+or1k64bf_h_sys_gpr456_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR456 ();
+}
+
+/* Set a value for h-sys-gpr456.  */
+
+void
+or1k64bf_h_sys_gpr456_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR456 (newval);
+}
+
+/* Get the value of h-sys-gpr457.  */
+
+UDI
+or1k64bf_h_sys_gpr457_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR457 ();
+}
+
+/* Set a value for h-sys-gpr457.  */
+
+void
+or1k64bf_h_sys_gpr457_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR457 (newval);
+}
+
+/* Get the value of h-sys-gpr458.  */
+
+UDI
+or1k64bf_h_sys_gpr458_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR458 ();
+}
+
+/* Set a value for h-sys-gpr458.  */
+
+void
+or1k64bf_h_sys_gpr458_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR458 (newval);
+}
+
+/* Get the value of h-sys-gpr459.  */
+
+UDI
+or1k64bf_h_sys_gpr459_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR459 ();
+}
+
+/* Set a value for h-sys-gpr459.  */
+
+void
+or1k64bf_h_sys_gpr459_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR459 (newval);
+}
+
+/* Get the value of h-sys-gpr460.  */
+
+UDI
+or1k64bf_h_sys_gpr460_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR460 ();
+}
+
+/* Set a value for h-sys-gpr460.  */
+
+void
+or1k64bf_h_sys_gpr460_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR460 (newval);
+}
+
+/* Get the value of h-sys-gpr461.  */
+
+UDI
+or1k64bf_h_sys_gpr461_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR461 ();
+}
+
+/* Set a value for h-sys-gpr461.  */
+
+void
+or1k64bf_h_sys_gpr461_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR461 (newval);
+}
+
+/* Get the value of h-sys-gpr462.  */
+
+UDI
+or1k64bf_h_sys_gpr462_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR462 ();
+}
+
+/* Set a value for h-sys-gpr462.  */
+
+void
+or1k64bf_h_sys_gpr462_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR462 (newval);
+}
+
+/* Get the value of h-sys-gpr463.  */
+
+UDI
+or1k64bf_h_sys_gpr463_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR463 ();
+}
+
+/* Set a value for h-sys-gpr463.  */
+
+void
+or1k64bf_h_sys_gpr463_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR463 (newval);
+}
+
+/* Get the value of h-sys-gpr464.  */
+
+UDI
+or1k64bf_h_sys_gpr464_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR464 ();
+}
+
+/* Set a value for h-sys-gpr464.  */
+
+void
+or1k64bf_h_sys_gpr464_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR464 (newval);
+}
+
+/* Get the value of h-sys-gpr465.  */
+
+UDI
+or1k64bf_h_sys_gpr465_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR465 ();
+}
+
+/* Set a value for h-sys-gpr465.  */
+
+void
+or1k64bf_h_sys_gpr465_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR465 (newval);
+}
+
+/* Get the value of h-sys-gpr466.  */
+
+UDI
+or1k64bf_h_sys_gpr466_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR466 ();
+}
+
+/* Set a value for h-sys-gpr466.  */
+
+void
+or1k64bf_h_sys_gpr466_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR466 (newval);
+}
+
+/* Get the value of h-sys-gpr467.  */
+
+UDI
+or1k64bf_h_sys_gpr467_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR467 ();
+}
+
+/* Set a value for h-sys-gpr467.  */
+
+void
+or1k64bf_h_sys_gpr467_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR467 (newval);
+}
+
+/* Get the value of h-sys-gpr468.  */
+
+UDI
+or1k64bf_h_sys_gpr468_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR468 ();
+}
+
+/* Set a value for h-sys-gpr468.  */
+
+void
+or1k64bf_h_sys_gpr468_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR468 (newval);
+}
+
+/* Get the value of h-sys-gpr469.  */
+
+UDI
+or1k64bf_h_sys_gpr469_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR469 ();
+}
+
+/* Set a value for h-sys-gpr469.  */
+
+void
+or1k64bf_h_sys_gpr469_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR469 (newval);
+}
+
+/* Get the value of h-sys-gpr470.  */
+
+UDI
+or1k64bf_h_sys_gpr470_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR470 ();
+}
+
+/* Set a value for h-sys-gpr470.  */
+
+void
+or1k64bf_h_sys_gpr470_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR470 (newval);
+}
+
+/* Get the value of h-sys-gpr471.  */
+
+UDI
+or1k64bf_h_sys_gpr471_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR471 ();
+}
+
+/* Set a value for h-sys-gpr471.  */
+
+void
+or1k64bf_h_sys_gpr471_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR471 (newval);
+}
+
+/* Get the value of h-sys-gpr472.  */
+
+UDI
+or1k64bf_h_sys_gpr472_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR472 ();
+}
+
+/* Set a value for h-sys-gpr472.  */
+
+void
+or1k64bf_h_sys_gpr472_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR472 (newval);
+}
+
+/* Get the value of h-sys-gpr473.  */
+
+UDI
+or1k64bf_h_sys_gpr473_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR473 ();
+}
+
+/* Set a value for h-sys-gpr473.  */
+
+void
+or1k64bf_h_sys_gpr473_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR473 (newval);
+}
+
+/* Get the value of h-sys-gpr474.  */
+
+UDI
+or1k64bf_h_sys_gpr474_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR474 ();
+}
+
+/* Set a value for h-sys-gpr474.  */
+
+void
+or1k64bf_h_sys_gpr474_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR474 (newval);
+}
+
+/* Get the value of h-sys-gpr475.  */
+
+UDI
+or1k64bf_h_sys_gpr475_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR475 ();
+}
+
+/* Set a value for h-sys-gpr475.  */
+
+void
+or1k64bf_h_sys_gpr475_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR475 (newval);
+}
+
+/* Get the value of h-sys-gpr476.  */
+
+UDI
+or1k64bf_h_sys_gpr476_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR476 ();
+}
+
+/* Set a value for h-sys-gpr476.  */
+
+void
+or1k64bf_h_sys_gpr476_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR476 (newval);
+}
+
+/* Get the value of h-sys-gpr477.  */
+
+UDI
+or1k64bf_h_sys_gpr477_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR477 ();
+}
+
+/* Set a value for h-sys-gpr477.  */
+
+void
+or1k64bf_h_sys_gpr477_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR477 (newval);
+}
+
+/* Get the value of h-sys-gpr478.  */
+
+UDI
+or1k64bf_h_sys_gpr478_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR478 ();
+}
+
+/* Set a value for h-sys-gpr478.  */
+
+void
+or1k64bf_h_sys_gpr478_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR478 (newval);
+}
+
+/* Get the value of h-sys-gpr479.  */
+
+UDI
+or1k64bf_h_sys_gpr479_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR479 ();
+}
+
+/* Set a value for h-sys-gpr479.  */
+
+void
+or1k64bf_h_sys_gpr479_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR479 (newval);
+}
+
+/* Get the value of h-sys-gpr480.  */
+
+UDI
+or1k64bf_h_sys_gpr480_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR480 ();
+}
+
+/* Set a value for h-sys-gpr480.  */
+
+void
+or1k64bf_h_sys_gpr480_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR480 (newval);
+}
+
+/* Get the value of h-sys-gpr481.  */
+
+UDI
+or1k64bf_h_sys_gpr481_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR481 ();
+}
+
+/* Set a value for h-sys-gpr481.  */
+
+void
+or1k64bf_h_sys_gpr481_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR481 (newval);
+}
+
+/* Get the value of h-sys-gpr482.  */
+
+UDI
+or1k64bf_h_sys_gpr482_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR482 ();
+}
+
+/* Set a value for h-sys-gpr482.  */
+
+void
+or1k64bf_h_sys_gpr482_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR482 (newval);
+}
+
+/* Get the value of h-sys-gpr483.  */
+
+UDI
+or1k64bf_h_sys_gpr483_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR483 ();
+}
+
+/* Set a value for h-sys-gpr483.  */
+
+void
+or1k64bf_h_sys_gpr483_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR483 (newval);
+}
+
+/* Get the value of h-sys-gpr484.  */
+
+UDI
+or1k64bf_h_sys_gpr484_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR484 ();
+}
+
+/* Set a value for h-sys-gpr484.  */
+
+void
+or1k64bf_h_sys_gpr484_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR484 (newval);
+}
+
+/* Get the value of h-sys-gpr485.  */
+
+UDI
+or1k64bf_h_sys_gpr485_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR485 ();
+}
+
+/* Set a value for h-sys-gpr485.  */
+
+void
+or1k64bf_h_sys_gpr485_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR485 (newval);
+}
+
+/* Get the value of h-sys-gpr486.  */
+
+UDI
+or1k64bf_h_sys_gpr486_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR486 ();
+}
+
+/* Set a value for h-sys-gpr486.  */
+
+void
+or1k64bf_h_sys_gpr486_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR486 (newval);
+}
+
+/* Get the value of h-sys-gpr487.  */
+
+UDI
+or1k64bf_h_sys_gpr487_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR487 ();
+}
+
+/* Set a value for h-sys-gpr487.  */
+
+void
+or1k64bf_h_sys_gpr487_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR487 (newval);
+}
+
+/* Get the value of h-sys-gpr488.  */
+
+UDI
+or1k64bf_h_sys_gpr488_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR488 ();
+}
+
+/* Set a value for h-sys-gpr488.  */
+
+void
+or1k64bf_h_sys_gpr488_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR488 (newval);
+}
+
+/* Get the value of h-sys-gpr489.  */
+
+UDI
+or1k64bf_h_sys_gpr489_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR489 ();
+}
+
+/* Set a value for h-sys-gpr489.  */
+
+void
+or1k64bf_h_sys_gpr489_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR489 (newval);
+}
+
+/* Get the value of h-sys-gpr490.  */
+
+UDI
+or1k64bf_h_sys_gpr490_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR490 ();
+}
+
+/* Set a value for h-sys-gpr490.  */
+
+void
+or1k64bf_h_sys_gpr490_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR490 (newval);
+}
+
+/* Get the value of h-sys-gpr491.  */
+
+UDI
+or1k64bf_h_sys_gpr491_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR491 ();
+}
+
+/* Set a value for h-sys-gpr491.  */
+
+void
+or1k64bf_h_sys_gpr491_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR491 (newval);
+}
+
+/* Get the value of h-sys-gpr492.  */
+
+UDI
+or1k64bf_h_sys_gpr492_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR492 ();
+}
+
+/* Set a value for h-sys-gpr492.  */
+
+void
+or1k64bf_h_sys_gpr492_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR492 (newval);
+}
+
+/* Get the value of h-sys-gpr493.  */
+
+UDI
+or1k64bf_h_sys_gpr493_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR493 ();
+}
+
+/* Set a value for h-sys-gpr493.  */
+
+void
+or1k64bf_h_sys_gpr493_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR493 (newval);
+}
+
+/* Get the value of h-sys-gpr494.  */
+
+UDI
+or1k64bf_h_sys_gpr494_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR494 ();
+}
+
+/* Set a value for h-sys-gpr494.  */
+
+void
+or1k64bf_h_sys_gpr494_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR494 (newval);
+}
+
+/* Get the value of h-sys-gpr495.  */
+
+UDI
+or1k64bf_h_sys_gpr495_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR495 ();
+}
+
+/* Set a value for h-sys-gpr495.  */
+
+void
+or1k64bf_h_sys_gpr495_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR495 (newval);
+}
+
+/* Get the value of h-sys-gpr496.  */
+
+UDI
+or1k64bf_h_sys_gpr496_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR496 ();
+}
+
+/* Set a value for h-sys-gpr496.  */
+
+void
+or1k64bf_h_sys_gpr496_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR496 (newval);
+}
+
+/* Get the value of h-sys-gpr497.  */
+
+UDI
+or1k64bf_h_sys_gpr497_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR497 ();
+}
+
+/* Set a value for h-sys-gpr497.  */
+
+void
+or1k64bf_h_sys_gpr497_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR497 (newval);
+}
+
+/* Get the value of h-sys-gpr498.  */
+
+UDI
+or1k64bf_h_sys_gpr498_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR498 ();
+}
+
+/* Set a value for h-sys-gpr498.  */
+
+void
+or1k64bf_h_sys_gpr498_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR498 (newval);
+}
+
+/* Get the value of h-sys-gpr499.  */
+
+UDI
+or1k64bf_h_sys_gpr499_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR499 ();
+}
+
+/* Set a value for h-sys-gpr499.  */
+
+void
+or1k64bf_h_sys_gpr499_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR499 (newval);
+}
+
+/* Get the value of h-sys-gpr500.  */
+
+UDI
+or1k64bf_h_sys_gpr500_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR500 ();
+}
+
+/* Set a value for h-sys-gpr500.  */
+
+void
+or1k64bf_h_sys_gpr500_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR500 (newval);
+}
+
+/* Get the value of h-sys-gpr501.  */
+
+UDI
+or1k64bf_h_sys_gpr501_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR501 ();
+}
+
+/* Set a value for h-sys-gpr501.  */
+
+void
+or1k64bf_h_sys_gpr501_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR501 (newval);
+}
+
+/* Get the value of h-sys-gpr502.  */
+
+UDI
+or1k64bf_h_sys_gpr502_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR502 ();
+}
+
+/* Set a value for h-sys-gpr502.  */
+
+void
+or1k64bf_h_sys_gpr502_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR502 (newval);
+}
+
+/* Get the value of h-sys-gpr503.  */
+
+UDI
+or1k64bf_h_sys_gpr503_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR503 ();
+}
+
+/* Set a value for h-sys-gpr503.  */
+
+void
+or1k64bf_h_sys_gpr503_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR503 (newval);
+}
+
+/* Get the value of h-sys-gpr504.  */
+
+UDI
+or1k64bf_h_sys_gpr504_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR504 ();
+}
+
+/* Set a value for h-sys-gpr504.  */
+
+void
+or1k64bf_h_sys_gpr504_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR504 (newval);
+}
+
+/* Get the value of h-sys-gpr505.  */
+
+UDI
+or1k64bf_h_sys_gpr505_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR505 ();
+}
+
+/* Set a value for h-sys-gpr505.  */
+
+void
+or1k64bf_h_sys_gpr505_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR505 (newval);
+}
+
+/* Get the value of h-sys-gpr506.  */
+
+UDI
+or1k64bf_h_sys_gpr506_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR506 ();
+}
+
+/* Set a value for h-sys-gpr506.  */
+
+void
+or1k64bf_h_sys_gpr506_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR506 (newval);
+}
+
+/* Get the value of h-sys-gpr507.  */
+
+UDI
+or1k64bf_h_sys_gpr507_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR507 ();
+}
+
+/* Set a value for h-sys-gpr507.  */
+
+void
+or1k64bf_h_sys_gpr507_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR507 (newval);
+}
+
+/* Get the value of h-sys-gpr508.  */
+
+UDI
+or1k64bf_h_sys_gpr508_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR508 ();
+}
+
+/* Set a value for h-sys-gpr508.  */
+
+void
+or1k64bf_h_sys_gpr508_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR508 (newval);
+}
+
+/* Get the value of h-sys-gpr509.  */
+
+UDI
+or1k64bf_h_sys_gpr509_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR509 ();
+}
+
+/* Set a value for h-sys-gpr509.  */
+
+void
+or1k64bf_h_sys_gpr509_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR509 (newval);
+}
+
+/* Get the value of h-sys-gpr510.  */
+
+UDI
+or1k64bf_h_sys_gpr510_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR510 ();
+}
+
+/* Set a value for h-sys-gpr510.  */
+
+void
+or1k64bf_h_sys_gpr510_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR510 (newval);
+}
+
+/* Get the value of h-sys-gpr511.  */
+
+UDI
+or1k64bf_h_sys_gpr511_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_GPR511 ();
+}
+
+/* Set a value for h-sys-gpr511.  */
+
+void
+or1k64bf_h_sys_gpr511_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_GPR511 (newval);
+}
+
+/* Get the value of h-mac-maclo.  */
+
+UDI
+or1k64bf_h_mac_maclo_get (SIM_CPU *current_cpu)
+{
+  return GET_H_MAC_MACLO ();
+}
+
+/* Set a value for h-mac-maclo.  */
+
+void
+or1k64bf_h_mac_maclo_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_MAC_MACLO (newval);
+}
+
+/* Get the value of h-mac-machi.  */
+
+UDI
+or1k64bf_h_mac_machi_get (SIM_CPU *current_cpu)
+{
+  return GET_H_MAC_MACHI ();
+}
+
+/* Set a value for h-mac-machi.  */
+
+void
+or1k64bf_h_mac_machi_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_MAC_MACHI (newval);
+}
+
+/* Get the value of h-tick-ttmr.  */
+
+UDI
+or1k64bf_h_tick_ttmr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_TICK_TTMR ();
+}
+
+/* Set a value for h-tick-ttmr.  */
+
+void
+or1k64bf_h_tick_ttmr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_TICK_TTMR (newval);
+}
+
+/* Get the value of h-sys-vr-rev.  */
+
+UDI
+or1k64bf_h_sys_vr_rev_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_REV ();
+}
+
+/* Set a value for h-sys-vr-rev.  */
+
+void
+or1k64bf_h_sys_vr_rev_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_VR_REV (newval);
+}
+
+/* Get the value of h-sys-vr-cfg.  */
+
+UDI
+or1k64bf_h_sys_vr_cfg_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_CFG ();
+}
+
+/* Set a value for h-sys-vr-cfg.  */
+
+void
+or1k64bf_h_sys_vr_cfg_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_VR_CFG (newval);
+}
+
+/* Get the value of h-sys-vr-ver.  */
+
+UDI
+or1k64bf_h_sys_vr_ver_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_VR_VER ();
+}
+
+/* Set a value for h-sys-vr-ver.  */
+
+void
+or1k64bf_h_sys_vr_ver_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_VR_VER (newval);
+}
+
+/* Get the value of h-sys-upr-up.  */
+
+UDI
+or1k64bf_h_sys_upr_up_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_UP ();
+}
+
+/* Set a value for h-sys-upr-up.  */
+
+void
+or1k64bf_h_sys_upr_up_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_UP (newval);
+}
+
+/* Get the value of h-sys-upr-dcp.  */
+
+UDI
+or1k64bf_h_sys_upr_dcp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DCP ();
+}
+
+/* Set a value for h-sys-upr-dcp.  */
+
+void
+or1k64bf_h_sys_upr_dcp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_DCP (newval);
+}
+
+/* Get the value of h-sys-upr-icp.  */
+
+UDI
+or1k64bf_h_sys_upr_icp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_ICP ();
+}
+
+/* Set a value for h-sys-upr-icp.  */
+
+void
+or1k64bf_h_sys_upr_icp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_ICP (newval);
+}
+
+/* Get the value of h-sys-upr-dmp.  */
+
+UDI
+or1k64bf_h_sys_upr_dmp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DMP ();
+}
+
+/* Set a value for h-sys-upr-dmp.  */
+
+void
+or1k64bf_h_sys_upr_dmp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_DMP (newval);
+}
+
+/* Get the value of h-sys-upr-mp.  */
+
+UDI
+or1k64bf_h_sys_upr_mp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_MP ();
+}
+
+/* Set a value for h-sys-upr-mp.  */
+
+void
+or1k64bf_h_sys_upr_mp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_MP (newval);
+}
+
+/* Get the value of h-sys-upr-imp.  */
+
+UDI
+or1k64bf_h_sys_upr_imp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_IMP ();
+}
+
+/* Set a value for h-sys-upr-imp.  */
+
+void
+or1k64bf_h_sys_upr_imp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_IMP (newval);
+}
+
+/* Get the value of h-sys-upr-dup.  */
+
+UDI
+or1k64bf_h_sys_upr_dup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_DUP ();
+}
+
+/* Set a value for h-sys-upr-dup.  */
+
+void
+or1k64bf_h_sys_upr_dup_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_DUP (newval);
+}
+
+/* Get the value of h-sys-upr-pcup.  */
+
+UDI
+or1k64bf_h_sys_upr_pcup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PCUP ();
+}
+
+/* Set a value for h-sys-upr-pcup.  */
+
+void
+or1k64bf_h_sys_upr_pcup_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_PCUP (newval);
+}
+
+/* Get the value of h-sys-upr-picp.  */
+
+UDI
+or1k64bf_h_sys_upr_picp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PICP ();
+}
+
+/* Set a value for h-sys-upr-picp.  */
+
+void
+or1k64bf_h_sys_upr_picp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_PICP (newval);
+}
+
+/* Get the value of h-sys-upr-pmp.  */
+
+UDI
+or1k64bf_h_sys_upr_pmp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_PMP ();
+}
+
+/* Set a value for h-sys-upr-pmp.  */
+
+void
+or1k64bf_h_sys_upr_pmp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_PMP (newval);
+}
+
+/* Get the value of h-sys-upr-ttp.  */
+
+UDI
+or1k64bf_h_sys_upr_ttp_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_TTP ();
+}
+
+/* Set a value for h-sys-upr-ttp.  */
+
+void
+or1k64bf_h_sys_upr_ttp_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_TTP (newval);
+}
+
+/* Get the value of h-sys-upr-cup.  */
+
+UDI
+or1k64bf_h_sys_upr_cup_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_UPR_CUP ();
+}
+
+/* Set a value for h-sys-upr-cup.  */
+
+void
+or1k64bf_h_sys_upr_cup_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_UPR_CUP (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-nsgr.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_nsgr_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_NSGR ();
+}
+
+/* Set a value for h-sys-cpucfgr-nsgr.  */
+
+void
+or1k64bf_h_sys_cpucfgr_nsgr_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_NSGR (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-cgf.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_cgf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_CGF ();
+}
+
+/* Set a value for h-sys-cpucfgr-cgf.  */
+
+void
+or1k64bf_h_sys_cpucfgr_cgf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_CGF (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ob32s.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_ob32s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OB32S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ob32s.  */
+
+void
+or1k64bf_h_sys_cpucfgr_ob32s_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_OB32S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ob64s.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_ob64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OB64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ob64s.  */
+
+void
+or1k64bf_h_sys_cpucfgr_ob64s_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_OB64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-of32s.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_of32s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OF32S ();
+}
+
+/* Set a value for h-sys-cpucfgr-of32s.  */
+
+void
+or1k64bf_h_sys_cpucfgr_of32s_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_OF32S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-of64s.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_of64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OF64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-of64s.  */
+
+void
+or1k64bf_h_sys_cpucfgr_of64s_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_OF64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-ov64s.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_ov64s_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_OV64S ();
+}
+
+/* Set a value for h-sys-cpucfgr-ov64s.  */
+
+void
+or1k64bf_h_sys_cpucfgr_ov64s_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_OV64S (newval);
+}
+
+/* Get the value of h-sys-cpucfgr-nd.  */
+
+UDI
+or1k64bf_h_sys_cpucfgr_nd_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_CPUCFGR_ND ();
+}
+
+/* Set a value for h-sys-cpucfgr-nd.  */
+
+void
+or1k64bf_h_sys_cpucfgr_nd_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_CPUCFGR_ND (newval);
+}
+
+/* Get the value of h-sys-sr-sm.  */
+
+UDI
+or1k64bf_h_sys_sr_sm_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_SM ();
+}
+
+/* Set a value for h-sys-sr-sm.  */
+
+void
+or1k64bf_h_sys_sr_sm_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_SM (newval);
+}
+
+/* Get the value of h-sys-sr-tee.  */
+
+UDI
+or1k64bf_h_sys_sr_tee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_TEE ();
+}
+
+/* Set a value for h-sys-sr-tee.  */
+
+void
+or1k64bf_h_sys_sr_tee_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_TEE (newval);
+}
+
+/* Get the value of h-sys-sr-iee.  */
+
+UDI
+or1k64bf_h_sys_sr_iee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_IEE ();
+}
+
+/* Set a value for h-sys-sr-iee.  */
+
+void
+or1k64bf_h_sys_sr_iee_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_IEE (newval);
+}
+
+/* Get the value of h-sys-sr-dce.  */
+
+UDI
+or1k64bf_h_sys_sr_dce_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DCE ();
+}
+
+/* Set a value for h-sys-sr-dce.  */
+
+void
+or1k64bf_h_sys_sr_dce_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_DCE (newval);
+}
+
+/* Get the value of h-sys-sr-ice.  */
+
+UDI
+or1k64bf_h_sys_sr_ice_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_ICE ();
+}
+
+/* Set a value for h-sys-sr-ice.  */
+
+void
+or1k64bf_h_sys_sr_ice_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_ICE (newval);
+}
+
+/* Get the value of h-sys-sr-dme.  */
+
+UDI
+or1k64bf_h_sys_sr_dme_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DME ();
+}
+
+/* Set a value for h-sys-sr-dme.  */
+
+void
+or1k64bf_h_sys_sr_dme_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_DME (newval);
+}
+
+/* Get the value of h-sys-sr-ime.  */
+
+UDI
+or1k64bf_h_sys_sr_ime_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_IME ();
+}
+
+/* Set a value for h-sys-sr-ime.  */
+
+void
+or1k64bf_h_sys_sr_ime_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_IME (newval);
+}
+
+/* Get the value of h-sys-sr-lee.  */
+
+UDI
+or1k64bf_h_sys_sr_lee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_LEE ();
+}
+
+/* Set a value for h-sys-sr-lee.  */
+
+void
+or1k64bf_h_sys_sr_lee_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_LEE (newval);
+}
+
+/* Get the value of h-sys-sr-ce.  */
+
+UDI
+or1k64bf_h_sys_sr_ce_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CE ();
+}
+
+/* Set a value for h-sys-sr-ce.  */
+
+void
+or1k64bf_h_sys_sr_ce_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_CE (newval);
+}
+
+/* Get the value of h-sys-sr-f.  */
+
+UDI
+or1k64bf_h_sys_sr_f_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_F ();
+}
+
+/* Set a value for h-sys-sr-f.  */
+
+void
+or1k64bf_h_sys_sr_f_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_F (newval);
+}
+
+/* Get the value of h-sys-sr-cy.  */
+
+UDI
+or1k64bf_h_sys_sr_cy_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CY ();
+}
+
+/* Set a value for h-sys-sr-cy.  */
+
+void
+or1k64bf_h_sys_sr_cy_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_CY (newval);
+}
+
+/* Get the value of h-sys-sr-ov.  */
+
+UDI
+or1k64bf_h_sys_sr_ov_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_OV ();
+}
+
+/* Set a value for h-sys-sr-ov.  */
+
+void
+or1k64bf_h_sys_sr_ov_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_OV (newval);
+}
+
+/* Get the value of h-sys-sr-ove.  */
+
+UDI
+or1k64bf_h_sys_sr_ove_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_OVE ();
+}
+
+/* Set a value for h-sys-sr-ove.  */
+
+void
+or1k64bf_h_sys_sr_ove_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_OVE (newval);
+}
+
+/* Get the value of h-sys-sr-dsx.  */
+
+UDI
+or1k64bf_h_sys_sr_dsx_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_DSX ();
+}
+
+/* Set a value for h-sys-sr-dsx.  */
+
+void
+or1k64bf_h_sys_sr_dsx_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_DSX (newval);
+}
+
+/* Get the value of h-sys-sr-eph.  */
+
+UDI
+or1k64bf_h_sys_sr_eph_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_EPH ();
+}
+
+/* Set a value for h-sys-sr-eph.  */
+
+void
+or1k64bf_h_sys_sr_eph_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_EPH (newval);
+}
+
+/* Get the value of h-sys-sr-fo.  */
+
+UDI
+or1k64bf_h_sys_sr_fo_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_FO ();
+}
+
+/* Set a value for h-sys-sr-fo.  */
+
+void
+or1k64bf_h_sys_sr_fo_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_FO (newval);
+}
+
+/* Get the value of h-sys-sr-sumra.  */
+
+UDI
+or1k64bf_h_sys_sr_sumra_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_SUMRA ();
+}
+
+/* Set a value for h-sys-sr-sumra.  */
+
+void
+or1k64bf_h_sys_sr_sumra_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_SUMRA (newval);
+}
+
+/* Get the value of h-sys-sr-cid.  */
+
+UDI
+or1k64bf_h_sys_sr_cid_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_SR_CID ();
+}
+
+/* Set a value for h-sys-sr-cid.  */
+
+void
+or1k64bf_h_sys_sr_cid_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_SR_CID (newval);
+}
+
+/* Get the value of h-sys-fpcsr-fpee.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_fpee_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_FPEE ();
+}
+
+/* Set a value for h-sys-fpcsr-fpee.  */
+
+void
+or1k64bf_h_sys_fpcsr_fpee_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_FPEE (newval);
+}
+
+/* Get the value of h-sys-fpcsr-rm.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_rm_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_RM ();
+}
+
+/* Set a value for h-sys-fpcsr-rm.  */
+
+void
+or1k64bf_h_sys_fpcsr_rm_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_RM (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ovf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_ovf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_OVF ();
+}
+
+/* Set a value for h-sys-fpcsr-ovf.  */
+
+void
+or1k64bf_h_sys_fpcsr_ovf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_OVF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-unf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_unf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_UNF ();
+}
+
+/* Set a value for h-sys-fpcsr-unf.  */
+
+void
+or1k64bf_h_sys_fpcsr_unf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_UNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-snf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_snf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_SNF ();
+}
+
+/* Set a value for h-sys-fpcsr-snf.  */
+
+void
+or1k64bf_h_sys_fpcsr_snf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_SNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-qnf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_qnf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_QNF ();
+}
+
+/* Set a value for h-sys-fpcsr-qnf.  */
+
+void
+or1k64bf_h_sys_fpcsr_qnf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_QNF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-zf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_zf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_ZF ();
+}
+
+/* Set a value for h-sys-fpcsr-zf.  */
+
+void
+or1k64bf_h_sys_fpcsr_zf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_ZF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ixf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_ixf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_IXF ();
+}
+
+/* Set a value for h-sys-fpcsr-ixf.  */
+
+void
+or1k64bf_h_sys_fpcsr_ixf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_IXF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-ivf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_ivf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_IVF ();
+}
+
+/* Set a value for h-sys-fpcsr-ivf.  */
+
+void
+or1k64bf_h_sys_fpcsr_ivf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_IVF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-inf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_inf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_INF ();
+}
+
+/* Set a value for h-sys-fpcsr-inf.  */
+
+void
+or1k64bf_h_sys_fpcsr_inf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_INF (newval);
+}
+
+/* Get the value of h-sys-fpcsr-dzf.  */
+
+UDI
+or1k64bf_h_sys_fpcsr_dzf_get (SIM_CPU *current_cpu)
+{
+  return GET_H_SYS_FPCSR_DZF ();
+}
+
+/* Set a value for h-sys-fpcsr-dzf.  */
+
+void
+or1k64bf_h_sys_fpcsr_dzf_set (SIM_CPU *current_cpu, UDI newval)
+{
+  SET_H_SYS_FPCSR_DZF (newval);
+}
+
+/* Get the value of h-atomic-reserve.  */
+
+BI
+or1k64bf_h_atomic_reserve_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_atomic_reserve);
+}
+
+/* Set a value for h-atomic-reserve.  */
+
+void
+or1k64bf_h_atomic_reserve_set (SIM_CPU *current_cpu, BI newval)
+{
+  CPU (h_atomic_reserve) = newval;
+}
+
+/* Get the value of h-atomic-address.  */
+
+SI
+or1k64bf_h_atomic_address_get (SIM_CPU *current_cpu)
+{
+  return CPU (h_atomic_address);
+}
+
+/* Set a value for h-atomic-address.  */
+
+void
+or1k64bf_h_atomic_address_set (SIM_CPU *current_cpu, SI newval)
+{
+  CPU (h_atomic_address) = newval;
+}
+
+/* Record trace results for INSN.  */
+
+void
+or1k64bf_record_trace_results (SIM_CPU *current_cpu, CGEN_INSN *insn,
+			    int *indices, TRACE_RECORD *tr)
+{
+}
diff --git a/sim/or1k/cpu64.h b/sim/or1k/cpu64.h
new file mode 100644
index 0000000..d3a93e7
--- /dev/null
+++ b/sim/or1k/cpu64.h
@@ -0,0 +1,5068 @@
+/* CPU family header for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef CPU_OR1K64BF_H
+#define CPU_OR1K64BF_H
+
+/* Maximum number of instructions that are fetched@a time.
+   This is for LIW type instructions sets (e.g. m32r).  */
+#define MAX_LIW_INSNS 1
+
+/* Maximum number of instructions that can be executed in parallel.  */
+#define MAX_PARALLEL_INSNS 1
+
+/* The size of an "int" needed to hold an instruction word.
+   This is usually 32 bits, but some architectures needs 64 bits.  */
+typedef CGEN_INSN_INT CGEN_INSN_WORD;
+
+#include "cgen-engine.h"
+
+/* CPU state information.  */
+typedef struct {
+  /* Hardware elements.  */
+  struct {
+  /* program counter */
+  UDI h_pc;
+#define GET_H_PC() CPU (h_pc)
+#define SET_H_PC(x) (CPU (h_pc) = (x))
+  /* general registers */
+  UDI h_gpr[32];
+#define GET_H_GPR(index) GET_H_SPR (((index) + (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))))
+#define SET_H_GPR(index, x) \
+do { \
+SET_H_SPR ((((index)) + (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))), (x));\
+;} while (0)
+  /* atomic reserve flag */
+  BI h_atomic_reserve;
+#define GET_H_ATOMIC_RESERVE() CPU (h_atomic_reserve)
+#define SET_H_ATOMIC_RESERVE(x) (CPU (h_atomic_reserve) = (x))
+  /* atomic reserve address */
+  SI h_atomic_address;
+#define GET_H_ATOMIC_ADDRESS() CPU (h_atomic_address)
+#define SET_H_ATOMIC_ADDRESS(x) (CPU (h_atomic_address) = (x))
+  } hardware;
+#define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware)
+} OR1K64BF_CPU_DATA;
+
+/* Virtual regs.  */
+
+#define GET_H_FSR(index) SUBWORDSISF (TRUNCDISI (GET_H_GPR (index)))
+#define SET_H_FSR(index, x) \
+do { \
+SET_H_GPR ((index), ZEXTSIDI (SUBWORDSFSI ((x))));\
+;} while (0)
+#define GET_H_FDR(index) SUBWORDDIDF (TRUNCDIDI (GET_H_GPR (index)))
+#define SET_H_FDR(index, x) \
+do { \
+SET_H_GPR ((index), ZEXTDIDI (SUBWORDDFDI ((x))));\
+;} while (0)
+#define GET_H_SPR(index) or1k64bf_h_spr_get_raw (current_cpu, index)
+#define SET_H_SPR(index, x) \
+do { \
+or1k64bf_h_spr_set_raw (current_cpu, (index), (x));\
+;} while (0)
+#define GET_H_SYS_VR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR))
+#define SET_H_SYS_VR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), (x));\
+;} while (0)
+#define GET_H_SYS_UPR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR))
+#define SET_H_SYS_UPR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR))
+#define SET_H_SYS_CPUCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DMMUCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DMMUCFGR))
+#define SET_H_SYS_DMMUCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DMMUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_IMMUCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_IMMUCFGR))
+#define SET_H_SYS_IMMUCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_IMMUCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DCCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCCFGR))
+#define SET_H_SYS_DCCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_ICCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ICCFGR))
+#define SET_H_SYS_ICCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ICCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_DCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCFGR))
+#define SET_H_SYS_DCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_DCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_PCCFGR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PCCFGR))
+#define SET_H_SYS_PCCFGR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PCCFGR), (x));\
+;} while (0)
+#define GET_H_SYS_NPC() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NPC))
+#define SET_H_SYS_NPC(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NPC), (x));\
+;} while (0)
+#define GET_H_SYS_SR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR))
+#define SET_H_SYS_SR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), (x));\
+;} while (0)
+#define GET_H_SYS_PPC() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PPC))
+#define SET_H_SYS_PPC(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_PPC), (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR))
+#define SET_H_SYS_FPCSR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR0() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR0))
+#define SET_H_SYS_EPCR0(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR0), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR1() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR1))
+#define SET_H_SYS_EPCR1(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR1), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR2() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR2))
+#define SET_H_SYS_EPCR2(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR2), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR3() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR3))
+#define SET_H_SYS_EPCR3(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR3), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR4() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR4))
+#define SET_H_SYS_EPCR4(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR4), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR5() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR5))
+#define SET_H_SYS_EPCR5(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR5), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR6() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR6))
+#define SET_H_SYS_EPCR6(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR6), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR7() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR7))
+#define SET_H_SYS_EPCR7(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR7), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR8() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR8))
+#define SET_H_SYS_EPCR8(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR8), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR9() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR9))
+#define SET_H_SYS_EPCR9(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR9), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR10() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR10))
+#define SET_H_SYS_EPCR10(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR10), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR11() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR11))
+#define SET_H_SYS_EPCR11(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR11), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR12() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR12))
+#define SET_H_SYS_EPCR12(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR12), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR13() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR13))
+#define SET_H_SYS_EPCR13(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR13), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR14() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR14))
+#define SET_H_SYS_EPCR14(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR14), (x));\
+;} while (0)
+#define GET_H_SYS_EPCR15() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR15))
+#define SET_H_SYS_EPCR15(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EPCR15), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR0() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR0))
+#define SET_H_SYS_EEAR0(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR0), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR1() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR1))
+#define SET_H_SYS_EEAR1(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR1), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR2() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR2))
+#define SET_H_SYS_EEAR2(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR2), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR3() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR3))
+#define SET_H_SYS_EEAR3(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR3), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR4() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR4))
+#define SET_H_SYS_EEAR4(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR4), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR5() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR5))
+#define SET_H_SYS_EEAR5(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR5), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR6() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR6))
+#define SET_H_SYS_EEAR6(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR6), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR7() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR7))
+#define SET_H_SYS_EEAR7(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR7), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR8() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR8))
+#define SET_H_SYS_EEAR8(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR8), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR9() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR9))
+#define SET_H_SYS_EEAR9(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR9), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR10() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR10))
+#define SET_H_SYS_EEAR10(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR10), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR11() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR11))
+#define SET_H_SYS_EEAR11(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR11), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR12() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR12))
+#define SET_H_SYS_EEAR12(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR12), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR13() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR13))
+#define SET_H_SYS_EEAR13(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR13), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR14() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR14))
+#define SET_H_SYS_EEAR14(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR14), (x));\
+;} while (0)
+#define GET_H_SYS_EEAR15() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR15))
+#define SET_H_SYS_EEAR15(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_EEAR15), (x));\
+;} while (0)
+#define GET_H_SYS_ESR0() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR0))
+#define SET_H_SYS_ESR0(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR0), (x));\
+;} while (0)
+#define GET_H_SYS_ESR1() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR1))
+#define SET_H_SYS_ESR1(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR1), (x));\
+;} while (0)
+#define GET_H_SYS_ESR2() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR2))
+#define SET_H_SYS_ESR2(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR2), (x));\
+;} while (0)
+#define GET_H_SYS_ESR3() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR3))
+#define SET_H_SYS_ESR3(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR3), (x));\
+;} while (0)
+#define GET_H_SYS_ESR4() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR4))
+#define SET_H_SYS_ESR4(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR4), (x));\
+;} while (0)
+#define GET_H_SYS_ESR5() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR5))
+#define SET_H_SYS_ESR5(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR5), (x));\
+;} while (0)
+#define GET_H_SYS_ESR6() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR6))
+#define SET_H_SYS_ESR6(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR6), (x));\
+;} while (0)
+#define GET_H_SYS_ESR7() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR7))
+#define SET_H_SYS_ESR7(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR7), (x));\
+;} while (0)
+#define GET_H_SYS_ESR8() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR8))
+#define SET_H_SYS_ESR8(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR8), (x));\
+;} while (0)
+#define GET_H_SYS_ESR9() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR9))
+#define SET_H_SYS_ESR9(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR9), (x));\
+;} while (0)
+#define GET_H_SYS_ESR10() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR10))
+#define SET_H_SYS_ESR10(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR10), (x));\
+;} while (0)
+#define GET_H_SYS_ESR11() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR11))
+#define SET_H_SYS_ESR11(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR11), (x));\
+;} while (0)
+#define GET_H_SYS_ESR12() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR12))
+#define SET_H_SYS_ESR12(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR12), (x));\
+;} while (0)
+#define GET_H_SYS_ESR13() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR13))
+#define SET_H_SYS_ESR13(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR13), (x));\
+;} while (0)
+#define GET_H_SYS_ESR14() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR14))
+#define SET_H_SYS_ESR14(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR14), (x));\
+;} while (0)
+#define GET_H_SYS_ESR15() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR15))
+#define SET_H_SYS_ESR15(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR15), (x));\
+;} while (0)
+#define GET_H_SYS_GPR0() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))
+#define SET_H_SYS_GPR0(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0), (x));\
+;} while (0)
+#define GET_H_SYS_GPR1() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR1))
+#define SET_H_SYS_GPR1(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR1), (x));\
+;} while (0)
+#define GET_H_SYS_GPR2() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR2))
+#define SET_H_SYS_GPR2(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR2), (x));\
+;} while (0)
+#define GET_H_SYS_GPR3() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR3))
+#define SET_H_SYS_GPR3(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR3), (x));\
+;} while (0)
+#define GET_H_SYS_GPR4() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR4))
+#define SET_H_SYS_GPR4(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR4), (x));\
+;} while (0)
+#define GET_H_SYS_GPR5() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR5))
+#define SET_H_SYS_GPR5(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR5), (x));\
+;} while (0)
+#define GET_H_SYS_GPR6() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR6))
+#define SET_H_SYS_GPR6(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR6), (x));\
+;} while (0)
+#define GET_H_SYS_GPR7() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR7))
+#define SET_H_SYS_GPR7(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR7), (x));\
+;} while (0)
+#define GET_H_SYS_GPR8() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR8))
+#define SET_H_SYS_GPR8(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR8), (x));\
+;} while (0)
+#define GET_H_SYS_GPR9() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR9))
+#define SET_H_SYS_GPR9(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR9), (x));\
+;} while (0)
+#define GET_H_SYS_GPR10() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR10))
+#define SET_H_SYS_GPR10(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR10), (x));\
+;} while (0)
+#define GET_H_SYS_GPR11() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR11))
+#define SET_H_SYS_GPR11(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR11), (x));\
+;} while (0)
+#define GET_H_SYS_GPR12() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR12))
+#define SET_H_SYS_GPR12(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR12), (x));\
+;} while (0)
+#define GET_H_SYS_GPR13() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR13))
+#define SET_H_SYS_GPR13(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR13), (x));\
+;} while (0)
+#define GET_H_SYS_GPR14() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR14))
+#define SET_H_SYS_GPR14(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR14), (x));\
+;} while (0)
+#define GET_H_SYS_GPR15() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR15))
+#define SET_H_SYS_GPR15(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR15), (x));\
+;} while (0)
+#define GET_H_SYS_GPR16() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR16))
+#define SET_H_SYS_GPR16(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR16), (x));\
+;} while (0)
+#define GET_H_SYS_GPR17() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR17))
+#define SET_H_SYS_GPR17(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR17), (x));\
+;} while (0)
+#define GET_H_SYS_GPR18() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR18))
+#define SET_H_SYS_GPR18(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR18), (x));\
+;} while (0)
+#define GET_H_SYS_GPR19() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR19))
+#define SET_H_SYS_GPR19(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR19), (x));\
+;} while (0)
+#define GET_H_SYS_GPR20() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR20))
+#define SET_H_SYS_GPR20(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR20), (x));\
+;} while (0)
+#define GET_H_SYS_GPR21() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR21))
+#define SET_H_SYS_GPR21(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR21), (x));\
+;} while (0)
+#define GET_H_SYS_GPR22() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR22))
+#define SET_H_SYS_GPR22(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR22), (x));\
+;} while (0)
+#define GET_H_SYS_GPR23() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR23))
+#define SET_H_SYS_GPR23(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR23), (x));\
+;} while (0)
+#define GET_H_SYS_GPR24() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR24))
+#define SET_H_SYS_GPR24(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR24), (x));\
+;} while (0)
+#define GET_H_SYS_GPR25() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR25))
+#define SET_H_SYS_GPR25(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR25), (x));\
+;} while (0)
+#define GET_H_SYS_GPR26() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR26))
+#define SET_H_SYS_GPR26(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR26), (x));\
+;} while (0)
+#define GET_H_SYS_GPR27() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR27))
+#define SET_H_SYS_GPR27(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR27), (x));\
+;} while (0)
+#define GET_H_SYS_GPR28() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR28))
+#define SET_H_SYS_GPR28(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR28), (x));\
+;} while (0)
+#define GET_H_SYS_GPR29() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR29))
+#define SET_H_SYS_GPR29(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR29), (x));\
+;} while (0)
+#define GET_H_SYS_GPR30() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR30))
+#define SET_H_SYS_GPR30(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR30), (x));\
+;} while (0)
+#define GET_H_SYS_GPR31() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR31))
+#define SET_H_SYS_GPR31(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR31), (x));\
+;} while (0)
+#define GET_H_SYS_GPR32() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR32))
+#define SET_H_SYS_GPR32(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR32), (x));\
+;} while (0)
+#define GET_H_SYS_GPR33() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR33))
+#define SET_H_SYS_GPR33(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR33), (x));\
+;} while (0)
+#define GET_H_SYS_GPR34() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR34))
+#define SET_H_SYS_GPR34(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR34), (x));\
+;} while (0)
+#define GET_H_SYS_GPR35() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR35))
+#define SET_H_SYS_GPR35(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR35), (x));\
+;} while (0)
+#define GET_H_SYS_GPR36() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR36))
+#define SET_H_SYS_GPR36(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR36), (x));\
+;} while (0)
+#define GET_H_SYS_GPR37() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR37))
+#define SET_H_SYS_GPR37(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR37), (x));\
+;} while (0)
+#define GET_H_SYS_GPR38() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR38))
+#define SET_H_SYS_GPR38(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR38), (x));\
+;} while (0)
+#define GET_H_SYS_GPR39() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR39))
+#define SET_H_SYS_GPR39(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR39), (x));\
+;} while (0)
+#define GET_H_SYS_GPR40() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR40))
+#define SET_H_SYS_GPR40(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR40), (x));\
+;} while (0)
+#define GET_H_SYS_GPR41() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR41))
+#define SET_H_SYS_GPR41(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR41), (x));\
+;} while (0)
+#define GET_H_SYS_GPR42() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR42))
+#define SET_H_SYS_GPR42(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR42), (x));\
+;} while (0)
+#define GET_H_SYS_GPR43() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR43))
+#define SET_H_SYS_GPR43(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR43), (x));\
+;} while (0)
+#define GET_H_SYS_GPR44() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR44))
+#define SET_H_SYS_GPR44(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR44), (x));\
+;} while (0)
+#define GET_H_SYS_GPR45() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR45))
+#define SET_H_SYS_GPR45(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR45), (x));\
+;} while (0)
+#define GET_H_SYS_GPR46() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR46))
+#define SET_H_SYS_GPR46(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR46), (x));\
+;} while (0)
+#define GET_H_SYS_GPR47() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR47))
+#define SET_H_SYS_GPR47(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR47), (x));\
+;} while (0)
+#define GET_H_SYS_GPR48() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR48))
+#define SET_H_SYS_GPR48(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR48), (x));\
+;} while (0)
+#define GET_H_SYS_GPR49() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR49))
+#define SET_H_SYS_GPR49(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR49), (x));\
+;} while (0)
+#define GET_H_SYS_GPR50() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR50))
+#define SET_H_SYS_GPR50(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR50), (x));\
+;} while (0)
+#define GET_H_SYS_GPR51() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR51))
+#define SET_H_SYS_GPR51(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR51), (x));\
+;} while (0)
+#define GET_H_SYS_GPR52() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR52))
+#define SET_H_SYS_GPR52(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR52), (x));\
+;} while (0)
+#define GET_H_SYS_GPR53() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR53))
+#define SET_H_SYS_GPR53(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR53), (x));\
+;} while (0)
+#define GET_H_SYS_GPR54() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR54))
+#define SET_H_SYS_GPR54(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR54), (x));\
+;} while (0)
+#define GET_H_SYS_GPR55() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR55))
+#define SET_H_SYS_GPR55(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR55), (x));\
+;} while (0)
+#define GET_H_SYS_GPR56() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR56))
+#define SET_H_SYS_GPR56(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR56), (x));\
+;} while (0)
+#define GET_H_SYS_GPR57() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR57))
+#define SET_H_SYS_GPR57(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR57), (x));\
+;} while (0)
+#define GET_H_SYS_GPR58() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR58))
+#define SET_H_SYS_GPR58(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR58), (x));\
+;} while (0)
+#define GET_H_SYS_GPR59() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR59))
+#define SET_H_SYS_GPR59(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR59), (x));\
+;} while (0)
+#define GET_H_SYS_GPR60() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR60))
+#define SET_H_SYS_GPR60(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR60), (x));\
+;} while (0)
+#define GET_H_SYS_GPR61() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR61))
+#define SET_H_SYS_GPR61(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR61), (x));\
+;} while (0)
+#define GET_H_SYS_GPR62() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR62))
+#define SET_H_SYS_GPR62(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR62), (x));\
+;} while (0)
+#define GET_H_SYS_GPR63() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR63))
+#define SET_H_SYS_GPR63(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR63), (x));\
+;} while (0)
+#define GET_H_SYS_GPR64() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR64))
+#define SET_H_SYS_GPR64(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR64), (x));\
+;} while (0)
+#define GET_H_SYS_GPR65() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR65))
+#define SET_H_SYS_GPR65(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR65), (x));\
+;} while (0)
+#define GET_H_SYS_GPR66() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR66))
+#define SET_H_SYS_GPR66(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR66), (x));\
+;} while (0)
+#define GET_H_SYS_GPR67() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR67))
+#define SET_H_SYS_GPR67(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR67), (x));\
+;} while (0)
+#define GET_H_SYS_GPR68() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR68))
+#define SET_H_SYS_GPR68(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR68), (x));\
+;} while (0)
+#define GET_H_SYS_GPR69() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR69))
+#define SET_H_SYS_GPR69(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR69), (x));\
+;} while (0)
+#define GET_H_SYS_GPR70() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR70))
+#define SET_H_SYS_GPR70(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR70), (x));\
+;} while (0)
+#define GET_H_SYS_GPR71() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR71))
+#define SET_H_SYS_GPR71(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR71), (x));\
+;} while (0)
+#define GET_H_SYS_GPR72() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR72))
+#define SET_H_SYS_GPR72(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR72), (x));\
+;} while (0)
+#define GET_H_SYS_GPR73() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR73))
+#define SET_H_SYS_GPR73(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR73), (x));\
+;} while (0)
+#define GET_H_SYS_GPR74() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR74))
+#define SET_H_SYS_GPR74(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR74), (x));\
+;} while (0)
+#define GET_H_SYS_GPR75() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR75))
+#define SET_H_SYS_GPR75(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR75), (x));\
+;} while (0)
+#define GET_H_SYS_GPR76() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR76))
+#define SET_H_SYS_GPR76(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR76), (x));\
+;} while (0)
+#define GET_H_SYS_GPR77() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR77))
+#define SET_H_SYS_GPR77(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR77), (x));\
+;} while (0)
+#define GET_H_SYS_GPR78() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR78))
+#define SET_H_SYS_GPR78(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR78), (x));\
+;} while (0)
+#define GET_H_SYS_GPR79() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR79))
+#define SET_H_SYS_GPR79(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR79), (x));\
+;} while (0)
+#define GET_H_SYS_GPR80() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR80))
+#define SET_H_SYS_GPR80(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR80), (x));\
+;} while (0)
+#define GET_H_SYS_GPR81() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR81))
+#define SET_H_SYS_GPR81(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR81), (x));\
+;} while (0)
+#define GET_H_SYS_GPR82() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR82))
+#define SET_H_SYS_GPR82(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR82), (x));\
+;} while (0)
+#define GET_H_SYS_GPR83() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR83))
+#define SET_H_SYS_GPR83(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR83), (x));\
+;} while (0)
+#define GET_H_SYS_GPR84() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR84))
+#define SET_H_SYS_GPR84(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR84), (x));\
+;} while (0)
+#define GET_H_SYS_GPR85() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR85))
+#define SET_H_SYS_GPR85(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR85), (x));\
+;} while (0)
+#define GET_H_SYS_GPR86() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR86))
+#define SET_H_SYS_GPR86(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR86), (x));\
+;} while (0)
+#define GET_H_SYS_GPR87() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR87))
+#define SET_H_SYS_GPR87(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR87), (x));\
+;} while (0)
+#define GET_H_SYS_GPR88() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR88))
+#define SET_H_SYS_GPR88(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR88), (x));\
+;} while (0)
+#define GET_H_SYS_GPR89() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR89))
+#define SET_H_SYS_GPR89(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR89), (x));\
+;} while (0)
+#define GET_H_SYS_GPR90() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR90))
+#define SET_H_SYS_GPR90(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR90), (x));\
+;} while (0)
+#define GET_H_SYS_GPR91() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR91))
+#define SET_H_SYS_GPR91(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR91), (x));\
+;} while (0)
+#define GET_H_SYS_GPR92() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR92))
+#define SET_H_SYS_GPR92(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR92), (x));\
+;} while (0)
+#define GET_H_SYS_GPR93() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR93))
+#define SET_H_SYS_GPR93(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR93), (x));\
+;} while (0)
+#define GET_H_SYS_GPR94() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR94))
+#define SET_H_SYS_GPR94(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR94), (x));\
+;} while (0)
+#define GET_H_SYS_GPR95() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR95))
+#define SET_H_SYS_GPR95(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR95), (x));\
+;} while (0)
+#define GET_H_SYS_GPR96() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR96))
+#define SET_H_SYS_GPR96(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR96), (x));\
+;} while (0)
+#define GET_H_SYS_GPR97() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR97))
+#define SET_H_SYS_GPR97(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR97), (x));\
+;} while (0)
+#define GET_H_SYS_GPR98() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR98))
+#define SET_H_SYS_GPR98(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR98), (x));\
+;} while (0)
+#define GET_H_SYS_GPR99() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR99))
+#define SET_H_SYS_GPR99(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR99), (x));\
+;} while (0)
+#define GET_H_SYS_GPR100() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR100))
+#define SET_H_SYS_GPR100(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR100), (x));\
+;} while (0)
+#define GET_H_SYS_GPR101() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR101))
+#define SET_H_SYS_GPR101(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR101), (x));\
+;} while (0)
+#define GET_H_SYS_GPR102() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR102))
+#define SET_H_SYS_GPR102(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR102), (x));\
+;} while (0)
+#define GET_H_SYS_GPR103() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR103))
+#define SET_H_SYS_GPR103(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR103), (x));\
+;} while (0)
+#define GET_H_SYS_GPR104() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR104))
+#define SET_H_SYS_GPR104(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR104), (x));\
+;} while (0)
+#define GET_H_SYS_GPR105() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR105))
+#define SET_H_SYS_GPR105(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR105), (x));\
+;} while (0)
+#define GET_H_SYS_GPR106() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR106))
+#define SET_H_SYS_GPR106(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR106), (x));\
+;} while (0)
+#define GET_H_SYS_GPR107() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR107))
+#define SET_H_SYS_GPR107(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR107), (x));\
+;} while (0)
+#define GET_H_SYS_GPR108() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR108))
+#define SET_H_SYS_GPR108(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR108), (x));\
+;} while (0)
+#define GET_H_SYS_GPR109() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR109))
+#define SET_H_SYS_GPR109(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR109), (x));\
+;} while (0)
+#define GET_H_SYS_GPR110() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR110))
+#define SET_H_SYS_GPR110(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR110), (x));\
+;} while (0)
+#define GET_H_SYS_GPR111() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR111))
+#define SET_H_SYS_GPR111(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR111), (x));\
+;} while (0)
+#define GET_H_SYS_GPR112() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR112))
+#define SET_H_SYS_GPR112(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR112), (x));\
+;} while (0)
+#define GET_H_SYS_GPR113() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR113))
+#define SET_H_SYS_GPR113(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR113), (x));\
+;} while (0)
+#define GET_H_SYS_GPR114() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR114))
+#define SET_H_SYS_GPR114(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR114), (x));\
+;} while (0)
+#define GET_H_SYS_GPR115() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR115))
+#define SET_H_SYS_GPR115(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR115), (x));\
+;} while (0)
+#define GET_H_SYS_GPR116() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR116))
+#define SET_H_SYS_GPR116(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR116), (x));\
+;} while (0)
+#define GET_H_SYS_GPR117() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR117))
+#define SET_H_SYS_GPR117(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR117), (x));\
+;} while (0)
+#define GET_H_SYS_GPR118() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR118))
+#define SET_H_SYS_GPR118(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR118), (x));\
+;} while (0)
+#define GET_H_SYS_GPR119() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR119))
+#define SET_H_SYS_GPR119(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR119), (x));\
+;} while (0)
+#define GET_H_SYS_GPR120() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR120))
+#define SET_H_SYS_GPR120(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR120), (x));\
+;} while (0)
+#define GET_H_SYS_GPR121() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR121))
+#define SET_H_SYS_GPR121(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR121), (x));\
+;} while (0)
+#define GET_H_SYS_GPR122() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR122))
+#define SET_H_SYS_GPR122(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR122), (x));\
+;} while (0)
+#define GET_H_SYS_GPR123() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR123))
+#define SET_H_SYS_GPR123(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR123), (x));\
+;} while (0)
+#define GET_H_SYS_GPR124() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR124))
+#define SET_H_SYS_GPR124(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR124), (x));\
+;} while (0)
+#define GET_H_SYS_GPR125() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR125))
+#define SET_H_SYS_GPR125(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR125), (x));\
+;} while (0)
+#define GET_H_SYS_GPR126() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR126))
+#define SET_H_SYS_GPR126(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR126), (x));\
+;} while (0)
+#define GET_H_SYS_GPR127() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR127))
+#define SET_H_SYS_GPR127(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR127), (x));\
+;} while (0)
+#define GET_H_SYS_GPR128() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR128))
+#define SET_H_SYS_GPR128(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR128), (x));\
+;} while (0)
+#define GET_H_SYS_GPR129() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR129))
+#define SET_H_SYS_GPR129(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR129), (x));\
+;} while (0)
+#define GET_H_SYS_GPR130() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR130))
+#define SET_H_SYS_GPR130(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR130), (x));\
+;} while (0)
+#define GET_H_SYS_GPR131() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR131))
+#define SET_H_SYS_GPR131(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR131), (x));\
+;} while (0)
+#define GET_H_SYS_GPR132() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR132))
+#define SET_H_SYS_GPR132(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR132), (x));\
+;} while (0)
+#define GET_H_SYS_GPR133() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR133))
+#define SET_H_SYS_GPR133(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR133), (x));\
+;} while (0)
+#define GET_H_SYS_GPR134() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR134))
+#define SET_H_SYS_GPR134(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR134), (x));\
+;} while (0)
+#define GET_H_SYS_GPR135() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR135))
+#define SET_H_SYS_GPR135(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR135), (x));\
+;} while (0)
+#define GET_H_SYS_GPR136() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR136))
+#define SET_H_SYS_GPR136(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR136), (x));\
+;} while (0)
+#define GET_H_SYS_GPR137() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR137))
+#define SET_H_SYS_GPR137(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR137), (x));\
+;} while (0)
+#define GET_H_SYS_GPR138() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR138))
+#define SET_H_SYS_GPR138(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR138), (x));\
+;} while (0)
+#define GET_H_SYS_GPR139() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR139))
+#define SET_H_SYS_GPR139(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR139), (x));\
+;} while (0)
+#define GET_H_SYS_GPR140() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR140))
+#define SET_H_SYS_GPR140(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR140), (x));\
+;} while (0)
+#define GET_H_SYS_GPR141() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR141))
+#define SET_H_SYS_GPR141(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR141), (x));\
+;} while (0)
+#define GET_H_SYS_GPR142() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR142))
+#define SET_H_SYS_GPR142(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR142), (x));\
+;} while (0)
+#define GET_H_SYS_GPR143() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR143))
+#define SET_H_SYS_GPR143(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR143), (x));\
+;} while (0)
+#define GET_H_SYS_GPR144() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR144))
+#define SET_H_SYS_GPR144(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR144), (x));\
+;} while (0)
+#define GET_H_SYS_GPR145() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR145))
+#define SET_H_SYS_GPR145(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR145), (x));\
+;} while (0)
+#define GET_H_SYS_GPR146() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR146))
+#define SET_H_SYS_GPR146(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR146), (x));\
+;} while (0)
+#define GET_H_SYS_GPR147() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR147))
+#define SET_H_SYS_GPR147(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR147), (x));\
+;} while (0)
+#define GET_H_SYS_GPR148() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR148))
+#define SET_H_SYS_GPR148(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR148), (x));\
+;} while (0)
+#define GET_H_SYS_GPR149() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR149))
+#define SET_H_SYS_GPR149(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR149), (x));\
+;} while (0)
+#define GET_H_SYS_GPR150() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR150))
+#define SET_H_SYS_GPR150(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR150), (x));\
+;} while (0)
+#define GET_H_SYS_GPR151() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR151))
+#define SET_H_SYS_GPR151(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR151), (x));\
+;} while (0)
+#define GET_H_SYS_GPR152() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR152))
+#define SET_H_SYS_GPR152(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR152), (x));\
+;} while (0)
+#define GET_H_SYS_GPR153() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR153))
+#define SET_H_SYS_GPR153(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR153), (x));\
+;} while (0)
+#define GET_H_SYS_GPR154() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR154))
+#define SET_H_SYS_GPR154(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR154), (x));\
+;} while (0)
+#define GET_H_SYS_GPR155() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR155))
+#define SET_H_SYS_GPR155(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR155), (x));\
+;} while (0)
+#define GET_H_SYS_GPR156() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR156))
+#define SET_H_SYS_GPR156(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR156), (x));\
+;} while (0)
+#define GET_H_SYS_GPR157() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR157))
+#define SET_H_SYS_GPR157(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR157), (x));\
+;} while (0)
+#define GET_H_SYS_GPR158() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR158))
+#define SET_H_SYS_GPR158(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR158), (x));\
+;} while (0)
+#define GET_H_SYS_GPR159() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR159))
+#define SET_H_SYS_GPR159(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR159), (x));\
+;} while (0)
+#define GET_H_SYS_GPR160() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR160))
+#define SET_H_SYS_GPR160(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR160), (x));\
+;} while (0)
+#define GET_H_SYS_GPR161() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR161))
+#define SET_H_SYS_GPR161(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR161), (x));\
+;} while (0)
+#define GET_H_SYS_GPR162() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR162))
+#define SET_H_SYS_GPR162(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR162), (x));\
+;} while (0)
+#define GET_H_SYS_GPR163() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR163))
+#define SET_H_SYS_GPR163(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR163), (x));\
+;} while (0)
+#define GET_H_SYS_GPR164() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR164))
+#define SET_H_SYS_GPR164(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR164), (x));\
+;} while (0)
+#define GET_H_SYS_GPR165() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR165))
+#define SET_H_SYS_GPR165(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR165), (x));\
+;} while (0)
+#define GET_H_SYS_GPR166() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR166))
+#define SET_H_SYS_GPR166(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR166), (x));\
+;} while (0)
+#define GET_H_SYS_GPR167() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR167))
+#define SET_H_SYS_GPR167(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR167), (x));\
+;} while (0)
+#define GET_H_SYS_GPR168() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR168))
+#define SET_H_SYS_GPR168(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR168), (x));\
+;} while (0)
+#define GET_H_SYS_GPR169() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR169))
+#define SET_H_SYS_GPR169(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR169), (x));\
+;} while (0)
+#define GET_H_SYS_GPR170() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR170))
+#define SET_H_SYS_GPR170(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR170), (x));\
+;} while (0)
+#define GET_H_SYS_GPR171() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR171))
+#define SET_H_SYS_GPR171(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR171), (x));\
+;} while (0)
+#define GET_H_SYS_GPR172() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR172))
+#define SET_H_SYS_GPR172(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR172), (x));\
+;} while (0)
+#define GET_H_SYS_GPR173() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR173))
+#define SET_H_SYS_GPR173(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR173), (x));\
+;} while (0)
+#define GET_H_SYS_GPR174() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR174))
+#define SET_H_SYS_GPR174(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR174), (x));\
+;} while (0)
+#define GET_H_SYS_GPR175() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR175))
+#define SET_H_SYS_GPR175(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR175), (x));\
+;} while (0)
+#define GET_H_SYS_GPR176() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR176))
+#define SET_H_SYS_GPR176(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR176), (x));\
+;} while (0)
+#define GET_H_SYS_GPR177() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR177))
+#define SET_H_SYS_GPR177(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR177), (x));\
+;} while (0)
+#define GET_H_SYS_GPR178() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR178))
+#define SET_H_SYS_GPR178(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR178), (x));\
+;} while (0)
+#define GET_H_SYS_GPR179() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR179))
+#define SET_H_SYS_GPR179(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR179), (x));\
+;} while (0)
+#define GET_H_SYS_GPR180() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR180))
+#define SET_H_SYS_GPR180(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR180), (x));\
+;} while (0)
+#define GET_H_SYS_GPR181() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR181))
+#define SET_H_SYS_GPR181(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR181), (x));\
+;} while (0)
+#define GET_H_SYS_GPR182() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR182))
+#define SET_H_SYS_GPR182(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR182), (x));\
+;} while (0)
+#define GET_H_SYS_GPR183() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR183))
+#define SET_H_SYS_GPR183(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR183), (x));\
+;} while (0)
+#define GET_H_SYS_GPR184() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR184))
+#define SET_H_SYS_GPR184(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR184), (x));\
+;} while (0)
+#define GET_H_SYS_GPR185() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR185))
+#define SET_H_SYS_GPR185(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR185), (x));\
+;} while (0)
+#define GET_H_SYS_GPR186() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR186))
+#define SET_H_SYS_GPR186(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR186), (x));\
+;} while (0)
+#define GET_H_SYS_GPR187() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR187))
+#define SET_H_SYS_GPR187(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR187), (x));\
+;} while (0)
+#define GET_H_SYS_GPR188() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR188))
+#define SET_H_SYS_GPR188(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR188), (x));\
+;} while (0)
+#define GET_H_SYS_GPR189() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR189))
+#define SET_H_SYS_GPR189(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR189), (x));\
+;} while (0)
+#define GET_H_SYS_GPR190() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR190))
+#define SET_H_SYS_GPR190(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR190), (x));\
+;} while (0)
+#define GET_H_SYS_GPR191() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR191))
+#define SET_H_SYS_GPR191(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR191), (x));\
+;} while (0)
+#define GET_H_SYS_GPR192() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR192))
+#define SET_H_SYS_GPR192(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR192), (x));\
+;} while (0)
+#define GET_H_SYS_GPR193() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR193))
+#define SET_H_SYS_GPR193(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR193), (x));\
+;} while (0)
+#define GET_H_SYS_GPR194() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR194))
+#define SET_H_SYS_GPR194(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR194), (x));\
+;} while (0)
+#define GET_H_SYS_GPR195() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR195))
+#define SET_H_SYS_GPR195(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR195), (x));\
+;} while (0)
+#define GET_H_SYS_GPR196() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR196))
+#define SET_H_SYS_GPR196(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR196), (x));\
+;} while (0)
+#define GET_H_SYS_GPR197() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR197))
+#define SET_H_SYS_GPR197(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR197), (x));\
+;} while (0)
+#define GET_H_SYS_GPR198() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR198))
+#define SET_H_SYS_GPR198(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR198), (x));\
+;} while (0)
+#define GET_H_SYS_GPR199() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR199))
+#define SET_H_SYS_GPR199(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR199), (x));\
+;} while (0)
+#define GET_H_SYS_GPR200() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR200))
+#define SET_H_SYS_GPR200(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR200), (x));\
+;} while (0)
+#define GET_H_SYS_GPR201() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR201))
+#define SET_H_SYS_GPR201(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR201), (x));\
+;} while (0)
+#define GET_H_SYS_GPR202() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR202))
+#define SET_H_SYS_GPR202(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR202), (x));\
+;} while (0)
+#define GET_H_SYS_GPR203() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR203))
+#define SET_H_SYS_GPR203(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR203), (x));\
+;} while (0)
+#define GET_H_SYS_GPR204() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR204))
+#define SET_H_SYS_GPR204(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR204), (x));\
+;} while (0)
+#define GET_H_SYS_GPR205() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR205))
+#define SET_H_SYS_GPR205(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR205), (x));\
+;} while (0)
+#define GET_H_SYS_GPR206() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR206))
+#define SET_H_SYS_GPR206(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR206), (x));\
+;} while (0)
+#define GET_H_SYS_GPR207() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR207))
+#define SET_H_SYS_GPR207(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR207), (x));\
+;} while (0)
+#define GET_H_SYS_GPR208() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR208))
+#define SET_H_SYS_GPR208(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR208), (x));\
+;} while (0)
+#define GET_H_SYS_GPR209() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR209))
+#define SET_H_SYS_GPR209(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR209), (x));\
+;} while (0)
+#define GET_H_SYS_GPR210() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR210))
+#define SET_H_SYS_GPR210(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR210), (x));\
+;} while (0)
+#define GET_H_SYS_GPR211() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR211))
+#define SET_H_SYS_GPR211(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR211), (x));\
+;} while (0)
+#define GET_H_SYS_GPR212() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR212))
+#define SET_H_SYS_GPR212(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR212), (x));\
+;} while (0)
+#define GET_H_SYS_GPR213() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR213))
+#define SET_H_SYS_GPR213(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR213), (x));\
+;} while (0)
+#define GET_H_SYS_GPR214() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR214))
+#define SET_H_SYS_GPR214(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR214), (x));\
+;} while (0)
+#define GET_H_SYS_GPR215() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR215))
+#define SET_H_SYS_GPR215(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR215), (x));\
+;} while (0)
+#define GET_H_SYS_GPR216() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR216))
+#define SET_H_SYS_GPR216(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR216), (x));\
+;} while (0)
+#define GET_H_SYS_GPR217() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR217))
+#define SET_H_SYS_GPR217(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR217), (x));\
+;} while (0)
+#define GET_H_SYS_GPR218() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR218))
+#define SET_H_SYS_GPR218(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR218), (x));\
+;} while (0)
+#define GET_H_SYS_GPR219() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR219))
+#define SET_H_SYS_GPR219(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR219), (x));\
+;} while (0)
+#define GET_H_SYS_GPR220() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR220))
+#define SET_H_SYS_GPR220(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR220), (x));\
+;} while (0)
+#define GET_H_SYS_GPR221() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR221))
+#define SET_H_SYS_GPR221(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR221), (x));\
+;} while (0)
+#define GET_H_SYS_GPR222() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR222))
+#define SET_H_SYS_GPR222(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR222), (x));\
+;} while (0)
+#define GET_H_SYS_GPR223() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR223))
+#define SET_H_SYS_GPR223(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR223), (x));\
+;} while (0)
+#define GET_H_SYS_GPR224() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR224))
+#define SET_H_SYS_GPR224(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR224), (x));\
+;} while (0)
+#define GET_H_SYS_GPR225() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR225))
+#define SET_H_SYS_GPR225(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR225), (x));\
+;} while (0)
+#define GET_H_SYS_GPR226() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR226))
+#define SET_H_SYS_GPR226(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR226), (x));\
+;} while (0)
+#define GET_H_SYS_GPR227() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR227))
+#define SET_H_SYS_GPR227(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR227), (x));\
+;} while (0)
+#define GET_H_SYS_GPR228() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR228))
+#define SET_H_SYS_GPR228(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR228), (x));\
+;} while (0)
+#define GET_H_SYS_GPR229() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR229))
+#define SET_H_SYS_GPR229(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR229), (x));\
+;} while (0)
+#define GET_H_SYS_GPR230() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR230))
+#define SET_H_SYS_GPR230(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR230), (x));\
+;} while (0)
+#define GET_H_SYS_GPR231() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR231))
+#define SET_H_SYS_GPR231(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR231), (x));\
+;} while (0)
+#define GET_H_SYS_GPR232() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR232))
+#define SET_H_SYS_GPR232(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR232), (x));\
+;} while (0)
+#define GET_H_SYS_GPR233() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR233))
+#define SET_H_SYS_GPR233(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR233), (x));\
+;} while (0)
+#define GET_H_SYS_GPR234() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR234))
+#define SET_H_SYS_GPR234(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR234), (x));\
+;} while (0)
+#define GET_H_SYS_GPR235() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR235))
+#define SET_H_SYS_GPR235(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR235), (x));\
+;} while (0)
+#define GET_H_SYS_GPR236() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR236))
+#define SET_H_SYS_GPR236(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR236), (x));\
+;} while (0)
+#define GET_H_SYS_GPR237() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR237))
+#define SET_H_SYS_GPR237(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR237), (x));\
+;} while (0)
+#define GET_H_SYS_GPR238() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR238))
+#define SET_H_SYS_GPR238(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR238), (x));\
+;} while (0)
+#define GET_H_SYS_GPR239() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR239))
+#define SET_H_SYS_GPR239(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR239), (x));\
+;} while (0)
+#define GET_H_SYS_GPR240() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR240))
+#define SET_H_SYS_GPR240(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR240), (x));\
+;} while (0)
+#define GET_H_SYS_GPR241() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR241))
+#define SET_H_SYS_GPR241(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR241), (x));\
+;} while (0)
+#define GET_H_SYS_GPR242() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR242))
+#define SET_H_SYS_GPR242(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR242), (x));\
+;} while (0)
+#define GET_H_SYS_GPR243() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR243))
+#define SET_H_SYS_GPR243(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR243), (x));\
+;} while (0)
+#define GET_H_SYS_GPR244() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR244))
+#define SET_H_SYS_GPR244(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR244), (x));\
+;} while (0)
+#define GET_H_SYS_GPR245() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR245))
+#define SET_H_SYS_GPR245(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR245), (x));\
+;} while (0)
+#define GET_H_SYS_GPR246() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR246))
+#define SET_H_SYS_GPR246(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR246), (x));\
+;} while (0)
+#define GET_H_SYS_GPR247() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR247))
+#define SET_H_SYS_GPR247(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR247), (x));\
+;} while (0)
+#define GET_H_SYS_GPR248() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR248))
+#define SET_H_SYS_GPR248(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR248), (x));\
+;} while (0)
+#define GET_H_SYS_GPR249() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR249))
+#define SET_H_SYS_GPR249(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR249), (x));\
+;} while (0)
+#define GET_H_SYS_GPR250() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR250))
+#define SET_H_SYS_GPR250(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR250), (x));\
+;} while (0)
+#define GET_H_SYS_GPR251() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR251))
+#define SET_H_SYS_GPR251(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR251), (x));\
+;} while (0)
+#define GET_H_SYS_GPR252() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR252))
+#define SET_H_SYS_GPR252(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR252), (x));\
+;} while (0)
+#define GET_H_SYS_GPR253() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR253))
+#define SET_H_SYS_GPR253(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR253), (x));\
+;} while (0)
+#define GET_H_SYS_GPR254() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR254))
+#define SET_H_SYS_GPR254(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR254), (x));\
+;} while (0)
+#define GET_H_SYS_GPR255() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR255))
+#define SET_H_SYS_GPR255(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR255), (x));\
+;} while (0)
+#define GET_H_SYS_GPR256() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR256))
+#define SET_H_SYS_GPR256(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR256), (x));\
+;} while (0)
+#define GET_H_SYS_GPR257() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR257))
+#define SET_H_SYS_GPR257(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR257), (x));\
+;} while (0)
+#define GET_H_SYS_GPR258() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR258))
+#define SET_H_SYS_GPR258(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR258), (x));\
+;} while (0)
+#define GET_H_SYS_GPR259() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR259))
+#define SET_H_SYS_GPR259(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR259), (x));\
+;} while (0)
+#define GET_H_SYS_GPR260() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR260))
+#define SET_H_SYS_GPR260(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR260), (x));\
+;} while (0)
+#define GET_H_SYS_GPR261() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR261))
+#define SET_H_SYS_GPR261(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR261), (x));\
+;} while (0)
+#define GET_H_SYS_GPR262() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR262))
+#define SET_H_SYS_GPR262(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR262), (x));\
+;} while (0)
+#define GET_H_SYS_GPR263() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR263))
+#define SET_H_SYS_GPR263(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR263), (x));\
+;} while (0)
+#define GET_H_SYS_GPR264() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR264))
+#define SET_H_SYS_GPR264(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR264), (x));\
+;} while (0)
+#define GET_H_SYS_GPR265() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR265))
+#define SET_H_SYS_GPR265(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR265), (x));\
+;} while (0)
+#define GET_H_SYS_GPR266() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR266))
+#define SET_H_SYS_GPR266(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR266), (x));\
+;} while (0)
+#define GET_H_SYS_GPR267() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR267))
+#define SET_H_SYS_GPR267(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR267), (x));\
+;} while (0)
+#define GET_H_SYS_GPR268() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR268))
+#define SET_H_SYS_GPR268(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR268), (x));\
+;} while (0)
+#define GET_H_SYS_GPR269() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR269))
+#define SET_H_SYS_GPR269(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR269), (x));\
+;} while (0)
+#define GET_H_SYS_GPR270() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR270))
+#define SET_H_SYS_GPR270(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR270), (x));\
+;} while (0)
+#define GET_H_SYS_GPR271() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR271))
+#define SET_H_SYS_GPR271(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR271), (x));\
+;} while (0)
+#define GET_H_SYS_GPR272() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR272))
+#define SET_H_SYS_GPR272(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR272), (x));\
+;} while (0)
+#define GET_H_SYS_GPR273() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR273))
+#define SET_H_SYS_GPR273(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR273), (x));\
+;} while (0)
+#define GET_H_SYS_GPR274() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR274))
+#define SET_H_SYS_GPR274(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR274), (x));\
+;} while (0)
+#define GET_H_SYS_GPR275() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR275))
+#define SET_H_SYS_GPR275(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR275), (x));\
+;} while (0)
+#define GET_H_SYS_GPR276() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR276))
+#define SET_H_SYS_GPR276(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR276), (x));\
+;} while (0)
+#define GET_H_SYS_GPR277() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR277))
+#define SET_H_SYS_GPR277(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR277), (x));\
+;} while (0)
+#define GET_H_SYS_GPR278() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR278))
+#define SET_H_SYS_GPR278(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR278), (x));\
+;} while (0)
+#define GET_H_SYS_GPR279() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR279))
+#define SET_H_SYS_GPR279(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR279), (x));\
+;} while (0)
+#define GET_H_SYS_GPR280() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR280))
+#define SET_H_SYS_GPR280(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR280), (x));\
+;} while (0)
+#define GET_H_SYS_GPR281() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR281))
+#define SET_H_SYS_GPR281(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR281), (x));\
+;} while (0)
+#define GET_H_SYS_GPR282() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR282))
+#define SET_H_SYS_GPR282(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR282), (x));\
+;} while (0)
+#define GET_H_SYS_GPR283() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR283))
+#define SET_H_SYS_GPR283(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR283), (x));\
+;} while (0)
+#define GET_H_SYS_GPR284() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR284))
+#define SET_H_SYS_GPR284(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR284), (x));\
+;} while (0)
+#define GET_H_SYS_GPR285() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR285))
+#define SET_H_SYS_GPR285(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR285), (x));\
+;} while (0)
+#define GET_H_SYS_GPR286() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR286))
+#define SET_H_SYS_GPR286(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR286), (x));\
+;} while (0)
+#define GET_H_SYS_GPR287() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR287))
+#define SET_H_SYS_GPR287(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR287), (x));\
+;} while (0)
+#define GET_H_SYS_GPR288() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR288))
+#define SET_H_SYS_GPR288(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR288), (x));\
+;} while (0)
+#define GET_H_SYS_GPR289() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR289))
+#define SET_H_SYS_GPR289(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR289), (x));\
+;} while (0)
+#define GET_H_SYS_GPR290() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR290))
+#define SET_H_SYS_GPR290(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR290), (x));\
+;} while (0)
+#define GET_H_SYS_GPR291() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR291))
+#define SET_H_SYS_GPR291(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR291), (x));\
+;} while (0)
+#define GET_H_SYS_GPR292() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR292))
+#define SET_H_SYS_GPR292(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR292), (x));\
+;} while (0)
+#define GET_H_SYS_GPR293() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR293))
+#define SET_H_SYS_GPR293(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR293), (x));\
+;} while (0)
+#define GET_H_SYS_GPR294() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR294))
+#define SET_H_SYS_GPR294(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR294), (x));\
+;} while (0)
+#define GET_H_SYS_GPR295() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR295))
+#define SET_H_SYS_GPR295(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR295), (x));\
+;} while (0)
+#define GET_H_SYS_GPR296() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR296))
+#define SET_H_SYS_GPR296(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR296), (x));\
+;} while (0)
+#define GET_H_SYS_GPR297() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR297))
+#define SET_H_SYS_GPR297(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR297), (x));\
+;} while (0)
+#define GET_H_SYS_GPR298() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR298))
+#define SET_H_SYS_GPR298(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR298), (x));\
+;} while (0)
+#define GET_H_SYS_GPR299() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR299))
+#define SET_H_SYS_GPR299(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR299), (x));\
+;} while (0)
+#define GET_H_SYS_GPR300() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR300))
+#define SET_H_SYS_GPR300(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR300), (x));\
+;} while (0)
+#define GET_H_SYS_GPR301() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR301))
+#define SET_H_SYS_GPR301(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR301), (x));\
+;} while (0)
+#define GET_H_SYS_GPR302() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR302))
+#define SET_H_SYS_GPR302(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR302), (x));\
+;} while (0)
+#define GET_H_SYS_GPR303() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR303))
+#define SET_H_SYS_GPR303(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR303), (x));\
+;} while (0)
+#define GET_H_SYS_GPR304() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR304))
+#define SET_H_SYS_GPR304(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR304), (x));\
+;} while (0)
+#define GET_H_SYS_GPR305() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR305))
+#define SET_H_SYS_GPR305(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR305), (x));\
+;} while (0)
+#define GET_H_SYS_GPR306() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR306))
+#define SET_H_SYS_GPR306(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR306), (x));\
+;} while (0)
+#define GET_H_SYS_GPR307() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR307))
+#define SET_H_SYS_GPR307(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR307), (x));\
+;} while (0)
+#define GET_H_SYS_GPR308() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR308))
+#define SET_H_SYS_GPR308(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR308), (x));\
+;} while (0)
+#define GET_H_SYS_GPR309() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR309))
+#define SET_H_SYS_GPR309(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR309), (x));\
+;} while (0)
+#define GET_H_SYS_GPR310() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR310))
+#define SET_H_SYS_GPR310(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR310), (x));\
+;} while (0)
+#define GET_H_SYS_GPR311() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR311))
+#define SET_H_SYS_GPR311(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR311), (x));\
+;} while (0)
+#define GET_H_SYS_GPR312() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR312))
+#define SET_H_SYS_GPR312(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR312), (x));\
+;} while (0)
+#define GET_H_SYS_GPR313() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR313))
+#define SET_H_SYS_GPR313(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR313), (x));\
+;} while (0)
+#define GET_H_SYS_GPR314() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR314))
+#define SET_H_SYS_GPR314(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR314), (x));\
+;} while (0)
+#define GET_H_SYS_GPR315() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR315))
+#define SET_H_SYS_GPR315(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR315), (x));\
+;} while (0)
+#define GET_H_SYS_GPR316() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR316))
+#define SET_H_SYS_GPR316(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR316), (x));\
+;} while (0)
+#define GET_H_SYS_GPR317() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR317))
+#define SET_H_SYS_GPR317(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR317), (x));\
+;} while (0)
+#define GET_H_SYS_GPR318() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR318))
+#define SET_H_SYS_GPR318(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR318), (x));\
+;} while (0)
+#define GET_H_SYS_GPR319() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR319))
+#define SET_H_SYS_GPR319(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR319), (x));\
+;} while (0)
+#define GET_H_SYS_GPR320() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR320))
+#define SET_H_SYS_GPR320(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR320), (x));\
+;} while (0)
+#define GET_H_SYS_GPR321() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR321))
+#define SET_H_SYS_GPR321(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR321), (x));\
+;} while (0)
+#define GET_H_SYS_GPR322() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR322))
+#define SET_H_SYS_GPR322(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR322), (x));\
+;} while (0)
+#define GET_H_SYS_GPR323() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR323))
+#define SET_H_SYS_GPR323(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR323), (x));\
+;} while (0)
+#define GET_H_SYS_GPR324() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR324))
+#define SET_H_SYS_GPR324(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR324), (x));\
+;} while (0)
+#define GET_H_SYS_GPR325() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR325))
+#define SET_H_SYS_GPR325(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR325), (x));\
+;} while (0)
+#define GET_H_SYS_GPR326() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR326))
+#define SET_H_SYS_GPR326(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR326), (x));\
+;} while (0)
+#define GET_H_SYS_GPR327() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR327))
+#define SET_H_SYS_GPR327(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR327), (x));\
+;} while (0)
+#define GET_H_SYS_GPR328() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR328))
+#define SET_H_SYS_GPR328(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR328), (x));\
+;} while (0)
+#define GET_H_SYS_GPR329() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR329))
+#define SET_H_SYS_GPR329(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR329), (x));\
+;} while (0)
+#define GET_H_SYS_GPR330() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR330))
+#define SET_H_SYS_GPR330(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR330), (x));\
+;} while (0)
+#define GET_H_SYS_GPR331() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR331))
+#define SET_H_SYS_GPR331(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR331), (x));\
+;} while (0)
+#define GET_H_SYS_GPR332() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR332))
+#define SET_H_SYS_GPR332(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR332), (x));\
+;} while (0)
+#define GET_H_SYS_GPR333() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR333))
+#define SET_H_SYS_GPR333(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR333), (x));\
+;} while (0)
+#define GET_H_SYS_GPR334() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR334))
+#define SET_H_SYS_GPR334(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR334), (x));\
+;} while (0)
+#define GET_H_SYS_GPR335() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR335))
+#define SET_H_SYS_GPR335(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR335), (x));\
+;} while (0)
+#define GET_H_SYS_GPR336() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR336))
+#define SET_H_SYS_GPR336(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR336), (x));\
+;} while (0)
+#define GET_H_SYS_GPR337() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR337))
+#define SET_H_SYS_GPR337(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR337), (x));\
+;} while (0)
+#define GET_H_SYS_GPR338() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR338))
+#define SET_H_SYS_GPR338(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR338), (x));\
+;} while (0)
+#define GET_H_SYS_GPR339() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR339))
+#define SET_H_SYS_GPR339(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR339), (x));\
+;} while (0)
+#define GET_H_SYS_GPR340() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR340))
+#define SET_H_SYS_GPR340(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR340), (x));\
+;} while (0)
+#define GET_H_SYS_GPR341() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR341))
+#define SET_H_SYS_GPR341(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR341), (x));\
+;} while (0)
+#define GET_H_SYS_GPR342() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR342))
+#define SET_H_SYS_GPR342(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR342), (x));\
+;} while (0)
+#define GET_H_SYS_GPR343() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR343))
+#define SET_H_SYS_GPR343(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR343), (x));\
+;} while (0)
+#define GET_H_SYS_GPR344() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR344))
+#define SET_H_SYS_GPR344(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR344), (x));\
+;} while (0)
+#define GET_H_SYS_GPR345() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR345))
+#define SET_H_SYS_GPR345(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR345), (x));\
+;} while (0)
+#define GET_H_SYS_GPR346() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR346))
+#define SET_H_SYS_GPR346(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR346), (x));\
+;} while (0)
+#define GET_H_SYS_GPR347() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR347))
+#define SET_H_SYS_GPR347(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR347), (x));\
+;} while (0)
+#define GET_H_SYS_GPR348() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR348))
+#define SET_H_SYS_GPR348(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR348), (x));\
+;} while (0)
+#define GET_H_SYS_GPR349() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR349))
+#define SET_H_SYS_GPR349(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR349), (x));\
+;} while (0)
+#define GET_H_SYS_GPR350() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR350))
+#define SET_H_SYS_GPR350(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR350), (x));\
+;} while (0)
+#define GET_H_SYS_GPR351() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR351))
+#define SET_H_SYS_GPR351(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR351), (x));\
+;} while (0)
+#define GET_H_SYS_GPR352() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR352))
+#define SET_H_SYS_GPR352(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR352), (x));\
+;} while (0)
+#define GET_H_SYS_GPR353() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR353))
+#define SET_H_SYS_GPR353(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR353), (x));\
+;} while (0)
+#define GET_H_SYS_GPR354() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR354))
+#define SET_H_SYS_GPR354(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR354), (x));\
+;} while (0)
+#define GET_H_SYS_GPR355() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR355))
+#define SET_H_SYS_GPR355(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR355), (x));\
+;} while (0)
+#define GET_H_SYS_GPR356() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR356))
+#define SET_H_SYS_GPR356(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR356), (x));\
+;} while (0)
+#define GET_H_SYS_GPR357() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR357))
+#define SET_H_SYS_GPR357(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR357), (x));\
+;} while (0)
+#define GET_H_SYS_GPR358() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR358))
+#define SET_H_SYS_GPR358(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR358), (x));\
+;} while (0)
+#define GET_H_SYS_GPR359() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR359))
+#define SET_H_SYS_GPR359(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR359), (x));\
+;} while (0)
+#define GET_H_SYS_GPR360() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR360))
+#define SET_H_SYS_GPR360(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR360), (x));\
+;} while (0)
+#define GET_H_SYS_GPR361() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR361))
+#define SET_H_SYS_GPR361(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR361), (x));\
+;} while (0)
+#define GET_H_SYS_GPR362() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR362))
+#define SET_H_SYS_GPR362(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR362), (x));\
+;} while (0)
+#define GET_H_SYS_GPR363() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR363))
+#define SET_H_SYS_GPR363(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR363), (x));\
+;} while (0)
+#define GET_H_SYS_GPR364() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR364))
+#define SET_H_SYS_GPR364(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR364), (x));\
+;} while (0)
+#define GET_H_SYS_GPR365() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR365))
+#define SET_H_SYS_GPR365(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR365), (x));\
+;} while (0)
+#define GET_H_SYS_GPR366() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR366))
+#define SET_H_SYS_GPR366(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR366), (x));\
+;} while (0)
+#define GET_H_SYS_GPR367() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR367))
+#define SET_H_SYS_GPR367(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR367), (x));\
+;} while (0)
+#define GET_H_SYS_GPR368() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR368))
+#define SET_H_SYS_GPR368(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR368), (x));\
+;} while (0)
+#define GET_H_SYS_GPR369() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR369))
+#define SET_H_SYS_GPR369(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR369), (x));\
+;} while (0)
+#define GET_H_SYS_GPR370() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR370))
+#define SET_H_SYS_GPR370(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR370), (x));\
+;} while (0)
+#define GET_H_SYS_GPR371() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR371))
+#define SET_H_SYS_GPR371(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR371), (x));\
+;} while (0)
+#define GET_H_SYS_GPR372() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR372))
+#define SET_H_SYS_GPR372(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR372), (x));\
+;} while (0)
+#define GET_H_SYS_GPR373() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR373))
+#define SET_H_SYS_GPR373(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR373), (x));\
+;} while (0)
+#define GET_H_SYS_GPR374() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR374))
+#define SET_H_SYS_GPR374(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR374), (x));\
+;} while (0)
+#define GET_H_SYS_GPR375() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR375))
+#define SET_H_SYS_GPR375(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR375), (x));\
+;} while (0)
+#define GET_H_SYS_GPR376() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR376))
+#define SET_H_SYS_GPR376(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR376), (x));\
+;} while (0)
+#define GET_H_SYS_GPR377() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR377))
+#define SET_H_SYS_GPR377(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR377), (x));\
+;} while (0)
+#define GET_H_SYS_GPR378() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR378))
+#define SET_H_SYS_GPR378(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR378), (x));\
+;} while (0)
+#define GET_H_SYS_GPR379() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR379))
+#define SET_H_SYS_GPR379(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR379), (x));\
+;} while (0)
+#define GET_H_SYS_GPR380() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR380))
+#define SET_H_SYS_GPR380(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR380), (x));\
+;} while (0)
+#define GET_H_SYS_GPR381() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR381))
+#define SET_H_SYS_GPR381(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR381), (x));\
+;} while (0)
+#define GET_H_SYS_GPR382() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR382))
+#define SET_H_SYS_GPR382(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR382), (x));\
+;} while (0)
+#define GET_H_SYS_GPR383() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR383))
+#define SET_H_SYS_GPR383(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR383), (x));\
+;} while (0)
+#define GET_H_SYS_GPR384() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR384))
+#define SET_H_SYS_GPR384(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR384), (x));\
+;} while (0)
+#define GET_H_SYS_GPR385() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR385))
+#define SET_H_SYS_GPR385(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR385), (x));\
+;} while (0)
+#define GET_H_SYS_GPR386() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR386))
+#define SET_H_SYS_GPR386(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR386), (x));\
+;} while (0)
+#define GET_H_SYS_GPR387() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR387))
+#define SET_H_SYS_GPR387(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR387), (x));\
+;} while (0)
+#define GET_H_SYS_GPR388() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR388))
+#define SET_H_SYS_GPR388(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR388), (x));\
+;} while (0)
+#define GET_H_SYS_GPR389() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR389))
+#define SET_H_SYS_GPR389(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR389), (x));\
+;} while (0)
+#define GET_H_SYS_GPR390() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR390))
+#define SET_H_SYS_GPR390(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR390), (x));\
+;} while (0)
+#define GET_H_SYS_GPR391() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR391))
+#define SET_H_SYS_GPR391(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR391), (x));\
+;} while (0)
+#define GET_H_SYS_GPR392() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR392))
+#define SET_H_SYS_GPR392(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR392), (x));\
+;} while (0)
+#define GET_H_SYS_GPR393() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR393))
+#define SET_H_SYS_GPR393(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR393), (x));\
+;} while (0)
+#define GET_H_SYS_GPR394() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR394))
+#define SET_H_SYS_GPR394(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR394), (x));\
+;} while (0)
+#define GET_H_SYS_GPR395() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR395))
+#define SET_H_SYS_GPR395(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR395), (x));\
+;} while (0)
+#define GET_H_SYS_GPR396() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR396))
+#define SET_H_SYS_GPR396(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR396), (x));\
+;} while (0)
+#define GET_H_SYS_GPR397() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR397))
+#define SET_H_SYS_GPR397(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR397), (x));\
+;} while (0)
+#define GET_H_SYS_GPR398() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR398))
+#define SET_H_SYS_GPR398(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR398), (x));\
+;} while (0)
+#define GET_H_SYS_GPR399() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR399))
+#define SET_H_SYS_GPR399(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR399), (x));\
+;} while (0)
+#define GET_H_SYS_GPR400() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR400))
+#define SET_H_SYS_GPR400(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR400), (x));\
+;} while (0)
+#define GET_H_SYS_GPR401() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR401))
+#define SET_H_SYS_GPR401(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR401), (x));\
+;} while (0)
+#define GET_H_SYS_GPR402() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR402))
+#define SET_H_SYS_GPR402(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR402), (x));\
+;} while (0)
+#define GET_H_SYS_GPR403() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR403))
+#define SET_H_SYS_GPR403(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR403), (x));\
+;} while (0)
+#define GET_H_SYS_GPR404() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR404))
+#define SET_H_SYS_GPR404(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR404), (x));\
+;} while (0)
+#define GET_H_SYS_GPR405() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR405))
+#define SET_H_SYS_GPR405(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR405), (x));\
+;} while (0)
+#define GET_H_SYS_GPR406() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR406))
+#define SET_H_SYS_GPR406(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR406), (x));\
+;} while (0)
+#define GET_H_SYS_GPR407() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR407))
+#define SET_H_SYS_GPR407(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR407), (x));\
+;} while (0)
+#define GET_H_SYS_GPR408() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR408))
+#define SET_H_SYS_GPR408(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR408), (x));\
+;} while (0)
+#define GET_H_SYS_GPR409() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR409))
+#define SET_H_SYS_GPR409(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR409), (x));\
+;} while (0)
+#define GET_H_SYS_GPR410() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR410))
+#define SET_H_SYS_GPR410(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR410), (x));\
+;} while (0)
+#define GET_H_SYS_GPR411() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR411))
+#define SET_H_SYS_GPR411(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR411), (x));\
+;} while (0)
+#define GET_H_SYS_GPR412() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR412))
+#define SET_H_SYS_GPR412(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR412), (x));\
+;} while (0)
+#define GET_H_SYS_GPR413() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR413))
+#define SET_H_SYS_GPR413(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR413), (x));\
+;} while (0)
+#define GET_H_SYS_GPR414() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR414))
+#define SET_H_SYS_GPR414(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR414), (x));\
+;} while (0)
+#define GET_H_SYS_GPR415() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR415))
+#define SET_H_SYS_GPR415(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR415), (x));\
+;} while (0)
+#define GET_H_SYS_GPR416() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR416))
+#define SET_H_SYS_GPR416(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR416), (x));\
+;} while (0)
+#define GET_H_SYS_GPR417() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR417))
+#define SET_H_SYS_GPR417(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR417), (x));\
+;} while (0)
+#define GET_H_SYS_GPR418() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR418))
+#define SET_H_SYS_GPR418(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR418), (x));\
+;} while (0)
+#define GET_H_SYS_GPR419() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR419))
+#define SET_H_SYS_GPR419(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR419), (x));\
+;} while (0)
+#define GET_H_SYS_GPR420() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR420))
+#define SET_H_SYS_GPR420(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR420), (x));\
+;} while (0)
+#define GET_H_SYS_GPR421() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR421))
+#define SET_H_SYS_GPR421(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR421), (x));\
+;} while (0)
+#define GET_H_SYS_GPR422() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR422))
+#define SET_H_SYS_GPR422(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR422), (x));\
+;} while (0)
+#define GET_H_SYS_GPR423() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR423))
+#define SET_H_SYS_GPR423(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR423), (x));\
+;} while (0)
+#define GET_H_SYS_GPR424() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR424))
+#define SET_H_SYS_GPR424(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR424), (x));\
+;} while (0)
+#define GET_H_SYS_GPR425() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR425))
+#define SET_H_SYS_GPR425(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR425), (x));\
+;} while (0)
+#define GET_H_SYS_GPR426() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR426))
+#define SET_H_SYS_GPR426(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR426), (x));\
+;} while (0)
+#define GET_H_SYS_GPR427() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR427))
+#define SET_H_SYS_GPR427(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR427), (x));\
+;} while (0)
+#define GET_H_SYS_GPR428() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR428))
+#define SET_H_SYS_GPR428(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR428), (x));\
+;} while (0)
+#define GET_H_SYS_GPR429() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR429))
+#define SET_H_SYS_GPR429(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR429), (x));\
+;} while (0)
+#define GET_H_SYS_GPR430() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR430))
+#define SET_H_SYS_GPR430(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR430), (x));\
+;} while (0)
+#define GET_H_SYS_GPR431() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR431))
+#define SET_H_SYS_GPR431(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR431), (x));\
+;} while (0)
+#define GET_H_SYS_GPR432() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR432))
+#define SET_H_SYS_GPR432(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR432), (x));\
+;} while (0)
+#define GET_H_SYS_GPR433() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR433))
+#define SET_H_SYS_GPR433(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR433), (x));\
+;} while (0)
+#define GET_H_SYS_GPR434() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR434))
+#define SET_H_SYS_GPR434(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR434), (x));\
+;} while (0)
+#define GET_H_SYS_GPR435() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR435))
+#define SET_H_SYS_GPR435(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR435), (x));\
+;} while (0)
+#define GET_H_SYS_GPR436() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR436))
+#define SET_H_SYS_GPR436(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR436), (x));\
+;} while (0)
+#define GET_H_SYS_GPR437() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR437))
+#define SET_H_SYS_GPR437(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR437), (x));\
+;} while (0)
+#define GET_H_SYS_GPR438() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR438))
+#define SET_H_SYS_GPR438(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR438), (x));\
+;} while (0)
+#define GET_H_SYS_GPR439() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR439))
+#define SET_H_SYS_GPR439(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR439), (x));\
+;} while (0)
+#define GET_H_SYS_GPR440() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR440))
+#define SET_H_SYS_GPR440(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR440), (x));\
+;} while (0)
+#define GET_H_SYS_GPR441() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR441))
+#define SET_H_SYS_GPR441(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR441), (x));\
+;} while (0)
+#define GET_H_SYS_GPR442() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR442))
+#define SET_H_SYS_GPR442(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR442), (x));\
+;} while (0)
+#define GET_H_SYS_GPR443() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR443))
+#define SET_H_SYS_GPR443(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR443), (x));\
+;} while (0)
+#define GET_H_SYS_GPR444() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR444))
+#define SET_H_SYS_GPR444(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR444), (x));\
+;} while (0)
+#define GET_H_SYS_GPR445() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR445))
+#define SET_H_SYS_GPR445(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR445), (x));\
+;} while (0)
+#define GET_H_SYS_GPR446() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR446))
+#define SET_H_SYS_GPR446(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR446), (x));\
+;} while (0)
+#define GET_H_SYS_GPR447() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR447))
+#define SET_H_SYS_GPR447(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR447), (x));\
+;} while (0)
+#define GET_H_SYS_GPR448() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR448))
+#define SET_H_SYS_GPR448(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR448), (x));\
+;} while (0)
+#define GET_H_SYS_GPR449() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR449))
+#define SET_H_SYS_GPR449(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR449), (x));\
+;} while (0)
+#define GET_H_SYS_GPR450() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR450))
+#define SET_H_SYS_GPR450(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR450), (x));\
+;} while (0)
+#define GET_H_SYS_GPR451() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR451))
+#define SET_H_SYS_GPR451(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR451), (x));\
+;} while (0)
+#define GET_H_SYS_GPR452() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR452))
+#define SET_H_SYS_GPR452(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR452), (x));\
+;} while (0)
+#define GET_H_SYS_GPR453() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR453))
+#define SET_H_SYS_GPR453(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR453), (x));\
+;} while (0)
+#define GET_H_SYS_GPR454() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR454))
+#define SET_H_SYS_GPR454(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR454), (x));\
+;} while (0)
+#define GET_H_SYS_GPR455() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR455))
+#define SET_H_SYS_GPR455(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR455), (x));\
+;} while (0)
+#define GET_H_SYS_GPR456() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR456))
+#define SET_H_SYS_GPR456(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR456), (x));\
+;} while (0)
+#define GET_H_SYS_GPR457() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR457))
+#define SET_H_SYS_GPR457(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR457), (x));\
+;} while (0)
+#define GET_H_SYS_GPR458() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR458))
+#define SET_H_SYS_GPR458(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR458), (x));\
+;} while (0)
+#define GET_H_SYS_GPR459() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR459))
+#define SET_H_SYS_GPR459(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR459), (x));\
+;} while (0)
+#define GET_H_SYS_GPR460() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR460))
+#define SET_H_SYS_GPR460(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR460), (x));\
+;} while (0)
+#define GET_H_SYS_GPR461() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR461))
+#define SET_H_SYS_GPR461(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR461), (x));\
+;} while (0)
+#define GET_H_SYS_GPR462() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR462))
+#define SET_H_SYS_GPR462(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR462), (x));\
+;} while (0)
+#define GET_H_SYS_GPR463() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR463))
+#define SET_H_SYS_GPR463(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR463), (x));\
+;} while (0)
+#define GET_H_SYS_GPR464() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR464))
+#define SET_H_SYS_GPR464(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR464), (x));\
+;} while (0)
+#define GET_H_SYS_GPR465() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR465))
+#define SET_H_SYS_GPR465(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR465), (x));\
+;} while (0)
+#define GET_H_SYS_GPR466() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR466))
+#define SET_H_SYS_GPR466(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR466), (x));\
+;} while (0)
+#define GET_H_SYS_GPR467() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR467))
+#define SET_H_SYS_GPR467(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR467), (x));\
+;} while (0)
+#define GET_H_SYS_GPR468() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR468))
+#define SET_H_SYS_GPR468(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR468), (x));\
+;} while (0)
+#define GET_H_SYS_GPR469() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR469))
+#define SET_H_SYS_GPR469(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR469), (x));\
+;} while (0)
+#define GET_H_SYS_GPR470() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR470))
+#define SET_H_SYS_GPR470(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR470), (x));\
+;} while (0)
+#define GET_H_SYS_GPR471() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR471))
+#define SET_H_SYS_GPR471(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR471), (x));\
+;} while (0)
+#define GET_H_SYS_GPR472() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR472))
+#define SET_H_SYS_GPR472(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR472), (x));\
+;} while (0)
+#define GET_H_SYS_GPR473() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR473))
+#define SET_H_SYS_GPR473(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR473), (x));\
+;} while (0)
+#define GET_H_SYS_GPR474() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR474))
+#define SET_H_SYS_GPR474(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR474), (x));\
+;} while (0)
+#define GET_H_SYS_GPR475() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR475))
+#define SET_H_SYS_GPR475(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR475), (x));\
+;} while (0)
+#define GET_H_SYS_GPR476() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR476))
+#define SET_H_SYS_GPR476(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR476), (x));\
+;} while (0)
+#define GET_H_SYS_GPR477() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR477))
+#define SET_H_SYS_GPR477(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR477), (x));\
+;} while (0)
+#define GET_H_SYS_GPR478() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR478))
+#define SET_H_SYS_GPR478(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR478), (x));\
+;} while (0)
+#define GET_H_SYS_GPR479() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR479))
+#define SET_H_SYS_GPR479(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR479), (x));\
+;} while (0)
+#define GET_H_SYS_GPR480() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR480))
+#define SET_H_SYS_GPR480(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR480), (x));\
+;} while (0)
+#define GET_H_SYS_GPR481() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR481))
+#define SET_H_SYS_GPR481(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR481), (x));\
+;} while (0)
+#define GET_H_SYS_GPR482() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR482))
+#define SET_H_SYS_GPR482(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR482), (x));\
+;} while (0)
+#define GET_H_SYS_GPR483() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR483))
+#define SET_H_SYS_GPR483(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR483), (x));\
+;} while (0)
+#define GET_H_SYS_GPR484() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR484))
+#define SET_H_SYS_GPR484(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR484), (x));\
+;} while (0)
+#define GET_H_SYS_GPR485() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR485))
+#define SET_H_SYS_GPR485(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR485), (x));\
+;} while (0)
+#define GET_H_SYS_GPR486() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR486))
+#define SET_H_SYS_GPR486(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR486), (x));\
+;} while (0)
+#define GET_H_SYS_GPR487() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR487))
+#define SET_H_SYS_GPR487(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR487), (x));\
+;} while (0)
+#define GET_H_SYS_GPR488() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR488))
+#define SET_H_SYS_GPR488(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR488), (x));\
+;} while (0)
+#define GET_H_SYS_GPR489() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR489))
+#define SET_H_SYS_GPR489(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR489), (x));\
+;} while (0)
+#define GET_H_SYS_GPR490() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR490))
+#define SET_H_SYS_GPR490(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR490), (x));\
+;} while (0)
+#define GET_H_SYS_GPR491() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR491))
+#define SET_H_SYS_GPR491(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR491), (x));\
+;} while (0)
+#define GET_H_SYS_GPR492() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR492))
+#define SET_H_SYS_GPR492(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR492), (x));\
+;} while (0)
+#define GET_H_SYS_GPR493() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR493))
+#define SET_H_SYS_GPR493(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR493), (x));\
+;} while (0)
+#define GET_H_SYS_GPR494() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR494))
+#define SET_H_SYS_GPR494(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR494), (x));\
+;} while (0)
+#define GET_H_SYS_GPR495() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR495))
+#define SET_H_SYS_GPR495(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR495), (x));\
+;} while (0)
+#define GET_H_SYS_GPR496() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR496))
+#define SET_H_SYS_GPR496(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR496), (x));\
+;} while (0)
+#define GET_H_SYS_GPR497() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR497))
+#define SET_H_SYS_GPR497(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR497), (x));\
+;} while (0)
+#define GET_H_SYS_GPR498() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR498))
+#define SET_H_SYS_GPR498(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR498), (x));\
+;} while (0)
+#define GET_H_SYS_GPR499() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR499))
+#define SET_H_SYS_GPR499(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR499), (x));\
+;} while (0)
+#define GET_H_SYS_GPR500() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR500))
+#define SET_H_SYS_GPR500(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR500), (x));\
+;} while (0)
+#define GET_H_SYS_GPR501() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR501))
+#define SET_H_SYS_GPR501(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR501), (x));\
+;} while (0)
+#define GET_H_SYS_GPR502() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR502))
+#define SET_H_SYS_GPR502(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR502), (x));\
+;} while (0)
+#define GET_H_SYS_GPR503() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR503))
+#define SET_H_SYS_GPR503(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR503), (x));\
+;} while (0)
+#define GET_H_SYS_GPR504() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR504))
+#define SET_H_SYS_GPR504(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR504), (x));\
+;} while (0)
+#define GET_H_SYS_GPR505() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR505))
+#define SET_H_SYS_GPR505(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR505), (x));\
+;} while (0)
+#define GET_H_SYS_GPR506() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR506))
+#define SET_H_SYS_GPR506(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR506), (x));\
+;} while (0)
+#define GET_H_SYS_GPR507() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR507))
+#define SET_H_SYS_GPR507(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR507), (x));\
+;} while (0)
+#define GET_H_SYS_GPR508() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR508))
+#define SET_H_SYS_GPR508(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR508), (x));\
+;} while (0)
+#define GET_H_SYS_GPR509() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR509))
+#define SET_H_SYS_GPR509(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR509), (x));\
+;} while (0)
+#define GET_H_SYS_GPR510() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR510))
+#define SET_H_SYS_GPR510(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR510), (x));\
+;} while (0)
+#define GET_H_SYS_GPR511() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR511))
+#define SET_H_SYS_GPR511(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR511), (x));\
+;} while (0)
+#define GET_H_MAC_MACLO() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACLO))
+#define SET_H_MAC_MACLO(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACLO), (x));\
+;} while (0)
+#define GET_H_MAC_MACHI() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACHI))
+#define SET_H_MAC_MACHI(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_MAC, 11), SPR_INDEX_MAC_MACHI), (x));\
+;} while (0)
+#define GET_H_TICK_TTMR() GET_H_SPR (ORDI (SLLDI (SPR_GROUP_TICK, 11), SPR_INDEX_TICK_TTMR))
+#define SET_H_TICK_TTMR(x) \
+do { \
+SET_H_SPR (ORDI (SLLDI (SPR_GROUP_TICK, 11), SPR_INDEX_TICK_TTMR), (x));\
+;} while (0)
+#define GET_H_SYS_VR_REV() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 5, 0)
+#define SET_H_SYS_VR_REV(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 5, 0, (x));\
+;} while (0)
+#define GET_H_SYS_VR_CFG() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 23, 16)
+#define SET_H_SYS_VR_CFG(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 23, 16, (x));\
+;} while (0)
+#define GET_H_SYS_VR_VER() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 31, 24)
+#define SET_H_SYS_VR_VER(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_VR), 31, 24, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_UP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 0, 0)
+#define SET_H_SYS_UPR_UP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DCP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 1, 1)
+#define SET_H_SYS_UPR_DCP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 1, 1, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_ICP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 2, 2)
+#define SET_H_SYS_UPR_ICP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 2, 2, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DMP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 3, 3)
+#define SET_H_SYS_UPR_DMP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_MP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 4, 4)
+#define SET_H_SYS_UPR_MP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_IMP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 5, 5)
+#define SET_H_SYS_UPR_IMP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_DUP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 6, 6)
+#define SET_H_SYS_UPR_DUP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PCUP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 7, 7)
+#define SET_H_SYS_UPR_PCUP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PICP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 8, 8)
+#define SET_H_SYS_UPR_PICP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_PMP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 9, 9)
+#define SET_H_SYS_UPR_PMP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_TTP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 10, 10)
+#define SET_H_SYS_UPR_TTP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_UPR_CUP() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 31, 24)
+#define SET_H_SYS_UPR_CUP(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_UPR), 31, 24, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_NSGR() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 3, 0)
+#define SET_H_SYS_CPUCFGR_NSGR(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 3, 0, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_CGF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 4, 4)
+#define SET_H_SYS_CPUCFGR_CGF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OB32S() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 5, 5)
+#define SET_H_SYS_CPUCFGR_OB32S(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OB64S() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 6, 6)
+#define SET_H_SYS_CPUCFGR_OB64S(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OF32S() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 7, 7)
+#define SET_H_SYS_CPUCFGR_OF32S(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OF64S() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 8, 8)
+#define SET_H_SYS_CPUCFGR_OF64S(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_OV64S() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 9, 9)
+#define SET_H_SYS_CPUCFGR_OV64S(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_CPUCFGR_ND() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 10, 10)
+#define SET_H_SYS_CPUCFGR_ND(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_CPUCFGR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_SR_SM() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 0, 0)
+#define SET_H_SYS_SR_SM(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_SR_TEE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 1, 1)
+#define SET_H_SYS_SR_TEE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 1, 1, (x));\
+;} while (0)
+#define GET_H_SYS_SR_IEE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 2, 2)
+#define SET_H_SYS_SR_IEE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 2, 2, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DCE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 3, 3)
+#define SET_H_SYS_SR_DCE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_SR_ICE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 4, 4)
+#define SET_H_SYS_SR_ICE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DME() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 5, 5)
+#define SET_H_SYS_SR_DME(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_SR_IME() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 6, 6)
+#define SET_H_SYS_SR_IME(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_SR_LEE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 7, 7)
+#define SET_H_SYS_SR_LEE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 8, 8)
+#define SET_H_SYS_SR_CE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_SR_F() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 9, 9)
+#define SET_H_SYS_SR_F(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CY() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 10, 10)
+#define SET_H_SYS_SR_CY(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_SR_OV() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 11, 11)
+#define SET_H_SYS_SR_OV(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 11, 11, (x));\
+;} while (0)
+#define GET_H_SYS_SR_OVE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 12, 12)
+#define SET_H_SYS_SR_OVE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 12, 12, (x));\
+;} while (0)
+#define GET_H_SYS_SR_DSX() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 13, 13)
+#define SET_H_SYS_SR_DSX(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 13, 13, (x));\
+;} while (0)
+#define GET_H_SYS_SR_EPH() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 14, 14)
+#define SET_H_SYS_SR_EPH(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 14, 14, (x));\
+;} while (0)
+#define GET_H_SYS_SR_FO() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 15, 15)
+#define SET_H_SYS_SR_FO(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 15, 15, (x));\
+;} while (0)
+#define GET_H_SYS_SR_SUMRA() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 16, 16)
+#define SET_H_SYS_SR_SUMRA(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 16, 16, (x));\
+;} while (0)
+#define GET_H_SYS_SR_CID() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 31, 28)
+#define SET_H_SYS_SR_CID(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_SR), 31, 28, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_FPEE() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 0, 0)
+#define SET_H_SYS_FPCSR_FPEE(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 0, 0, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_RM() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 2, 1)
+#define SET_H_SYS_FPCSR_RM(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 2, 1, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_OVF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 3, 3)
+#define SET_H_SYS_FPCSR_OVF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 3, 3, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_UNF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 4, 4)
+#define SET_H_SYS_FPCSR_UNF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 4, 4, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_SNF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 5, 5)
+#define SET_H_SYS_FPCSR_SNF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 5, 5, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_QNF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 6, 6)
+#define SET_H_SYS_FPCSR_QNF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 6, 6, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_ZF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 7, 7)
+#define SET_H_SYS_FPCSR_ZF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 7, 7, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_IXF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 8, 8)
+#define SET_H_SYS_FPCSR_IXF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 8, 8, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_IVF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 9, 9)
+#define SET_H_SYS_FPCSR_IVF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 9, 9, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_INF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 10, 10)
+#define SET_H_SYS_FPCSR_INF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 10, 10, (x));\
+;} while (0)
+#define GET_H_SYS_FPCSR_DZF() or1k64bf_h_spr_field_get_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 11, 11)
+#define SET_H_SYS_FPCSR_DZF(x) \
+do { \
+or1k64bf_h_spr_field_set_raw (current_cpu, ORDI (SLLDI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_FPCSR), 11, 11, (x));\
+;} while (0)
+
+/* Cover fns for register access.  */
+UDI or1k64bf_h_pc_get (SIM_CPU *);
+void or1k64bf_h_pc_set (SIM_CPU *, UDI);
+SF or1k64bf_h_fsr_get (SIM_CPU *, UINT);
+void or1k64bf_h_fsr_set (SIM_CPU *, UINT, SF);
+DF or1k64bf_h_fdr_get (SIM_CPU *, UINT);
+void or1k64bf_h_fdr_set (SIM_CPU *, UINT, DF);
+UDI or1k64bf_h_spr_get (SIM_CPU *, UINT);
+void or1k64bf_h_spr_set (SIM_CPU *, UINT, UDI);
+UDI or1k64bf_h_gpr_get (SIM_CPU *, UINT);
+void or1k64bf_h_gpr_set (SIM_CPU *, UINT, UDI);
+UDI or1k64bf_h_sys_vr_get (SIM_CPU *);
+void or1k64bf_h_sys_vr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_dmmucfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_dmmucfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_immucfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_immucfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_dccfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_dccfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_iccfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_iccfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_dcfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_dcfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_pccfgr_get (SIM_CPU *);
+void or1k64bf_h_sys_pccfgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_npc_get (SIM_CPU *);
+void or1k64bf_h_sys_npc_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_ppc_get (SIM_CPU *);
+void or1k64bf_h_sys_ppc_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr0_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr0_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr1_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr1_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr2_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr2_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr3_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr3_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr4_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr4_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr5_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr5_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr6_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr6_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr7_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr7_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr8_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr8_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr9_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr9_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr10_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr10_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr11_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr11_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr12_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr12_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr13_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr13_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr14_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr14_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_epcr15_get (SIM_CPU *);
+void or1k64bf_h_sys_epcr15_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear0_get (SIM_CPU *);
+void or1k64bf_h_sys_eear0_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear1_get (SIM_CPU *);
+void or1k64bf_h_sys_eear1_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear2_get (SIM_CPU *);
+void or1k64bf_h_sys_eear2_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear3_get (SIM_CPU *);
+void or1k64bf_h_sys_eear3_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear4_get (SIM_CPU *);
+void or1k64bf_h_sys_eear4_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear5_get (SIM_CPU *);
+void or1k64bf_h_sys_eear5_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear6_get (SIM_CPU *);
+void or1k64bf_h_sys_eear6_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear7_get (SIM_CPU *);
+void or1k64bf_h_sys_eear7_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear8_get (SIM_CPU *);
+void or1k64bf_h_sys_eear8_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear9_get (SIM_CPU *);
+void or1k64bf_h_sys_eear9_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear10_get (SIM_CPU *);
+void or1k64bf_h_sys_eear10_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear11_get (SIM_CPU *);
+void or1k64bf_h_sys_eear11_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear12_get (SIM_CPU *);
+void or1k64bf_h_sys_eear12_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear13_get (SIM_CPU *);
+void or1k64bf_h_sys_eear13_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear14_get (SIM_CPU *);
+void or1k64bf_h_sys_eear14_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_eear15_get (SIM_CPU *);
+void or1k64bf_h_sys_eear15_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr0_get (SIM_CPU *);
+void or1k64bf_h_sys_esr0_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr1_get (SIM_CPU *);
+void or1k64bf_h_sys_esr1_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr2_get (SIM_CPU *);
+void or1k64bf_h_sys_esr2_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr3_get (SIM_CPU *);
+void or1k64bf_h_sys_esr3_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr4_get (SIM_CPU *);
+void or1k64bf_h_sys_esr4_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr5_get (SIM_CPU *);
+void or1k64bf_h_sys_esr5_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr6_get (SIM_CPU *);
+void or1k64bf_h_sys_esr6_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr7_get (SIM_CPU *);
+void or1k64bf_h_sys_esr7_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr8_get (SIM_CPU *);
+void or1k64bf_h_sys_esr8_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr9_get (SIM_CPU *);
+void or1k64bf_h_sys_esr9_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr10_get (SIM_CPU *);
+void or1k64bf_h_sys_esr10_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr11_get (SIM_CPU *);
+void or1k64bf_h_sys_esr11_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr12_get (SIM_CPU *);
+void or1k64bf_h_sys_esr12_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr13_get (SIM_CPU *);
+void or1k64bf_h_sys_esr13_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr14_get (SIM_CPU *);
+void or1k64bf_h_sys_esr14_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_esr15_get (SIM_CPU *);
+void or1k64bf_h_sys_esr15_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr0_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr0_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr1_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr1_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr2_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr2_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr3_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr3_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr4_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr4_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr5_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr5_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr6_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr6_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr7_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr7_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr8_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr8_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr9_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr9_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr10_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr10_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr11_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr11_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr12_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr12_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr13_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr13_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr14_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr14_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr15_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr15_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr16_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr16_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr17_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr17_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr18_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr18_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr19_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr19_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr20_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr20_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr21_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr21_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr22_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr22_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr23_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr23_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr24_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr24_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr25_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr25_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr26_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr26_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr27_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr27_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr28_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr28_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr29_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr29_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr30_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr30_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr31_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr31_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr32_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr32_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr33_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr33_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr34_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr34_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr35_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr35_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr36_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr36_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr37_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr37_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr38_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr38_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr39_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr39_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr40_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr40_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr41_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr41_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr42_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr42_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr43_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr43_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr44_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr44_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr45_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr45_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr46_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr46_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr47_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr47_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr48_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr48_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr49_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr49_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr50_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr50_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr51_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr51_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr52_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr52_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr53_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr53_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr54_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr54_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr55_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr55_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr56_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr56_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr57_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr57_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr58_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr58_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr59_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr59_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr60_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr60_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr61_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr61_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr62_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr62_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr63_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr63_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr64_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr64_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr65_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr65_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr66_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr66_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr67_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr67_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr68_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr68_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr69_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr69_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr70_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr70_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr71_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr71_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr72_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr72_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr73_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr73_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr74_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr74_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr75_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr75_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr76_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr76_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr77_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr77_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr78_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr78_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr79_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr79_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr80_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr80_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr81_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr81_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr82_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr82_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr83_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr83_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr84_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr84_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr85_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr85_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr86_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr86_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr87_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr87_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr88_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr88_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr89_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr89_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr90_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr90_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr91_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr91_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr92_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr92_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr93_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr93_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr94_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr94_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr95_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr95_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr96_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr96_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr97_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr97_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr98_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr98_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr99_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr99_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr100_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr100_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr101_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr101_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr102_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr102_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr103_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr103_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr104_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr104_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr105_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr105_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr106_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr106_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr107_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr107_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr108_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr108_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr109_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr109_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr110_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr110_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr111_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr111_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr112_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr112_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr113_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr113_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr114_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr114_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr115_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr115_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr116_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr116_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr117_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr117_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr118_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr118_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr119_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr119_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr120_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr120_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr121_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr121_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr122_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr122_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr123_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr123_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr124_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr124_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr125_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr125_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr126_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr126_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr127_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr127_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr128_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr128_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr129_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr129_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr130_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr130_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr131_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr131_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr132_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr132_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr133_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr133_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr134_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr134_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr135_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr135_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr136_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr136_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr137_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr137_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr138_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr138_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr139_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr139_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr140_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr140_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr141_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr141_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr142_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr142_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr143_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr143_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr144_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr144_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr145_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr145_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr146_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr146_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr147_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr147_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr148_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr148_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr149_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr149_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr150_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr150_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr151_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr151_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr152_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr152_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr153_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr153_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr154_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr154_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr155_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr155_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr156_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr156_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr157_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr157_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr158_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr158_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr159_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr159_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr160_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr160_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr161_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr161_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr162_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr162_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr163_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr163_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr164_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr164_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr165_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr165_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr166_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr166_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr167_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr167_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr168_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr168_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr169_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr169_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr170_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr170_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr171_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr171_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr172_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr172_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr173_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr173_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr174_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr174_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr175_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr175_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr176_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr176_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr177_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr177_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr178_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr178_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr179_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr179_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr180_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr180_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr181_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr181_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr182_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr182_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr183_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr183_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr184_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr184_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr185_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr185_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr186_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr186_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr187_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr187_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr188_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr188_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr189_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr189_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr190_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr190_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr191_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr191_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr192_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr192_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr193_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr193_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr194_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr194_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr195_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr195_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr196_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr196_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr197_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr197_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr198_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr198_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr199_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr199_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr200_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr200_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr201_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr201_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr202_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr202_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr203_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr203_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr204_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr204_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr205_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr205_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr206_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr206_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr207_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr207_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr208_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr208_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr209_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr209_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr210_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr210_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr211_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr211_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr212_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr212_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr213_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr213_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr214_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr214_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr215_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr215_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr216_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr216_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr217_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr217_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr218_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr218_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr219_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr219_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr220_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr220_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr221_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr221_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr222_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr222_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr223_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr223_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr224_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr224_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr225_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr225_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr226_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr226_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr227_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr227_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr228_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr228_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr229_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr229_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr230_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr230_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr231_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr231_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr232_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr232_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr233_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr233_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr234_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr234_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr235_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr235_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr236_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr236_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr237_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr237_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr238_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr238_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr239_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr239_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr240_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr240_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr241_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr241_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr242_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr242_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr243_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr243_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr244_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr244_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr245_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr245_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr246_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr246_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr247_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr247_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr248_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr248_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr249_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr249_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr250_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr250_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr251_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr251_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr252_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr252_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr253_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr253_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr254_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr254_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr255_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr255_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr256_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr256_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr257_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr257_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr258_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr258_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr259_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr259_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr260_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr260_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr261_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr261_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr262_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr262_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr263_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr263_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr264_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr264_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr265_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr265_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr266_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr266_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr267_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr267_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr268_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr268_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr269_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr269_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr270_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr270_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr271_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr271_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr272_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr272_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr273_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr273_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr274_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr274_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr275_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr275_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr276_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr276_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr277_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr277_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr278_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr278_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr279_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr279_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr280_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr280_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr281_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr281_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr282_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr282_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr283_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr283_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr284_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr284_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr285_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr285_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr286_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr286_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr287_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr287_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr288_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr288_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr289_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr289_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr290_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr290_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr291_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr291_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr292_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr292_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr293_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr293_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr294_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr294_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr295_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr295_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr296_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr296_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr297_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr297_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr298_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr298_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr299_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr299_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr300_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr300_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr301_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr301_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr302_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr302_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr303_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr303_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr304_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr304_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr305_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr305_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr306_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr306_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr307_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr307_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr308_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr308_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr309_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr309_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr310_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr310_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr311_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr311_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr312_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr312_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr313_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr313_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr314_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr314_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr315_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr315_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr316_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr316_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr317_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr317_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr318_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr318_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr319_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr319_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr320_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr320_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr321_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr321_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr322_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr322_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr323_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr323_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr324_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr324_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr325_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr325_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr326_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr326_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr327_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr327_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr328_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr328_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr329_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr329_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr330_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr330_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr331_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr331_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr332_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr332_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr333_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr333_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr334_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr334_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr335_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr335_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr336_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr336_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr337_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr337_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr338_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr338_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr339_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr339_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr340_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr340_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr341_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr341_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr342_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr342_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr343_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr343_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr344_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr344_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr345_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr345_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr346_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr346_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr347_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr347_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr348_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr348_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr349_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr349_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr350_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr350_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr351_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr351_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr352_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr352_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr353_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr353_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr354_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr354_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr355_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr355_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr356_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr356_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr357_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr357_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr358_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr358_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr359_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr359_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr360_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr360_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr361_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr361_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr362_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr362_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr363_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr363_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr364_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr364_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr365_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr365_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr366_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr366_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr367_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr367_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr368_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr368_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr369_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr369_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr370_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr370_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr371_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr371_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr372_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr372_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr373_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr373_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr374_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr374_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr375_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr375_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr376_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr376_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr377_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr377_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr378_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr378_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr379_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr379_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr380_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr380_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr381_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr381_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr382_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr382_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr383_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr383_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr384_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr384_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr385_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr385_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr386_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr386_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr387_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr387_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr388_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr388_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr389_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr389_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr390_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr390_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr391_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr391_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr392_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr392_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr393_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr393_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr394_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr394_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr395_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr395_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr396_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr396_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr397_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr397_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr398_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr398_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr399_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr399_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr400_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr400_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr401_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr401_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr402_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr402_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr403_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr403_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr404_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr404_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr405_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr405_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr406_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr406_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr407_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr407_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr408_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr408_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr409_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr409_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr410_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr410_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr411_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr411_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr412_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr412_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr413_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr413_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr414_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr414_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr415_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr415_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr416_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr416_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr417_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr417_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr418_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr418_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr419_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr419_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr420_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr420_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr421_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr421_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr422_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr422_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr423_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr423_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr424_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr424_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr425_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr425_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr426_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr426_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr427_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr427_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr428_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr428_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr429_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr429_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr430_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr430_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr431_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr431_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr432_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr432_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr433_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr433_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr434_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr434_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr435_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr435_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr436_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr436_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr437_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr437_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr438_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr438_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr439_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr439_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr440_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr440_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr441_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr441_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr442_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr442_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr443_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr443_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr444_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr444_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr445_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr445_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr446_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr446_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr447_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr447_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr448_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr448_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr449_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr449_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr450_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr450_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr451_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr451_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr452_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr452_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr453_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr453_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr454_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr454_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr455_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr455_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr456_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr456_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr457_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr457_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr458_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr458_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr459_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr459_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr460_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr460_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr461_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr461_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr462_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr462_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr463_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr463_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr464_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr464_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr465_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr465_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr466_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr466_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr467_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr467_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr468_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr468_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr469_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr469_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr470_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr470_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr471_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr471_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr472_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr472_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr473_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr473_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr474_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr474_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr475_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr475_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr476_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr476_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr477_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr477_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr478_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr478_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr479_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr479_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr480_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr480_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr481_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr481_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr482_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr482_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr483_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr483_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr484_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr484_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr485_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr485_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr486_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr486_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr487_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr487_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr488_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr488_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr489_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr489_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr490_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr490_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr491_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr491_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr492_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr492_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr493_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr493_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr494_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr494_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr495_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr495_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr496_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr496_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr497_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr497_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr498_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr498_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr499_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr499_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr500_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr500_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr501_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr501_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr502_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr502_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr503_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr503_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr504_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr504_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr505_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr505_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr506_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr506_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr507_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr507_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr508_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr508_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr509_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr509_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr510_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr510_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_gpr511_get (SIM_CPU *);
+void or1k64bf_h_sys_gpr511_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_mac_maclo_get (SIM_CPU *);
+void or1k64bf_h_mac_maclo_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_mac_machi_get (SIM_CPU *);
+void or1k64bf_h_mac_machi_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_tick_ttmr_get (SIM_CPU *);
+void or1k64bf_h_tick_ttmr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_vr_rev_get (SIM_CPU *);
+void or1k64bf_h_sys_vr_rev_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_vr_cfg_get (SIM_CPU *);
+void or1k64bf_h_sys_vr_cfg_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_vr_ver_get (SIM_CPU *);
+void or1k64bf_h_sys_vr_ver_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_up_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_up_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_dcp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_dcp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_icp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_icp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_dmp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_dmp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_mp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_mp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_imp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_imp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_dup_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_dup_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_pcup_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_pcup_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_picp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_picp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_pmp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_pmp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_ttp_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_ttp_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_upr_cup_get (SIM_CPU *);
+void or1k64bf_h_sys_upr_cup_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_nsgr_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_nsgr_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_cgf_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_cgf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_ob32s_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_ob32s_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_ob64s_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_ob64s_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_of32s_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_of32s_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_of64s_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_of64s_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_ov64s_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_ov64s_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_cpucfgr_nd_get (SIM_CPU *);
+void or1k64bf_h_sys_cpucfgr_nd_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_sm_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_sm_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_tee_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_tee_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_iee_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_iee_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_dce_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_dce_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_ice_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_ice_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_dme_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_dme_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_ime_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_ime_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_lee_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_lee_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_ce_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_ce_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_f_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_f_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_cy_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_cy_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_ov_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_ov_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_ove_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_ove_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_dsx_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_dsx_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_eph_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_eph_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_fo_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_fo_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_sumra_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_sumra_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_sr_cid_get (SIM_CPU *);
+void or1k64bf_h_sys_sr_cid_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_fpee_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_fpee_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_rm_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_rm_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_ovf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_ovf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_unf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_unf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_snf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_snf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_qnf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_qnf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_zf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_zf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_ixf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_ixf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_ivf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_ivf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_inf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_inf_set (SIM_CPU *, UDI);
+UDI or1k64bf_h_sys_fpcsr_dzf_get (SIM_CPU *);
+void or1k64bf_h_sys_fpcsr_dzf_set (SIM_CPU *, UDI);
+BI or1k64bf_h_atomic_reserve_get (SIM_CPU *);
+void or1k64bf_h_atomic_reserve_set (SIM_CPU *, BI);
+SI or1k64bf_h_atomic_address_get (SIM_CPU *);
+void or1k64bf_h_atomic_address_set (SIM_CPU *, SI);
+
+/* These must be hand-written.  */
+extern CPUREG_FETCH_FN or1k64bf_fetch_register;
+extern CPUREG_STORE_FN or1k64bf_store_register;
+
+/* Instruction argument buffer.  */
+
+union sem_fields {
+  struct { /* no operands */
+    int empty;
+  } sfmt_empty;
+  struct { /*  */
+    IADDR i_disp26;
+  } sfmt_l_j;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm6;
+  } sfmt_l_slli;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+  } sfmt_l_sll;
+  struct { /*  */
+    INT f_simm16_split;
+    UINT f_r2;
+    UINT f_r3;
+  } sfmt_l_sw;
+  struct { /*  */
+    INT f_simm16;
+    UINT f_r1;
+    UINT f_r2;
+  } sfmt_l_lwz;
+  struct { /*  */
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_uimm16_split;
+  } sfmt_l_mtspr;
+  struct { /*  */
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm16;
+  } sfmt_l_mfspr;
+#if WITH_SCACHE_PBB
+  /* Writeback handler.  */
+  struct {
+    /* Pointer to argbuf entry for insn whose results need writing back.  */
+    const struct argbuf *abuf;
+  } write;
+  /* x-before handler */
+  struct {
+    /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
+    int first_p;
+  } before;
+  /* x-after handler */
+  struct {
+    int empty;
+  } after;
+  /* This entry is used to terminate each pbb.  */
+  struct {
+    /* Number of insns in pbb.  */
+    int insn_count;
+    /* Next pbb to execute.  */
+    SCACHE *next;
+    SCACHE *branch_target;
+  } chain;
+#endif
+};
+
+/* The ARGBUF struct.  */
+struct argbuf {
+  /* These are the baseclass definitions.  */
+  IADDR addr;
+  const IDESC *idesc;
+  char trace_p;
+  char profile_p;
+  /* ??? Temporary hack for skip insns.  */
+  char skip_count;
+  char unused;
+  /* cpu specific data follows */
+  union sem semantic;
+  int written;
+  union sem_fields fields;
+};
+
+/* A cached insn.
+
+   ??? SCACHE used to contain more than just argbuf.  We could delete the
+   type entirely and always just use ARGBUF, but for future concerns and as
+   a level of abstraction it is left in.  */
+
+struct scache {
+  struct argbuf argbuf;
+};
+
+/* Macros to simplify extraction, reading and semantic code.
+   These define and assign the local vars that contain the insn's fields.  */
+
+#define EXTRACT_IFMT_EMPTY_VARS \
+  unsigned int length;
+#define EXTRACT_IFMT_EMPTY_CODE \
+  length = 0; \
+
+#define EXTRACT_IFMT_L_J_VARS \
+  UINT f_opcode; \
+  UDI f_disp26; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_J_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc)); \
+
+#define EXTRACT_IFMT_L_JR_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_10; \
+  UINT f_r3; \
+  UINT f_resv_10_11; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_JR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_10 = EXTRACT_LSB0_UINT (insn, 32, 25, 10); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+
+#define EXTRACT_IFMT_L_TRAP_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_resv_20_5; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_TRAP_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_5 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MSYNC_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_resv_20_21; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MSYNC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_21 = EXTRACT_LSB0_UINT (insn, 32, 20, 21); \
+
+#define EXTRACT_IFMT_L_RFE_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_26; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_RFE_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_26 = EXTRACT_LSB0_UINT (insn, 32, 25, 26); \
+
+#define EXTRACT_IFMT_L_NOP_IMM_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_2; \
+  UINT f_resv_23_8; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_NOP_IMM_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_2 = EXTRACT_LSB0_UINT (insn, 32, 25, 2); \
+  f_resv_23_8 = EXTRACT_LSB0_UINT (insn, 32, 23, 8); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MOVHI_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_resv_20_4; \
+  UINT f_op_16_1; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MOVHI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_4 = EXTRACT_LSB0_UINT (insn, 32, 20, 4); \
+  f_op_16_1 = EXTRACT_LSB0_UINT (insn, 32, 16, 1); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MACRC_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_resv_20_4; \
+  UINT f_op_16_1; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MACRC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_20_4 = EXTRACT_LSB0_UINT (insn, 32, 20, 4); \
+  f_op_16_1 = EXTRACT_LSB0_UINT (insn, 32, 16, 1); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MFSPR_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_uimm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MFSPR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MTSPR_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_imm16_25_5; \
+  UINT f_imm16_10_11; \
+  UINT f_uimm16_split; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MTSPR_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+  f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));\
+
+#define EXTRACT_IFMT_L_LWZ_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_LWZ_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_SW_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_imm16_25_5; \
+  UINT f_imm16_10_11; \
+  INT f_simm16_split; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SW_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));\
+
+#define EXTRACT_IFMT_L_SWA_VARS \
+  UINT f_opcode; \
+  UINT f_r2; \
+  UINT f_r3; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SWA_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_SLL_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_2; \
+  UINT f_resv_5_2; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SLL_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_2 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
+  f_resv_5_2 = EXTRACT_LSB0_UINT (insn, 32, 5, 2); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_SLLI_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_resv_15_8; \
+  UINT f_op_7_2; \
+  UINT f_uimm6; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SLLI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_resv_15_8 = EXTRACT_LSB0_UINT (insn, 32, 15, 8); \
+  f_op_7_2 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
+  f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
+
+#define EXTRACT_IFMT_L_AND_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_7; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_AND_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_7 = EXTRACT_LSB0_UINT (insn, 32, 10, 7); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_EXTHS_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_resv_15_6; \
+  UINT f_op_9_4; \
+  UINT f_resv_5_2; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_EXTHS_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_resv_15_6 = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
+  f_op_9_4 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
+  f_resv_5_2 = EXTRACT_LSB0_UINT (insn, 32, 5, 2); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_CMOV_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_1; \
+  UINT f_op_9_2; \
+  UINT f_resv_7_4; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_CMOV_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1); \
+  f_op_9_2 = EXTRACT_LSB0_UINT (insn, 32, 9, 2); \
+  f_resv_7_4 = EXTRACT_LSB0_UINT (insn, 32, 7, 4); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_SFGTS_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_11; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SFGTS_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11); \
+
+#define EXTRACT_IFMT_L_SFGTSI_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_SFGTSI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_L_MAC_VARS \
+  UINT f_opcode; \
+  UINT f_op_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_7; \
+  UINT f_op_3_4; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MAC_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_op_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_7 = EXTRACT_LSB0_UINT (insn, 32, 10, 7); \
+  f_op_3_4 = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \
+
+#define EXTRACT_IFMT_L_MACI_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_5; \
+  UINT f_r2; \
+  INT f_simm16; \
+  unsigned int length;
+#define EXTRACT_IFMT_L_MACI_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
+
+#define EXTRACT_IFMT_LF_ADD_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_ADD_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_ADD_D_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r1; \
+  UINT f_r1; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_ADD_D_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_ITOF_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_ITOF_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_FTOI_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_FTOI_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_FTOI_D_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r1; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_FTOI_D_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_EQ_S_VARS \
+  UINT f_opcode; \
+  UINT f_r1; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_EQ_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_CUST1_S_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_5; \
+  UINT f_r2; \
+  UINT f_r3; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_CUST1_S_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \
+  f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+#define EXTRACT_IFMT_LF_CUST1_D_VARS \
+  UINT f_opcode; \
+  UINT f_resv_25_5; \
+  UINT f_r1; \
+  UINT f_r1; \
+  UINT f_resv_10_3; \
+  UINT f_op_7_8; \
+  unsigned int length;
+#define EXTRACT_IFMT_LF_CUST1_D_CODE \
+  length = 4; \
+  f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
+  f_resv_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \
+  f_resv_10_3 = EXTRACT_LSB0_UINT (insn, 32, 10, 3); \
+  f_op_7_8 = EXTRACT_LSB0_UINT (insn, 32, 7, 8); \
+
+/* Collection of various things for the trace handler to use.  */
+
+typedef struct trace_record {
+  IADDR pc;
+  /* FIXME:wip */
+} TRACE_RECORD;
+
+#endif /* CPU_OR1K64BF_H */
diff --git a/sim/or1k/cpuall32.h b/sim/or1k/cpuall32.h
new file mode 100644
index 0000000..7e792fa
--- /dev/null
+++ b/sim/or1k/cpuall32.h
@@ -0,0 +1,66 @@
+/* Simulator CPU header for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K_CPUALL_H
+#define OR1K_CPUALL_H
+
+/* Include files for each cpu family.  */
+
+#ifdef WANT_CPU_OR1K32BF
+#include "eng.h"
+#include "cpu.h"
+#include "decode.h"
+#endif
+
+extern const SIM_MACH or32_mach;
+extern const SIM_MACH or32nd_mach;
+
+#ifndef WANT_CPU
+/* The ARGBUF struct.  */
+struct argbuf {
+  /* These are the baseclass definitions.  */
+  IADDR addr;
+  const IDESC *idesc;
+  char trace_p;
+  char profile_p;
+  /* ??? Temporary hack for skip insns.  */
+  char skip_count;
+  char unused;
+  /* cpu specific data follows */
+};
+#endif
+
+#ifndef WANT_CPU
+/* A cached insn.
+
+   ??? SCACHE used to contain more than just argbuf.  We could delete the
+   type entirely and always just use ARGBUF, but for future concerns and as
+   a level of abstraction it is left in.  */
+
+struct scache {
+  struct argbuf argbuf;
+};
+#endif
+
+#endif /* OR1K_CPUALL_H */
diff --git a/sim/or1k/cpuall64.h b/sim/or1k/cpuall64.h
new file mode 100644
index 0000000..7a58a18
--- /dev/null
+++ b/sim/or1k/cpuall64.h
@@ -0,0 +1,66 @@
+/* Simulator CPU header for or1k.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K_CPUALL_H
+#define OR1K_CPUALL_H
+
+/* Include files for each cpu family.  */
+
+#ifdef WANT_CPU_OR1K64BF
+#include "eng64.h"
+#include "cpu64.h"
+#include "decode64.h"
+#endif
+
+extern const SIM_MACH or64_mach;
+extern const SIM_MACH or64nd_mach;
+
+#ifndef WANT_CPU
+/* The ARGBUF struct.  */
+struct argbuf {
+  /* These are the baseclass definitions.  */
+  IADDR addr;
+  const IDESC *idesc;
+  char trace_p;
+  char profile_p;
+  /* ??? Temporary hack for skip insns.  */
+  char skip_count;
+  char unused;
+  /* cpu specific data follows */
+};
+#endif
+
+#ifndef WANT_CPU
+/* A cached insn.
+
+   ??? SCACHE used to contain more than just argbuf.  We could delete the
+   type entirely and always just use ARGBUF, but for future concerns and as
+   a level of abstraction it is left in.  */
+
+struct scache {
+  struct argbuf argbuf;
+};
+#endif
+
+#endif /* OR1K_CPUALL_H */
diff --git a/sim/or1k/decode32.c b/sim/or1k/decode32.c
new file mode 100644
index 0000000..890a50b
--- /dev/null
+++ b/sim/or1k/decode32.c
@@ -0,0 +1,2559 @@
+/* Simulator instruction decoder for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+
+#include "sim-main.h"
+#include "sim-assert.h"
+
+/* The instruction descriptor array.
+   This is computed@runtime.  Space for it is not malloc'd to save a
+   teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
+   but won't be done until necessary (we don't currently support the runtime
+   addition of instructions nor an SMP machine with different cpus).  */
+static IDESC or1k32bf_insn_data[OR1K32BF_INSN__MAX];
+
+/* Commas between elements are contained in the macros.
+   Some of these are conditionally compiled out.  */
+
+static const struct insn_sem or1k32bf_insn_sem[] =
+{
+  { VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_AFTER, OR1K32BF_INSN_X_AFTER, OR1K32BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_BEFORE, OR1K32BF_INSN_X_BEFORE, OR1K32BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_CTI_CHAIN, OR1K32BF_INSN_X_CTI_CHAIN, OR1K32BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_CHAIN, OR1K32BF_INSN_X_CHAIN, OR1K32BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_BEGIN, OR1K32BF_INSN_X_BEGIN, OR1K32BF_SFMT_EMPTY },
+  { OR1K_INSN_L_J, OR1K32BF_INSN_L_J, OR1K32BF_SFMT_L_J },
+  { OR1K_INSN_L_JAL, OR1K32BF_INSN_L_JAL, OR1K32BF_SFMT_L_JAL },
+  { OR1K_INSN_L_JR, OR1K32BF_INSN_L_JR, OR1K32BF_SFMT_L_JR },
+  { OR1K_INSN_L_JALR, OR1K32BF_INSN_L_JALR, OR1K32BF_SFMT_L_JALR },
+  { OR1K_INSN_L_BNF, OR1K32BF_INSN_L_BNF, OR1K32BF_SFMT_L_BNF },
+  { OR1K_INSN_L_BF, OR1K32BF_INSN_L_BF, OR1K32BF_SFMT_L_BNF },
+  { OR1K_INSN_L_TRAP, OR1K32BF_INSN_L_TRAP, OR1K32BF_SFMT_L_TRAP },
+  { OR1K_INSN_L_SYS, OR1K32BF_INSN_L_SYS, OR1K32BF_SFMT_L_TRAP },
+  { OR1K_INSN_L_MSYNC, OR1K32BF_INSN_L_MSYNC, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_PSYNC, OR1K32BF_INSN_L_PSYNC, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CSYNC, OR1K32BF_INSN_L_CSYNC, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_RFE, OR1K32BF_INSN_L_RFE, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_NOP_IMM, OR1K32BF_INSN_L_NOP_IMM, OR1K32BF_SFMT_L_NOP_IMM },
+  { OR1K_INSN_L_MOVHI, OR1K32BF_INSN_L_MOVHI, OR1K32BF_SFMT_L_MOVHI },
+  { OR1K_INSN_L_MACRC, OR1K32BF_INSN_L_MACRC, OR1K32BF_SFMT_L_MACRC },
+  { OR1K_INSN_L_MFSPR, OR1K32BF_INSN_L_MFSPR, OR1K32BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_MTSPR, OR1K32BF_INSN_L_MTSPR, OR1K32BF_SFMT_L_MTSPR },
+  { OR1K_INSN_L_LWZ, OR1K32BF_INSN_L_LWZ, OR1K32BF_SFMT_L_LWZ },
+  { OR1K_INSN_L_LWS, OR1K32BF_INSN_L_LWS, OR1K32BF_SFMT_L_LWS },
+  { OR1K_INSN_L_LWA, OR1K32BF_INSN_L_LWA, OR1K32BF_SFMT_L_LWA },
+  { OR1K_INSN_L_LBZ, OR1K32BF_INSN_L_LBZ, OR1K32BF_SFMT_L_LBZ },
+  { OR1K_INSN_L_LBS, OR1K32BF_INSN_L_LBS, OR1K32BF_SFMT_L_LBS },
+  { OR1K_INSN_L_LHZ, OR1K32BF_INSN_L_LHZ, OR1K32BF_SFMT_L_LHZ },
+  { OR1K_INSN_L_LHS, OR1K32BF_INSN_L_LHS, OR1K32BF_SFMT_L_LHS },
+  { OR1K_INSN_L_SW, OR1K32BF_INSN_L_SW, OR1K32BF_SFMT_L_SW },
+  { OR1K_INSN_L_SB, OR1K32BF_INSN_L_SB, OR1K32BF_SFMT_L_SB },
+  { OR1K_INSN_L_SH, OR1K32BF_INSN_L_SH, OR1K32BF_SFMT_L_SH },
+  { OR1K_INSN_L_SWA, OR1K32BF_INSN_L_SWA, OR1K32BF_SFMT_L_SWA },
+  { OR1K_INSN_L_SLL, OR1K32BF_INSN_L_SLL, OR1K32BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SLLI, OR1K32BF_INSN_L_SLLI, OR1K32BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_SRL, OR1K32BF_INSN_L_SRL, OR1K32BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SRLI, OR1K32BF_INSN_L_SRLI, OR1K32BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_SRA, OR1K32BF_INSN_L_SRA, OR1K32BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SRAI, OR1K32BF_INSN_L_SRAI, OR1K32BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_ROR, OR1K32BF_INSN_L_ROR, OR1K32BF_SFMT_L_SLL },
+  { OR1K_INSN_L_RORI, OR1K32BF_INSN_L_RORI, OR1K32BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_AND, OR1K32BF_INSN_L_AND, OR1K32BF_SFMT_L_AND },
+  { OR1K_INSN_L_OR, OR1K32BF_INSN_L_OR, OR1K32BF_SFMT_L_AND },
+  { OR1K_INSN_L_XOR, OR1K32BF_INSN_L_XOR, OR1K32BF_SFMT_L_AND },
+  { OR1K_INSN_L_ADD, OR1K32BF_INSN_L_ADD, OR1K32BF_SFMT_L_ADD },
+  { OR1K_INSN_L_SUB, OR1K32BF_INSN_L_SUB, OR1K32BF_SFMT_L_ADD },
+  { OR1K_INSN_L_ADDC, OR1K32BF_INSN_L_ADDC, OR1K32BF_SFMT_L_ADDC },
+  { OR1K_INSN_L_MUL, OR1K32BF_INSN_L_MUL, OR1K32BF_SFMT_L_ADD },
+  { OR1K_INSN_L_MULU, OR1K32BF_INSN_L_MULU, OR1K32BF_SFMT_L_ADD },
+  { OR1K_INSN_L_DIV, OR1K32BF_INSN_L_DIV, OR1K32BF_SFMT_L_DIV },
+  { OR1K_INSN_L_DIVU, OR1K32BF_INSN_L_DIVU, OR1K32BF_SFMT_L_DIV },
+  { OR1K_INSN_L_FF1, OR1K32BF_INSN_L_FF1, OR1K32BF_SFMT_L_FF1 },
+  { OR1K_INSN_L_FL1, OR1K32BF_INSN_L_FL1, OR1K32BF_SFMT_L_FF1 },
+  { OR1K_INSN_L_ANDI, OR1K32BF_INSN_L_ANDI, OR1K32BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_ORI, OR1K32BF_INSN_L_ORI, OR1K32BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_XORI, OR1K32BF_INSN_L_XORI, OR1K32BF_SFMT_L_XORI },
+  { OR1K_INSN_L_ADDI, OR1K32BF_INSN_L_ADDI, OR1K32BF_SFMT_L_ADDI },
+  { OR1K_INSN_L_ADDIC, OR1K32BF_INSN_L_ADDIC, OR1K32BF_SFMT_L_ADDIC },
+  { OR1K_INSN_L_MULI, OR1K32BF_INSN_L_MULI, OR1K32BF_SFMT_L_ADDI },
+  { OR1K_INSN_L_EXTHS, OR1K32BF_INSN_L_EXTHS, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTBS, OR1K32BF_INSN_L_EXTBS, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTHZ, OR1K32BF_INSN_L_EXTHZ, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTBZ, OR1K32BF_INSN_L_EXTBZ, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTWS, OR1K32BF_INSN_L_EXTWS, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTWZ, OR1K32BF_INSN_L_EXTWZ, OR1K32BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_CMOV, OR1K32BF_INSN_L_CMOV, OR1K32BF_SFMT_L_CMOV },
+  { OR1K_INSN_L_SFGTS, OR1K32BF_INSN_L_SFGTS, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGTSI, OR1K32BF_INSN_L_SFGTSI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGTU, OR1K32BF_INSN_L_SFGTU, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGTUI, OR1K32BF_INSN_L_SFGTUI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGES, OR1K32BF_INSN_L_SFGES, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGESI, OR1K32BF_INSN_L_SFGESI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGEU, OR1K32BF_INSN_L_SFGEU, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGEUI, OR1K32BF_INSN_L_SFGEUI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLTS, OR1K32BF_INSN_L_SFLTS, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLTSI, OR1K32BF_INSN_L_SFLTSI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLTU, OR1K32BF_INSN_L_SFLTU, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLTUI, OR1K32BF_INSN_L_SFLTUI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLES, OR1K32BF_INSN_L_SFLES, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLESI, OR1K32BF_INSN_L_SFLESI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLEU, OR1K32BF_INSN_L_SFLEU, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLEUI, OR1K32BF_INSN_L_SFLEUI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFEQ, OR1K32BF_INSN_L_SFEQ, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFEQI, OR1K32BF_INSN_L_SFEQI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFNE, OR1K32BF_INSN_L_SFNE, OR1K32BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFNEI, OR1K32BF_INSN_L_SFNEI, OR1K32BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_MAC, OR1K32BF_INSN_L_MAC, OR1K32BF_SFMT_L_MAC },
+  { OR1K_INSN_L_MSB, OR1K32BF_INSN_L_MSB, OR1K32BF_SFMT_L_MAC },
+  { OR1K_INSN_L_MACI, OR1K32BF_INSN_L_MACI, OR1K32BF_SFMT_L_MACI },
+  { OR1K_INSN_L_CUST1, OR1K32BF_INSN_L_CUST1, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST2, OR1K32BF_INSN_L_CUST2, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST3, OR1K32BF_INSN_L_CUST3, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST4, OR1K32BF_INSN_L_CUST4, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST5, OR1K32BF_INSN_L_CUST5, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST6, OR1K32BF_INSN_L_CUST6, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST7, OR1K32BF_INSN_L_CUST7, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST8, OR1K32BF_INSN_L_CUST8, OR1K32BF_SFMT_L_MSYNC },
+  { OR1K_INSN_LF_ADD_S, OR1K32BF_INSN_LF_ADD_S, OR1K32BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_SUB_S, OR1K32BF_INSN_LF_SUB_S, OR1K32BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_MUL_S, OR1K32BF_INSN_LF_MUL_S, OR1K32BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_DIV_S, OR1K32BF_INSN_LF_DIV_S, OR1K32BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_REM_S, OR1K32BF_INSN_LF_REM_S, OR1K32BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_ITOF_S, OR1K32BF_INSN_LF_ITOF_S, OR1K32BF_SFMT_LF_ITOF_S },
+  { OR1K_INSN_LF_FTOI_S, OR1K32BF_INSN_LF_FTOI_S, OR1K32BF_SFMT_LF_FTOI_S },
+  { OR1K_INSN_LF_EQ_S, OR1K32BF_INSN_LF_EQ_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_NE_S, OR1K32BF_INSN_LF_NE_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_GE_S, OR1K32BF_INSN_LF_GE_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_GT_S, OR1K32BF_INSN_LF_GT_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_LT_S, OR1K32BF_INSN_LF_LT_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_LE_S, OR1K32BF_INSN_LF_LE_S, OR1K32BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_MADD_S, OR1K32BF_INSN_LF_MADD_S, OR1K32BF_SFMT_LF_MADD_S },
+  { OR1K_INSN_LF_CUST1_S, OR1K32BF_INSN_LF_CUST1_S, OR1K32BF_SFMT_L_MSYNC },
+};
+
+static const struct insn_sem or1k32bf_insn_sem_invalid =
+{
+  VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY
+};
+
+/* Initialize an IDESC from the compile-time computable parts.  */
+
+static INLINE void
+init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
+{
+  const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
+
+  id->num = t->index;
+  id->sfmt = t->sfmt;
+  if ((int) t->type <= 0)
+    id->idata = & cgen_virtual_insn_table[- (int) t->type];
+  else
+    id->idata = & insn_table[t->type];
+  id->attrs = CGEN_INSN_ATTRS (id->idata);
+  /* Oh my god, a magic number.  */
+  id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
+
+#if WITH_PROFILE_MODEL_P
+  id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
+  {
+    SIM_DESC sd = CPU_STATE (cpu);
+    SIM_ASSERT (t->index == id->timing->num);
+  }
+#endif
+
+  /* Semantic pointers are initialized elsewhere.  */
+}
+
+/* Initialize the instruction descriptor table.  */
+
+void
+or1k32bf_init_idesc_table (SIM_CPU *cpu)
+{
+  IDESC *id,*tabend;
+  const struct insn_sem *t,*tend;
+  int tabsize = OR1K32BF_INSN__MAX;
+  IDESC *table = or1k32bf_insn_data;
+
+  memset (table, 0, tabsize * sizeof (IDESC));
+
+  /* First set all entries to the `invalid insn'.  */
+  t = & or1k32bf_insn_sem_invalid;
+  for (id = table, tabend = table + tabsize; id < tabend; ++id)
+    init_idesc (cpu, id, t);
+
+  /* Now fill in the values for the chosen cpu.  */
+  for (t = or1k32bf_insn_sem, tend = t + sizeof (or1k32bf_insn_sem) / sizeof (*t);
+       t != tend; ++t)
+    {
+      init_idesc (cpu, & table[t->index], t);
+    }
+
+  /* Link the IDESC table into the cpu.  */
+  CPU_IDESC (cpu) = table;
+}
+
+/* Given an instruction, return a pointer to its IDESC entry.  */
+
+const IDESC *
+or1k32bf_decode (SIM_CPU *current_cpu, IADDR pc,
+              CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
+              ARGBUF *abuf)
+{
+  /* Result of decoder.  */
+  OR1K32BF_INSN_TYPE itype;
+
+  {
+    CGEN_INSN_WORD insn = base_insn;
+
+    {
+      unsigned int val = (((insn >> 21) & (63 << 5)) | ((insn >> 2) & (1 << 4)) | ((insn >> 0) & (15 << 0)));
+      switch (val)
+      {
+      case 0 : /* fall through */
+      case 1 : /* fall through */
+      case 2 : /* fall through */
+      case 3 : /* fall through */
+      case 4 : /* fall through */
+      case 5 : /* fall through */
+      case 6 : /* fall through */
+      case 7 : /* fall through */
+      case 8 : /* fall through */
+      case 9 : /* fall through */
+      case 10 : /* fall through */
+      case 11 : /* fall through */
+      case 12 : /* fall through */
+      case 13 : /* fall through */
+      case 14 : /* fall through */
+      case 15 : /* fall through */
+      case 16 : /* fall through */
+      case 17 : /* fall through */
+      case 18 : /* fall through */
+      case 19 : /* fall through */
+      case 20 : /* fall through */
+      case 21 : /* fall through */
+      case 22 : /* fall through */
+      case 23 : /* fall through */
+      case 24 : /* fall through */
+      case 25 : /* fall through */
+      case 26 : /* fall through */
+      case 27 : /* fall through */
+      case 28 : /* fall through */
+      case 29 : /* fall through */
+      case 30 : /* fall through */
+      case 31 : itype = OR1K32BF_INSN_L_J; goto extract_sfmt_l_j;
+      case 32 : /* fall through */
+      case 33 : /* fall through */
+      case 34 : /* fall through */
+      case 35 : /* fall through */
+      case 36 : /* fall through */
+      case 37 : /* fall through */
+      case 38 : /* fall through */
+      case 39 : /* fall through */
+      case 40 : /* fall through */
+      case 41 : /* fall through */
+      case 42 : /* fall through */
+      case 43 : /* fall through */
+      case 44 : /* fall through */
+      case 45 : /* fall through */
+      case 46 : /* fall through */
+      case 47 : /* fall through */
+      case 48 : /* fall through */
+      case 49 : /* fall through */
+      case 50 : /* fall through */
+      case 51 : /* fall through */
+      case 52 : /* fall through */
+      case 53 : /* fall through */
+      case 54 : /* fall through */
+      case 55 : /* fall through */
+      case 56 : /* fall through */
+      case 57 : /* fall through */
+      case 58 : /* fall through */
+      case 59 : /* fall through */
+      case 60 : /* fall through */
+      case 61 : /* fall through */
+      case 62 : /* fall through */
+      case 63 : itype = OR1K32BF_INSN_L_JAL; goto extract_sfmt_l_jal;
+      case 96 : /* fall through */
+      case 97 : /* fall through */
+      case 98 : /* fall through */
+      case 99 : /* fall through */
+      case 100 : /* fall through */
+      case 101 : /* fall through */
+      case 102 : /* fall through */
+      case 103 : /* fall through */
+      case 104 : /* fall through */
+      case 105 : /* fall through */
+      case 106 : /* fall through */
+      case 107 : /* fall through */
+      case 108 : /* fall through */
+      case 109 : /* fall through */
+      case 110 : /* fall through */
+      case 111 : /* fall through */
+      case 112 : /* fall through */
+      case 113 : /* fall through */
+      case 114 : /* fall through */
+      case 115 : /* fall through */
+      case 116 : /* fall through */
+      case 117 : /* fall through */
+      case 118 : /* fall through */
+      case 119 : /* fall through */
+      case 120 : /* fall through */
+      case 121 : /* fall through */
+      case 122 : /* fall through */
+      case 123 : /* fall through */
+      case 124 : /* fall through */
+      case 125 : /* fall through */
+      case 126 : /* fall through */
+      case 127 : itype = OR1K32BF_INSN_L_BNF; goto extract_sfmt_l_bnf;
+      case 128 : /* fall through */
+      case 129 : /* fall through */
+      case 130 : /* fall through */
+      case 131 : /* fall through */
+      case 132 : /* fall through */
+      case 133 : /* fall through */
+      case 134 : /* fall through */
+      case 135 : /* fall through */
+      case 136 : /* fall through */
+      case 137 : /* fall through */
+      case 138 : /* fall through */
+      case 139 : /* fall through */
+      case 140 : /* fall through */
+      case 141 : /* fall through */
+      case 142 : /* fall through */
+      case 143 : /* fall through */
+      case 144 : /* fall through */
+      case 145 : /* fall through */
+      case 146 : /* fall through */
+      case 147 : /* fall through */
+      case 148 : /* fall through */
+      case 149 : /* fall through */
+      case 150 : /* fall through */
+      case 151 : /* fall through */
+      case 152 : /* fall through */
+      case 153 : /* fall through */
+      case 154 : /* fall through */
+      case 155 : /* fall through */
+      case 156 : /* fall through */
+      case 157 : /* fall through */
+      case 158 : /* fall through */
+      case 159 : itype = OR1K32BF_INSN_L_BF; goto extract_sfmt_l_bnf;
+      case 160 : /* fall through */
+      case 161 : /* fall through */
+      case 162 : /* fall through */
+      case 163 : /* fall through */
+      case 164 : /* fall through */
+      case 165 : /* fall through */
+      case 166 : /* fall through */
+      case 167 : /* fall through */
+      case 168 : /* fall through */
+      case 169 : /* fall through */
+      case 170 : /* fall through */
+      case 171 : /* fall through */
+      case 172 : /* fall through */
+      case 173 : /* fall through */
+      case 174 : /* fall through */
+      case 175 : /* fall through */
+      case 176 : /* fall through */
+      case 177 : /* fall through */
+      case 178 : /* fall through */
+      case 179 : /* fall through */
+      case 180 : /* fall through */
+      case 181 : /* fall through */
+      case 182 : /* fall through */
+      case 183 : /* fall through */
+      case 184 : /* fall through */
+      case 185 : /* fall through */
+      case 186 : /* fall through */
+      case 187 : /* fall through */
+      case 188 : /* fall through */
+      case 189 : /* fall through */
+      case 190 : /* fall through */
+      case 191 :
+        if ((entire_insn & 0xffff0000) == 0x15000000)
+          { itype = OR1K32BF_INSN_L_NOP_IMM; goto extract_sfmt_l_nop_imm; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 192 :
+        {
+          unsigned int val = (((insn >> 16) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc1f0000) == 0x18000000)
+              { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc1fffff) == 0x18010000)
+              { itype = OR1K32BF_INSN_L_MACRC; goto extract_sfmt_l_macrc; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 193 : /* fall through */
+      case 194 : /* fall through */
+      case 195 : /* fall through */
+      case 196 : /* fall through */
+      case 197 : /* fall through */
+      case 198 : /* fall through */
+      case 199 : /* fall through */
+      case 200 : /* fall through */
+      case 201 : /* fall through */
+      case 202 : /* fall through */
+      case 203 : /* fall through */
+      case 204 : /* fall through */
+      case 205 : /* fall through */
+      case 206 : /* fall through */
+      case 207 : /* fall through */
+      case 208 : /* fall through */
+      case 209 : /* fall through */
+      case 210 : /* fall through */
+      case 211 : /* fall through */
+      case 212 : /* fall through */
+      case 213 : /* fall through */
+      case 214 : /* fall through */
+      case 215 : /* fall through */
+      case 216 : /* fall through */
+      case 217 : /* fall through */
+      case 218 : /* fall through */
+      case 219 : /* fall through */
+      case 220 : /* fall through */
+      case 221 : /* fall through */
+      case 222 : /* fall through */
+      case 223 :
+        if ((entire_insn & 0xfc1f0000) == 0x18000000)
+          { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 256 :
+        {
+          unsigned int val = (((insn >> 23) & (7 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffff0000) == 0x20000000)
+              { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffff0000) == 0x21000000)
+              { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffffffff) == 0x22000000)
+              { itype = OR1K32BF_INSN_L_MSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffffffff) == 0x22800000)
+              { itype = OR1K32BF_INSN_L_PSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 6 :
+            if ((entire_insn & 0xffffffff) == 0x23000000)
+              { itype = OR1K32BF_INSN_L_CSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 257 : /* fall through */
+      case 258 : /* fall through */
+      case 259 : /* fall through */
+      case 260 : /* fall through */
+      case 261 : /* fall through */
+      case 262 : /* fall through */
+      case 263 : /* fall through */
+      case 264 : /* fall through */
+      case 265 : /* fall through */
+      case 266 : /* fall through */
+      case 267 : /* fall through */
+      case 268 : /* fall through */
+      case 269 : /* fall through */
+      case 270 : /* fall through */
+      case 271 : /* fall through */
+      case 272 : /* fall through */
+      case 273 : /* fall through */
+      case 274 : /* fall through */
+      case 275 : /* fall through */
+      case 276 : /* fall through */
+      case 277 : /* fall through */
+      case 278 : /* fall through */
+      case 279 : /* fall through */
+      case 280 : /* fall through */
+      case 281 : /* fall through */
+      case 282 : /* fall through */
+      case 283 : /* fall through */
+      case 284 : /* fall through */
+      case 285 : /* fall through */
+      case 286 : /* fall through */
+      case 287 :
+        {
+          unsigned int val = (((insn >> 24) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffff0000) == 0x20000000)
+              { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffff0000) == 0x21000000)
+              { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 288 :
+        if ((entire_insn & 0xffffffff) == 0x24000000)
+          { itype = OR1K32BF_INSN_L_RFE; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 544 :
+        if ((entire_insn & 0xffff07ff) == 0x44000000)
+          { itype = OR1K32BF_INSN_L_JR; goto extract_sfmt_l_jr; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 576 :
+        if ((entire_insn & 0xffff07ff) == 0x48000000)
+          { itype = OR1K32BF_INSN_L_JALR; goto extract_sfmt_l_jalr; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 608 : /* fall through */
+      case 609 : /* fall through */
+      case 610 : /* fall through */
+      case 611 : /* fall through */
+      case 612 : /* fall through */
+      case 613 : /* fall through */
+      case 614 : /* fall through */
+      case 615 : /* fall through */
+      case 616 : /* fall through */
+      case 617 : /* fall through */
+      case 618 : /* fall through */
+      case 619 : /* fall through */
+      case 620 : /* fall through */
+      case 621 : /* fall through */
+      case 622 : /* fall through */
+      case 623 : /* fall through */
+      case 624 : /* fall through */
+      case 625 : /* fall through */
+      case 626 : /* fall through */
+      case 627 : /* fall through */
+      case 628 : /* fall through */
+      case 629 : /* fall through */
+      case 630 : /* fall through */
+      case 631 : /* fall through */
+      case 632 : /* fall through */
+      case 633 : /* fall through */
+      case 634 : /* fall through */
+      case 635 : /* fall through */
+      case 636 : /* fall through */
+      case 637 : /* fall through */
+      case 638 : /* fall through */
+      case 639 :
+        if ((entire_insn & 0xffe00000) == 0x4c000000)
+          { itype = OR1K32BF_INSN_L_MACI; goto extract_sfmt_l_maci; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 864 : /* fall through */
+      case 865 : /* fall through */
+      case 866 : /* fall through */
+      case 867 : /* fall through */
+      case 868 : /* fall through */
+      case 869 : /* fall through */
+      case 870 : /* fall through */
+      case 871 : /* fall through */
+      case 872 : /* fall through */
+      case 873 : /* fall through */
+      case 874 : /* fall through */
+      case 875 : /* fall through */
+      case 876 : /* fall through */
+      case 877 : /* fall through */
+      case 878 : /* fall through */
+      case 879 : /* fall through */
+      case 880 : /* fall through */
+      case 881 : /* fall through */
+      case 882 : /* fall through */
+      case 883 : /* fall through */
+      case 884 : /* fall through */
+      case 885 : /* fall through */
+      case 886 : /* fall through */
+      case 887 : /* fall through */
+      case 888 : /* fall through */
+      case 889 : /* fall through */
+      case 890 : /* fall through */
+      case 891 : /* fall through */
+      case 892 : /* fall through */
+      case 893 : /* fall through */
+      case 894 : /* fall through */
+      case 895 : itype = OR1K32BF_INSN_L_LWA; goto extract_sfmt_l_lwa;
+      case 896 :
+        if ((entire_insn & 0xffffffff) == 0x70000000)
+          { itype = OR1K32BF_INSN_L_CUST1; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 928 :
+        if ((entire_insn & 0xffffffff) == 0x74000000)
+          { itype = OR1K32BF_INSN_L_CUST2; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 960 :
+        if ((entire_insn & 0xffffffff) == 0x78000000)
+          { itype = OR1K32BF_INSN_L_CUST3; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 992 :
+        if ((entire_insn & 0xffffffff) == 0x7c000000)
+          { itype = OR1K32BF_INSN_L_CUST4; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1056 : /* fall through */
+      case 1057 : /* fall through */
+      case 1058 : /* fall through */
+      case 1059 : /* fall through */
+      case 1060 : /* fall through */
+      case 1061 : /* fall through */
+      case 1062 : /* fall through */
+      case 1063 : /* fall through */
+      case 1064 : /* fall through */
+      case 1065 : /* fall through */
+      case 1066 : /* fall through */
+      case 1067 : /* fall through */
+      case 1068 : /* fall through */
+      case 1069 : /* fall through */
+      case 1070 : /* fall through */
+      case 1071 : /* fall through */
+      case 1072 : /* fall through */
+      case 1073 : /* fall through */
+      case 1074 : /* fall through */
+      case 1075 : /* fall through */
+      case 1076 : /* fall through */
+      case 1077 : /* fall through */
+      case 1078 : /* fall through */
+      case 1079 : /* fall through */
+      case 1080 : /* fall through */
+      case 1081 : /* fall through */
+      case 1082 : /* fall through */
+      case 1083 : /* fall through */
+      case 1084 : /* fall through */
+      case 1085 : /* fall through */
+      case 1086 : /* fall through */
+      case 1087 : itype = OR1K32BF_INSN_L_LWZ; goto extract_sfmt_l_lwz;
+      case 1088 : /* fall through */
+      case 1089 : /* fall through */
+      case 1090 : /* fall through */
+      case 1091 : /* fall through */
+      case 1092 : /* fall through */
+      case 1093 : /* fall through */
+      case 1094 : /* fall through */
+      case 1095 : /* fall through */
+      case 1096 : /* fall through */
+      case 1097 : /* fall through */
+      case 1098 : /* fall through */
+      case 1099 : /* fall through */
+      case 1100 : /* fall through */
+      case 1101 : /* fall through */
+      case 1102 : /* fall through */
+      case 1103 : /* fall through */
+      case 1104 : /* fall through */
+      case 1105 : /* fall through */
+      case 1106 : /* fall through */
+      case 1107 : /* fall through */
+      case 1108 : /* fall through */
+      case 1109 : /* fall through */
+      case 1110 : /* fall through */
+      case 1111 : /* fall through */
+      case 1112 : /* fall through */
+      case 1113 : /* fall through */
+      case 1114 : /* fall through */
+      case 1115 : /* fall through */
+      case 1116 : /* fall through */
+      case 1117 : /* fall through */
+      case 1118 : /* fall through */
+      case 1119 : itype = OR1K32BF_INSN_L_LWS; goto extract_sfmt_l_lws;
+      case 1120 : /* fall through */
+      case 1121 : /* fall through */
+      case 1122 : /* fall through */
+      case 1123 : /* fall through */
+      case 1124 : /* fall through */
+      case 1125 : /* fall through */
+      case 1126 : /* fall through */
+      case 1127 : /* fall through */
+      case 1128 : /* fall through */
+      case 1129 : /* fall through */
+      case 1130 : /* fall through */
+      case 1131 : /* fall through */
+      case 1132 : /* fall through */
+      case 1133 : /* fall through */
+      case 1134 : /* fall through */
+      case 1135 : /* fall through */
+      case 1136 : /* fall through */
+      case 1137 : /* fall through */
+      case 1138 : /* fall through */
+      case 1139 : /* fall through */
+      case 1140 : /* fall through */
+      case 1141 : /* fall through */
+      case 1142 : /* fall through */
+      case 1143 : /* fall through */
+      case 1144 : /* fall through */
+      case 1145 : /* fall through */
+      case 1146 : /* fall through */
+      case 1147 : /* fall through */
+      case 1148 : /* fall through */
+      case 1149 : /* fall through */
+      case 1150 : /* fall through */
+      case 1151 : itype = OR1K32BF_INSN_L_LBZ; goto extract_sfmt_l_lbz;
+      case 1152 : /* fall through */
+      case 1153 : /* fall through */
+      case 1154 : /* fall through */
+      case 1155 : /* fall through */
+      case 1156 : /* fall through */
+      case 1157 : /* fall through */
+      case 1158 : /* fall through */
+      case 1159 : /* fall through */
+      case 1160 : /* fall through */
+      case 1161 : /* fall through */
+      case 1162 : /* fall through */
+      case 1163 : /* fall through */
+      case 1164 : /* fall through */
+      case 1165 : /* fall through */
+      case 1166 : /* fall through */
+      case 1167 : /* fall through */
+      case 1168 : /* fall through */
+      case 1169 : /* fall through */
+      case 1170 : /* fall through */
+      case 1171 : /* fall through */
+      case 1172 : /* fall through */
+      case 1173 : /* fall through */
+      case 1174 : /* fall through */
+      case 1175 : /* fall through */
+      case 1176 : /* fall through */
+      case 1177 : /* fall through */
+      case 1178 : /* fall through */
+      case 1179 : /* fall through */
+      case 1180 : /* fall through */
+      case 1181 : /* fall through */
+      case 1182 : /* fall through */
+      case 1183 : itype = OR1K32BF_INSN_L_LBS; goto extract_sfmt_l_lbs;
+      case 1184 : /* fall through */
+      case 1185 : /* fall through */
+      case 1186 : /* fall through */
+      case 1187 : /* fall through */
+      case 1188 : /* fall through */
+      case 1189 : /* fall through */
+      case 1190 : /* fall through */
+      case 1191 : /* fall through */
+      case 1192 : /* fall through */
+      case 1193 : /* fall through */
+      case 1194 : /* fall through */
+      case 1195 : /* fall through */
+      case 1196 : /* fall through */
+      case 1197 : /* fall through */
+      case 1198 : /* fall through */
+      case 1199 : /* fall through */
+      case 1200 : /* fall through */
+      case 1201 : /* fall through */
+      case 1202 : /* fall through */
+      case 1203 : /* fall through */
+      case 1204 : /* fall through */
+      case 1205 : /* fall through */
+      case 1206 : /* fall through */
+      case 1207 : /* fall through */
+      case 1208 : /* fall through */
+      case 1209 : /* fall through */
+      case 1210 : /* fall through */
+      case 1211 : /* fall through */
+      case 1212 : /* fall through */
+      case 1213 : /* fall through */
+      case 1214 : /* fall through */
+      case 1215 : itype = OR1K32BF_INSN_L_LHZ; goto extract_sfmt_l_lhz;
+      case 1216 : /* fall through */
+      case 1217 : /* fall through */
+      case 1218 : /* fall through */
+      case 1219 : /* fall through */
+      case 1220 : /* fall through */
+      case 1221 : /* fall through */
+      case 1222 : /* fall through */
+      case 1223 : /* fall through */
+      case 1224 : /* fall through */
+      case 1225 : /* fall through */
+      case 1226 : /* fall through */
+      case 1227 : /* fall through */
+      case 1228 : /* fall through */
+      case 1229 : /* fall through */
+      case 1230 : /* fall through */
+      case 1231 : /* fall through */
+      case 1232 : /* fall through */
+      case 1233 : /* fall through */
+      case 1234 : /* fall through */
+      case 1235 : /* fall through */
+      case 1236 : /* fall through */
+      case 1237 : /* fall through */
+      case 1238 : /* fall through */
+      case 1239 : /* fall through */
+      case 1240 : /* fall through */
+      case 1241 : /* fall through */
+      case 1242 : /* fall through */
+      case 1243 : /* fall through */
+      case 1244 : /* fall through */
+      case 1245 : /* fall through */
+      case 1246 : /* fall through */
+      case 1247 : itype = OR1K32BF_INSN_L_LHS; goto extract_sfmt_l_lhs;
+      case 1248 : /* fall through */
+      case 1249 : /* fall through */
+      case 1250 : /* fall through */
+      case 1251 : /* fall through */
+      case 1252 : /* fall through */
+      case 1253 : /* fall through */
+      case 1254 : /* fall through */
+      case 1255 : /* fall through */
+      case 1256 : /* fall through */
+      case 1257 : /* fall through */
+      case 1258 : /* fall through */
+      case 1259 : /* fall through */
+      case 1260 : /* fall through */
+      case 1261 : /* fall through */
+      case 1262 : /* fall through */
+      case 1263 : /* fall through */
+      case 1264 : /* fall through */
+      case 1265 : /* fall through */
+      case 1266 : /* fall through */
+      case 1267 : /* fall through */
+      case 1268 : /* fall through */
+      case 1269 : /* fall through */
+      case 1270 : /* fall through */
+      case 1271 : /* fall through */
+      case 1272 : /* fall through */
+      case 1273 : /* fall through */
+      case 1274 : /* fall through */
+      case 1275 : /* fall through */
+      case 1276 : /* fall through */
+      case 1277 : /* fall through */
+      case 1278 : /* fall through */
+      case 1279 : itype = OR1K32BF_INSN_L_ADDI; goto extract_sfmt_l_addi;
+      case 1280 : /* fall through */
+      case 1281 : /* fall through */
+      case 1282 : /* fall through */
+      case 1283 : /* fall through */
+      case 1284 : /* fall through */
+      case 1285 : /* fall through */
+      case 1286 : /* fall through */
+      case 1287 : /* fall through */
+      case 1288 : /* fall through */
+      case 1289 : /* fall through */
+      case 1290 : /* fall through */
+      case 1291 : /* fall through */
+      case 1292 : /* fall through */
+      case 1293 : /* fall through */
+      case 1294 : /* fall through */
+      case 1295 : /* fall through */
+      case 1296 : /* fall through */
+      case 1297 : /* fall through */
+      case 1298 : /* fall through */
+      case 1299 : /* fall through */
+      case 1300 : /* fall through */
+      case 1301 : /* fall through */
+      case 1302 : /* fall through */
+      case 1303 : /* fall through */
+      case 1304 : /* fall through */
+      case 1305 : /* fall through */
+      case 1306 : /* fall through */
+      case 1307 : /* fall through */
+      case 1308 : /* fall through */
+      case 1309 : /* fall through */
+      case 1310 : /* fall through */
+      case 1311 : itype = OR1K32BF_INSN_L_ADDIC; goto extract_sfmt_l_addic;
+      case 1312 : /* fall through */
+      case 1313 : /* fall through */
+      case 1314 : /* fall through */
+      case 1315 : /* fall through */
+      case 1316 : /* fall through */
+      case 1317 : /* fall through */
+      case 1318 : /* fall through */
+      case 1319 : /* fall through */
+      case 1320 : /* fall through */
+      case 1321 : /* fall through */
+      case 1322 : /* fall through */
+      case 1323 : /* fall through */
+      case 1324 : /* fall through */
+      case 1325 : /* fall through */
+      case 1326 : /* fall through */
+      case 1327 : /* fall through */
+      case 1328 : /* fall through */
+      case 1329 : /* fall through */
+      case 1330 : /* fall through */
+      case 1331 : /* fall through */
+      case 1332 : /* fall through */
+      case 1333 : /* fall through */
+      case 1334 : /* fall through */
+      case 1335 : /* fall through */
+      case 1336 : /* fall through */
+      case 1337 : /* fall through */
+      case 1338 : /* fall through */
+      case 1339 : /* fall through */
+      case 1340 : /* fall through */
+      case 1341 : /* fall through */
+      case 1342 : /* fall through */
+      case 1343 : itype = OR1K32BF_INSN_L_ANDI; goto extract_sfmt_l_mfspr;
+      case 1344 : /* fall through */
+      case 1345 : /* fall through */
+      case 1346 : /* fall through */
+      case 1347 : /* fall through */
+      case 1348 : /* fall through */
+      case 1349 : /* fall through */
+      case 1350 : /* fall through */
+      case 1351 : /* fall through */
+      case 1352 : /* fall through */
+      case 1353 : /* fall through */
+      case 1354 : /* fall through */
+      case 1355 : /* fall through */
+      case 1356 : /* fall through */
+      case 1357 : /* fall through */
+      case 1358 : /* fall through */
+      case 1359 : /* fall through */
+      case 1360 : /* fall through */
+      case 1361 : /* fall through */
+      case 1362 : /* fall through */
+      case 1363 : /* fall through */
+      case 1364 : /* fall through */
+      case 1365 : /* fall through */
+      case 1366 : /* fall through */
+      case 1367 : /* fall through */
+      case 1368 : /* fall through */
+      case 1369 : /* fall through */
+      case 1370 : /* fall through */
+      case 1371 : /* fall through */
+      case 1372 : /* fall through */
+      case 1373 : /* fall through */
+      case 1374 : /* fall through */
+      case 1375 : itype = OR1K32BF_INSN_L_ORI; goto extract_sfmt_l_mfspr;
+      case 1376 : /* fall through */
+      case 1377 : /* fall through */
+      case 1378 : /* fall through */
+      case 1379 : /* fall through */
+      case 1380 : /* fall through */
+      case 1381 : /* fall through */
+      case 1382 : /* fall through */
+      case 1383 : /* fall through */
+      case 1384 : /* fall through */
+      case 1385 : /* fall through */
+      case 1386 : /* fall through */
+      case 1387 : /* fall through */
+      case 1388 : /* fall through */
+      case 1389 : /* fall through */
+      case 1390 : /* fall through */
+      case 1391 : /* fall through */
+      case 1392 : /* fall through */
+      case 1393 : /* fall through */
+      case 1394 : /* fall through */
+      case 1395 : /* fall through */
+      case 1396 : /* fall through */
+      case 1397 : /* fall through */
+      case 1398 : /* fall through */
+      case 1399 : /* fall through */
+      case 1400 : /* fall through */
+      case 1401 : /* fall through */
+      case 1402 : /* fall through */
+      case 1403 : /* fall through */
+      case 1404 : /* fall through */
+      case 1405 : /* fall through */
+      case 1406 : /* fall through */
+      case 1407 : itype = OR1K32BF_INSN_L_XORI; goto extract_sfmt_l_xori;
+      case 1408 : /* fall through */
+      case 1409 : /* fall through */
+      case 1410 : /* fall through */
+      case 1411 : /* fall through */
+      case 1412 : /* fall through */
+      case 1413 : /* fall through */
+      case 1414 : /* fall through */
+      case 1415 : /* fall through */
+      case 1416 : /* fall through */
+      case 1417 : /* fall through */
+      case 1418 : /* fall through */
+      case 1419 : /* fall through */
+      case 1420 : /* fall through */
+      case 1421 : /* fall through */
+      case 1422 : /* fall through */
+      case 1423 : /* fall through */
+      case 1424 : /* fall through */
+      case 1425 : /* fall through */
+      case 1426 : /* fall through */
+      case 1427 : /* fall through */
+      case 1428 : /* fall through */
+      case 1429 : /* fall through */
+      case 1430 : /* fall through */
+      case 1431 : /* fall through */
+      case 1432 : /* fall through */
+      case 1433 : /* fall through */
+      case 1434 : /* fall through */
+      case 1435 : /* fall through */
+      case 1436 : /* fall through */
+      case 1437 : /* fall through */
+      case 1438 : /* fall through */
+      case 1439 : itype = OR1K32BF_INSN_L_MULI; goto extract_sfmt_l_addi;
+      case 1440 : /* fall through */
+      case 1441 : /* fall through */
+      case 1442 : /* fall through */
+      case 1443 : /* fall through */
+      case 1444 : /* fall through */
+      case 1445 : /* fall through */
+      case 1446 : /* fall through */
+      case 1447 : /* fall through */
+      case 1448 : /* fall through */
+      case 1449 : /* fall through */
+      case 1450 : /* fall through */
+      case 1451 : /* fall through */
+      case 1452 : /* fall through */
+      case 1453 : /* fall through */
+      case 1454 : /* fall through */
+      case 1455 : /* fall through */
+      case 1456 : /* fall through */
+      case 1457 : /* fall through */
+      case 1458 : /* fall through */
+      case 1459 : /* fall through */
+      case 1460 : /* fall through */
+      case 1461 : /* fall through */
+      case 1462 : /* fall through */
+      case 1463 : /* fall through */
+      case 1464 : /* fall through */
+      case 1465 : /* fall through */
+      case 1466 : /* fall through */
+      case 1467 : /* fall through */
+      case 1468 : /* fall through */
+      case 1469 : /* fall through */
+      case 1470 : /* fall through */
+      case 1471 : itype = OR1K32BF_INSN_L_MFSPR; goto extract_sfmt_l_mfspr;
+      case 1472 : /* fall through */
+      case 1473 : /* fall through */
+      case 1474 : /* fall through */
+      case 1475 : /* fall through */
+      case 1476 : /* fall through */
+      case 1477 : /* fall through */
+      case 1478 : /* fall through */
+      case 1479 : /* fall through */
+      case 1480 : /* fall through */
+      case 1481 : /* fall through */
+      case 1482 : /* fall through */
+      case 1483 : /* fall through */
+      case 1484 : /* fall through */
+      case 1485 : /* fall through */
+      case 1486 : /* fall through */
+      case 1487 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000000)
+              { itype = OR1K32BF_INSN_L_SLLI; goto extract_sfmt_l_slli; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000080)
+              { itype = OR1K32BF_INSN_L_SRAI; goto extract_sfmt_l_slli; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1488 : /* fall through */
+      case 1489 : /* fall through */
+      case 1490 : /* fall through */
+      case 1491 : /* fall through */
+      case 1492 : /* fall through */
+      case 1493 : /* fall through */
+      case 1494 : /* fall through */
+      case 1495 : /* fall through */
+      case 1496 : /* fall through */
+      case 1497 : /* fall through */
+      case 1498 : /* fall through */
+      case 1499 : /* fall through */
+      case 1500 : /* fall through */
+      case 1501 : /* fall through */
+      case 1502 : /* fall through */
+      case 1503 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000040)
+              { itype = OR1K32BF_INSN_L_SRLI; goto extract_sfmt_l_slli; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb80000c0)
+              { itype = OR1K32BF_INSN_L_RORI; goto extract_sfmt_l_slli; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1504 : /* fall through */
+      case 1505 : /* fall through */
+      case 1506 : /* fall through */
+      case 1507 : /* fall through */
+      case 1508 : /* fall through */
+      case 1509 : /* fall through */
+      case 1510 : /* fall through */
+      case 1511 : /* fall through */
+      case 1512 : /* fall through */
+      case 1513 : /* fall through */
+      case 1514 : /* fall through */
+      case 1515 : /* fall through */
+      case 1516 : /* fall through */
+      case 1517 : /* fall through */
+      case 1518 : /* fall through */
+      case 1519 : /* fall through */
+      case 1520 : /* fall through */
+      case 1521 : /* fall through */
+      case 1522 : /* fall through */
+      case 1523 : /* fall through */
+      case 1524 : /* fall through */
+      case 1525 : /* fall through */
+      case 1526 : /* fall through */
+      case 1527 : /* fall through */
+      case 1528 : /* fall through */
+      case 1529 : /* fall through */
+      case 1530 : /* fall through */
+      case 1531 : /* fall through */
+      case 1532 : /* fall through */
+      case 1533 : /* fall through */
+      case 1534 : /* fall through */
+      case 1535 :
+        {
+          unsigned int val = (((insn >> 21) & (15 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffe00000) == 0xbc000000)
+              { itype = OR1K32BF_INSN_L_SFEQI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffe00000) == 0xbc200000)
+              { itype = OR1K32BF_INSN_L_SFNEI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffe00000) == 0xbc400000)
+              { itype = OR1K32BF_INSN_L_SFGTUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xffe00000) == 0xbc600000)
+              { itype = OR1K32BF_INSN_L_SFGEUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffe00000) == 0xbc800000)
+              { itype = OR1K32BF_INSN_L_SFLTUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffe00000) == 0xbca00000)
+              { itype = OR1K32BF_INSN_L_SFLEUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 10 :
+            if ((entire_insn & 0xffe00000) == 0xbd400000)
+              { itype = OR1K32BF_INSN_L_SFGTSI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 11 :
+            if ((entire_insn & 0xffe00000) == 0xbd600000)
+              { itype = OR1K32BF_INSN_L_SFGESI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 12 :
+            if ((entire_insn & 0xffe00000) == 0xbd800000)
+              { itype = OR1K32BF_INSN_L_SFLTSI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 13 :
+            if ((entire_insn & 0xffe00000) == 0xbda00000)
+              { itype = OR1K32BF_INSN_L_SFLESI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1536 : /* fall through */
+      case 1537 : /* fall through */
+      case 1538 : /* fall through */
+      case 1539 : /* fall through */
+      case 1540 : /* fall through */
+      case 1541 : /* fall through */
+      case 1542 : /* fall through */
+      case 1543 : /* fall through */
+      case 1544 : /* fall through */
+      case 1545 : /* fall through */
+      case 1546 : /* fall through */
+      case 1547 : /* fall through */
+      case 1548 : /* fall through */
+      case 1549 : /* fall through */
+      case 1550 : /* fall through */
+      case 1551 : /* fall through */
+      case 1552 : /* fall through */
+      case 1553 : /* fall through */
+      case 1554 : /* fall through */
+      case 1555 : /* fall through */
+      case 1556 : /* fall through */
+      case 1557 : /* fall through */
+      case 1558 : /* fall through */
+      case 1559 : /* fall through */
+      case 1560 : /* fall through */
+      case 1561 : /* fall through */
+      case 1562 : /* fall through */
+      case 1563 : /* fall through */
+      case 1564 : /* fall through */
+      case 1565 : /* fall through */
+      case 1566 : /* fall through */
+      case 1567 : itype = OR1K32BF_INSN_L_MTSPR; goto extract_sfmt_l_mtspr;
+      case 1569 :
+        if ((entire_insn & 0xffe007ff) == 0xc4000001)
+          { itype = OR1K32BF_INSN_L_MAC; goto extract_sfmt_l_mac; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1570 :
+        if ((entire_insn & 0xffe007ff) == 0xc4000002)
+          { itype = OR1K32BF_INSN_L_MSB; goto extract_sfmt_l_mac; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1600 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000000)
+          { itype = OR1K32BF_INSN_LF_ADD_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1601 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000001)
+          { itype = OR1K32BF_INSN_LF_SUB_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1602 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000002)
+          { itype = OR1K32BF_INSN_LF_MUL_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1603 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000003)
+          { itype = OR1K32BF_INSN_LF_DIV_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1604 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000004)
+          { itype = OR1K32BF_INSN_LF_ITOF_S; goto extract_sfmt_lf_itof_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1605 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000005)
+          { itype = OR1K32BF_INSN_LF_FTOI_S; goto extract_sfmt_lf_ftoi_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1606 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000006)
+          { itype = OR1K32BF_INSN_LF_REM_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1607 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000007)
+          { itype = OR1K32BF_INSN_LF_MADD_S; goto extract_sfmt_lf_madd_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1608 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000008)
+          { itype = OR1K32BF_INSN_LF_EQ_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1609 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000009)
+          { itype = OR1K32BF_INSN_LF_NE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1610 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000a)
+          { itype = OR1K32BF_INSN_LF_GT_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1611 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000b)
+          { itype = OR1K32BF_INSN_LF_GE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1612 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000c)
+          { itype = OR1K32BF_INSN_LF_LT_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1613 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000d)
+          { itype = OR1K32BF_INSN_LF_LE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1616 :
+        if ((entire_insn & 0xffe007ff) == 0xc80000d0)
+          { itype = OR1K32BF_INSN_LF_CUST1_S; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1632 : /* fall through */
+      case 1633 : /* fall through */
+      case 1634 : /* fall through */
+      case 1635 : /* fall through */
+      case 1636 : /* fall through */
+      case 1637 : /* fall through */
+      case 1638 : /* fall through */
+      case 1639 : /* fall through */
+      case 1640 : /* fall through */
+      case 1641 : /* fall through */
+      case 1642 : /* fall through */
+      case 1643 : /* fall through */
+      case 1644 : /* fall through */
+      case 1645 : /* fall through */
+      case 1646 : /* fall through */
+      case 1647 : /* fall through */
+      case 1648 : /* fall through */
+      case 1649 : /* fall through */
+      case 1650 : /* fall through */
+      case 1651 : /* fall through */
+      case 1652 : /* fall through */
+      case 1653 : /* fall through */
+      case 1654 : /* fall through */
+      case 1655 : /* fall through */
+      case 1656 : /* fall through */
+      case 1657 : /* fall through */
+      case 1658 : /* fall through */
+      case 1659 : /* fall through */
+      case 1660 : /* fall through */
+      case 1661 : /* fall through */
+      case 1662 : /* fall through */
+      case 1663 : itype = OR1K32BF_INSN_L_SWA; goto extract_sfmt_l_swa;
+      case 1696 : /* fall through */
+      case 1697 : /* fall through */
+      case 1698 : /* fall through */
+      case 1699 : /* fall through */
+      case 1700 : /* fall through */
+      case 1701 : /* fall through */
+      case 1702 : /* fall through */
+      case 1703 : /* fall through */
+      case 1704 : /* fall through */
+      case 1705 : /* fall through */
+      case 1706 : /* fall through */
+      case 1707 : /* fall through */
+      case 1708 : /* fall through */
+      case 1709 : /* fall through */
+      case 1710 : /* fall through */
+      case 1711 : /* fall through */
+      case 1712 : /* fall through */
+      case 1713 : /* fall through */
+      case 1714 : /* fall through */
+      case 1715 : /* fall through */
+      case 1716 : /* fall through */
+      case 1717 : /* fall through */
+      case 1718 : /* fall through */
+      case 1719 : /* fall through */
+      case 1720 : /* fall through */
+      case 1721 : /* fall through */
+      case 1722 : /* fall through */
+      case 1723 : /* fall through */
+      case 1724 : /* fall through */
+      case 1725 : /* fall through */
+      case 1726 : /* fall through */
+      case 1727 : itype = OR1K32BF_INSN_L_SW; goto extract_sfmt_l_sw;
+      case 1728 : /* fall through */
+      case 1729 : /* fall through */
+      case 1730 : /* fall through */
+      case 1731 : /* fall through */
+      case 1732 : /* fall through */
+      case 1733 : /* fall through */
+      case 1734 : /* fall through */
+      case 1735 : /* fall through */
+      case 1736 : /* fall through */
+      case 1737 : /* fall through */
+      case 1738 : /* fall through */
+      case 1739 : /* fall through */
+      case 1740 : /* fall through */
+      case 1741 : /* fall through */
+      case 1742 : /* fall through */
+      case 1743 : /* fall through */
+      case 1744 : /* fall through */
+      case 1745 : /* fall through */
+      case 1746 : /* fall through */
+      case 1747 : /* fall through */
+      case 1748 : /* fall through */
+      case 1749 : /* fall through */
+      case 1750 : /* fall through */
+      case 1751 : /* fall through */
+      case 1752 : /* fall through */
+      case 1753 : /* fall through */
+      case 1754 : /* fall through */
+      case 1755 : /* fall through */
+      case 1756 : /* fall through */
+      case 1757 : /* fall through */
+      case 1758 : /* fall through */
+      case 1759 : itype = OR1K32BF_INSN_L_SB; goto extract_sfmt_l_sb;
+      case 1760 : /* fall through */
+      case 1761 : /* fall through */
+      case 1762 : /* fall through */
+      case 1763 : /* fall through */
+      case 1764 : /* fall through */
+      case 1765 : /* fall through */
+      case 1766 : /* fall through */
+      case 1767 : /* fall through */
+      case 1768 : /* fall through */
+      case 1769 : /* fall through */
+      case 1770 : /* fall through */
+      case 1771 : /* fall through */
+      case 1772 : /* fall through */
+      case 1773 : /* fall through */
+      case 1774 : /* fall through */
+      case 1775 : /* fall through */
+      case 1776 : /* fall through */
+      case 1777 : /* fall through */
+      case 1778 : /* fall through */
+      case 1779 : /* fall through */
+      case 1780 : /* fall through */
+      case 1781 : /* fall through */
+      case 1782 : /* fall through */
+      case 1783 : /* fall through */
+      case 1784 : /* fall through */
+      case 1785 : /* fall through */
+      case 1786 : /* fall through */
+      case 1787 : /* fall through */
+      case 1788 : /* fall through */
+      case 1789 : /* fall through */
+      case 1790 : /* fall through */
+      case 1791 : itype = OR1K32BF_INSN_L_SH; goto extract_sfmt_l_sh;
+      case 1792 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000000)
+          { itype = OR1K32BF_INSN_L_ADD; goto extract_sfmt_l_add; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1793 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000001)
+          { itype = OR1K32BF_INSN_L_ADDC; goto extract_sfmt_l_addc; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1794 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000002)
+          { itype = OR1K32BF_INSN_L_SUB; goto extract_sfmt_l_add; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1795 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000003)
+          { itype = OR1K32BF_INSN_L_AND; goto extract_sfmt_l_and; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1796 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000004)
+          { itype = OR1K32BF_INSN_L_OR; goto extract_sfmt_l_and; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1797 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000005)
+          { itype = OR1K32BF_INSN_L_XOR; goto extract_sfmt_l_and; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1798 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000306)
+          { itype = OR1K32BF_INSN_L_MUL; goto extract_sfmt_l_add; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1800 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000008)
+              { itype = OR1K32BF_INSN_L_SLL; goto extract_sfmt_l_sll; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000088)
+              { itype = OR1K32BF_INSN_L_SRA; goto extract_sfmt_l_sll; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1801 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000309)
+          { itype = OR1K32BF_INSN_L_DIV; goto extract_sfmt_l_div; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1802 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000030a)
+          { itype = OR1K32BF_INSN_L_DIVU; goto extract_sfmt_l_div; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1803 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000030b)
+          { itype = OR1K32BF_INSN_L_MULU; goto extract_sfmt_l_add; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1804 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000000c)
+              { itype = OR1K32BF_INSN_L_EXTHS; goto extract_sfmt_l_exths; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000008c)
+              { itype = OR1K32BF_INSN_L_EXTHZ; goto extract_sfmt_l_exths; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1805 :
+        if ((entire_insn & 0xfc00ffff) == 0xe000000d)
+          { itype = OR1K32BF_INSN_L_EXTWS; goto extract_sfmt_l_exths; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1806 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000000e)
+          { itype = OR1K32BF_INSN_L_CMOV; goto extract_sfmt_l_cmov; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1807 :
+        {
+          unsigned int val = (((insn >> 8) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xe000000f)
+              { itype = OR1K32BF_INSN_L_FF1; goto extract_sfmt_l_ff1; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc0007ff) == 0xe000010f)
+              { itype = OR1K32BF_INSN_L_FL1; goto extract_sfmt_l_ff1; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1816 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000048)
+              { itype = OR1K32BF_INSN_L_SRL; goto extract_sfmt_l_sll; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc0007ff) == 0xe00000c8)
+              { itype = OR1K32BF_INSN_L_ROR; goto extract_sfmt_l_sll; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1820 :
+        {
+          unsigned int val = (((insn >> 7) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000004c)
+              { itype = OR1K32BF_INSN_L_EXTBS; goto extract_sfmt_l_exths; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffff) == 0xe00000cc)
+              { itype = OR1K32BF_INSN_L_EXTBZ; goto extract_sfmt_l_exths; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1821 :
+        if ((entire_insn & 0xfc00ffff) == 0xe000004d)
+          { itype = OR1K32BF_INSN_L_EXTWZ; goto extract_sfmt_l_exths; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1824 :
+        {
+          unsigned int val = (((insn >> 21) & (15 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffe007ff) == 0xe4000000)
+              { itype = OR1K32BF_INSN_L_SFEQ; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffe007ff) == 0xe4200000)
+              { itype = OR1K32BF_INSN_L_SFNE; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffe007ff) == 0xe4400000)
+              { itype = OR1K32BF_INSN_L_SFGTU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xffe007ff) == 0xe4600000)
+              { itype = OR1K32BF_INSN_L_SFGEU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffe007ff) == 0xe4800000)
+              { itype = OR1K32BF_INSN_L_SFLTU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffe007ff) == 0xe4a00000)
+              { itype = OR1K32BF_INSN_L_SFLEU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 10 :
+            if ((entire_insn & 0xffe007ff) == 0xe5400000)
+              { itype = OR1K32BF_INSN_L_SFGTS; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 11 :
+            if ((entire_insn & 0xffe007ff) == 0xe5600000)
+              { itype = OR1K32BF_INSN_L_SFGES; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 12 :
+            if ((entire_insn & 0xffe007ff) == 0xe5800000)
+              { itype = OR1K32BF_INSN_L_SFLTS; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 13 :
+            if ((entire_insn & 0xffe007ff) == 0xe5a00000)
+              { itype = OR1K32BF_INSN_L_SFLES; goto extract_sfmt_l_sfgts; }
+            itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1920 :
+        if ((entire_insn & 0xffffffff) == 0xf0000000)
+          { itype = OR1K32BF_INSN_L_CUST5; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1952 :
+        if ((entire_insn & 0xffffffff) == 0xf4000000)
+          { itype = OR1K32BF_INSN_L_CUST6; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1984 :
+        if ((entire_insn & 0xffffffff) == 0xf8000000)
+          { itype = OR1K32BF_INSN_L_CUST7; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 2016 :
+        if ((entire_insn & 0xffffffff) == 0xfc000000)
+          { itype = OR1K32BF_INSN_L_CUST8; goto extract_sfmt_l_msync; }
+        itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      }
+    }
+  }
+
+  /* The instruction has been decoded, now extract the fields.  */
+
+ extract_sfmt_empty:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_j:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    USI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jal:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    USI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jr:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r3;
+
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jalr:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r3;
+
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_bnf:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    USI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_trap:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_trap", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_msync:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_msync", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_nop_imm:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_uimm16;
+
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_uimm16) = f_uimm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_movhi:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_r1;
+    UINT f_uimm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_uimm16) = f_uimm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_macrc:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mfspr:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_uimm16) = f_uimm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mtspr:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    UINT f_uimm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_uimm16_split) = f_uimm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_uimm16_split 0x%x", 'x', f_uimm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lwz:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lws:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lwa:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lbz:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lbs:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lhz:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lhs:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sw:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sb:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sh:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_swa:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sll:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_slli:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm6;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_uimm6) = f_uimm6;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2, "f_uimm6 0x%x", 'x', f_uimm6, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_and:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_add:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addc:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_div:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_ff1:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_xori:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addi:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addic:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_exths:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_cmov:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sfgts:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sfgtsi:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mac:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_maci:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_add_s:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_itof_s:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_ftoi_s:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_eq_s:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_eq_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_madd_s:
+  {
+    const IDESC *idesc = &or1k32bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+}
diff --git a/sim/or1k/decode32.h b/sim/or1k/decode32.h
new file mode 100644
index 0000000..5511bcc
--- /dev/null
+++ b/sim/or1k/decode32.h
@@ -0,0 +1,94 @@
+/* Decode header for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K32BF_DECODE_H
+#define OR1K32BF_DECODE_H
+
+extern const IDESC *or1k32bf_decode (SIM_CPU *, IADDR,
+                                  CGEN_INSN_WORD, CGEN_INSN_WORD,
+                                  ARGBUF *);
+extern void or1k32bf_init_idesc_table (SIM_CPU *);
+extern void or1k32bf_sem_init_idesc_table (SIM_CPU *);
+extern void or1k32bf_semf_init_idesc_table (SIM_CPU *);
+
+/* Enum declaration for instructions in cpu family or1k32bf.  */
+typedef enum or1k32bf_insn_type {
+  OR1K32BF_INSN_X_INVALID, OR1K32BF_INSN_X_AFTER, OR1K32BF_INSN_X_BEFORE, OR1K32BF_INSN_X_CTI_CHAIN
+ , OR1K32BF_INSN_X_CHAIN, OR1K32BF_INSN_X_BEGIN, OR1K32BF_INSN_L_J, OR1K32BF_INSN_L_JAL
+ , OR1K32BF_INSN_L_JR, OR1K32BF_INSN_L_JALR, OR1K32BF_INSN_L_BNF, OR1K32BF_INSN_L_BF
+ , OR1K32BF_INSN_L_TRAP, OR1K32BF_INSN_L_SYS, OR1K32BF_INSN_L_MSYNC, OR1K32BF_INSN_L_PSYNC
+ , OR1K32BF_INSN_L_CSYNC, OR1K32BF_INSN_L_RFE, OR1K32BF_INSN_L_NOP_IMM, OR1K32BF_INSN_L_MOVHI
+ , OR1K32BF_INSN_L_MACRC, OR1K32BF_INSN_L_MFSPR, OR1K32BF_INSN_L_MTSPR, OR1K32BF_INSN_L_LWZ
+ , OR1K32BF_INSN_L_LWS, OR1K32BF_INSN_L_LWA, OR1K32BF_INSN_L_LBZ, OR1K32BF_INSN_L_LBS
+ , OR1K32BF_INSN_L_LHZ, OR1K32BF_INSN_L_LHS, OR1K32BF_INSN_L_SW, OR1K32BF_INSN_L_SB
+ , OR1K32BF_INSN_L_SH, OR1K32BF_INSN_L_SWA, OR1K32BF_INSN_L_SLL, OR1K32BF_INSN_L_SLLI
+ , OR1K32BF_INSN_L_SRL, OR1K32BF_INSN_L_SRLI, OR1K32BF_INSN_L_SRA, OR1K32BF_INSN_L_SRAI
+ , OR1K32BF_INSN_L_ROR, OR1K32BF_INSN_L_RORI, OR1K32BF_INSN_L_AND, OR1K32BF_INSN_L_OR
+ , OR1K32BF_INSN_L_XOR, OR1K32BF_INSN_L_ADD, OR1K32BF_INSN_L_SUB, OR1K32BF_INSN_L_ADDC
+ , OR1K32BF_INSN_L_MUL, OR1K32BF_INSN_L_MULU, OR1K32BF_INSN_L_DIV, OR1K32BF_INSN_L_DIVU
+ , OR1K32BF_INSN_L_FF1, OR1K32BF_INSN_L_FL1, OR1K32BF_INSN_L_ANDI, OR1K32BF_INSN_L_ORI
+ , OR1K32BF_INSN_L_XORI, OR1K32BF_INSN_L_ADDI, OR1K32BF_INSN_L_ADDIC, OR1K32BF_INSN_L_MULI
+ , OR1K32BF_INSN_L_EXTHS, OR1K32BF_INSN_L_EXTBS, OR1K32BF_INSN_L_EXTHZ, OR1K32BF_INSN_L_EXTBZ
+ , OR1K32BF_INSN_L_EXTWS, OR1K32BF_INSN_L_EXTWZ, OR1K32BF_INSN_L_CMOV, OR1K32BF_INSN_L_SFGTS
+ , OR1K32BF_INSN_L_SFGTSI, OR1K32BF_INSN_L_SFGTU, OR1K32BF_INSN_L_SFGTUI, OR1K32BF_INSN_L_SFGES
+ , OR1K32BF_INSN_L_SFGESI, OR1K32BF_INSN_L_SFGEU, OR1K32BF_INSN_L_SFGEUI, OR1K32BF_INSN_L_SFLTS
+ , OR1K32BF_INSN_L_SFLTSI, OR1K32BF_INSN_L_SFLTU, OR1K32BF_INSN_L_SFLTUI, OR1K32BF_INSN_L_SFLES
+ , OR1K32BF_INSN_L_SFLESI, OR1K32BF_INSN_L_SFLEU, OR1K32BF_INSN_L_SFLEUI, OR1K32BF_INSN_L_SFEQ
+ , OR1K32BF_INSN_L_SFEQI, OR1K32BF_INSN_L_SFNE, OR1K32BF_INSN_L_SFNEI, OR1K32BF_INSN_L_MAC
+ , OR1K32BF_INSN_L_MSB, OR1K32BF_INSN_L_MACI, OR1K32BF_INSN_L_CUST1, OR1K32BF_INSN_L_CUST2
+ , OR1K32BF_INSN_L_CUST3, OR1K32BF_INSN_L_CUST4, OR1K32BF_INSN_L_CUST5, OR1K32BF_INSN_L_CUST6
+ , OR1K32BF_INSN_L_CUST7, OR1K32BF_INSN_L_CUST8, OR1K32BF_INSN_LF_ADD_S, OR1K32BF_INSN_LF_SUB_S
+ , OR1K32BF_INSN_LF_MUL_S, OR1K32BF_INSN_LF_DIV_S, OR1K32BF_INSN_LF_REM_S, OR1K32BF_INSN_LF_ITOF_S
+ , OR1K32BF_INSN_LF_FTOI_S, OR1K32BF_INSN_LF_EQ_S, OR1K32BF_INSN_LF_NE_S, OR1K32BF_INSN_LF_GE_S
+ , OR1K32BF_INSN_LF_GT_S, OR1K32BF_INSN_LF_LT_S, OR1K32BF_INSN_LF_LE_S, OR1K32BF_INSN_LF_MADD_S
+ , OR1K32BF_INSN_LF_CUST1_S, OR1K32BF_INSN__MAX
+} OR1K32BF_INSN_TYPE;
+
+/* Enum declaration for semantic formats in cpu family or1k32bf.  */
+typedef enum or1k32bf_sfmt_type {
+  OR1K32BF_SFMT_EMPTY, OR1K32BF_SFMT_L_J, OR1K32BF_SFMT_L_JAL, OR1K32BF_SFMT_L_JR
+ , OR1K32BF_SFMT_L_JALR, OR1K32BF_SFMT_L_BNF, OR1K32BF_SFMT_L_TRAP, OR1K32BF_SFMT_L_MSYNC
+ , OR1K32BF_SFMT_L_NOP_IMM, OR1K32BF_SFMT_L_MOVHI, OR1K32BF_SFMT_L_MACRC, OR1K32BF_SFMT_L_MFSPR
+ , OR1K32BF_SFMT_L_MTSPR, OR1K32BF_SFMT_L_LWZ, OR1K32BF_SFMT_L_LWS, OR1K32BF_SFMT_L_LWA
+ , OR1K32BF_SFMT_L_LBZ, OR1K32BF_SFMT_L_LBS, OR1K32BF_SFMT_L_LHZ, OR1K32BF_SFMT_L_LHS
+ , OR1K32BF_SFMT_L_SW, OR1K32BF_SFMT_L_SB, OR1K32BF_SFMT_L_SH, OR1K32BF_SFMT_L_SWA
+ , OR1K32BF_SFMT_L_SLL, OR1K32BF_SFMT_L_SLLI, OR1K32BF_SFMT_L_AND, OR1K32BF_SFMT_L_ADD
+ , OR1K32BF_SFMT_L_ADDC, OR1K32BF_SFMT_L_DIV, OR1K32BF_SFMT_L_FF1, OR1K32BF_SFMT_L_XORI
+ , OR1K32BF_SFMT_L_ADDI, OR1K32BF_SFMT_L_ADDIC, OR1K32BF_SFMT_L_EXTHS, OR1K32BF_SFMT_L_CMOV
+ , OR1K32BF_SFMT_L_SFGTS, OR1K32BF_SFMT_L_SFGTSI, OR1K32BF_SFMT_L_MAC, OR1K32BF_SFMT_L_MACI
+ , OR1K32BF_SFMT_LF_ADD_S, OR1K32BF_SFMT_LF_ITOF_S, OR1K32BF_SFMT_LF_FTOI_S, OR1K32BF_SFMT_LF_EQ_S
+ , OR1K32BF_SFMT_LF_MADD_S
+} OR1K32BF_SFMT_TYPE;
+
+/* Function unit handlers (user written).  */
+
+extern int or1k32bf_model_or1200_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/);
+extern int or1k32bf_model_or1200nd_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/);
+
+/* Profiling before/after handlers (user written) */
+
+extern void or1k32bf_model_insn_before (SIM_CPU *, int /*first_p*/);
+extern void or1k32bf_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/);
+
+#endif /* OR1K32BF_DECODE_H */
diff --git a/sim/or1k/decode64.c b/sim/or1k/decode64.c
new file mode 100644
index 0000000..4065010
--- /dev/null
+++ b/sim/or1k/decode64.c
@@ -0,0 +1,2723 @@
+/* Simulator instruction decoder for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+
+#include "sim-main.h"
+#include "sim-assert.h"
+
+/* The instruction descriptor array.
+   This is computed at runtime.  Space for it is not malloc'd to save a
+   teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
+   but won't be done until necessary (we don't currently support the runtime
+   addition of instructions nor an SMP machine with different cpus).  */
+static IDESC or1k64bf_insn_data[OR1K64BF_INSN__MAX];
+
+/* Commas between elements are contained in the macros.
+   Some of these are conditionally compiled out.  */
+
+static const struct insn_sem or1k64bf_insn_sem[] =
+{
+  { VIRTUAL_INSN_X_INVALID, OR1K64BF_INSN_X_INVALID, OR1K64BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_AFTER, OR1K64BF_INSN_X_AFTER, OR1K64BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_BEFORE, OR1K64BF_INSN_X_BEFORE, OR1K64BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_CTI_CHAIN, OR1K64BF_INSN_X_CTI_CHAIN, OR1K64BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_CHAIN, OR1K64BF_INSN_X_CHAIN, OR1K64BF_SFMT_EMPTY },
+  { VIRTUAL_INSN_X_BEGIN, OR1K64BF_INSN_X_BEGIN, OR1K64BF_SFMT_EMPTY },
+  { OR1K_INSN_L_J, OR1K64BF_INSN_L_J, OR1K64BF_SFMT_L_J },
+  { OR1K_INSN_L_JAL, OR1K64BF_INSN_L_JAL, OR1K64BF_SFMT_L_JAL },
+  { OR1K_INSN_L_JR, OR1K64BF_INSN_L_JR, OR1K64BF_SFMT_L_JR },
+  { OR1K_INSN_L_JALR, OR1K64BF_INSN_L_JALR, OR1K64BF_SFMT_L_JALR },
+  { OR1K_INSN_L_BNF, OR1K64BF_INSN_L_BNF, OR1K64BF_SFMT_L_BNF },
+  { OR1K_INSN_L_BF, OR1K64BF_INSN_L_BF, OR1K64BF_SFMT_L_BNF },
+  { OR1K_INSN_L_TRAP, OR1K64BF_INSN_L_TRAP, OR1K64BF_SFMT_L_TRAP },
+  { OR1K_INSN_L_SYS, OR1K64BF_INSN_L_SYS, OR1K64BF_SFMT_L_TRAP },
+  { OR1K_INSN_L_MSYNC, OR1K64BF_INSN_L_MSYNC, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_PSYNC, OR1K64BF_INSN_L_PSYNC, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CSYNC, OR1K64BF_INSN_L_CSYNC, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_RFE, OR1K64BF_INSN_L_RFE, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_NOP_IMM, OR1K64BF_INSN_L_NOP_IMM, OR1K64BF_SFMT_L_NOP_IMM },
+  { OR1K_INSN_L_MOVHI, OR1K64BF_INSN_L_MOVHI, OR1K64BF_SFMT_L_MOVHI },
+  { OR1K_INSN_L_MACRC, OR1K64BF_INSN_L_MACRC, OR1K64BF_SFMT_L_MACRC },
+  { OR1K_INSN_L_MFSPR, OR1K64BF_INSN_L_MFSPR, OR1K64BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_MTSPR, OR1K64BF_INSN_L_MTSPR, OR1K64BF_SFMT_L_MTSPR },
+  { OR1K_INSN_L_LWZ, OR1K64BF_INSN_L_LWZ, OR1K64BF_SFMT_L_LWZ },
+  { OR1K_INSN_L_LWS, OR1K64BF_INSN_L_LWS, OR1K64BF_SFMT_L_LWS },
+  { OR1K_INSN_L_LWA, OR1K64BF_INSN_L_LWA, OR1K64BF_SFMT_L_LWA },
+  { OR1K_INSN_L_LBZ, OR1K64BF_INSN_L_LBZ, OR1K64BF_SFMT_L_LBZ },
+  { OR1K_INSN_L_LBS, OR1K64BF_INSN_L_LBS, OR1K64BF_SFMT_L_LBS },
+  { OR1K_INSN_L_LHZ, OR1K64BF_INSN_L_LHZ, OR1K64BF_SFMT_L_LHZ },
+  { OR1K_INSN_L_LHS, OR1K64BF_INSN_L_LHS, OR1K64BF_SFMT_L_LHS },
+  { OR1K_INSN_L_SW, OR1K64BF_INSN_L_SW, OR1K64BF_SFMT_L_SW },
+  { OR1K_INSN_L_SB, OR1K64BF_INSN_L_SB, OR1K64BF_SFMT_L_SB },
+  { OR1K_INSN_L_SH, OR1K64BF_INSN_L_SH, OR1K64BF_SFMT_L_SH },
+  { OR1K_INSN_L_SWA, OR1K64BF_INSN_L_SWA, OR1K64BF_SFMT_L_SWA },
+  { OR1K_INSN_L_SLL, OR1K64BF_INSN_L_SLL, OR1K64BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SLLI, OR1K64BF_INSN_L_SLLI, OR1K64BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_SRL, OR1K64BF_INSN_L_SRL, OR1K64BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SRLI, OR1K64BF_INSN_L_SRLI, OR1K64BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_SRA, OR1K64BF_INSN_L_SRA, OR1K64BF_SFMT_L_SLL },
+  { OR1K_INSN_L_SRAI, OR1K64BF_INSN_L_SRAI, OR1K64BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_ROR, OR1K64BF_INSN_L_ROR, OR1K64BF_SFMT_L_SLL },
+  { OR1K_INSN_L_RORI, OR1K64BF_INSN_L_RORI, OR1K64BF_SFMT_L_SLLI },
+  { OR1K_INSN_L_AND, OR1K64BF_INSN_L_AND, OR1K64BF_SFMT_L_AND },
+  { OR1K_INSN_L_OR, OR1K64BF_INSN_L_OR, OR1K64BF_SFMT_L_AND },
+  { OR1K_INSN_L_XOR, OR1K64BF_INSN_L_XOR, OR1K64BF_SFMT_L_AND },
+  { OR1K_INSN_L_ADD, OR1K64BF_INSN_L_ADD, OR1K64BF_SFMT_L_ADD },
+  { OR1K_INSN_L_SUB, OR1K64BF_INSN_L_SUB, OR1K64BF_SFMT_L_ADD },
+  { OR1K_INSN_L_ADDC, OR1K64BF_INSN_L_ADDC, OR1K64BF_SFMT_L_ADDC },
+  { OR1K_INSN_L_MUL, OR1K64BF_INSN_L_MUL, OR1K64BF_SFMT_L_ADD },
+  { OR1K_INSN_L_MULU, OR1K64BF_INSN_L_MULU, OR1K64BF_SFMT_L_ADD },
+  { OR1K_INSN_L_DIV, OR1K64BF_INSN_L_DIV, OR1K64BF_SFMT_L_DIV },
+  { OR1K_INSN_L_DIVU, OR1K64BF_INSN_L_DIVU, OR1K64BF_SFMT_L_DIV },
+  { OR1K_INSN_L_FF1, OR1K64BF_INSN_L_FF1, OR1K64BF_SFMT_L_FF1 },
+  { OR1K_INSN_L_FL1, OR1K64BF_INSN_L_FL1, OR1K64BF_SFMT_L_FF1 },
+  { OR1K_INSN_L_ANDI, OR1K64BF_INSN_L_ANDI, OR1K64BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_ORI, OR1K64BF_INSN_L_ORI, OR1K64BF_SFMT_L_MFSPR },
+  { OR1K_INSN_L_XORI, OR1K64BF_INSN_L_XORI, OR1K64BF_SFMT_L_XORI },
+  { OR1K_INSN_L_ADDI, OR1K64BF_INSN_L_ADDI, OR1K64BF_SFMT_L_ADDI },
+  { OR1K_INSN_L_ADDIC, OR1K64BF_INSN_L_ADDIC, OR1K64BF_SFMT_L_ADDIC },
+  { OR1K_INSN_L_MULI, OR1K64BF_INSN_L_MULI, OR1K64BF_SFMT_L_ADDI },
+  { OR1K_INSN_L_EXTHS, OR1K64BF_INSN_L_EXTHS, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTBS, OR1K64BF_INSN_L_EXTBS, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTHZ, OR1K64BF_INSN_L_EXTHZ, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTBZ, OR1K64BF_INSN_L_EXTBZ, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTWS, OR1K64BF_INSN_L_EXTWS, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_EXTWZ, OR1K64BF_INSN_L_EXTWZ, OR1K64BF_SFMT_L_EXTHS },
+  { OR1K_INSN_L_CMOV, OR1K64BF_INSN_L_CMOV, OR1K64BF_SFMT_L_CMOV },
+  { OR1K_INSN_L_SFGTS, OR1K64BF_INSN_L_SFGTS, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGTSI, OR1K64BF_INSN_L_SFGTSI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGTU, OR1K64BF_INSN_L_SFGTU, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGTUI, OR1K64BF_INSN_L_SFGTUI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGES, OR1K64BF_INSN_L_SFGES, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGESI, OR1K64BF_INSN_L_SFGESI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFGEU, OR1K64BF_INSN_L_SFGEU, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFGEUI, OR1K64BF_INSN_L_SFGEUI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLTS, OR1K64BF_INSN_L_SFLTS, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLTSI, OR1K64BF_INSN_L_SFLTSI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLTU, OR1K64BF_INSN_L_SFLTU, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLTUI, OR1K64BF_INSN_L_SFLTUI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLES, OR1K64BF_INSN_L_SFLES, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLESI, OR1K64BF_INSN_L_SFLESI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFLEU, OR1K64BF_INSN_L_SFLEU, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFLEUI, OR1K64BF_INSN_L_SFLEUI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFEQ, OR1K64BF_INSN_L_SFEQ, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFEQI, OR1K64BF_INSN_L_SFEQI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_SFNE, OR1K64BF_INSN_L_SFNE, OR1K64BF_SFMT_L_SFGTS },
+  { OR1K_INSN_L_SFNEI, OR1K64BF_INSN_L_SFNEI, OR1K64BF_SFMT_L_SFGTSI },
+  { OR1K_INSN_L_MAC, OR1K64BF_INSN_L_MAC, OR1K64BF_SFMT_L_MAC },
+  { OR1K_INSN_L_MSB, OR1K64BF_INSN_L_MSB, OR1K64BF_SFMT_L_MAC },
+  { OR1K_INSN_L_MACI, OR1K64BF_INSN_L_MACI, OR1K64BF_SFMT_L_MACI },
+  { OR1K_INSN_L_CUST1, OR1K64BF_INSN_L_CUST1, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST2, OR1K64BF_INSN_L_CUST2, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST3, OR1K64BF_INSN_L_CUST3, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST4, OR1K64BF_INSN_L_CUST4, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST5, OR1K64BF_INSN_L_CUST5, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST6, OR1K64BF_INSN_L_CUST6, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST7, OR1K64BF_INSN_L_CUST7, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_L_CUST8, OR1K64BF_INSN_L_CUST8, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_LF_ADD_S, OR1K64BF_INSN_LF_ADD_S, OR1K64BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_ADD_D, OR1K64BF_INSN_LF_ADD_D, OR1K64BF_SFMT_LF_ADD_D },
+  { OR1K_INSN_LF_SUB_S, OR1K64BF_INSN_LF_SUB_S, OR1K64BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_SUB_D, OR1K64BF_INSN_LF_SUB_D, OR1K64BF_SFMT_LF_ADD_D },
+  { OR1K_INSN_LF_MUL_S, OR1K64BF_INSN_LF_MUL_S, OR1K64BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_MUL_D, OR1K64BF_INSN_LF_MUL_D, OR1K64BF_SFMT_LF_ADD_D },
+  { OR1K_INSN_LF_DIV_S, OR1K64BF_INSN_LF_DIV_S, OR1K64BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_DIV_D, OR1K64BF_INSN_LF_DIV_D, OR1K64BF_SFMT_LF_ADD_D },
+  { OR1K_INSN_LF_REM_S, OR1K64BF_INSN_LF_REM_S, OR1K64BF_SFMT_LF_ADD_S },
+  { OR1K_INSN_LF_REM_D, OR1K64BF_INSN_LF_REM_D, OR1K64BF_SFMT_LF_ADD_D },
+  { OR1K_INSN_LF_ITOF_S, OR1K64BF_INSN_LF_ITOF_S, OR1K64BF_SFMT_LF_ITOF_S },
+  { OR1K_INSN_LF_ITOF_D, OR1K64BF_INSN_LF_ITOF_D, OR1K64BF_SFMT_LF_ITOF_D },
+  { OR1K_INSN_LF_FTOI_S, OR1K64BF_INSN_LF_FTOI_S, OR1K64BF_SFMT_LF_FTOI_S },
+  { OR1K_INSN_LF_FTOI_D, OR1K64BF_INSN_LF_FTOI_D, OR1K64BF_SFMT_LF_FTOI_D },
+  { OR1K_INSN_LF_EQ_S, OR1K64BF_INSN_LF_EQ_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_EQ_D, OR1K64BF_INSN_LF_EQ_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_NE_S, OR1K64BF_INSN_LF_NE_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_NE_D, OR1K64BF_INSN_LF_NE_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_GE_S, OR1K64BF_INSN_LF_GE_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_GE_D, OR1K64BF_INSN_LF_GE_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_GT_S, OR1K64BF_INSN_LF_GT_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_GT_D, OR1K64BF_INSN_LF_GT_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_LT_S, OR1K64BF_INSN_LF_LT_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_LT_D, OR1K64BF_INSN_LF_LT_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_LE_S, OR1K64BF_INSN_LF_LE_S, OR1K64BF_SFMT_LF_EQ_S },
+  { OR1K_INSN_LF_LE_D, OR1K64BF_INSN_LF_LE_D, OR1K64BF_SFMT_LF_EQ_D },
+  { OR1K_INSN_LF_MADD_S, OR1K64BF_INSN_LF_MADD_S, OR1K64BF_SFMT_LF_MADD_S },
+  { OR1K_INSN_LF_MADD_D, OR1K64BF_INSN_LF_MADD_D, OR1K64BF_SFMT_LF_MADD_D },
+  { OR1K_INSN_LF_CUST1_S, OR1K64BF_INSN_LF_CUST1_S, OR1K64BF_SFMT_L_MSYNC },
+  { OR1K_INSN_LF_CUST1_D, OR1K64BF_INSN_LF_CUST1_D, OR1K64BF_SFMT_L_MSYNC },
+};
+
+static const struct insn_sem or1k64bf_insn_sem_invalid =
+{
+  VIRTUAL_INSN_X_INVALID, OR1K64BF_INSN_X_INVALID, OR1K64BF_SFMT_EMPTY
+};
+
+/* Initialize an IDESC from the compile-time computable parts.  */
+
+static INLINE void
+init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
+{
+  const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
+
+  id->num = t->index;
+  id->sfmt = t->sfmt;
+  if ((int) t->type <= 0)
+    id->idata = & cgen_virtual_insn_table[- (int) t->type];
+  else
+    id->idata = & insn_table[t->type];
+  id->attrs = CGEN_INSN_ATTRS (id->idata);
+  /* Oh my god, a magic number.  */
+  id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
+
+#if WITH_PROFILE_MODEL_P
+  id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
+  {
+    SIM_DESC sd = CPU_STATE (cpu);
+    SIM_ASSERT (t->index == id->timing->num);
+  }
+#endif
+
+  /* Semantic pointers are initialized elsewhere.  */
+}
+
+/* Initialize the instruction descriptor table.  */
+
+void
+or1k64bf_init_idesc_table (SIM_CPU *cpu)
+{
+  IDESC *id,*tabend;
+  const struct insn_sem *t,*tend;
+  int tabsize = OR1K64BF_INSN__MAX;
+  IDESC *table = or1k64bf_insn_data;
+
+  memset (table, 0, tabsize * sizeof (IDESC));
+
+  /* First set all entries to the `invalid insn'.  */
+  t = & or1k64bf_insn_sem_invalid;
+  for (id = table, tabend = table + tabsize; id < tabend; ++id)
+    init_idesc (cpu, id, t);
+
+  /* Now fill in the values for the chosen cpu.  */
+  for (t = or1k64bf_insn_sem, tend = t + sizeof (or1k64bf_insn_sem) / sizeof (*t);
+       t != tend; ++t)
+    {
+      init_idesc (cpu, & table[t->index], t);
+    }
+
+  /* Link the IDESC table into the cpu.  */
+  CPU_IDESC (cpu) = table;
+}
+
+/* Given an instruction, return a pointer to its IDESC entry.  */
+
+const IDESC *
+or1k64bf_decode (SIM_CPU *current_cpu, IADDR pc,
+              CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
+              ARGBUF *abuf)
+{
+  /* Result of decoder.  */
+  OR1K64BF_INSN_TYPE itype;
+
+  {
+    CGEN_INSN_WORD insn = base_insn;
+
+    {
+      unsigned int val = (((insn >> 21) & (63 << 5)) | ((insn >> 0) & (31 << 0)));
+      switch (val)
+      {
+      case 0 : /* fall through */
+      case 1 : /* fall through */
+      case 2 : /* fall through */
+      case 3 : /* fall through */
+      case 4 : /* fall through */
+      case 5 : /* fall through */
+      case 6 : /* fall through */
+      case 7 : /* fall through */
+      case 8 : /* fall through */
+      case 9 : /* fall through */
+      case 10 : /* fall through */
+      case 11 : /* fall through */
+      case 12 : /* fall through */
+      case 13 : /* fall through */
+      case 14 : /* fall through */
+      case 15 : /* fall through */
+      case 16 : /* fall through */
+      case 17 : /* fall through */
+      case 18 : /* fall through */
+      case 19 : /* fall through */
+      case 20 : /* fall through */
+      case 21 : /* fall through */
+      case 22 : /* fall through */
+      case 23 : /* fall through */
+      case 24 : /* fall through */
+      case 25 : /* fall through */
+      case 26 : /* fall through */
+      case 27 : /* fall through */
+      case 28 : /* fall through */
+      case 29 : /* fall through */
+      case 30 : /* fall through */
+      case 31 : itype = OR1K64BF_INSN_L_J; goto extract_sfmt_l_j;
+      case 32 : /* fall through */
+      case 33 : /* fall through */
+      case 34 : /* fall through */
+      case 35 : /* fall through */
+      case 36 : /* fall through */
+      case 37 : /* fall through */
+      case 38 : /* fall through */
+      case 39 : /* fall through */
+      case 40 : /* fall through */
+      case 41 : /* fall through */
+      case 42 : /* fall through */
+      case 43 : /* fall through */
+      case 44 : /* fall through */
+      case 45 : /* fall through */
+      case 46 : /* fall through */
+      case 47 : /* fall through */
+      case 48 : /* fall through */
+      case 49 : /* fall through */
+      case 50 : /* fall through */
+      case 51 : /* fall through */
+      case 52 : /* fall through */
+      case 53 : /* fall through */
+      case 54 : /* fall through */
+      case 55 : /* fall through */
+      case 56 : /* fall through */
+      case 57 : /* fall through */
+      case 58 : /* fall through */
+      case 59 : /* fall through */
+      case 60 : /* fall through */
+      case 61 : /* fall through */
+      case 62 : /* fall through */
+      case 63 : itype = OR1K64BF_INSN_L_JAL; goto extract_sfmt_l_jal;
+      case 96 : /* fall through */
+      case 97 : /* fall through */
+      case 98 : /* fall through */
+      case 99 : /* fall through */
+      case 100 : /* fall through */
+      case 101 : /* fall through */
+      case 102 : /* fall through */
+      case 103 : /* fall through */
+      case 104 : /* fall through */
+      case 105 : /* fall through */
+      case 106 : /* fall through */
+      case 107 : /* fall through */
+      case 108 : /* fall through */
+      case 109 : /* fall through */
+      case 110 : /* fall through */
+      case 111 : /* fall through */
+      case 112 : /* fall through */
+      case 113 : /* fall through */
+      case 114 : /* fall through */
+      case 115 : /* fall through */
+      case 116 : /* fall through */
+      case 117 : /* fall through */
+      case 118 : /* fall through */
+      case 119 : /* fall through */
+      case 120 : /* fall through */
+      case 121 : /* fall through */
+      case 122 : /* fall through */
+      case 123 : /* fall through */
+      case 124 : /* fall through */
+      case 125 : /* fall through */
+      case 126 : /* fall through */
+      case 127 : itype = OR1K64BF_INSN_L_BNF; goto extract_sfmt_l_bnf;
+      case 128 : /* fall through */
+      case 129 : /* fall through */
+      case 130 : /* fall through */
+      case 131 : /* fall through */
+      case 132 : /* fall through */
+      case 133 : /* fall through */
+      case 134 : /* fall through */
+      case 135 : /* fall through */
+      case 136 : /* fall through */
+      case 137 : /* fall through */
+      case 138 : /* fall through */
+      case 139 : /* fall through */
+      case 140 : /* fall through */
+      case 141 : /* fall through */
+      case 142 : /* fall through */
+      case 143 : /* fall through */
+      case 144 : /* fall through */
+      case 145 : /* fall through */
+      case 146 : /* fall through */
+      case 147 : /* fall through */
+      case 148 : /* fall through */
+      case 149 : /* fall through */
+      case 150 : /* fall through */
+      case 151 : /* fall through */
+      case 152 : /* fall through */
+      case 153 : /* fall through */
+      case 154 : /* fall through */
+      case 155 : /* fall through */
+      case 156 : /* fall through */
+      case 157 : /* fall through */
+      case 158 : /* fall through */
+      case 159 : itype = OR1K64BF_INSN_L_BF; goto extract_sfmt_l_bnf;
+      case 160 : /* fall through */
+      case 161 : /* fall through */
+      case 162 : /* fall through */
+      case 163 : /* fall through */
+      case 164 : /* fall through */
+      case 165 : /* fall through */
+      case 166 : /* fall through */
+      case 167 : /* fall through */
+      case 168 : /* fall through */
+      case 169 : /* fall through */
+      case 170 : /* fall through */
+      case 171 : /* fall through */
+      case 172 : /* fall through */
+      case 173 : /* fall through */
+      case 174 : /* fall through */
+      case 175 : /* fall through */
+      case 176 : /* fall through */
+      case 177 : /* fall through */
+      case 178 : /* fall through */
+      case 179 : /* fall through */
+      case 180 : /* fall through */
+      case 181 : /* fall through */
+      case 182 : /* fall through */
+      case 183 : /* fall through */
+      case 184 : /* fall through */
+      case 185 : /* fall through */
+      case 186 : /* fall through */
+      case 187 : /* fall through */
+      case 188 : /* fall through */
+      case 189 : /* fall through */
+      case 190 : /* fall through */
+      case 191 :
+        if ((entire_insn & 0xffff0000) == 0x15000000)
+          { itype = OR1K64BF_INSN_L_NOP_IMM; goto extract_sfmt_l_nop_imm; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 192 :
+        {
+          unsigned int val = (((insn >> 16) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc1f0000) == 0x18000000)
+              { itype = OR1K64BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc1fffff) == 0x18010000)
+              { itype = OR1K64BF_INSN_L_MACRC; goto extract_sfmt_l_macrc; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 193 : /* fall through */
+      case 194 : /* fall through */
+      case 195 : /* fall through */
+      case 196 : /* fall through */
+      case 197 : /* fall through */
+      case 198 : /* fall through */
+      case 199 : /* fall through */
+      case 200 : /* fall through */
+      case 201 : /* fall through */
+      case 202 : /* fall through */
+      case 203 : /* fall through */
+      case 204 : /* fall through */
+      case 205 : /* fall through */
+      case 206 : /* fall through */
+      case 207 : /* fall through */
+      case 208 : /* fall through */
+      case 209 : /* fall through */
+      case 210 : /* fall through */
+      case 211 : /* fall through */
+      case 212 : /* fall through */
+      case 213 : /* fall through */
+      case 214 : /* fall through */
+      case 215 : /* fall through */
+      case 216 : /* fall through */
+      case 217 : /* fall through */
+      case 218 : /* fall through */
+      case 219 : /* fall through */
+      case 220 : /* fall through */
+      case 221 : /* fall through */
+      case 222 : /* fall through */
+      case 223 :
+        if ((entire_insn & 0xfc1f0000) == 0x18000000)
+          { itype = OR1K64BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 256 :
+        {
+          unsigned int val = (((insn >> 23) & (7 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffff0000) == 0x20000000)
+              { itype = OR1K64BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffff0000) == 0x21000000)
+              { itype = OR1K64BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffffffff) == 0x22000000)
+              { itype = OR1K64BF_INSN_L_MSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffffffff) == 0x22800000)
+              { itype = OR1K64BF_INSN_L_PSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 6 :
+            if ((entire_insn & 0xffffffff) == 0x23000000)
+              { itype = OR1K64BF_INSN_L_CSYNC; goto extract_sfmt_l_msync; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 257 : /* fall through */
+      case 258 : /* fall through */
+      case 259 : /* fall through */
+      case 260 : /* fall through */
+      case 261 : /* fall through */
+      case 262 : /* fall through */
+      case 263 : /* fall through */
+      case 264 : /* fall through */
+      case 265 : /* fall through */
+      case 266 : /* fall through */
+      case 267 : /* fall through */
+      case 268 : /* fall through */
+      case 269 : /* fall through */
+      case 270 : /* fall through */
+      case 271 : /* fall through */
+      case 272 : /* fall through */
+      case 273 : /* fall through */
+      case 274 : /* fall through */
+      case 275 : /* fall through */
+      case 276 : /* fall through */
+      case 277 : /* fall through */
+      case 278 : /* fall through */
+      case 279 : /* fall through */
+      case 280 : /* fall through */
+      case 281 : /* fall through */
+      case 282 : /* fall through */
+      case 283 : /* fall through */
+      case 284 : /* fall through */
+      case 285 : /* fall through */
+      case 286 : /* fall through */
+      case 287 :
+        {
+          unsigned int val = (((insn >> 24) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffff0000) == 0x20000000)
+              { itype = OR1K64BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffff0000) == 0x21000000)
+              { itype = OR1K64BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 288 :
+        if ((entire_insn & 0xffffffff) == 0x24000000)
+          { itype = OR1K64BF_INSN_L_RFE; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 544 :
+        if ((entire_insn & 0xffff07ff) == 0x44000000)
+          { itype = OR1K64BF_INSN_L_JR; goto extract_sfmt_l_jr; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 576 :
+        if ((entire_insn & 0xffff07ff) == 0x48000000)
+          { itype = OR1K64BF_INSN_L_JALR; goto extract_sfmt_l_jalr; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 608 : /* fall through */
+      case 609 : /* fall through */
+      case 610 : /* fall through */
+      case 611 : /* fall through */
+      case 612 : /* fall through */
+      case 613 : /* fall through */
+      case 614 : /* fall through */
+      case 615 : /* fall through */
+      case 616 : /* fall through */
+      case 617 : /* fall through */
+      case 618 : /* fall through */
+      case 619 : /* fall through */
+      case 620 : /* fall through */
+      case 621 : /* fall through */
+      case 622 : /* fall through */
+      case 623 : /* fall through */
+      case 624 : /* fall through */
+      case 625 : /* fall through */
+      case 626 : /* fall through */
+      case 627 : /* fall through */
+      case 628 : /* fall through */
+      case 629 : /* fall through */
+      case 630 : /* fall through */
+      case 631 : /* fall through */
+      case 632 : /* fall through */
+      case 633 : /* fall through */
+      case 634 : /* fall through */
+      case 635 : /* fall through */
+      case 636 : /* fall through */
+      case 637 : /* fall through */
+      case 638 : /* fall through */
+      case 639 :
+        if ((entire_insn & 0xffe00000) == 0x4c000000)
+          { itype = OR1K64BF_INSN_L_MACI; goto extract_sfmt_l_maci; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 864 : /* fall through */
+      case 865 : /* fall through */
+      case 866 : /* fall through */
+      case 867 : /* fall through */
+      case 868 : /* fall through */
+      case 869 : /* fall through */
+      case 870 : /* fall through */
+      case 871 : /* fall through */
+      case 872 : /* fall through */
+      case 873 : /* fall through */
+      case 874 : /* fall through */
+      case 875 : /* fall through */
+      case 876 : /* fall through */
+      case 877 : /* fall through */
+      case 878 : /* fall through */
+      case 879 : /* fall through */
+      case 880 : /* fall through */
+      case 881 : /* fall through */
+      case 882 : /* fall through */
+      case 883 : /* fall through */
+      case 884 : /* fall through */
+      case 885 : /* fall through */
+      case 886 : /* fall through */
+      case 887 : /* fall through */
+      case 888 : /* fall through */
+      case 889 : /* fall through */
+      case 890 : /* fall through */
+      case 891 : /* fall through */
+      case 892 : /* fall through */
+      case 893 : /* fall through */
+      case 894 : /* fall through */
+      case 895 : itype = OR1K64BF_INSN_L_LWA; goto extract_sfmt_l_lwa;
+      case 896 :
+        if ((entire_insn & 0xffffffff) == 0x70000000)
+          { itype = OR1K64BF_INSN_L_CUST1; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 928 :
+        if ((entire_insn & 0xffffffff) == 0x74000000)
+          { itype = OR1K64BF_INSN_L_CUST2; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 960 :
+        if ((entire_insn & 0xffffffff) == 0x78000000)
+          { itype = OR1K64BF_INSN_L_CUST3; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 992 :
+        if ((entire_insn & 0xffffffff) == 0x7c000000)
+          { itype = OR1K64BF_INSN_L_CUST4; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1056 : /* fall through */
+      case 1057 : /* fall through */
+      case 1058 : /* fall through */
+      case 1059 : /* fall through */
+      case 1060 : /* fall through */
+      case 1061 : /* fall through */
+      case 1062 : /* fall through */
+      case 1063 : /* fall through */
+      case 1064 : /* fall through */
+      case 1065 : /* fall through */
+      case 1066 : /* fall through */
+      case 1067 : /* fall through */
+      case 1068 : /* fall through */
+      case 1069 : /* fall through */
+      case 1070 : /* fall through */
+      case 1071 : /* fall through */
+      case 1072 : /* fall through */
+      case 1073 : /* fall through */
+      case 1074 : /* fall through */
+      case 1075 : /* fall through */
+      case 1076 : /* fall through */
+      case 1077 : /* fall through */
+      case 1078 : /* fall through */
+      case 1079 : /* fall through */
+      case 1080 : /* fall through */
+      case 1081 : /* fall through */
+      case 1082 : /* fall through */
+      case 1083 : /* fall through */
+      case 1084 : /* fall through */
+      case 1085 : /* fall through */
+      case 1086 : /* fall through */
+      case 1087 : itype = OR1K64BF_INSN_L_LWZ; goto extract_sfmt_l_lwz;
+      case 1088 : /* fall through */
+      case 1089 : /* fall through */
+      case 1090 : /* fall through */
+      case 1091 : /* fall through */
+      case 1092 : /* fall through */
+      case 1093 : /* fall through */
+      case 1094 : /* fall through */
+      case 1095 : /* fall through */
+      case 1096 : /* fall through */
+      case 1097 : /* fall through */
+      case 1098 : /* fall through */
+      case 1099 : /* fall through */
+      case 1100 : /* fall through */
+      case 1101 : /* fall through */
+      case 1102 : /* fall through */
+      case 1103 : /* fall through */
+      case 1104 : /* fall through */
+      case 1105 : /* fall through */
+      case 1106 : /* fall through */
+      case 1107 : /* fall through */
+      case 1108 : /* fall through */
+      case 1109 : /* fall through */
+      case 1110 : /* fall through */
+      case 1111 : /* fall through */
+      case 1112 : /* fall through */
+      case 1113 : /* fall through */
+      case 1114 : /* fall through */
+      case 1115 : /* fall through */
+      case 1116 : /* fall through */
+      case 1117 : /* fall through */
+      case 1118 : /* fall through */
+      case 1119 : itype = OR1K64BF_INSN_L_LWS; goto extract_sfmt_l_lws;
+      case 1120 : /* fall through */
+      case 1121 : /* fall through */
+      case 1122 : /* fall through */
+      case 1123 : /* fall through */
+      case 1124 : /* fall through */
+      case 1125 : /* fall through */
+      case 1126 : /* fall through */
+      case 1127 : /* fall through */
+      case 1128 : /* fall through */
+      case 1129 : /* fall through */
+      case 1130 : /* fall through */
+      case 1131 : /* fall through */
+      case 1132 : /* fall through */
+      case 1133 : /* fall through */
+      case 1134 : /* fall through */
+      case 1135 : /* fall through */
+      case 1136 : /* fall through */
+      case 1137 : /* fall through */
+      case 1138 : /* fall through */
+      case 1139 : /* fall through */
+      case 1140 : /* fall through */
+      case 1141 : /* fall through */
+      case 1142 : /* fall through */
+      case 1143 : /* fall through */
+      case 1144 : /* fall through */
+      case 1145 : /* fall through */
+      case 1146 : /* fall through */
+      case 1147 : /* fall through */
+      case 1148 : /* fall through */
+      case 1149 : /* fall through */
+      case 1150 : /* fall through */
+      case 1151 : itype = OR1K64BF_INSN_L_LBZ; goto extract_sfmt_l_lbz;
+      case 1152 : /* fall through */
+      case 1153 : /* fall through */
+      case 1154 : /* fall through */
+      case 1155 : /* fall through */
+      case 1156 : /* fall through */
+      case 1157 : /* fall through */
+      case 1158 : /* fall through */
+      case 1159 : /* fall through */
+      case 1160 : /* fall through */
+      case 1161 : /* fall through */
+      case 1162 : /* fall through */
+      case 1163 : /* fall through */
+      case 1164 : /* fall through */
+      case 1165 : /* fall through */
+      case 1166 : /* fall through */
+      case 1167 : /* fall through */
+      case 1168 : /* fall through */
+      case 1169 : /* fall through */
+      case 1170 : /* fall through */
+      case 1171 : /* fall through */
+      case 1172 : /* fall through */
+      case 1173 : /* fall through */
+      case 1174 : /* fall through */
+      case 1175 : /* fall through */
+      case 1176 : /* fall through */
+      case 1177 : /* fall through */
+      case 1178 : /* fall through */
+      case 1179 : /* fall through */
+      case 1180 : /* fall through */
+      case 1181 : /* fall through */
+      case 1182 : /* fall through */
+      case 1183 : itype = OR1K64BF_INSN_L_LBS; goto extract_sfmt_l_lbs;
+      case 1184 : /* fall through */
+      case 1185 : /* fall through */
+      case 1186 : /* fall through */
+      case 1187 : /* fall through */
+      case 1188 : /* fall through */
+      case 1189 : /* fall through */
+      case 1190 : /* fall through */
+      case 1191 : /* fall through */
+      case 1192 : /* fall through */
+      case 1193 : /* fall through */
+      case 1194 : /* fall through */
+      case 1195 : /* fall through */
+      case 1196 : /* fall through */
+      case 1197 : /* fall through */
+      case 1198 : /* fall through */
+      case 1199 : /* fall through */
+      case 1200 : /* fall through */
+      case 1201 : /* fall through */
+      case 1202 : /* fall through */
+      case 1203 : /* fall through */
+      case 1204 : /* fall through */
+      case 1205 : /* fall through */
+      case 1206 : /* fall through */
+      case 1207 : /* fall through */
+      case 1208 : /* fall through */
+      case 1209 : /* fall through */
+      case 1210 : /* fall through */
+      case 1211 : /* fall through */
+      case 1212 : /* fall through */
+      case 1213 : /* fall through */
+      case 1214 : /* fall through */
+      case 1215 : itype = OR1K64BF_INSN_L_LHZ; goto extract_sfmt_l_lhz;
+      case 1216 : /* fall through */
+      case 1217 : /* fall through */
+      case 1218 : /* fall through */
+      case 1219 : /* fall through */
+      case 1220 : /* fall through */
+      case 1221 : /* fall through */
+      case 1222 : /* fall through */
+      case 1223 : /* fall through */
+      case 1224 : /* fall through */
+      case 1225 : /* fall through */
+      case 1226 : /* fall through */
+      case 1227 : /* fall through */
+      case 1228 : /* fall through */
+      case 1229 : /* fall through */
+      case 1230 : /* fall through */
+      case 1231 : /* fall through */
+      case 1232 : /* fall through */
+      case 1233 : /* fall through */
+      case 1234 : /* fall through */
+      case 1235 : /* fall through */
+      case 1236 : /* fall through */
+      case 1237 : /* fall through */
+      case 1238 : /* fall through */
+      case 1239 : /* fall through */
+      case 1240 : /* fall through */
+      case 1241 : /* fall through */
+      case 1242 : /* fall through */
+      case 1243 : /* fall through */
+      case 1244 : /* fall through */
+      case 1245 : /* fall through */
+      case 1246 : /* fall through */
+      case 1247 : itype = OR1K64BF_INSN_L_LHS; goto extract_sfmt_l_lhs;
+      case 1248 : /* fall through */
+      case 1249 : /* fall through */
+      case 1250 : /* fall through */
+      case 1251 : /* fall through */
+      case 1252 : /* fall through */
+      case 1253 : /* fall through */
+      case 1254 : /* fall through */
+      case 1255 : /* fall through */
+      case 1256 : /* fall through */
+      case 1257 : /* fall through */
+      case 1258 : /* fall through */
+      case 1259 : /* fall through */
+      case 1260 : /* fall through */
+      case 1261 : /* fall through */
+      case 1262 : /* fall through */
+      case 1263 : /* fall through */
+      case 1264 : /* fall through */
+      case 1265 : /* fall through */
+      case 1266 : /* fall through */
+      case 1267 : /* fall through */
+      case 1268 : /* fall through */
+      case 1269 : /* fall through */
+      case 1270 : /* fall through */
+      case 1271 : /* fall through */
+      case 1272 : /* fall through */
+      case 1273 : /* fall through */
+      case 1274 : /* fall through */
+      case 1275 : /* fall through */
+      case 1276 : /* fall through */
+      case 1277 : /* fall through */
+      case 1278 : /* fall through */
+      case 1279 : itype = OR1K64BF_INSN_L_ADDI; goto extract_sfmt_l_addi;
+      case 1280 : /* fall through */
+      case 1281 : /* fall through */
+      case 1282 : /* fall through */
+      case 1283 : /* fall through */
+      case 1284 : /* fall through */
+      case 1285 : /* fall through */
+      case 1286 : /* fall through */
+      case 1287 : /* fall through */
+      case 1288 : /* fall through */
+      case 1289 : /* fall through */
+      case 1290 : /* fall through */
+      case 1291 : /* fall through */
+      case 1292 : /* fall through */
+      case 1293 : /* fall through */
+      case 1294 : /* fall through */
+      case 1295 : /* fall through */
+      case 1296 : /* fall through */
+      case 1297 : /* fall through */
+      case 1298 : /* fall through */
+      case 1299 : /* fall through */
+      case 1300 : /* fall through */
+      case 1301 : /* fall through */
+      case 1302 : /* fall through */
+      case 1303 : /* fall through */
+      case 1304 : /* fall through */
+      case 1305 : /* fall through */
+      case 1306 : /* fall through */
+      case 1307 : /* fall through */
+      case 1308 : /* fall through */
+      case 1309 : /* fall through */
+      case 1310 : /* fall through */
+      case 1311 : itype = OR1K64BF_INSN_L_ADDIC; goto extract_sfmt_l_addic;
+      case 1312 : /* fall through */
+      case 1313 : /* fall through */
+      case 1314 : /* fall through */
+      case 1315 : /* fall through */
+      case 1316 : /* fall through */
+      case 1317 : /* fall through */
+      case 1318 : /* fall through */
+      case 1319 : /* fall through */
+      case 1320 : /* fall through */
+      case 1321 : /* fall through */
+      case 1322 : /* fall through */
+      case 1323 : /* fall through */
+      case 1324 : /* fall through */
+      case 1325 : /* fall through */
+      case 1326 : /* fall through */
+      case 1327 : /* fall through */
+      case 1328 : /* fall through */
+      case 1329 : /* fall through */
+      case 1330 : /* fall through */
+      case 1331 : /* fall through */
+      case 1332 : /* fall through */
+      case 1333 : /* fall through */
+      case 1334 : /* fall through */
+      case 1335 : /* fall through */
+      case 1336 : /* fall through */
+      case 1337 : /* fall through */
+      case 1338 : /* fall through */
+      case 1339 : /* fall through */
+      case 1340 : /* fall through */
+      case 1341 : /* fall through */
+      case 1342 : /* fall through */
+      case 1343 : itype = OR1K64BF_INSN_L_ANDI; goto extract_sfmt_l_mfspr;
+      case 1344 : /* fall through */
+      case 1345 : /* fall through */
+      case 1346 : /* fall through */
+      case 1347 : /* fall through */
+      case 1348 : /* fall through */
+      case 1349 : /* fall through */
+      case 1350 : /* fall through */
+      case 1351 : /* fall through */
+      case 1352 : /* fall through */
+      case 1353 : /* fall through */
+      case 1354 : /* fall through */
+      case 1355 : /* fall through */
+      case 1356 : /* fall through */
+      case 1357 : /* fall through */
+      case 1358 : /* fall through */
+      case 1359 : /* fall through */
+      case 1360 : /* fall through */
+      case 1361 : /* fall through */
+      case 1362 : /* fall through */
+      case 1363 : /* fall through */
+      case 1364 : /* fall through */
+      case 1365 : /* fall through */
+      case 1366 : /* fall through */
+      case 1367 : /* fall through */
+      case 1368 : /* fall through */
+      case 1369 : /* fall through */
+      case 1370 : /* fall through */
+      case 1371 : /* fall through */
+      case 1372 : /* fall through */
+      case 1373 : /* fall through */
+      case 1374 : /* fall through */
+      case 1375 : itype = OR1K64BF_INSN_L_ORI; goto extract_sfmt_l_mfspr;
+      case 1376 : /* fall through */
+      case 1377 : /* fall through */
+      case 1378 : /* fall through */
+      case 1379 : /* fall through */
+      case 1380 : /* fall through */
+      case 1381 : /* fall through */
+      case 1382 : /* fall through */
+      case 1383 : /* fall through */
+      case 1384 : /* fall through */
+      case 1385 : /* fall through */
+      case 1386 : /* fall through */
+      case 1387 : /* fall through */
+      case 1388 : /* fall through */
+      case 1389 : /* fall through */
+      case 1390 : /* fall through */
+      case 1391 : /* fall through */
+      case 1392 : /* fall through */
+      case 1393 : /* fall through */
+      case 1394 : /* fall through */
+      case 1395 : /* fall through */
+      case 1396 : /* fall through */
+      case 1397 : /* fall through */
+      case 1398 : /* fall through */
+      case 1399 : /* fall through */
+      case 1400 : /* fall through */
+      case 1401 : /* fall through */
+      case 1402 : /* fall through */
+      case 1403 : /* fall through */
+      case 1404 : /* fall through */
+      case 1405 : /* fall through */
+      case 1406 : /* fall through */
+      case 1407 : itype = OR1K64BF_INSN_L_XORI; goto extract_sfmt_l_xori;
+      case 1408 : /* fall through */
+      case 1409 : /* fall through */
+      case 1410 : /* fall through */
+      case 1411 : /* fall through */
+      case 1412 : /* fall through */
+      case 1413 : /* fall through */
+      case 1414 : /* fall through */
+      case 1415 : /* fall through */
+      case 1416 : /* fall through */
+      case 1417 : /* fall through */
+      case 1418 : /* fall through */
+      case 1419 : /* fall through */
+      case 1420 : /* fall through */
+      case 1421 : /* fall through */
+      case 1422 : /* fall through */
+      case 1423 : /* fall through */
+      case 1424 : /* fall through */
+      case 1425 : /* fall through */
+      case 1426 : /* fall through */
+      case 1427 : /* fall through */
+      case 1428 : /* fall through */
+      case 1429 : /* fall through */
+      case 1430 : /* fall through */
+      case 1431 : /* fall through */
+      case 1432 : /* fall through */
+      case 1433 : /* fall through */
+      case 1434 : /* fall through */
+      case 1435 : /* fall through */
+      case 1436 : /* fall through */
+      case 1437 : /* fall through */
+      case 1438 : /* fall through */
+      case 1439 : itype = OR1K64BF_INSN_L_MULI; goto extract_sfmt_l_addi;
+      case 1440 : /* fall through */
+      case 1441 : /* fall through */
+      case 1442 : /* fall through */
+      case 1443 : /* fall through */
+      case 1444 : /* fall through */
+      case 1445 : /* fall through */
+      case 1446 : /* fall through */
+      case 1447 : /* fall through */
+      case 1448 : /* fall through */
+      case 1449 : /* fall through */
+      case 1450 : /* fall through */
+      case 1451 : /* fall through */
+      case 1452 : /* fall through */
+      case 1453 : /* fall through */
+      case 1454 : /* fall through */
+      case 1455 : /* fall through */
+      case 1456 : /* fall through */
+      case 1457 : /* fall through */
+      case 1458 : /* fall through */
+      case 1459 : /* fall through */
+      case 1460 : /* fall through */
+      case 1461 : /* fall through */
+      case 1462 : /* fall through */
+      case 1463 : /* fall through */
+      case 1464 : /* fall through */
+      case 1465 : /* fall through */
+      case 1466 : /* fall through */
+      case 1467 : /* fall through */
+      case 1468 : /* fall through */
+      case 1469 : /* fall through */
+      case 1470 : /* fall through */
+      case 1471 : itype = OR1K64BF_INSN_L_MFSPR; goto extract_sfmt_l_mfspr;
+      case 1472 : /* fall through */
+      case 1473 : /* fall through */
+      case 1474 : /* fall through */
+      case 1475 : /* fall through */
+      case 1476 : /* fall through */
+      case 1477 : /* fall through */
+      case 1478 : /* fall through */
+      case 1479 : /* fall through */
+      case 1480 : /* fall through */
+      case 1481 : /* fall through */
+      case 1482 : /* fall through */
+      case 1483 : /* fall through */
+      case 1484 : /* fall through */
+      case 1485 : /* fall through */
+      case 1486 : /* fall through */
+      case 1487 : /* fall through */
+      case 1488 : /* fall through */
+      case 1489 : /* fall through */
+      case 1490 : /* fall through */
+      case 1491 : /* fall through */
+      case 1492 : /* fall through */
+      case 1493 : /* fall through */
+      case 1494 : /* fall through */
+      case 1495 : /* fall through */
+      case 1496 : /* fall through */
+      case 1497 : /* fall through */
+      case 1498 : /* fall through */
+      case 1499 : /* fall through */
+      case 1500 : /* fall through */
+      case 1501 : /* fall through */
+      case 1502 : /* fall through */
+      case 1503 :
+        {
+          unsigned int val = (((insn >> 6) & (3 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000000)
+              { itype = OR1K64BF_INSN_L_SLLI; goto extract_sfmt_l_slli; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000040)
+              { itype = OR1K64BF_INSN_L_SRLI; goto extract_sfmt_l_slli; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb8000080)
+              { itype = OR1K64BF_INSN_L_SRAI; goto extract_sfmt_l_slli; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xfc00ffc0) == 0xb80000c0)
+              { itype = OR1K64BF_INSN_L_RORI; goto extract_sfmt_l_slli; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1504 : /* fall through */
+      case 1505 : /* fall through */
+      case 1506 : /* fall through */
+      case 1507 : /* fall through */
+      case 1508 : /* fall through */
+      case 1509 : /* fall through */
+      case 1510 : /* fall through */
+      case 1511 : /* fall through */
+      case 1512 : /* fall through */
+      case 1513 : /* fall through */
+      case 1514 : /* fall through */
+      case 1515 : /* fall through */
+      case 1516 : /* fall through */
+      case 1517 : /* fall through */
+      case 1518 : /* fall through */
+      case 1519 : /* fall through */
+      case 1520 : /* fall through */
+      case 1521 : /* fall through */
+      case 1522 : /* fall through */
+      case 1523 : /* fall through */
+      case 1524 : /* fall through */
+      case 1525 : /* fall through */
+      case 1526 : /* fall through */
+      case 1527 : /* fall through */
+      case 1528 : /* fall through */
+      case 1529 : /* fall through */
+      case 1530 : /* fall through */
+      case 1531 : /* fall through */
+      case 1532 : /* fall through */
+      case 1533 : /* fall through */
+      case 1534 : /* fall through */
+      case 1535 :
+        {
+          unsigned int val = (((insn >> 21) & (15 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffe00000) == 0xbc000000)
+              { itype = OR1K64BF_INSN_L_SFEQI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffe00000) == 0xbc200000)
+              { itype = OR1K64BF_INSN_L_SFNEI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffe00000) == 0xbc400000)
+              { itype = OR1K64BF_INSN_L_SFGTUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xffe00000) == 0xbc600000)
+              { itype = OR1K64BF_INSN_L_SFGEUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffe00000) == 0xbc800000)
+              { itype = OR1K64BF_INSN_L_SFLTUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffe00000) == 0xbca00000)
+              { itype = OR1K64BF_INSN_L_SFLEUI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 10 :
+            if ((entire_insn & 0xffe00000) == 0xbd400000)
+              { itype = OR1K64BF_INSN_L_SFGTSI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 11 :
+            if ((entire_insn & 0xffe00000) == 0xbd600000)
+              { itype = OR1K64BF_INSN_L_SFGESI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 12 :
+            if ((entire_insn & 0xffe00000) == 0xbd800000)
+              { itype = OR1K64BF_INSN_L_SFLTSI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 13 :
+            if ((entire_insn & 0xffe00000) == 0xbda00000)
+              { itype = OR1K64BF_INSN_L_SFLESI; goto extract_sfmt_l_sfgtsi; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1536 : /* fall through */
+      case 1537 : /* fall through */
+      case 1538 : /* fall through */
+      case 1539 : /* fall through */
+      case 1540 : /* fall through */
+      case 1541 : /* fall through */
+      case 1542 : /* fall through */
+      case 1543 : /* fall through */
+      case 1544 : /* fall through */
+      case 1545 : /* fall through */
+      case 1546 : /* fall through */
+      case 1547 : /* fall through */
+      case 1548 : /* fall through */
+      case 1549 : /* fall through */
+      case 1550 : /* fall through */
+      case 1551 : /* fall through */
+      case 1552 : /* fall through */
+      case 1553 : /* fall through */
+      case 1554 : /* fall through */
+      case 1555 : /* fall through */
+      case 1556 : /* fall through */
+      case 1557 : /* fall through */
+      case 1558 : /* fall through */
+      case 1559 : /* fall through */
+      case 1560 : /* fall through */
+      case 1561 : /* fall through */
+      case 1562 : /* fall through */
+      case 1563 : /* fall through */
+      case 1564 : /* fall through */
+      case 1565 : /* fall through */
+      case 1566 : /* fall through */
+      case 1567 : itype = OR1K64BF_INSN_L_MTSPR; goto extract_sfmt_l_mtspr;
+      case 1569 :
+        if ((entire_insn & 0xffe007ff) == 0xc4000001)
+          { itype = OR1K64BF_INSN_L_MAC; goto extract_sfmt_l_mac; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1570 :
+        if ((entire_insn & 0xffe007ff) == 0xc4000002)
+          { itype = OR1K64BF_INSN_L_MSB; goto extract_sfmt_l_mac; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1600 :
+        {
+          unsigned int val = (((insn >> 5) & (7 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xc8000000)
+              { itype = OR1K64BF_INSN_LF_ADD_S; goto extract_sfmt_lf_add_s; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 7 :
+            if ((entire_insn & 0xffe007ff) == 0xc80000e0)
+              { itype = OR1K64BF_INSN_LF_CUST1_D; goto extract_sfmt_l_msync; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1601 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000001)
+          { itype = OR1K64BF_INSN_LF_SUB_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1602 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000002)
+          { itype = OR1K64BF_INSN_LF_MUL_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1603 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000003)
+          { itype = OR1K64BF_INSN_LF_DIV_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1604 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000004)
+          { itype = OR1K64BF_INSN_LF_ITOF_S; goto extract_sfmt_lf_itof_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1605 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000005)
+          { itype = OR1K64BF_INSN_LF_FTOI_S; goto extract_sfmt_lf_ftoi_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1606 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000006)
+          { itype = OR1K64BF_INSN_LF_REM_S; goto extract_sfmt_lf_add_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1607 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000007)
+          { itype = OR1K64BF_INSN_LF_MADD_S; goto extract_sfmt_lf_madd_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1608 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000008)
+          { itype = OR1K64BF_INSN_LF_EQ_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1609 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000009)
+          { itype = OR1K64BF_INSN_LF_NE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1610 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000a)
+          { itype = OR1K64BF_INSN_LF_GT_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1611 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000b)
+          { itype = OR1K64BF_INSN_LF_GE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1612 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000c)
+          { itype = OR1K64BF_INSN_LF_LT_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1613 :
+        if ((entire_insn & 0xffe007ff) == 0xc800000d)
+          { itype = OR1K64BF_INSN_LF_LE_S; goto extract_sfmt_lf_eq_s; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1616 :
+        {
+          unsigned int val = (((insn >> 6) & (3 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xc8000010)
+              { itype = OR1K64BF_INSN_LF_ADD_D; goto extract_sfmt_lf_add_d; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xffe007ff) == 0xc80000d0)
+              { itype = OR1K64BF_INSN_LF_CUST1_S; goto extract_sfmt_l_msync; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1617 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000011)
+          { itype = OR1K64BF_INSN_LF_SUB_D; goto extract_sfmt_lf_add_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1618 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000012)
+          { itype = OR1K64BF_INSN_LF_MUL_D; goto extract_sfmt_lf_add_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1619 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000013)
+          { itype = OR1K64BF_INSN_LF_DIV_D; goto extract_sfmt_lf_add_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1620 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000014)
+          { itype = OR1K64BF_INSN_LF_ITOF_D; goto extract_sfmt_lf_itof_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1621 :
+        if ((entire_insn & 0xfc00ffff) == 0xc8000015)
+          { itype = OR1K64BF_INSN_LF_FTOI_D; goto extract_sfmt_lf_ftoi_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1622 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000016)
+          { itype = OR1K64BF_INSN_LF_REM_D; goto extract_sfmt_lf_add_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1623 :
+        if ((entire_insn & 0xfc0007ff) == 0xc8000017)
+          { itype = OR1K64BF_INSN_LF_MADD_D; goto extract_sfmt_lf_madd_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1624 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000018)
+          { itype = OR1K64BF_INSN_LF_EQ_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1625 :
+        if ((entire_insn & 0xffe007ff) == 0xc8000019)
+          { itype = OR1K64BF_INSN_LF_NE_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1626 :
+        if ((entire_insn & 0xffe007ff) == 0xc800001a)
+          { itype = OR1K64BF_INSN_LF_GT_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1627 :
+        if ((entire_insn & 0xffe007ff) == 0xc800001b)
+          { itype = OR1K64BF_INSN_LF_GE_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1628 :
+        if ((entire_insn & 0xffe007ff) == 0xc800001c)
+          { itype = OR1K64BF_INSN_LF_LT_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1629 :
+        if ((entire_insn & 0xffe007ff) == 0xc800001d)
+          { itype = OR1K64BF_INSN_LF_LE_D; goto extract_sfmt_lf_eq_d; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1632 : /* fall through */
+      case 1633 : /* fall through */
+      case 1634 : /* fall through */
+      case 1635 : /* fall through */
+      case 1636 : /* fall through */
+      case 1637 : /* fall through */
+      case 1638 : /* fall through */
+      case 1639 : /* fall through */
+      case 1640 : /* fall through */
+      case 1641 : /* fall through */
+      case 1642 : /* fall through */
+      case 1643 : /* fall through */
+      case 1644 : /* fall through */
+      case 1645 : /* fall through */
+      case 1646 : /* fall through */
+      case 1647 : /* fall through */
+      case 1648 : /* fall through */
+      case 1649 : /* fall through */
+      case 1650 : /* fall through */
+      case 1651 : /* fall through */
+      case 1652 : /* fall through */
+      case 1653 : /* fall through */
+      case 1654 : /* fall through */
+      case 1655 : /* fall through */
+      case 1656 : /* fall through */
+      case 1657 : /* fall through */
+      case 1658 : /* fall through */
+      case 1659 : /* fall through */
+      case 1660 : /* fall through */
+      case 1661 : /* fall through */
+      case 1662 : /* fall through */
+      case 1663 : itype = OR1K64BF_INSN_L_SWA; goto extract_sfmt_l_swa;
+      case 1696 : /* fall through */
+      case 1697 : /* fall through */
+      case 1698 : /* fall through */
+      case 1699 : /* fall through */
+      case 1700 : /* fall through */
+      case 1701 : /* fall through */
+      case 1702 : /* fall through */
+      case 1703 : /* fall through */
+      case 1704 : /* fall through */
+      case 1705 : /* fall through */
+      case 1706 : /* fall through */
+      case 1707 : /* fall through */
+      case 1708 : /* fall through */
+      case 1709 : /* fall through */
+      case 1710 : /* fall through */
+      case 1711 : /* fall through */
+      case 1712 : /* fall through */
+      case 1713 : /* fall through */
+      case 1714 : /* fall through */
+      case 1715 : /* fall through */
+      case 1716 : /* fall through */
+      case 1717 : /* fall through */
+      case 1718 : /* fall through */
+      case 1719 : /* fall through */
+      case 1720 : /* fall through */
+      case 1721 : /* fall through */
+      case 1722 : /* fall through */
+      case 1723 : /* fall through */
+      case 1724 : /* fall through */
+      case 1725 : /* fall through */
+      case 1726 : /* fall through */
+      case 1727 : itype = OR1K64BF_INSN_L_SW; goto extract_sfmt_l_sw;
+      case 1728 : /* fall through */
+      case 1729 : /* fall through */
+      case 1730 : /* fall through */
+      case 1731 : /* fall through */
+      case 1732 : /* fall through */
+      case 1733 : /* fall through */
+      case 1734 : /* fall through */
+      case 1735 : /* fall through */
+      case 1736 : /* fall through */
+      case 1737 : /* fall through */
+      case 1738 : /* fall through */
+      case 1739 : /* fall through */
+      case 1740 : /* fall through */
+      case 1741 : /* fall through */
+      case 1742 : /* fall through */
+      case 1743 : /* fall through */
+      case 1744 : /* fall through */
+      case 1745 : /* fall through */
+      case 1746 : /* fall through */
+      case 1747 : /* fall through */
+      case 1748 : /* fall through */
+      case 1749 : /* fall through */
+      case 1750 : /* fall through */
+      case 1751 : /* fall through */
+      case 1752 : /* fall through */
+      case 1753 : /* fall through */
+      case 1754 : /* fall through */
+      case 1755 : /* fall through */
+      case 1756 : /* fall through */
+      case 1757 : /* fall through */
+      case 1758 : /* fall through */
+      case 1759 : itype = OR1K64BF_INSN_L_SB; goto extract_sfmt_l_sb;
+      case 1760 : /* fall through */
+      case 1761 : /* fall through */
+      case 1762 : /* fall through */
+      case 1763 : /* fall through */
+      case 1764 : /* fall through */
+      case 1765 : /* fall through */
+      case 1766 : /* fall through */
+      case 1767 : /* fall through */
+      case 1768 : /* fall through */
+      case 1769 : /* fall through */
+      case 1770 : /* fall through */
+      case 1771 : /* fall through */
+      case 1772 : /* fall through */
+      case 1773 : /* fall through */
+      case 1774 : /* fall through */
+      case 1775 : /* fall through */
+      case 1776 : /* fall through */
+      case 1777 : /* fall through */
+      case 1778 : /* fall through */
+      case 1779 : /* fall through */
+      case 1780 : /* fall through */
+      case 1781 : /* fall through */
+      case 1782 : /* fall through */
+      case 1783 : /* fall through */
+      case 1784 : /* fall through */
+      case 1785 : /* fall through */
+      case 1786 : /* fall through */
+      case 1787 : /* fall through */
+      case 1788 : /* fall through */
+      case 1789 : /* fall through */
+      case 1790 : /* fall through */
+      case 1791 : itype = OR1K64BF_INSN_L_SH; goto extract_sfmt_l_sh;
+      case 1792 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000000)
+          { itype = OR1K64BF_INSN_L_ADD; goto extract_sfmt_l_add; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1793 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000001)
+          { itype = OR1K64BF_INSN_L_ADDC; goto extract_sfmt_l_addc; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1794 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000002)
+          { itype = OR1K64BF_INSN_L_SUB; goto extract_sfmt_l_add; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1795 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000003)
+          { itype = OR1K64BF_INSN_L_AND; goto extract_sfmt_l_and; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1796 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000004)
+          { itype = OR1K64BF_INSN_L_OR; goto extract_sfmt_l_and; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1797 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000005)
+          { itype = OR1K64BF_INSN_L_XOR; goto extract_sfmt_l_and; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1798 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000306)
+          { itype = OR1K64BF_INSN_L_MUL; goto extract_sfmt_l_add; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1800 :
+        {
+          unsigned int val = (((insn >> 6) & (3 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000008)
+              { itype = OR1K64BF_INSN_L_SLL; goto extract_sfmt_l_sll; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000048)
+              { itype = OR1K64BF_INSN_L_SRL; goto extract_sfmt_l_sll; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xfc0007ff) == 0xe0000088)
+              { itype = OR1K64BF_INSN_L_SRA; goto extract_sfmt_l_sll; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xfc0007ff) == 0xe00000c8)
+              { itype = OR1K64BF_INSN_L_ROR; goto extract_sfmt_l_sll; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1801 :
+        if ((entire_insn & 0xfc0007ff) == 0xe0000309)
+          { itype = OR1K64BF_INSN_L_DIV; goto extract_sfmt_l_div; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1802 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000030a)
+          { itype = OR1K64BF_INSN_L_DIVU; goto extract_sfmt_l_div; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1803 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000030b)
+          { itype = OR1K64BF_INSN_L_MULU; goto extract_sfmt_l_add; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1804 :
+        {
+          unsigned int val = (((insn >> 6) & (3 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000000c)
+              { itype = OR1K64BF_INSN_L_EXTHS; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000004c)
+              { itype = OR1K64BF_INSN_L_EXTBS; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000008c)
+              { itype = OR1K64BF_INSN_L_EXTHZ; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xfc00ffff) == 0xe00000cc)
+              { itype = OR1K64BF_INSN_L_EXTBZ; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1805 :
+        {
+          unsigned int val = (((insn >> 6) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000000d)
+              { itype = OR1K64BF_INSN_L_EXTWS; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc00ffff) == 0xe000004d)
+              { itype = OR1K64BF_INSN_L_EXTWZ; goto extract_sfmt_l_exths; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1806 :
+        if ((entire_insn & 0xfc0007ff) == 0xe000000e)
+          { itype = OR1K64BF_INSN_L_CMOV; goto extract_sfmt_l_cmov; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1807 :
+        {
+          unsigned int val = (((insn >> 8) & (1 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xfc0007ff) == 0xe000000f)
+              { itype = OR1K64BF_INSN_L_FF1; goto extract_sfmt_l_ff1; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xfc0007ff) == 0xe000010f)
+              { itype = OR1K64BF_INSN_L_FL1; goto extract_sfmt_l_ff1; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1824 :
+        {
+          unsigned int val = (((insn >> 21) & (15 << 0)));
+          switch (val)
+          {
+          case 0 :
+            if ((entire_insn & 0xffe007ff) == 0xe4000000)
+              { itype = OR1K64BF_INSN_L_SFEQ; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 1 :
+            if ((entire_insn & 0xffe007ff) == 0xe4200000)
+              { itype = OR1K64BF_INSN_L_SFNE; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 2 :
+            if ((entire_insn & 0xffe007ff) == 0xe4400000)
+              { itype = OR1K64BF_INSN_L_SFGTU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 3 :
+            if ((entire_insn & 0xffe007ff) == 0xe4600000)
+              { itype = OR1K64BF_INSN_L_SFGEU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 4 :
+            if ((entire_insn & 0xffe007ff) == 0xe4800000)
+              { itype = OR1K64BF_INSN_L_SFLTU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 5 :
+            if ((entire_insn & 0xffe007ff) == 0xe4a00000)
+              { itype = OR1K64BF_INSN_L_SFLEU; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 10 :
+            if ((entire_insn & 0xffe007ff) == 0xe5400000)
+              { itype = OR1K64BF_INSN_L_SFGTS; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 11 :
+            if ((entire_insn & 0xffe007ff) == 0xe5600000)
+              { itype = OR1K64BF_INSN_L_SFGES; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 12 :
+            if ((entire_insn & 0xffe007ff) == 0xe5800000)
+              { itype = OR1K64BF_INSN_L_SFLTS; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          case 13 :
+            if ((entire_insn & 0xffe007ff) == 0xe5a00000)
+              { itype = OR1K64BF_INSN_L_SFLES; goto extract_sfmt_l_sfgts; }
+            itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+          }
+        }
+      case 1920 :
+        if ((entire_insn & 0xffffffff) == 0xf0000000)
+          { itype = OR1K64BF_INSN_L_CUST5; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1952 :
+        if ((entire_insn & 0xffffffff) == 0xf4000000)
+          { itype = OR1K64BF_INSN_L_CUST6; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 1984 :
+        if ((entire_insn & 0xffffffff) == 0xf8000000)
+          { itype = OR1K64BF_INSN_L_CUST7; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      case 2016 :
+        if ((entire_insn & 0xffffffff) == 0xfc000000)
+          { itype = OR1K64BF_INSN_L_CUST8; goto extract_sfmt_l_msync; }
+        itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      default : itype = OR1K64BF_INSN_X_INVALID; goto extract_sfmt_empty;
+      }
+    }
+  }
+
+  /* The instruction has been decoded, now extract the fields.  */
+
+ extract_sfmt_empty:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_j:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    UDI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jal:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    UDI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jr:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r3;
+
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_jalr:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r3;
+
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_bnf:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_j.f
+    UDI f_disp26;
+
+    f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (i_disp26) = f_disp26;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_trap:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_trap", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_msync:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+#define FLD(f) abuf->fields.sfmt_empty.f
+
+
+  /* Record the fields for the semantic handler.  */
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_msync", (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_nop_imm:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_uimm16;
+
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_uimm16) = f_uimm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_movhi:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_r1;
+    UINT f_uimm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_uimm16) = f_uimm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_macrc:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mfspr:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_uimm16) = f_uimm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mtspr:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    UINT f_uimm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_uimm16_split) = f_uimm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_uimm16_split 0x%x", 'x', f_uimm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lwz:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lws:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lwa:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lbz:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lbs:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lhz:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_lhs:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sw:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sb:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sh:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_swa:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+    UINT f_imm16_25_5;
+    UINT f_r2;
+    UINT f_r3;
+    UINT f_imm16_10_11;
+    INT f_simm16_split;
+
+    f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+    f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
+  f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_simm16_split) = f_simm16_split;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sll:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_slli:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_uimm6;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_uimm6) = f_uimm6;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2, "f_uimm6 0x%x", 'x', f_uimm6, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_and:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_add:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addc:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_div:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_ff1:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_xori:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addi:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_addic:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r1;
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_exths:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_cmov:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sfgts:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_sfgtsi:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_mac:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_l_maci:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+    UINT f_r2;
+    INT f_simm16;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_simm16) = f_simm16;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_add_s:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_add_d:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_d", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_itof_s:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_itof_d:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_d", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_ftoi_s:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+    UINT f_r2;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_ftoi_d:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_d", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_eq_s:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_eq_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_eq_d:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_eq_d", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_madd_s:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+    UINT f_r1;
+    UINT f_r2;
+    UINT f_r3;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+    f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
+    f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r2) = f_r2;
+  FLD (f_r3) = f_r3;
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_lf_madd_d:
+  {
+    const IDESC *idesc = &or1k64bf_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+    UINT f_r1;
+
+    f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_r1) = f_r1;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_d", "f_r1 0x%x", 'x', f_r1, (char *) 0));
+
+#undef FLD
+    return idesc;
+  }
+
+}
diff --git a/sim/or1k/decode64.h b/sim/or1k/decode64.h
new file mode 100644
index 0000000..b43e6ee
--- /dev/null
+++ b/sim/or1k/decode64.h
@@ -0,0 +1,97 @@
+/* Decode header for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef OR1K64BF_DECODE_H
+#define OR1K64BF_DECODE_H
+
+extern const IDESC *or1k64bf_decode (SIM_CPU *, IADDR,
+                                  CGEN_INSN_WORD, CGEN_INSN_WORD,
+                                  ARGBUF *);
+extern void or1k64bf_init_idesc_table (SIM_CPU *);
+extern void or1k64bf_sem_init_idesc_table (SIM_CPU *);
+extern void or1k64bf_semf_init_idesc_table (SIM_CPU *);
+
+/* Enum declaration for instructions in cpu family or1k64bf.  */
+typedef enum or1k64bf_insn_type {
+  OR1K64BF_INSN_X_INVALID, OR1K64BF_INSN_X_AFTER, OR1K64BF_INSN_X_BEFORE, OR1K64BF_INSN_X_CTI_CHAIN
+ , OR1K64BF_INSN_X_CHAIN, OR1K64BF_INSN_X_BEGIN, OR1K64BF_INSN_L_J, OR1K64BF_INSN_L_JAL
+ , OR1K64BF_INSN_L_JR, OR1K64BF_INSN_L_JALR, OR1K64BF_INSN_L_BNF, OR1K64BF_INSN_L_BF
+ , OR1K64BF_INSN_L_TRAP, OR1K64BF_INSN_L_SYS, OR1K64BF_INSN_L_MSYNC, OR1K64BF_INSN_L_PSYNC
+ , OR1K64BF_INSN_L_CSYNC, OR1K64BF_INSN_L_RFE, OR1K64BF_INSN_L_NOP_IMM, OR1K64BF_INSN_L_MOVHI
+ , OR1K64BF_INSN_L_MACRC, OR1K64BF_INSN_L_MFSPR, OR1K64BF_INSN_L_MTSPR, OR1K64BF_INSN_L_LWZ
+ , OR1K64BF_INSN_L_LWS, OR1K64BF_INSN_L_LWA, OR1K64BF_INSN_L_LBZ, OR1K64BF_INSN_L_LBS
+ , OR1K64BF_INSN_L_LHZ, OR1K64BF_INSN_L_LHS, OR1K64BF_INSN_L_SW, OR1K64BF_INSN_L_SB
+ , OR1K64BF_INSN_L_SH, OR1K64BF_INSN_L_SWA, OR1K64BF_INSN_L_SLL, OR1K64BF_INSN_L_SLLI
+ , OR1K64BF_INSN_L_SRL, OR1K64BF_INSN_L_SRLI, OR1K64BF_INSN_L_SRA, OR1K64BF_INSN_L_SRAI
+ , OR1K64BF_INSN_L_ROR, OR1K64BF_INSN_L_RORI, OR1K64BF_INSN_L_AND, OR1K64BF_INSN_L_OR
+ , OR1K64BF_INSN_L_XOR, OR1K64BF_INSN_L_ADD, OR1K64BF_INSN_L_SUB, OR1K64BF_INSN_L_ADDC
+ , OR1K64BF_INSN_L_MUL, OR1K64BF_INSN_L_MULU, OR1K64BF_INSN_L_DIV, OR1K64BF_INSN_L_DIVU
+ , OR1K64BF_INSN_L_FF1, OR1K64BF_INSN_L_FL1, OR1K64BF_INSN_L_ANDI, OR1K64BF_INSN_L_ORI
+ , OR1K64BF_INSN_L_XORI, OR1K64BF_INSN_L_ADDI, OR1K64BF_INSN_L_ADDIC, OR1K64BF_INSN_L_MULI
+ , OR1K64BF_INSN_L_EXTHS, OR1K64BF_INSN_L_EXTBS, OR1K64BF_INSN_L_EXTHZ, OR1K64BF_INSN_L_EXTBZ
+ , OR1K64BF_INSN_L_EXTWS, OR1K64BF_INSN_L_EXTWZ, OR1K64BF_INSN_L_CMOV, OR1K64BF_INSN_L_SFGTS
+ , OR1K64BF_INSN_L_SFGTSI, OR1K64BF_INSN_L_SFGTU, OR1K64BF_INSN_L_SFGTUI, OR1K64BF_INSN_L_SFGES
+ , OR1K64BF_INSN_L_SFGESI, OR1K64BF_INSN_L_SFGEU, OR1K64BF_INSN_L_SFGEUI, OR1K64BF_INSN_L_SFLTS
+ , OR1K64BF_INSN_L_SFLTSI, OR1K64BF_INSN_L_SFLTU, OR1K64BF_INSN_L_SFLTUI, OR1K64BF_INSN_L_SFLES
+ , OR1K64BF_INSN_L_SFLESI, OR1K64BF_INSN_L_SFLEU, OR1K64BF_INSN_L_SFLEUI, OR1K64BF_INSN_L_SFEQ
+ , OR1K64BF_INSN_L_SFEQI, OR1K64BF_INSN_L_SFNE, OR1K64BF_INSN_L_SFNEI, OR1K64BF_INSN_L_MAC
+ , OR1K64BF_INSN_L_MSB, OR1K64BF_INSN_L_MACI, OR1K64BF_INSN_L_CUST1, OR1K64BF_INSN_L_CUST2
+ , OR1K64BF_INSN_L_CUST3, OR1K64BF_INSN_L_CUST4, OR1K64BF_INSN_L_CUST5, OR1K64BF_INSN_L_CUST6
+ , OR1K64BF_INSN_L_CUST7, OR1K64BF_INSN_L_CUST8, OR1K64BF_INSN_LF_ADD_S, OR1K64BF_INSN_LF_ADD_D
+ , OR1K64BF_INSN_LF_SUB_S, OR1K64BF_INSN_LF_SUB_D, OR1K64BF_INSN_LF_MUL_S, OR1K64BF_INSN_LF_MUL_D
+ , OR1K64BF_INSN_LF_DIV_S, OR1K64BF_INSN_LF_DIV_D, OR1K64BF_INSN_LF_REM_S, OR1K64BF_INSN_LF_REM_D
+ , OR1K64BF_INSN_LF_ITOF_S, OR1K64BF_INSN_LF_ITOF_D, OR1K64BF_INSN_LF_FTOI_S, OR1K64BF_INSN_LF_FTOI_D
+ , OR1K64BF_INSN_LF_EQ_S, OR1K64BF_INSN_LF_EQ_D, OR1K64BF_INSN_LF_NE_S, OR1K64BF_INSN_LF_NE_D
+ , OR1K64BF_INSN_LF_GE_S, OR1K64BF_INSN_LF_GE_D, OR1K64BF_INSN_LF_GT_S, OR1K64BF_INSN_LF_GT_D
+ , OR1K64BF_INSN_LF_LT_S, OR1K64BF_INSN_LF_LT_D, OR1K64BF_INSN_LF_LE_S, OR1K64BF_INSN_LF_LE_D
+ , OR1K64BF_INSN_LF_MADD_S, OR1K64BF_INSN_LF_MADD_D, OR1K64BF_INSN_LF_CUST1_S, OR1K64BF_INSN_LF_CUST1_D
+ , OR1K64BF_INSN__MAX
+} OR1K64BF_INSN_TYPE;
+
+/* Enum declaration for semantic formats in cpu family or1k64bf.  */
+typedef enum or1k64bf_sfmt_type {
+  OR1K64BF_SFMT_EMPTY, OR1K64BF_SFMT_L_J, OR1K64BF_SFMT_L_JAL, OR1K64BF_SFMT_L_JR
+ , OR1K64BF_SFMT_L_JALR, OR1K64BF_SFMT_L_BNF, OR1K64BF_SFMT_L_TRAP, OR1K64BF_SFMT_L_MSYNC
+ , OR1K64BF_SFMT_L_NOP_IMM, OR1K64BF_SFMT_L_MOVHI, OR1K64BF_SFMT_L_MACRC, OR1K64BF_SFMT_L_MFSPR
+ , OR1K64BF_SFMT_L_MTSPR, OR1K64BF_SFMT_L_LWZ, OR1K64BF_SFMT_L_LWS, OR1K64BF_SFMT_L_LWA
+ , OR1K64BF_SFMT_L_LBZ, OR1K64BF_SFMT_L_LBS, OR1K64BF_SFMT_L_LHZ, OR1K64BF_SFMT_L_LHS
+ , OR1K64BF_SFMT_L_SW, OR1K64BF_SFMT_L_SB, OR1K64BF_SFMT_L_SH, OR1K64BF_SFMT_L_SWA
+ , OR1K64BF_SFMT_L_SLL, OR1K64BF_SFMT_L_SLLI, OR1K64BF_SFMT_L_AND, OR1K64BF_SFMT_L_ADD
+ , OR1K64BF_SFMT_L_ADDC, OR1K64BF_SFMT_L_DIV, OR1K64BF_SFMT_L_FF1, OR1K64BF_SFMT_L_XORI
+ , OR1K64BF_SFMT_L_ADDI, OR1K64BF_SFMT_L_ADDIC, OR1K64BF_SFMT_L_EXTHS, OR1K64BF_SFMT_L_CMOV
+ , OR1K64BF_SFMT_L_SFGTS, OR1K64BF_SFMT_L_SFGTSI, OR1K64BF_SFMT_L_MAC, OR1K64BF_SFMT_L_MACI
+ , OR1K64BF_SFMT_LF_ADD_S, OR1K64BF_SFMT_LF_ADD_D, OR1K64BF_SFMT_LF_ITOF_S, OR1K64BF_SFMT_LF_ITOF_D
+ , OR1K64BF_SFMT_LF_FTOI_S, OR1K64BF_SFMT_LF_FTOI_D, OR1K64BF_SFMT_LF_EQ_S, OR1K64BF_SFMT_LF_EQ_D
+ , OR1K64BF_SFMT_LF_MADD_S, OR1K64BF_SFMT_LF_MADD_D
+} OR1K64BF_SFMT_TYPE;
+
+/* Function unit handlers (user written).  */
+
+
+/* Profiling before/after handlers (user written) */
+
+extern void or1k64bf_model_insn_before (SIM_CPU *, int /*first_p*/);
+extern void or1k64bf_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/);
+
+#endif /* OR1K64BF_DECODE_H */
diff --git a/sim/or1k/model32.c b/sim/or1k/model32.c
new file mode 100644
index 0000000..ec33b24
--- /dev/null
+++ b/sim/or1k/model32.c
@@ -0,0 +1,3809 @@
+/* Simulator model support for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+
+#include "sim-main.h"
+
+/* The profiling data is recorded here, but is accessed via the profiling
+   mechanism.  After all, this is information for profiling.  */
+
+#if WITH_PROFILE_MODEL_P
+
+/* Model handlers for each insn.  */
+
+static int
+model_or1200_l_j (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_jal (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_jr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_jalr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_bnf (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_bf (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_trap (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sys (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_msync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_psync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_csync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_rfe (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_nop_imm (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_movhi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_macrc (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_mfspr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_mtspr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lwz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lws (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lwa (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lbz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lbs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lhz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_lhs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sw (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sb (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sh (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_swa (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sll (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_slli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_srl (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_srli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sra (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_srai (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_ror (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_rori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_and (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_or (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_xor (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_add (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sub (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_addc (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_mul (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_mulu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_div (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_divu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_ff1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_fl1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_andi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_ori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_xori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_addi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_addic (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_muli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_exths (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_extbs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_exthz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_extbz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_extws (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_extwz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cmov (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgts (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgtsi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgtu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgtui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfges (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgesi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgeu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfgeui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sflts (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfltsi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfltu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfltui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfles (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sflesi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfleu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfleui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfeq (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfeqi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfne (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_sfnei (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_mac (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_msb (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_maci (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust2 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust3 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust4 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust5 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust6 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust7 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_l_cust8 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_add_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_sub_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_mul_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_div_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_rem_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_itof_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_ftoi_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_eq_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_ne_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_ge_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_gt_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_lt_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_le_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_madd_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200_lf_cust1_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_j (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_jal (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_jr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_jalr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_bnf (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_bf (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_trap (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sys (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_msync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_psync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_csync (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_rfe (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_nop_imm (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_movhi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_macrc (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_mfspr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_mtspr (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lwz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lws (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lwa (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lbz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lbs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lhz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_lhs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sw (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sb (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sh (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_swa (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sll (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_slli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_srl (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_srli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sra (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_srai (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_ror (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_rori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_and (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_or (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_xor (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_add (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sub (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_addc (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_mul (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_mulu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_div (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_divu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_ff1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_fl1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_andi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_ori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_xori (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_addi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_addic (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_muli (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_exths (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_extbs (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_exthz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_extbz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_extws (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_extwz (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cmov (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgts (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgtsi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgtu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgtui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfges (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgesi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgeu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfgeui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sflts (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfltsi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfltu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfltui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfles (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sflesi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfleu (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfleui (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfeq (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfeqi (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfne (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_sfnei (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_mac (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_msb (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_maci (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust1 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust2 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust3 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust4 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust5 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust6 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust7 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_l_cust8 (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_add_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_sub_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_mul_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_div_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_rem_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_itof_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_ftoi_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_eq_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_ne_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_ge_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_gt_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_lt_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_le_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_madd_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+static int
+model_or1200nd_lf_cust1_s (SIM_CPU *current_cpu, void *sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
+  const IDESC * UNUSED idesc = abuf->idesc;
+  int cycles = 0;
+  {
+    int referenced = 0;
+    int UNUSED insn_referenced = abuf->written;
+    cycles += or1k32bf_model_or1200nd_u_exec (current_cpu, idesc, 0, referenced);
+  }
+  return cycles;
+#undef FLD
+}
+
+/* We assume UNIT_NONE == 0 because the tables don't always terminate
+   entries with it.  */
+
+/* Model timing data for `or1200'.  */
+
+static const INSN_TIMING or1200_timing[] = {
+  { OR1K32BF_INSN_X_INVALID, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_AFTER, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_BEFORE, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_CHAIN, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_BEGIN, 0, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_J, model_or1200_l_j, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JAL, model_or1200_l_jal, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JR, model_or1200_l_jr, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JALR, model_or1200_l_jalr, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_BNF, model_or1200_l_bnf, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_BF, model_or1200_l_bf, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_TRAP, model_or1200_l_trap, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SYS, model_or1200_l_sys, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MSYNC, model_or1200_l_msync, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_PSYNC, model_or1200_l_psync, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CSYNC, model_or1200_l_csync, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_RFE, model_or1200_l_rfe, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_NOP_IMM, model_or1200_l_nop_imm, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MOVHI, model_or1200_l_movhi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MACRC, model_or1200_l_macrc, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MFSPR, model_or1200_l_mfspr, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MTSPR, model_or1200_l_mtspr, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWZ, model_or1200_l_lwz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWS, model_or1200_l_lws, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWA, model_or1200_l_lwa, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LBZ, model_or1200_l_lbz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LBS, model_or1200_l_lbs, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LHZ, model_or1200_l_lhz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LHS, model_or1200_l_lhs, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SW, model_or1200_l_sw, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SB, model_or1200_l_sb, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SH, model_or1200_l_sh, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SWA, model_or1200_l_swa, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SLL, model_or1200_l_sll, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SLLI, model_or1200_l_slli, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRL, model_or1200_l_srl, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRLI, model_or1200_l_srli, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRA, model_or1200_l_sra, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRAI, model_or1200_l_srai, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ROR, model_or1200_l_ror, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_RORI, model_or1200_l_rori, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_AND, model_or1200_l_and, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_OR, model_or1200_l_or, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_XOR, model_or1200_l_xor, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADD, model_or1200_l_add, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SUB, model_or1200_l_sub, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDC, model_or1200_l_addc, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MUL, model_or1200_l_mul, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MULU, model_or1200_l_mulu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_DIV, model_or1200_l_div, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_DIVU, model_or1200_l_divu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_FF1, model_or1200_l_ff1, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_FL1, model_or1200_l_fl1, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ANDI, model_or1200_l_andi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ORI, model_or1200_l_ori, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_XORI, model_or1200_l_xori, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDI, model_or1200_l_addi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDIC, model_or1200_l_addic, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MULI, model_or1200_l_muli, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTHS, model_or1200_l_exths, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTBS, model_or1200_l_extbs, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTHZ, model_or1200_l_exthz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTBZ, model_or1200_l_extbz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTWS, model_or1200_l_extws, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTWZ, model_or1200_l_extwz, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CMOV, model_or1200_l_cmov, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTS, model_or1200_l_sfgts, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTSI, model_or1200_l_sfgtsi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTU, model_or1200_l_sfgtu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTUI, model_or1200_l_sfgtui, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGES, model_or1200_l_sfges, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGESI, model_or1200_l_sfgesi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGEU, model_or1200_l_sfgeu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGEUI, model_or1200_l_sfgeui, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTS, model_or1200_l_sflts, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTSI, model_or1200_l_sfltsi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTU, model_or1200_l_sfltu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTUI, model_or1200_l_sfltui, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLES, model_or1200_l_sfles, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLESI, model_or1200_l_sflesi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLEU, model_or1200_l_sfleu, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLEUI, model_or1200_l_sfleui, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFEQ, model_or1200_l_sfeq, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFEQI, model_or1200_l_sfeqi, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFNE, model_or1200_l_sfne, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFNEI, model_or1200_l_sfnei, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MAC, model_or1200_l_mac, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MSB, model_or1200_l_msb, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MACI, model_or1200_l_maci, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST1, model_or1200_l_cust1, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST2, model_or1200_l_cust2, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST3, model_or1200_l_cust3, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST4, model_or1200_l_cust4, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST5, model_or1200_l_cust5, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST6, model_or1200_l_cust6, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST7, model_or1200_l_cust7, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST8, model_or1200_l_cust8, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_ADD_S, model_or1200_lf_add_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_SUB_S, model_or1200_lf_sub_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_MUL_S, model_or1200_lf_mul_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_DIV_S, model_or1200_lf_div_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_REM_S, model_or1200_lf_rem_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_ITOF_S, model_or1200_lf_itof_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_FTOI_S, model_or1200_lf_ftoi_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_EQ_S, model_or1200_lf_eq_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_NE_S, model_or1200_lf_ne_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_GE_S, model_or1200_lf_ge_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_GT_S, model_or1200_lf_gt_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_LT_S, model_or1200_lf_lt_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_LE_S, model_or1200_lf_le_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_MADD_S, model_or1200_lf_madd_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_CUST1_S, model_or1200_lf_cust1_s, { { (int) UNIT_OR1200_U_EXEC, 1, 1 } } },
+};
+
+/* Model timing data for `or1200nd'.  */
+
+static const INSN_TIMING or1200nd_timing[] = {
+  { OR1K32BF_INSN_X_INVALID, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_AFTER, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_BEFORE, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_CHAIN, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_X_BEGIN, 0, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_J, model_or1200nd_l_j, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JAL, model_or1200nd_l_jal, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JR, model_or1200nd_l_jr, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_JALR, model_or1200nd_l_jalr, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_BNF, model_or1200nd_l_bnf, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_BF, model_or1200nd_l_bf, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_TRAP, model_or1200nd_l_trap, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SYS, model_or1200nd_l_sys, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MSYNC, model_or1200nd_l_msync, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_PSYNC, model_or1200nd_l_psync, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CSYNC, model_or1200nd_l_csync, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_RFE, model_or1200nd_l_rfe, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_NOP_IMM, model_or1200nd_l_nop_imm, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MOVHI, model_or1200nd_l_movhi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MACRC, model_or1200nd_l_macrc, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MFSPR, model_or1200nd_l_mfspr, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MTSPR, model_or1200nd_l_mtspr, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWZ, model_or1200nd_l_lwz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWS, model_or1200nd_l_lws, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LWA, model_or1200nd_l_lwa, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LBZ, model_or1200nd_l_lbz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LBS, model_or1200nd_l_lbs, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LHZ, model_or1200nd_l_lhz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_LHS, model_or1200nd_l_lhs, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SW, model_or1200nd_l_sw, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SB, model_or1200nd_l_sb, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SH, model_or1200nd_l_sh, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SWA, model_or1200nd_l_swa, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SLL, model_or1200nd_l_sll, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SLLI, model_or1200nd_l_slli, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRL, model_or1200nd_l_srl, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRLI, model_or1200nd_l_srli, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRA, model_or1200nd_l_sra, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SRAI, model_or1200nd_l_srai, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ROR, model_or1200nd_l_ror, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_RORI, model_or1200nd_l_rori, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_AND, model_or1200nd_l_and, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_OR, model_or1200nd_l_or, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_XOR, model_or1200nd_l_xor, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADD, model_or1200nd_l_add, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SUB, model_or1200nd_l_sub, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDC, model_or1200nd_l_addc, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MUL, model_or1200nd_l_mul, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MULU, model_or1200nd_l_mulu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_DIV, model_or1200nd_l_div, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_DIVU, model_or1200nd_l_divu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_FF1, model_or1200nd_l_ff1, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_FL1, model_or1200nd_l_fl1, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ANDI, model_or1200nd_l_andi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ORI, model_or1200nd_l_ori, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_XORI, model_or1200nd_l_xori, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDI, model_or1200nd_l_addi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_ADDIC, model_or1200nd_l_addic, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MULI, model_or1200nd_l_muli, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTHS, model_or1200nd_l_exths, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTBS, model_or1200nd_l_extbs, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTHZ, model_or1200nd_l_exthz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTBZ, model_or1200nd_l_extbz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTWS, model_or1200nd_l_extws, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_EXTWZ, model_or1200nd_l_extwz, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CMOV, model_or1200nd_l_cmov, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTS, model_or1200nd_l_sfgts, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTSI, model_or1200nd_l_sfgtsi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTU, model_or1200nd_l_sfgtu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGTUI, model_or1200nd_l_sfgtui, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGES, model_or1200nd_l_sfges, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGESI, model_or1200nd_l_sfgesi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGEU, model_or1200nd_l_sfgeu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFGEUI, model_or1200nd_l_sfgeui, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTS, model_or1200nd_l_sflts, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTSI, model_or1200nd_l_sfltsi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTU, model_or1200nd_l_sfltu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLTUI, model_or1200nd_l_sfltui, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLES, model_or1200nd_l_sfles, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLESI, model_or1200nd_l_sflesi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLEU, model_or1200nd_l_sfleu, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFLEUI, model_or1200nd_l_sfleui, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFEQ, model_or1200nd_l_sfeq, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFEQI, model_or1200nd_l_sfeqi, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFNE, model_or1200nd_l_sfne, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_SFNEI, model_or1200nd_l_sfnei, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MAC, model_or1200nd_l_mac, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MSB, model_or1200nd_l_msb, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_MACI, model_or1200nd_l_maci, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST1, model_or1200nd_l_cust1, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST2, model_or1200nd_l_cust2, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST3, model_or1200nd_l_cust3, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST4, model_or1200nd_l_cust4, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST5, model_or1200nd_l_cust5, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST6, model_or1200nd_l_cust6, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST7, model_or1200nd_l_cust7, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_L_CUST8, model_or1200nd_l_cust8, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_ADD_S, model_or1200nd_lf_add_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_SUB_S, model_or1200nd_lf_sub_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_MUL_S, model_or1200nd_lf_mul_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_DIV_S, model_or1200nd_lf_div_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_REM_S, model_or1200nd_lf_rem_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_ITOF_S, model_or1200nd_lf_itof_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_FTOI_S, model_or1200nd_lf_ftoi_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_EQ_S, model_or1200nd_lf_eq_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_NE_S, model_or1200nd_lf_ne_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_GE_S, model_or1200nd_lf_ge_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_GT_S, model_or1200nd_lf_gt_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_LT_S, model_or1200nd_lf_lt_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_LE_S, model_or1200nd_lf_le_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_MADD_S, model_or1200nd_lf_madd_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+  { OR1K32BF_INSN_LF_CUST1_S, model_or1200nd_lf_cust1_s, { { (int) UNIT_OR1200ND_U_EXEC, 1, 1 } } },
+};
+
+#endif /* WITH_PROFILE_MODEL_P */
+
+static void
+or1200_model_init (SIM_CPU *cpu)
+{
+  CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_OR1200_DATA));
+}
+
+static void
+or1200nd_model_init (SIM_CPU *cpu)
+{
+  CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_OR1200ND_DATA));
+}
+
+#if WITH_PROFILE_MODEL_P
+#define TIMING_DATA(td) td
+#else
+#define TIMING_DATA(td) 0
+#endif
+
+static const SIM_MODEL or32_models[] =
+{
+  { "or1200", & or32_mach, MODEL_OR1200, TIMING_DATA (& or1200_timing[0]), or1200_model_init },
+  { 0 }
+};
+
+static const SIM_MODEL or32nd_models[] =
+{
+  { "or1200nd", & or32nd_mach, MODEL_OR1200ND, TIMING_DATA (& or1200nd_timing[0]), or1200nd_model_init },
+  { 0 }
+};
+
+/* The properties of this cpu's implementation.  */
+
+static const SIM_MACH_IMP_PROPERTIES or1k32bf_imp_properties =
+{
+  sizeof (SIM_CPU),
+#if WITH_SCACHE
+  sizeof (SCACHE)
+#else
+  0
+#endif
+};
+
+
+static void
+or1k32bf_prepare_run (SIM_CPU *cpu)
+{
+  if (CPU_IDESC (cpu) == NULL)
+    or1k32bf_init_idesc_table (cpu);
+}
+
+static const CGEN_INSN *
+or1k32bf_get_idata (SIM_CPU *cpu, int inum)
+{
+  return CPU_IDESC (cpu) [inum].idata;
+}
+
+static void
+or32_init_cpu (SIM_CPU *cpu)
+{
+  CPU_REG_FETCH (cpu) = or1k32bf_fetch_register;
+  CPU_REG_STORE (cpu) = or1k32bf_store_register;
+  CPU_PC_FETCH (cpu) = or1k32bf_h_pc_get;
+  CPU_PC_STORE (cpu) = or1k32bf_h_pc_set;
+  CPU_GET_IDATA (cpu) = or1k32bf_get_idata;
+  CPU_MAX_INSNS (cpu) = OR1K32BF_INSN__MAX;
+  CPU_INSN_NAME (cpu) = cgen_insn_name;
+  CPU_FULL_ENGINE_FN (cpu) = or1k32bf_engine_run_full;
+#if WITH_FAST
+  CPU_FAST_ENGINE_FN (cpu) = or1k32bf_engine_run_fast;
+#else
+  CPU_FAST_ENGINE_FN (cpu) = or1k32bf_engine_run_full;
+#endif
+}
+
+const SIM_MACH or32_mach =
+{
+  "or32", "or1k", MACH_OR32,
+  32, 32, & or32_models[0], & or1k32bf_imp_properties,
+  or32_init_cpu,
+  or1k32bf_prepare_run
+};
+
+static void
+or32nd_init_cpu (SIM_CPU *cpu)
+{
+  CPU_REG_FETCH (cpu) = or1k32bf_fetch_register;
+  CPU_REG_STORE (cpu) = or1k32bf_store_register;
+  CPU_PC_FETCH (cpu) = or1k32bf_h_pc_get;
+  CPU_PC_STORE (cpu) = or1k32bf_h_pc_set;
+  CPU_GET_IDATA (cpu) = or1k32bf_get_idata;
+  CPU_MAX_INSNS (cpu) = OR1K32BF_INSN__MAX;
+  CPU_INSN_NAME (cpu) = cgen_insn_name;
+  CPU_FULL_ENGINE_FN (cpu) = or1k32bf_engine_run_full;
+#if WITH_FAST
+  CPU_FAST_ENGINE_FN (cpu) = or1k32bf_engine_run_fast;
+#else
+  CPU_FAST_ENGINE_FN (cpu) = or1k32bf_engine_run_full;
+#endif
+}
+
+const SIM_MACH or32nd_mach =
+{
+  "or32nd", "or1knd", MACH_OR32ND,
+  32, 32, & or32nd_models[0], & or1k32bf_imp_properties,
+  or32nd_init_cpu,
+  or1k32bf_prepare_run
+};
+
diff --git a/sim/or1k/model64.c b/sim/or1k/model64.c
new file mode 100644
index 0000000..93107d2
--- /dev/null
+++ b/sim/or1k/model64.c
@@ -0,0 +1,135 @@
+/* Simulator model support for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+
+#include "sim-main.h"
+
+/* The profiling data is recorded here, but is accessed via the profiling
+   mechanism.  After all, this is information for profiling.  */
+
+#if WITH_PROFILE_MODEL_P
+
+/* Model handlers for each insn.  */
+
+/* We assume UNIT_NONE == 0 because the tables don't always terminate
+   entries with it.  */
+
+#endif /* WITH_PROFILE_MODEL_P */
+
+#if WITH_PROFILE_MODEL_P
+#define TIMING_DATA(td) td
+#else
+#define TIMING_DATA(td) 0
+#endif
+
+static const SIM_MODEL or64_models[] =
+{
+  { 0 }
+};
+
+static const SIM_MODEL or64nd_models[] =
+{
+  { 0 }
+};
+
+/* The properties of this cpu's implementation.  */
+
+static const SIM_MACH_IMP_PROPERTIES or1k64bf_imp_properties =
+{
+  sizeof (SIM_CPU),
+#if WITH_SCACHE
+  sizeof (SCACHE)
+#else
+  0
+#endif
+};
+
+
+static void
+or1k64bf_prepare_run (SIM_CPU *cpu)
+{
+  if (CPU_IDESC (cpu) == NULL)
+    or1k64bf_init_idesc_table (cpu);
+}
+
+static const CGEN_INSN *
+or1k64bf_get_idata (SIM_CPU *cpu, int inum)
+{
+  return CPU_IDESC (cpu) [inum].idata;
+}
+
+static void
+or64_init_cpu (SIM_CPU *cpu)
+{
+  CPU_REG_FETCH (cpu) = or1k64bf_fetch_register;
+  CPU_REG_STORE (cpu) = or1k64bf_store_register;
+  CPU_PC_FETCH (cpu) = or1k64bf_h_pc_get;
+  CPU_PC_STORE (cpu) = or1k64bf_h_pc_set;
+  CPU_GET_IDATA (cpu) = or1k64bf_get_idata;
+  CPU_MAX_INSNS (cpu) = OR1K64BF_INSN__MAX;
+  CPU_INSN_NAME (cpu) = cgen_insn_name;
+  CPU_FULL_ENGINE_FN (cpu) = or1k64bf_engine_run_full;
+#if WITH_FAST
+  CPU_FAST_ENGINE_FN (cpu) = or1k64bf_engine_run_fast;
+#else
+  CPU_FAST_ENGINE_FN (cpu) = or1k64bf_engine_run_full;
+#endif
+}
+
+const SIM_MACH or64_mach =
+{
+  "or64", "or1k64", MACH_OR64,
+  64, 64, & or64_models[0], & or1k64bf_imp_properties,
+  or64_init_cpu,
+  or1k64bf_prepare_run
+};
+
+static void
+or64nd_init_cpu (SIM_CPU *cpu)
+{
+  CPU_REG_FETCH (cpu) = or1k64bf_fetch_register;
+  CPU_REG_STORE (cpu) = or1k64bf_store_register;
+  CPU_PC_FETCH (cpu) = or1k64bf_h_pc_get;
+  CPU_PC_STORE (cpu) = or1k64bf_h_pc_set;
+  CPU_GET_IDATA (cpu) = or1k64bf_get_idata;
+  CPU_MAX_INSNS (cpu) = OR1K64BF_INSN__MAX;
+  CPU_INSN_NAME (cpu) = cgen_insn_name;
+  CPU_FULL_ENGINE_FN (cpu) = or1k64bf_engine_run_full;
+#if WITH_FAST
+  CPU_FAST_ENGINE_FN (cpu) = or1k64bf_engine_run_fast;
+#else
+  CPU_FAST_ENGINE_FN (cpu) = or1k64bf_engine_run_full;
+#endif
+}
+
+const SIM_MACH or64nd_mach =
+{
+  "or64nd", "or1k64nd", MACH_OR64ND,
+  64, 64, & or64nd_models[0], & or1k64bf_imp_properties,
+  or64nd_init_cpu,
+  or1k64bf_prepare_run
+};
+
diff --git a/sim/or1k/sem32-switch.c b/sim/or1k/sem32-switch.c
new file mode 100644
index 0000000..37c0dc7
--- /dev/null
+++ b/sim/or1k/sem32-switch.c
@@ -0,0 +1,2748 @@
+/* Simulator instruction semantics for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifdef DEFINE_LABELS
+
+  /* The labels have the case they have because the enum of insn types
+     is all uppercase and in the non-stdc case the insn symbol is built
+     into the enum name.  */
+
+  static struct {
+    int index;
+    void *label;
+  } labels[] = {
+    { OR1K32BF_INSN_X_INVALID, && case_sem_INSN_X_INVALID },
+    { OR1K32BF_INSN_X_AFTER, && case_sem_INSN_X_AFTER },
+    { OR1K32BF_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE },
+    { OR1K32BF_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN },
+    { OR1K32BF_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN },
+    { OR1K32BF_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN },
+    { OR1K32BF_INSN_L_J, && case_sem_INSN_L_J },
+    { OR1K32BF_INSN_L_JAL, && case_sem_INSN_L_JAL },
+    { OR1K32BF_INSN_L_JR, && case_sem_INSN_L_JR },
+    { OR1K32BF_INSN_L_JALR, && case_sem_INSN_L_JALR },
+    { OR1K32BF_INSN_L_BNF, && case_sem_INSN_L_BNF },
+    { OR1K32BF_INSN_L_BF, && case_sem_INSN_L_BF },
+    { OR1K32BF_INSN_L_TRAP, && case_sem_INSN_L_TRAP },
+    { OR1K32BF_INSN_L_SYS, && case_sem_INSN_L_SYS },
+    { OR1K32BF_INSN_L_MSYNC, && case_sem_INSN_L_MSYNC },
+    { OR1K32BF_INSN_L_PSYNC, && case_sem_INSN_L_PSYNC },
+    { OR1K32BF_INSN_L_CSYNC, && case_sem_INSN_L_CSYNC },
+    { OR1K32BF_INSN_L_RFE, && case_sem_INSN_L_RFE },
+    { OR1K32BF_INSN_L_NOP_IMM, && case_sem_INSN_L_NOP_IMM },
+    { OR1K32BF_INSN_L_MOVHI, && case_sem_INSN_L_MOVHI },
+    { OR1K32BF_INSN_L_MACRC, && case_sem_INSN_L_MACRC },
+    { OR1K32BF_INSN_L_MFSPR, && case_sem_INSN_L_MFSPR },
+    { OR1K32BF_INSN_L_MTSPR, && case_sem_INSN_L_MTSPR },
+    { OR1K32BF_INSN_L_LWZ, && case_sem_INSN_L_LWZ },
+    { OR1K32BF_INSN_L_LWS, && case_sem_INSN_L_LWS },
+    { OR1K32BF_INSN_L_LWA, && case_sem_INSN_L_LWA },
+    { OR1K32BF_INSN_L_LBZ, && case_sem_INSN_L_LBZ },
+    { OR1K32BF_INSN_L_LBS, && case_sem_INSN_L_LBS },
+    { OR1K32BF_INSN_L_LHZ, && case_sem_INSN_L_LHZ },
+    { OR1K32BF_INSN_L_LHS, && case_sem_INSN_L_LHS },
+    { OR1K32BF_INSN_L_SW, && case_sem_INSN_L_SW },
+    { OR1K32BF_INSN_L_SB, && case_sem_INSN_L_SB },
+    { OR1K32BF_INSN_L_SH, && case_sem_INSN_L_SH },
+    { OR1K32BF_INSN_L_SWA, && case_sem_INSN_L_SWA },
+    { OR1K32BF_INSN_L_SLL, && case_sem_INSN_L_SLL },
+    { OR1K32BF_INSN_L_SLLI, && case_sem_INSN_L_SLLI },
+    { OR1K32BF_INSN_L_SRL, && case_sem_INSN_L_SRL },
+    { OR1K32BF_INSN_L_SRLI, && case_sem_INSN_L_SRLI },
+    { OR1K32BF_INSN_L_SRA, && case_sem_INSN_L_SRA },
+    { OR1K32BF_INSN_L_SRAI, && case_sem_INSN_L_SRAI },
+    { OR1K32BF_INSN_L_ROR, && case_sem_INSN_L_ROR },
+    { OR1K32BF_INSN_L_RORI, && case_sem_INSN_L_RORI },
+    { OR1K32BF_INSN_L_AND, && case_sem_INSN_L_AND },
+    { OR1K32BF_INSN_L_OR, && case_sem_INSN_L_OR },
+    { OR1K32BF_INSN_L_XOR, && case_sem_INSN_L_XOR },
+    { OR1K32BF_INSN_L_ADD, && case_sem_INSN_L_ADD },
+    { OR1K32BF_INSN_L_SUB, && case_sem_INSN_L_SUB },
+    { OR1K32BF_INSN_L_ADDC, && case_sem_INSN_L_ADDC },
+    { OR1K32BF_INSN_L_MUL, && case_sem_INSN_L_MUL },
+    { OR1K32BF_INSN_L_MULU, && case_sem_INSN_L_MULU },
+    { OR1K32BF_INSN_L_DIV, && case_sem_INSN_L_DIV },
+    { OR1K32BF_INSN_L_DIVU, && case_sem_INSN_L_DIVU },
+    { OR1K32BF_INSN_L_FF1, && case_sem_INSN_L_FF1 },
+    { OR1K32BF_INSN_L_FL1, && case_sem_INSN_L_FL1 },
+    { OR1K32BF_INSN_L_ANDI, && case_sem_INSN_L_ANDI },
+    { OR1K32BF_INSN_L_ORI, && case_sem_INSN_L_ORI },
+    { OR1K32BF_INSN_L_XORI, && case_sem_INSN_L_XORI },
+    { OR1K32BF_INSN_L_ADDI, && case_sem_INSN_L_ADDI },
+    { OR1K32BF_INSN_L_ADDIC, && case_sem_INSN_L_ADDIC },
+    { OR1K32BF_INSN_L_MULI, && case_sem_INSN_L_MULI },
+    { OR1K32BF_INSN_L_EXTHS, && case_sem_INSN_L_EXTHS },
+    { OR1K32BF_INSN_L_EXTBS, && case_sem_INSN_L_EXTBS },
+    { OR1K32BF_INSN_L_EXTHZ, && case_sem_INSN_L_EXTHZ },
+    { OR1K32BF_INSN_L_EXTBZ, && case_sem_INSN_L_EXTBZ },
+    { OR1K32BF_INSN_L_EXTWS, && case_sem_INSN_L_EXTWS },
+    { OR1K32BF_INSN_L_EXTWZ, && case_sem_INSN_L_EXTWZ },
+    { OR1K32BF_INSN_L_CMOV, && case_sem_INSN_L_CMOV },
+    { OR1K32BF_INSN_L_SFGTS, && case_sem_INSN_L_SFGTS },
+    { OR1K32BF_INSN_L_SFGTSI, && case_sem_INSN_L_SFGTSI },
+    { OR1K32BF_INSN_L_SFGTU, && case_sem_INSN_L_SFGTU },
+    { OR1K32BF_INSN_L_SFGTUI, && case_sem_INSN_L_SFGTUI },
+    { OR1K32BF_INSN_L_SFGES, && case_sem_INSN_L_SFGES },
+    { OR1K32BF_INSN_L_SFGESI, && case_sem_INSN_L_SFGESI },
+    { OR1K32BF_INSN_L_SFGEU, && case_sem_INSN_L_SFGEU },
+    { OR1K32BF_INSN_L_SFGEUI, && case_sem_INSN_L_SFGEUI },
+    { OR1K32BF_INSN_L_SFLTS, && case_sem_INSN_L_SFLTS },
+    { OR1K32BF_INSN_L_SFLTSI, && case_sem_INSN_L_SFLTSI },
+    { OR1K32BF_INSN_L_SFLTU, && case_sem_INSN_L_SFLTU },
+    { OR1K32BF_INSN_L_SFLTUI, && case_sem_INSN_L_SFLTUI },
+    { OR1K32BF_INSN_L_SFLES, && case_sem_INSN_L_SFLES },
+    { OR1K32BF_INSN_L_SFLESI, && case_sem_INSN_L_SFLESI },
+    { OR1K32BF_INSN_L_SFLEU, && case_sem_INSN_L_SFLEU },
+    { OR1K32BF_INSN_L_SFLEUI, && case_sem_INSN_L_SFLEUI },
+    { OR1K32BF_INSN_L_SFEQ, && case_sem_INSN_L_SFEQ },
+    { OR1K32BF_INSN_L_SFEQI, && case_sem_INSN_L_SFEQI },
+    { OR1K32BF_INSN_L_SFNE, && case_sem_INSN_L_SFNE },
+    { OR1K32BF_INSN_L_SFNEI, && case_sem_INSN_L_SFNEI },
+    { OR1K32BF_INSN_L_MAC, && case_sem_INSN_L_MAC },
+    { OR1K32BF_INSN_L_MSB, && case_sem_INSN_L_MSB },
+    { OR1K32BF_INSN_L_MACI, && case_sem_INSN_L_MACI },
+    { OR1K32BF_INSN_L_CUST1, && case_sem_INSN_L_CUST1 },
+    { OR1K32BF_INSN_L_CUST2, && case_sem_INSN_L_CUST2 },
+    { OR1K32BF_INSN_L_CUST3, && case_sem_INSN_L_CUST3 },
+    { OR1K32BF_INSN_L_CUST4, && case_sem_INSN_L_CUST4 },
+    { OR1K32BF_INSN_L_CUST5, && case_sem_INSN_L_CUST5 },
+    { OR1K32BF_INSN_L_CUST6, && case_sem_INSN_L_CUST6 },
+    { OR1K32BF_INSN_L_CUST7, && case_sem_INSN_L_CUST7 },
+    { OR1K32BF_INSN_L_CUST8, && case_sem_INSN_L_CUST8 },
+    { OR1K32BF_INSN_LF_ADD_S, && case_sem_INSN_LF_ADD_S },
+    { OR1K32BF_INSN_LF_SUB_S, && case_sem_INSN_LF_SUB_S },
+    { OR1K32BF_INSN_LF_MUL_S, && case_sem_INSN_LF_MUL_S },
+    { OR1K32BF_INSN_LF_DIV_S, && case_sem_INSN_LF_DIV_S },
+    { OR1K32BF_INSN_LF_REM_S, && case_sem_INSN_LF_REM_S },
+    { OR1K32BF_INSN_LF_ITOF_S, && case_sem_INSN_LF_ITOF_S },
+    { OR1K32BF_INSN_LF_FTOI_S, && case_sem_INSN_LF_FTOI_S },
+    { OR1K32BF_INSN_LF_EQ_S, && case_sem_INSN_LF_EQ_S },
+    { OR1K32BF_INSN_LF_NE_S, && case_sem_INSN_LF_NE_S },
+    { OR1K32BF_INSN_LF_GE_S, && case_sem_INSN_LF_GE_S },
+    { OR1K32BF_INSN_LF_GT_S, && case_sem_INSN_LF_GT_S },
+    { OR1K32BF_INSN_LF_LT_S, && case_sem_INSN_LF_LT_S },
+    { OR1K32BF_INSN_LF_LE_S, && case_sem_INSN_LF_LE_S },
+    { OR1K32BF_INSN_LF_MADD_S, && case_sem_INSN_LF_MADD_S },
+    { OR1K32BF_INSN_LF_CUST1_S, && case_sem_INSN_LF_CUST1_S },
+    { 0, 0 }
+  };
+  int i;
+
+  for (i = 0; labels[i].label != 0; ++i)
+    {
+#if FAST_P
+      CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label;
+#else
+      CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label;
+#endif
+    }
+
+#undef DEFINE_LABELS
+#endif /* DEFINE_LABELS */
+
+#ifdef DEFINE_SWITCH
+
+/* If hyper-fast [well not unnecessarily slow] execution is selected, turn
+   off frills like tracing and profiling.  */
+/* FIXME: A better way would be to have TRACE_RESULT check for something
+   that can cause it to be optimized out.  Another way would be to emit
+   special handlers into the instruction "stream".  */
+
+#if FAST_P
+#undef CGEN_TRACE_RESULT
+#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
+#endif
+
+#undef GET_ATTR
+#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
+
+{
+
+#if WITH_SCACHE_PBB
+
+/* Branch to next handler without going around main loop.  */
+#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case
+SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
+
+#else /* ! WITH_SCACHE_PBB */
+
+#define NEXT(vpc) BREAK (sem)
+#ifdef __GNUC__
+#if FAST_P
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab)
+#else
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab)
+#endif
+#else
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num)
+#endif
+
+#endif /* ! WITH_SCACHE_PBB */
+
+    {
+
+  CASE (sem, INSN_X_INVALID) : /* --invalid-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+    /* Update the recorded pc in the cpu state struct.
+       Only necessary for WITH_SCACHE case, but to avoid the
+       conditional compilation ....  */
+    SET_H_PC (pc);
+    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
+       using the default-insn-bitsize spec.  When executing insns in parallel
+       we may want to queue the fault and continue execution.  */
+    vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_AFTER) : /* --after-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    or1k32bf_pbb_after (current_cpu, sem_arg);
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_BEFORE) : /* --before-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    or1k32bf_pbb_before (current_cpu, sem_arg);
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+#ifdef DEFINE_SWITCH
+    vpc = or1k32bf_pbb_cti_chain (current_cpu, sem_arg,
+			       pbb_br_type, pbb_br_npc);
+    BREAK (sem);
+#else
+    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
+    vpc = or1k32bf_pbb_cti_chain (current_cpu, sem_arg,
+			       CPU_PBB_BR_TYPE (current_cpu),
+			       CPU_PBB_BR_NPC (current_cpu));
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_CHAIN) : /* --chain-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    vpc = or1k32bf_pbb_chain (current_cpu, sem_arg);
+#ifdef DEFINE_SWITCH
+    BREAK (sem);
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_BEGIN) : /* --begin-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+#if defined DEFINE_SWITCH || defined FAST_P
+    /* In the switch case FAST_P is a constant, allowing several optimizations
+       in any called inline functions.  */
+    vpc = or1k32bf_pbb_begin (current_cpu, FAST_P);
+#else
+#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
+    vpc = or1k32bf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
+#else
+    vpc = or1k32bf_pbb_begin (current_cpu, 0);
+#endif
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_J) : /* l.j ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JAL) : /* l.jal ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ADDSI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+{
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JR) : /* l.jr $rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JALR) : /* l.jalr $rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ADDSI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+{
+{
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_BNF) : /* l.bnf ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NOTSI (GET_H_SYS_SR_F ())) {
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    USI opval = ADDSI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_BF) : /* l.bf ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (GET_H_SYS_SR_F ()) {
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    USI opval = ADDSI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_TRAP) : /* l.trap ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_exception (current_cpu, pc, EXCEPT_TRAP);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SYS) : /* l.sys ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_exception (current_cpu, pc, EXCEPT_SYSCALL);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MSYNC) : /* l.msync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_PSYNC) : /* l.psync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CSYNC) : /* l.csync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_RFE) : /* l.rfe */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_rfe (current_cpu);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_NOP_IMM) : /* l.nop ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_nop (current_cpu, ZEXTSISI (FLD (f_uimm16)));
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MOVHI) : /* l.movhi $rD,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (ZEXTSISI (FLD (f_uimm16)), 16);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MACRC) : /* l.macrc $rD */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = GET_H_MAC_MACLO ();
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+  {
+    USI opval = 0;
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+  {
+    USI opval = 0;
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MFSPR) : /* l.mfspr $rD,$rA,${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_mfspr (current_cpu, ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MTSPR) : /* l.mtspr $rA,$rB,${uimm16-split} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_mtspr (current_cpu, ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16_split))), GET_H_GPR (FLD (f_r3)));
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWZ) : /* l.lwz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTSISI (GETMEMUSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWS) : /* l.lws $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTSISI (GETMEMSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWA) : /* l.lwa $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ZEXTSISI (GETMEMUSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+  {
+    BI opval = 1;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+  {
+    SI opval = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4);
+    CPU (h_atomic_address) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-address", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LBZ) : /* l.lbz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTQISI (GETMEMUQI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LBS) : /* l.lbs $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTQISI (GETMEMQI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LHZ) : /* l.lhz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTHISI (GETMEMUHI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LHS) : /* l.lhs $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTHISI (GETMEMHI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SW) : /* l.sw ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = TRUNCSISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SB) : /* l.sb ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 1);
+  {
+    UQI opval = TRUNCSIQI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUQI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SH) : /* l.sh ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 2);
+  {
+    UHI opval = TRUNCSIHI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUHI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SWA) : /* l.swa ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  BI tmp_flag;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = ANDBI (CPU (h_atomic_reserve), EQSI (tmp_addr, CPU (h_atomic_address)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = TRUNCSISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    written |= (1 << 7);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SLL) : /* l.sll $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SLLI) : /* l.slli $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRL) : /* l.srl $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRLSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRLI) : /* l.srli $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRLSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRA) : /* l.sra $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRASI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRAI) : /* l.srai $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRASI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ROR) : /* l.ror $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = RORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_RORI) : /* l.rori $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = RORSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_AND) : /* l.and $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ANDSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_OR) : /* l.or $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_XOR) : /* l.xor $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = XORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADD) : /* l.add $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SUB) : /* l.sub $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = SUBCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = SUBOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = SUBSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDC) : /* l.addc $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDCSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MUL) : /* l.mul $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = MUL2OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MULU) : /* l.mulu $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_DIV) : /* l.div $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NESI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    SI opval = DIVSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_DIVU) : /* l.divu $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NESI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = UDIVSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_FF1) : /* l.ff1 $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_ff1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_FL1) : /* l.fl1 $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_fl1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ANDI) : /* l.andi $rD,$rA,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ANDSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ORI) : /* l.ori $rD,$rA,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_XORI) : /* l.xori $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = XORSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDI) : /* l.addi $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDIC) : /* l.addic $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    SI opval = ADDCSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MULI) : /* l.muli $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = MUL2OFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTHS) : /* l.exths $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTHISI (TRUNCSIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTBS) : /* l.extbs $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTQISI (TRUNCSIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTHZ) : /* l.exthz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTHISI (TRUNCSIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTBZ) : /* l.extbz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTQISI (TRUNCSIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTWS) : /* l.extws $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTSISI (TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTWZ) : /* l.extwz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTSISI (TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CMOV) : /* l.cmov $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = GET_H_GPR (FLD (f_r2));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+} else {
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTS) : /* l.sfgts $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTSI) : /* l.sfgtsi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTU) : /* l.sfgtu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTUI) : /* l.sfgtui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGES) : /* l.sfges $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGESI) : /* l.sfgesi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGEU) : /* l.sfgeu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GEUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGEUI) : /* l.sfgeui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GEUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTS) : /* l.sflts $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTSI) : /* l.sfltsi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTU) : /* l.sfltu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTUI) : /* l.sfltui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLES) : /* l.sfles $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLESI) : /* l.sflesi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLEU) : /* l.sfleu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LEUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLEUI) : /* l.sfleui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LEUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFEQ) : /* l.sfeq $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EQSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFEQI) : /* l.sfeqi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EQSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFNE) : /* l.sfne $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = NESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFNEI) : /* l.sfnei $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = NESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MAC) : /* l.mac $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MSB) : /* l.msb $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = SUBDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MACI) : /* l.maci $rA,${simm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (EXTSISI (FLD (f_simm16)), GET_H_GPR (FLD (f_r2)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST1) : /* l.cust1 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST2) : /* l.cust2 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST3) : /* l.cust3 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST4) : /* l.cust4 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST5) : /* l.cust5 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST6) : /* l.cust6 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST7) : /* l.cust7 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST8) : /* l.cust8 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ADD_S) : /* lf.add.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_SUB_S) : /* lf.sub.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MUL_S) : /* lf.mul.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_DIV_S) : /* lf.div.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_REM_S) : /* lf.rem.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->remsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ITOF_S) : /* lf.itof.s $rDSF,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_FTOI_S) : /* lf.ftoi.s $rD,$rASF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTSISI (CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FSR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_EQ_S) : /* lf.sfeq.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_NE_S) : /* lf.sfne.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GE_S) : /* lf.sfge.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GT_S) : /* lf.sfgt.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LT_S) : /* lf.sflt.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LE_S) : /* lf.sfle.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->lesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MADD_S) : /* lf.madd.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3))), GET_H_FSR (FLD (f_r1)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_CUST1_S) : /* lf.cust1.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+
+    }
+  ENDSWITCH (sem) /* End of semantic switch.  */
+
+  /* At this point `vpc' contains the next insn to execute.  */
+}
+
+#undef DEFINE_SWITCH
+#endif /* DEFINE_SWITCH */
diff --git a/sim/or1k/sem32.c b/sim/or1k/sem32.c
new file mode 100644
index 0000000..61d66cf
--- /dev/null
+++ b/sim/or1k/sem32.c
@@ -0,0 +1,2953 @@
+/* Simulator instruction semantics for or1k32bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k32bf
+#define WANT_CPU_OR1K32BF
+
+#include "sim-main.h"
+#include "cgen-mem.h"
+#include "cgen-ops.h"
+
+#undef GET_ATTR
+#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
+
+/* This is used so that we can compile two copies of the semantic code,
+   one with full feature support and one without that runs fast(er).
+   FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
+#if FAST_P
+#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
+#undef CGEN_TRACE_RESULT
+#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
+#else
+#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
+#endif
+
+/* x-invalid: --invalid-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+    /* Update the recorded pc in the cpu state struct.
+       Only necessary for WITH_SCACHE case, but to avoid the
+       conditional compilation ....  */
+    SET_H_PC (pc);
+    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
+       using the default-insn-bitsize spec.  When executing insns in parallel
+       we may want to queue the fault and continue execution.  */
+    vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-after: --after-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    or1k32bf_pbb_after (current_cpu, sem_arg);
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-before: --before-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    or1k32bf_pbb_before (current_cpu, sem_arg);
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-cti-chain: --cti-chain-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+#ifdef DEFINE_SWITCH
+    vpc = or1k32bf_pbb_cti_chain (current_cpu, sem_arg,
+			       pbb_br_type, pbb_br_npc);
+    BREAK (sem);
+#else
+    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
+    vpc = or1k32bf_pbb_cti_chain (current_cpu, sem_arg,
+			       CPU_PBB_BR_TYPE (current_cpu),
+			       CPU_PBB_BR_NPC (current_cpu));
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-chain: --chain-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+    vpc = or1k32bf_pbb_chain (current_cpu, sem_arg);
+#ifdef DEFINE_SWITCH
+    BREAK (sem);
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-begin: --begin-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K32BF
+#if defined DEFINE_SWITCH || defined FAST_P
+    /* In the switch case FAST_P is a constant, allowing several optimizations
+       in any called inline functions.  */
+    vpc = or1k32bf_pbb_begin (current_cpu, FAST_P);
+#else
+#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
+    vpc = or1k32bf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
+#else
+    vpc = or1k32bf_pbb_begin (current_cpu, 0);
+#endif
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-j: l.j ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_j) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jal: l.jal ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_jal) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ADDSI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+{
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jr: l.jr $rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_jr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jalr: l.jalr $rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_jalr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ADDSI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+{
+{
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-bnf: l.bnf ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_bnf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NOTSI (GET_H_SYS_SR_F ())) {
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    USI opval = ADDSI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-bf: l.bf ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_bf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (GET_H_SYS_SR_F ()) {
+{
+  {
+    USI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    USI opval = ADDSI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-trap: l.trap ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_trap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_exception (current_cpu, pc, EXCEPT_TRAP);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sys: l.sys ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sys) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_exception (current_cpu, pc, EXCEPT_SYSCALL);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-msync: l.msync */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_msync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-psync: l.psync */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_psync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-csync: l.csync */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_csync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-rfe: l.rfe */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_rfe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_rfe (current_cpu);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-nop-imm: l.nop ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_nop_imm) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_nop (current_cpu, ZEXTSISI (FLD (f_uimm16)));
+
+  return vpc;
+#undef FLD
+}
+
+/* l-movhi: l.movhi $rD,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_movhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (ZEXTSISI (FLD (f_uimm16)), 16);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-macrc: l.macrc $rD */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_macrc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = GET_H_MAC_MACLO ();
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+  {
+    USI opval = 0;
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+  {
+    USI opval = 0;
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mfspr: l.mfspr $rD,$rA,${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_mfspr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_mfspr (current_cpu, ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mtspr: l.mtspr $rA,$rB,${uimm16-split} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_mtspr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k32bf_mtspr (current_cpu, ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16_split))), GET_H_GPR (FLD (f_r3)));
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lwz: l.lwz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lwz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTSISI (GETMEMUSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lws: l.lws $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lws) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTSISI (GETMEMSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lwa: l.lwa $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lwa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    USI opval = ZEXTSISI (GETMEMUSI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+  {
+    BI opval = 1;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+  {
+    SI opval = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4);
+    CPU (h_atomic_address) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-address", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lbz: l.lbz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lbz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTQISI (GETMEMUQI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lbs: l.lbs $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lbs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTQISI (GETMEMQI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lhz: l.lhz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lhz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTHISI (GETMEMUHI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lhs: l.lhs $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_lhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTHISI (GETMEMHI (current_cpu, pc, or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sw: l.sw ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = TRUNCSISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sb: l.sb ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 1);
+  {
+    UQI opval = TRUNCSIQI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUQI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sh: l.sh ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 2);
+  {
+    UHI opval = TRUNCSIHI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUHI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-swa: l.swa ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_swa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  BI tmp_flag;
+  tmp_addr = or1k32bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = ANDBI (CPU (h_atomic_reserve), EQSI (tmp_addr, CPU (h_atomic_address)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = TRUNCSISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    written |= (1 << 7);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sll: l.sll $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-slli: l.slli $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SLLSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srl: l.srl $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRLSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srli: l.srli $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRLSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sra: l.sra $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRASI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srai: l.srai $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = SRASI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-ror: l.ror $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_ror) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = RORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-rori: l.rori $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_rori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = RORSI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-and: l.and $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ANDSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-or: l.or $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-xor: l.xor $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = XORSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-add: l.add $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sub: l.sub $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = SUBCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = SUBOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = SUBSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addc: l.addc $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_addc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDCSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mul: l.mul $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_mul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = MUL2OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mulu: l.mulu $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_mulu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-div: l.div $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_div) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NESI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    SI opval = DIVSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-divu: l.divu $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_divu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NESI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = UDIVSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-ff1: l.ff1 $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_ff1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_ff1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-fl1: l.fl1 $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_fl1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = or1k32bf_fl1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-andi: l.andi $rD,$rA,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ANDSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-ori: l.ori $rD,$rA,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ORSI (GET_H_GPR (FLD (f_r2)), ZEXTSISI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-xori: l.xori $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = XORSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addi: l.addi $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = ADDSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addic: l.addic $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_addic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    SI opval = ADDCSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-muli: l.muli $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_muli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    USI opval = MUL2OFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    USI opval = MUL1OFSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    USI opval = MULSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k32bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-exths: l.exths $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_exths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTHISI (TRUNCSIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extbs: l.extbs $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_extbs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTQISI (TRUNCSIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-exthz: l.exthz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_exthz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTHISI (TRUNCSIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extbz: l.extbz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_extbz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTQISI (TRUNCSIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extws: l.extws $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_extws) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EXTSISI (TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extwz: l.extwz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_extwz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = ZEXTSISI (TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cmov: l.cmov $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cmov) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = GET_H_GPR (FLD (f_r2));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+} else {
+  {
+    USI opval = GET_H_GPR (FLD (f_r3));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgts: l.sfgts $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtsi: l.sfgtsi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgtsi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtu: l.sfgtu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgtu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtui: l.sfgtui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgtui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GTUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfges: l.sfges $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfges) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgesi: l.sfgesi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgesi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgeu: l.sfgeu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgeu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GEUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgeui: l.sfgeui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfgeui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = GEUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sflts: l.sflts $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sflts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltsi: l.sfltsi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfltsi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltu: l.sfltu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfltu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltui: l.sfltui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfltui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LTUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfles: l.sfles $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfles) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sflesi: l.sflesi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sflesi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfleu: l.sfleu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfleu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LEUSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfleui: l.sfleui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfleui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = LEUSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfeq: l.sfeq $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EQSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfeqi: l.sfeqi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfeqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = EQSI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfne: l.sfne $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = NESI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfnei: l.sfnei $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_sfnei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    USI opval = NESI (GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mac: l.mac $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_mac) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-msb: l.msb $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_msb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = SUBDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-maci: l.maci $rA,${simm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_maci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULSI (EXTSISI (FLD (f_simm16)), GET_H_GPR (FLD (f_r2)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTSIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust1: l.cust1 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust2: l.cust2 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust3: l.cust3 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust3) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust4: l.cust4 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust4) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust5: l.cust5 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust5) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust6: l.cust6 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust6) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust7: l.cust7 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust7) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust8: l.cust8 */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,l_cust8) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-add-s: lf.add.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_add_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-sub-s: lf.sub.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_sub_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-mul-s: lf.mul.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_mul_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-div-s: lf.div.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_div_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-rem-s: lf.rem.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_rem_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->remsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-itof-s: lf.itof.s $rDSF,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_itof_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), TRUNCSISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ftoi-s: lf.ftoi.s $rD,$rASF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_ftoi_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = EXTSISI (CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FSR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-eq-s: lf.sfeq.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_eq_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ne-s: lf.sfne.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_ne_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ge-s: lf.sfge.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_ge_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-gt-s: lf.sfgt.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_gt_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-lt-s: lf.sflt.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_lt_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-le-s: lf.sfle.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_le_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->lesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-madd-s: lf.madd.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_madd_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3))), GET_H_FSR (FLD (f_r1)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-cust1-s: lf.cust1.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k32bf,lf_cust1_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* Table of all semantic fns.  */
+
+static const struct sem_fn_desc sem_fns[] = {
+  { OR1K32BF_INSN_X_INVALID, SEM_FN_NAME (or1k32bf,x_invalid) },
+  { OR1K32BF_INSN_X_AFTER, SEM_FN_NAME (or1k32bf,x_after) },
+  { OR1K32BF_INSN_X_BEFORE, SEM_FN_NAME (or1k32bf,x_before) },
+  { OR1K32BF_INSN_X_CTI_CHAIN, SEM_FN_NAME (or1k32bf,x_cti_chain) },
+  { OR1K32BF_INSN_X_CHAIN, SEM_FN_NAME (or1k32bf,x_chain) },
+  { OR1K32BF_INSN_X_BEGIN, SEM_FN_NAME (or1k32bf,x_begin) },
+  { OR1K32BF_INSN_L_J, SEM_FN_NAME (or1k32bf,l_j) },
+  { OR1K32BF_INSN_L_JAL, SEM_FN_NAME (or1k32bf,l_jal) },
+  { OR1K32BF_INSN_L_JR, SEM_FN_NAME (or1k32bf,l_jr) },
+  { OR1K32BF_INSN_L_JALR, SEM_FN_NAME (or1k32bf,l_jalr) },
+  { OR1K32BF_INSN_L_BNF, SEM_FN_NAME (or1k32bf,l_bnf) },
+  { OR1K32BF_INSN_L_BF, SEM_FN_NAME (or1k32bf,l_bf) },
+  { OR1K32BF_INSN_L_TRAP, SEM_FN_NAME (or1k32bf,l_trap) },
+  { OR1K32BF_INSN_L_SYS, SEM_FN_NAME (or1k32bf,l_sys) },
+  { OR1K32BF_INSN_L_MSYNC, SEM_FN_NAME (or1k32bf,l_msync) },
+  { OR1K32BF_INSN_L_PSYNC, SEM_FN_NAME (or1k32bf,l_psync) },
+  { OR1K32BF_INSN_L_CSYNC, SEM_FN_NAME (or1k32bf,l_csync) },
+  { OR1K32BF_INSN_L_RFE, SEM_FN_NAME (or1k32bf,l_rfe) },
+  { OR1K32BF_INSN_L_NOP_IMM, SEM_FN_NAME (or1k32bf,l_nop_imm) },
+  { OR1K32BF_INSN_L_MOVHI, SEM_FN_NAME (or1k32bf,l_movhi) },
+  { OR1K32BF_INSN_L_MACRC, SEM_FN_NAME (or1k32bf,l_macrc) },
+  { OR1K32BF_INSN_L_MFSPR, SEM_FN_NAME (or1k32bf,l_mfspr) },
+  { OR1K32BF_INSN_L_MTSPR, SEM_FN_NAME (or1k32bf,l_mtspr) },
+  { OR1K32BF_INSN_L_LWZ, SEM_FN_NAME (or1k32bf,l_lwz) },
+  { OR1K32BF_INSN_L_LWS, SEM_FN_NAME (or1k32bf,l_lws) },
+  { OR1K32BF_INSN_L_LWA, SEM_FN_NAME (or1k32bf,l_lwa) },
+  { OR1K32BF_INSN_L_LBZ, SEM_FN_NAME (or1k32bf,l_lbz) },
+  { OR1K32BF_INSN_L_LBS, SEM_FN_NAME (or1k32bf,l_lbs) },
+  { OR1K32BF_INSN_L_LHZ, SEM_FN_NAME (or1k32bf,l_lhz) },
+  { OR1K32BF_INSN_L_LHS, SEM_FN_NAME (or1k32bf,l_lhs) },
+  { OR1K32BF_INSN_L_SW, SEM_FN_NAME (or1k32bf,l_sw) },
+  { OR1K32BF_INSN_L_SB, SEM_FN_NAME (or1k32bf,l_sb) },
+  { OR1K32BF_INSN_L_SH, SEM_FN_NAME (or1k32bf,l_sh) },
+  { OR1K32BF_INSN_L_SWA, SEM_FN_NAME (or1k32bf,l_swa) },
+  { OR1K32BF_INSN_L_SLL, SEM_FN_NAME (or1k32bf,l_sll) },
+  { OR1K32BF_INSN_L_SLLI, SEM_FN_NAME (or1k32bf,l_slli) },
+  { OR1K32BF_INSN_L_SRL, SEM_FN_NAME (or1k32bf,l_srl) },
+  { OR1K32BF_INSN_L_SRLI, SEM_FN_NAME (or1k32bf,l_srli) },
+  { OR1K32BF_INSN_L_SRA, SEM_FN_NAME (or1k32bf,l_sra) },
+  { OR1K32BF_INSN_L_SRAI, SEM_FN_NAME (or1k32bf,l_srai) },
+  { OR1K32BF_INSN_L_ROR, SEM_FN_NAME (or1k32bf,l_ror) },
+  { OR1K32BF_INSN_L_RORI, SEM_FN_NAME (or1k32bf,l_rori) },
+  { OR1K32BF_INSN_L_AND, SEM_FN_NAME (or1k32bf,l_and) },
+  { OR1K32BF_INSN_L_OR, SEM_FN_NAME (or1k32bf,l_or) },
+  { OR1K32BF_INSN_L_XOR, SEM_FN_NAME (or1k32bf,l_xor) },
+  { OR1K32BF_INSN_L_ADD, SEM_FN_NAME (or1k32bf,l_add) },
+  { OR1K32BF_INSN_L_SUB, SEM_FN_NAME (or1k32bf,l_sub) },
+  { OR1K32BF_INSN_L_ADDC, SEM_FN_NAME (or1k32bf,l_addc) },
+  { OR1K32BF_INSN_L_MUL, SEM_FN_NAME (or1k32bf,l_mul) },
+  { OR1K32BF_INSN_L_MULU, SEM_FN_NAME (or1k32bf,l_mulu) },
+  { OR1K32BF_INSN_L_DIV, SEM_FN_NAME (or1k32bf,l_div) },
+  { OR1K32BF_INSN_L_DIVU, SEM_FN_NAME (or1k32bf,l_divu) },
+  { OR1K32BF_INSN_L_FF1, SEM_FN_NAME (or1k32bf,l_ff1) },
+  { OR1K32BF_INSN_L_FL1, SEM_FN_NAME (or1k32bf,l_fl1) },
+  { OR1K32BF_INSN_L_ANDI, SEM_FN_NAME (or1k32bf,l_andi) },
+  { OR1K32BF_INSN_L_ORI, SEM_FN_NAME (or1k32bf,l_ori) },
+  { OR1K32BF_INSN_L_XORI, SEM_FN_NAME (or1k32bf,l_xori) },
+  { OR1K32BF_INSN_L_ADDI, SEM_FN_NAME (or1k32bf,l_addi) },
+  { OR1K32BF_INSN_L_ADDIC, SEM_FN_NAME (or1k32bf,l_addic) },
+  { OR1K32BF_INSN_L_MULI, SEM_FN_NAME (or1k32bf,l_muli) },
+  { OR1K32BF_INSN_L_EXTHS, SEM_FN_NAME (or1k32bf,l_exths) },
+  { OR1K32BF_INSN_L_EXTBS, SEM_FN_NAME (or1k32bf,l_extbs) },
+  { OR1K32BF_INSN_L_EXTHZ, SEM_FN_NAME (or1k32bf,l_exthz) },
+  { OR1K32BF_INSN_L_EXTBZ, SEM_FN_NAME (or1k32bf,l_extbz) },
+  { OR1K32BF_INSN_L_EXTWS, SEM_FN_NAME (or1k32bf,l_extws) },
+  { OR1K32BF_INSN_L_EXTWZ, SEM_FN_NAME (or1k32bf,l_extwz) },
+  { OR1K32BF_INSN_L_CMOV, SEM_FN_NAME (or1k32bf,l_cmov) },
+  { OR1K32BF_INSN_L_SFGTS, SEM_FN_NAME (or1k32bf,l_sfgts) },
+  { OR1K32BF_INSN_L_SFGTSI, SEM_FN_NAME (or1k32bf,l_sfgtsi) },
+  { OR1K32BF_INSN_L_SFGTU, SEM_FN_NAME (or1k32bf,l_sfgtu) },
+  { OR1K32BF_INSN_L_SFGTUI, SEM_FN_NAME (or1k32bf,l_sfgtui) },
+  { OR1K32BF_INSN_L_SFGES, SEM_FN_NAME (or1k32bf,l_sfges) },
+  { OR1K32BF_INSN_L_SFGESI, SEM_FN_NAME (or1k32bf,l_sfgesi) },
+  { OR1K32BF_INSN_L_SFGEU, SEM_FN_NAME (or1k32bf,l_sfgeu) },
+  { OR1K32BF_INSN_L_SFGEUI, SEM_FN_NAME (or1k32bf,l_sfgeui) },
+  { OR1K32BF_INSN_L_SFLTS, SEM_FN_NAME (or1k32bf,l_sflts) },
+  { OR1K32BF_INSN_L_SFLTSI, SEM_FN_NAME (or1k32bf,l_sfltsi) },
+  { OR1K32BF_INSN_L_SFLTU, SEM_FN_NAME (or1k32bf,l_sfltu) },
+  { OR1K32BF_INSN_L_SFLTUI, SEM_FN_NAME (or1k32bf,l_sfltui) },
+  { OR1K32BF_INSN_L_SFLES, SEM_FN_NAME (or1k32bf,l_sfles) },
+  { OR1K32BF_INSN_L_SFLESI, SEM_FN_NAME (or1k32bf,l_sflesi) },
+  { OR1K32BF_INSN_L_SFLEU, SEM_FN_NAME (or1k32bf,l_sfleu) },
+  { OR1K32BF_INSN_L_SFLEUI, SEM_FN_NAME (or1k32bf,l_sfleui) },
+  { OR1K32BF_INSN_L_SFEQ, SEM_FN_NAME (or1k32bf,l_sfeq) },
+  { OR1K32BF_INSN_L_SFEQI, SEM_FN_NAME (or1k32bf,l_sfeqi) },
+  { OR1K32BF_INSN_L_SFNE, SEM_FN_NAME (or1k32bf,l_sfne) },
+  { OR1K32BF_INSN_L_SFNEI, SEM_FN_NAME (or1k32bf,l_sfnei) },
+  { OR1K32BF_INSN_L_MAC, SEM_FN_NAME (or1k32bf,l_mac) },
+  { OR1K32BF_INSN_L_MSB, SEM_FN_NAME (or1k32bf,l_msb) },
+  { OR1K32BF_INSN_L_MACI, SEM_FN_NAME (or1k32bf,l_maci) },
+  { OR1K32BF_INSN_L_CUST1, SEM_FN_NAME (or1k32bf,l_cust1) },
+  { OR1K32BF_INSN_L_CUST2, SEM_FN_NAME (or1k32bf,l_cust2) },
+  { OR1K32BF_INSN_L_CUST3, SEM_FN_NAME (or1k32bf,l_cust3) },
+  { OR1K32BF_INSN_L_CUST4, SEM_FN_NAME (or1k32bf,l_cust4) },
+  { OR1K32BF_INSN_L_CUST5, SEM_FN_NAME (or1k32bf,l_cust5) },
+  { OR1K32BF_INSN_L_CUST6, SEM_FN_NAME (or1k32bf,l_cust6) },
+  { OR1K32BF_INSN_L_CUST7, SEM_FN_NAME (or1k32bf,l_cust7) },
+  { OR1K32BF_INSN_L_CUST8, SEM_FN_NAME (or1k32bf,l_cust8) },
+  { OR1K32BF_INSN_LF_ADD_S, SEM_FN_NAME (or1k32bf,lf_add_s) },
+  { OR1K32BF_INSN_LF_SUB_S, SEM_FN_NAME (or1k32bf,lf_sub_s) },
+  { OR1K32BF_INSN_LF_MUL_S, SEM_FN_NAME (or1k32bf,lf_mul_s) },
+  { OR1K32BF_INSN_LF_DIV_S, SEM_FN_NAME (or1k32bf,lf_div_s) },
+  { OR1K32BF_INSN_LF_REM_S, SEM_FN_NAME (or1k32bf,lf_rem_s) },
+  { OR1K32BF_INSN_LF_ITOF_S, SEM_FN_NAME (or1k32bf,lf_itof_s) },
+  { OR1K32BF_INSN_LF_FTOI_S, SEM_FN_NAME (or1k32bf,lf_ftoi_s) },
+  { OR1K32BF_INSN_LF_EQ_S, SEM_FN_NAME (or1k32bf,lf_eq_s) },
+  { OR1K32BF_INSN_LF_NE_S, SEM_FN_NAME (or1k32bf,lf_ne_s) },
+  { OR1K32BF_INSN_LF_GE_S, SEM_FN_NAME (or1k32bf,lf_ge_s) },
+  { OR1K32BF_INSN_LF_GT_S, SEM_FN_NAME (or1k32bf,lf_gt_s) },
+  { OR1K32BF_INSN_LF_LT_S, SEM_FN_NAME (or1k32bf,lf_lt_s) },
+  { OR1K32BF_INSN_LF_LE_S, SEM_FN_NAME (or1k32bf,lf_le_s) },
+  { OR1K32BF_INSN_LF_MADD_S, SEM_FN_NAME (or1k32bf,lf_madd_s) },
+  { OR1K32BF_INSN_LF_CUST1_S, SEM_FN_NAME (or1k32bf,lf_cust1_s) },
+  { 0, 0 }
+};
+
+/* Add the semantic fns to IDESC_TABLE.  */
+
+void
+SEM_FN_NAME (or1k32bf,init_idesc_table) (SIM_CPU *current_cpu)
+{
+  IDESC *idesc_table = CPU_IDESC (current_cpu);
+  const struct sem_fn_desc *sf;
+  int mach_num = MACH_NUM (CPU_MACH (current_cpu));
+
+  for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
+    {
+      const CGEN_INSN *insn = idesc_table[sf->index].idata;
+      int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
+		     || CGEN_INSN_MACH_HAS_P (insn, mach_num));
+#if FAST_P
+      if (valid_p)
+	idesc_table[sf->index].sem_fast = sf->fn;
+      else
+	idesc_table[sf->index].sem_fast = SEM_FN_NAME (or1k32bf,x_invalid);
+#else
+      if (valid_p)
+	idesc_table[sf->index].sem_full = sf->fn;
+      else
+	idesc_table[sf->index].sem_full = SEM_FN_NAME (or1k32bf,x_invalid);
+#endif
+    }
+}
+
diff --git a/sim/or1k/sem64-switch.c b/sim/or1k/sem64-switch.c
new file mode 100644
index 0000000..1bb27e4
--- /dev/null
+++ b/sim/or1k/sem64-switch.c
@@ -0,0 +1,3044 @@
+/* Simulator instruction semantics for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifdef DEFINE_LABELS
+
+  /* The labels have the case they have because the enum of insn types
+     is all uppercase and in the non-stdc case the insn symbol is built
+     into the enum name.  */
+
+  static struct {
+    int index;
+    void *label;
+  } labels[] = {
+    { OR1K64BF_INSN_X_INVALID, && case_sem_INSN_X_INVALID },
+    { OR1K64BF_INSN_X_AFTER, && case_sem_INSN_X_AFTER },
+    { OR1K64BF_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE },
+    { OR1K64BF_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN },
+    { OR1K64BF_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN },
+    { OR1K64BF_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN },
+    { OR1K64BF_INSN_L_J, && case_sem_INSN_L_J },
+    { OR1K64BF_INSN_L_JAL, && case_sem_INSN_L_JAL },
+    { OR1K64BF_INSN_L_JR, && case_sem_INSN_L_JR },
+    { OR1K64BF_INSN_L_JALR, && case_sem_INSN_L_JALR },
+    { OR1K64BF_INSN_L_BNF, && case_sem_INSN_L_BNF },
+    { OR1K64BF_INSN_L_BF, && case_sem_INSN_L_BF },
+    { OR1K64BF_INSN_L_TRAP, && case_sem_INSN_L_TRAP },
+    { OR1K64BF_INSN_L_SYS, && case_sem_INSN_L_SYS },
+    { OR1K64BF_INSN_L_MSYNC, && case_sem_INSN_L_MSYNC },
+    { OR1K64BF_INSN_L_PSYNC, && case_sem_INSN_L_PSYNC },
+    { OR1K64BF_INSN_L_CSYNC, && case_sem_INSN_L_CSYNC },
+    { OR1K64BF_INSN_L_RFE, && case_sem_INSN_L_RFE },
+    { OR1K64BF_INSN_L_NOP_IMM, && case_sem_INSN_L_NOP_IMM },
+    { OR1K64BF_INSN_L_MOVHI, && case_sem_INSN_L_MOVHI },
+    { OR1K64BF_INSN_L_MACRC, && case_sem_INSN_L_MACRC },
+    { OR1K64BF_INSN_L_MFSPR, && case_sem_INSN_L_MFSPR },
+    { OR1K64BF_INSN_L_MTSPR, && case_sem_INSN_L_MTSPR },
+    { OR1K64BF_INSN_L_LWZ, && case_sem_INSN_L_LWZ },
+    { OR1K64BF_INSN_L_LWS, && case_sem_INSN_L_LWS },
+    { OR1K64BF_INSN_L_LWA, && case_sem_INSN_L_LWA },
+    { OR1K64BF_INSN_L_LBZ, && case_sem_INSN_L_LBZ },
+    { OR1K64BF_INSN_L_LBS, && case_sem_INSN_L_LBS },
+    { OR1K64BF_INSN_L_LHZ, && case_sem_INSN_L_LHZ },
+    { OR1K64BF_INSN_L_LHS, && case_sem_INSN_L_LHS },
+    { OR1K64BF_INSN_L_SW, && case_sem_INSN_L_SW },
+    { OR1K64BF_INSN_L_SB, && case_sem_INSN_L_SB },
+    { OR1K64BF_INSN_L_SH, && case_sem_INSN_L_SH },
+    { OR1K64BF_INSN_L_SWA, && case_sem_INSN_L_SWA },
+    { OR1K64BF_INSN_L_SLL, && case_sem_INSN_L_SLL },
+    { OR1K64BF_INSN_L_SLLI, && case_sem_INSN_L_SLLI },
+    { OR1K64BF_INSN_L_SRL, && case_sem_INSN_L_SRL },
+    { OR1K64BF_INSN_L_SRLI, && case_sem_INSN_L_SRLI },
+    { OR1K64BF_INSN_L_SRA, && case_sem_INSN_L_SRA },
+    { OR1K64BF_INSN_L_SRAI, && case_sem_INSN_L_SRAI },
+    { OR1K64BF_INSN_L_ROR, && case_sem_INSN_L_ROR },
+    { OR1K64BF_INSN_L_RORI, && case_sem_INSN_L_RORI },
+    { OR1K64BF_INSN_L_AND, && case_sem_INSN_L_AND },
+    { OR1K64BF_INSN_L_OR, && case_sem_INSN_L_OR },
+    { OR1K64BF_INSN_L_XOR, && case_sem_INSN_L_XOR },
+    { OR1K64BF_INSN_L_ADD, && case_sem_INSN_L_ADD },
+    { OR1K64BF_INSN_L_SUB, && case_sem_INSN_L_SUB },
+    { OR1K64BF_INSN_L_ADDC, && case_sem_INSN_L_ADDC },
+    { OR1K64BF_INSN_L_MUL, && case_sem_INSN_L_MUL },
+    { OR1K64BF_INSN_L_MULU, && case_sem_INSN_L_MULU },
+    { OR1K64BF_INSN_L_DIV, && case_sem_INSN_L_DIV },
+    { OR1K64BF_INSN_L_DIVU, && case_sem_INSN_L_DIVU },
+    { OR1K64BF_INSN_L_FF1, && case_sem_INSN_L_FF1 },
+    { OR1K64BF_INSN_L_FL1, && case_sem_INSN_L_FL1 },
+    { OR1K64BF_INSN_L_ANDI, && case_sem_INSN_L_ANDI },
+    { OR1K64BF_INSN_L_ORI, && case_sem_INSN_L_ORI },
+    { OR1K64BF_INSN_L_XORI, && case_sem_INSN_L_XORI },
+    { OR1K64BF_INSN_L_ADDI, && case_sem_INSN_L_ADDI },
+    { OR1K64BF_INSN_L_ADDIC, && case_sem_INSN_L_ADDIC },
+    { OR1K64BF_INSN_L_MULI, && case_sem_INSN_L_MULI },
+    { OR1K64BF_INSN_L_EXTHS, && case_sem_INSN_L_EXTHS },
+    { OR1K64BF_INSN_L_EXTBS, && case_sem_INSN_L_EXTBS },
+    { OR1K64BF_INSN_L_EXTHZ, && case_sem_INSN_L_EXTHZ },
+    { OR1K64BF_INSN_L_EXTBZ, && case_sem_INSN_L_EXTBZ },
+    { OR1K64BF_INSN_L_EXTWS, && case_sem_INSN_L_EXTWS },
+    { OR1K64BF_INSN_L_EXTWZ, && case_sem_INSN_L_EXTWZ },
+    { OR1K64BF_INSN_L_CMOV, && case_sem_INSN_L_CMOV },
+    { OR1K64BF_INSN_L_SFGTS, && case_sem_INSN_L_SFGTS },
+    { OR1K64BF_INSN_L_SFGTSI, && case_sem_INSN_L_SFGTSI },
+    { OR1K64BF_INSN_L_SFGTU, && case_sem_INSN_L_SFGTU },
+    { OR1K64BF_INSN_L_SFGTUI, && case_sem_INSN_L_SFGTUI },
+    { OR1K64BF_INSN_L_SFGES, && case_sem_INSN_L_SFGES },
+    { OR1K64BF_INSN_L_SFGESI, && case_sem_INSN_L_SFGESI },
+    { OR1K64BF_INSN_L_SFGEU, && case_sem_INSN_L_SFGEU },
+    { OR1K64BF_INSN_L_SFGEUI, && case_sem_INSN_L_SFGEUI },
+    { OR1K64BF_INSN_L_SFLTS, && case_sem_INSN_L_SFLTS },
+    { OR1K64BF_INSN_L_SFLTSI, && case_sem_INSN_L_SFLTSI },
+    { OR1K64BF_INSN_L_SFLTU, && case_sem_INSN_L_SFLTU },
+    { OR1K64BF_INSN_L_SFLTUI, && case_sem_INSN_L_SFLTUI },
+    { OR1K64BF_INSN_L_SFLES, && case_sem_INSN_L_SFLES },
+    { OR1K64BF_INSN_L_SFLESI, && case_sem_INSN_L_SFLESI },
+    { OR1K64BF_INSN_L_SFLEU, && case_sem_INSN_L_SFLEU },
+    { OR1K64BF_INSN_L_SFLEUI, && case_sem_INSN_L_SFLEUI },
+    { OR1K64BF_INSN_L_SFEQ, && case_sem_INSN_L_SFEQ },
+    { OR1K64BF_INSN_L_SFEQI, && case_sem_INSN_L_SFEQI },
+    { OR1K64BF_INSN_L_SFNE, && case_sem_INSN_L_SFNE },
+    { OR1K64BF_INSN_L_SFNEI, && case_sem_INSN_L_SFNEI },
+    { OR1K64BF_INSN_L_MAC, && case_sem_INSN_L_MAC },
+    { OR1K64BF_INSN_L_MSB, && case_sem_INSN_L_MSB },
+    { OR1K64BF_INSN_L_MACI, && case_sem_INSN_L_MACI },
+    { OR1K64BF_INSN_L_CUST1, && case_sem_INSN_L_CUST1 },
+    { OR1K64BF_INSN_L_CUST2, && case_sem_INSN_L_CUST2 },
+    { OR1K64BF_INSN_L_CUST3, && case_sem_INSN_L_CUST3 },
+    { OR1K64BF_INSN_L_CUST4, && case_sem_INSN_L_CUST4 },
+    { OR1K64BF_INSN_L_CUST5, && case_sem_INSN_L_CUST5 },
+    { OR1K64BF_INSN_L_CUST6, && case_sem_INSN_L_CUST6 },
+    { OR1K64BF_INSN_L_CUST7, && case_sem_INSN_L_CUST7 },
+    { OR1K64BF_INSN_L_CUST8, && case_sem_INSN_L_CUST8 },
+    { OR1K64BF_INSN_LF_ADD_S, && case_sem_INSN_LF_ADD_S },
+    { OR1K64BF_INSN_LF_ADD_D, && case_sem_INSN_LF_ADD_D },
+    { OR1K64BF_INSN_LF_SUB_S, && case_sem_INSN_LF_SUB_S },
+    { OR1K64BF_INSN_LF_SUB_D, && case_sem_INSN_LF_SUB_D },
+    { OR1K64BF_INSN_LF_MUL_S, && case_sem_INSN_LF_MUL_S },
+    { OR1K64BF_INSN_LF_MUL_D, && case_sem_INSN_LF_MUL_D },
+    { OR1K64BF_INSN_LF_DIV_S, && case_sem_INSN_LF_DIV_S },
+    { OR1K64BF_INSN_LF_DIV_D, && case_sem_INSN_LF_DIV_D },
+    { OR1K64BF_INSN_LF_REM_S, && case_sem_INSN_LF_REM_S },
+    { OR1K64BF_INSN_LF_REM_D, && case_sem_INSN_LF_REM_D },
+    { OR1K64BF_INSN_LF_ITOF_S, && case_sem_INSN_LF_ITOF_S },
+    { OR1K64BF_INSN_LF_ITOF_D, && case_sem_INSN_LF_ITOF_D },
+    { OR1K64BF_INSN_LF_FTOI_S, && case_sem_INSN_LF_FTOI_S },
+    { OR1K64BF_INSN_LF_FTOI_D, && case_sem_INSN_LF_FTOI_D },
+    { OR1K64BF_INSN_LF_EQ_S, && case_sem_INSN_LF_EQ_S },
+    { OR1K64BF_INSN_LF_EQ_D, && case_sem_INSN_LF_EQ_D },
+    { OR1K64BF_INSN_LF_NE_S, && case_sem_INSN_LF_NE_S },
+    { OR1K64BF_INSN_LF_NE_D, && case_sem_INSN_LF_NE_D },
+    { OR1K64BF_INSN_LF_GE_S, && case_sem_INSN_LF_GE_S },
+    { OR1K64BF_INSN_LF_GE_D, && case_sem_INSN_LF_GE_D },
+    { OR1K64BF_INSN_LF_GT_S, && case_sem_INSN_LF_GT_S },
+    { OR1K64BF_INSN_LF_GT_D, && case_sem_INSN_LF_GT_D },
+    { OR1K64BF_INSN_LF_LT_S, && case_sem_INSN_LF_LT_S },
+    { OR1K64BF_INSN_LF_LT_D, && case_sem_INSN_LF_LT_D },
+    { OR1K64BF_INSN_LF_LE_S, && case_sem_INSN_LF_LE_S },
+    { OR1K64BF_INSN_LF_LE_D, && case_sem_INSN_LF_LE_D },
+    { OR1K64BF_INSN_LF_MADD_S, && case_sem_INSN_LF_MADD_S },
+    { OR1K64BF_INSN_LF_MADD_D, && case_sem_INSN_LF_MADD_D },
+    { OR1K64BF_INSN_LF_CUST1_S, && case_sem_INSN_LF_CUST1_S },
+    { OR1K64BF_INSN_LF_CUST1_D, && case_sem_INSN_LF_CUST1_D },
+    { 0, 0 }
+  };
+  int i;
+
+  for (i = 0; labels[i].label != 0; ++i)
+    {
+#if FAST_P
+      CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label;
+#else
+      CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label;
+#endif
+    }
+
+#undef DEFINE_LABELS
+#endif /* DEFINE_LABELS */
+
+#ifdef DEFINE_SWITCH
+
+/* If hyper-fast [well not unnecessarily slow] execution is selected, turn
+   off frills like tracing and profiling.  */
+/* FIXME: A better way would be to have TRACE_RESULT check for something
+   that can cause it to be optimized out.  Another way would be to emit
+   special handlers into the instruction "stream".  */
+
+#if FAST_P
+#undef CGEN_TRACE_RESULT
+#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
+#endif
+
+#undef GET_ATTR
+#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
+
+{
+
+#if WITH_SCACHE_PBB
+
+/* Branch to next handler without going around main loop.  */
+#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case
+SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
+
+#else /* ! WITH_SCACHE_PBB */
+
+#define NEXT(vpc) BREAK (sem)
+#ifdef __GNUC__
+#if FAST_P
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab)
+#else
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab)
+#endif
+#else
+  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num)
+#endif
+
+#endif /* ! WITH_SCACHE_PBB */
+
+    {
+
+  CASE (sem, INSN_X_INVALID) : /* --invalid-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+    /* Update the recorded pc in the cpu state struct.
+       Only necessary for WITH_SCACHE case, but to avoid the
+       conditional compilation ....  */
+    SET_H_PC (pc);
+    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
+       using the default-insn-bitsize spec.  When executing insns in parallel
+       we may want to queue the fault and continue execution.  */
+    vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_AFTER) : /* --after-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    or1k64bf_pbb_after (current_cpu, sem_arg);
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_BEFORE) : /* --before-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    or1k64bf_pbb_before (current_cpu, sem_arg);
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+#ifdef DEFINE_SWITCH
+    vpc = or1k64bf_pbb_cti_chain (current_cpu, sem_arg,
+			       pbb_br_type, pbb_br_npc);
+    BREAK (sem);
+#else
+    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
+    vpc = or1k64bf_pbb_cti_chain (current_cpu, sem_arg,
+			       CPU_PBB_BR_TYPE (current_cpu),
+			       CPU_PBB_BR_NPC (current_cpu));
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_CHAIN) : /* --chain-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    vpc = or1k64bf_pbb_chain (current_cpu, sem_arg);
+#ifdef DEFINE_SWITCH
+    BREAK (sem);
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_X_BEGIN) : /* --begin-- */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+#if defined DEFINE_SWITCH || defined FAST_P
+    /* In the switch case FAST_P is a constant, allowing several optimizations
+       in any called inline functions.  */
+    vpc = or1k64bf_pbb_begin (current_cpu, FAST_P);
+#else
+#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
+    vpc = or1k64bf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
+#else
+    vpc = or1k64bf_pbb_begin (current_cpu, 0);
+#endif
+#endif
+#endif
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_J) : /* l.j ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JAL) : /* l.jal ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ADDDI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+{
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JR) : /* l.jr $rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_JALR) : /* l.jalr $rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ADDDI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+{
+{
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_BNF) : /* l.bnf ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NOTDI (GET_H_SYS_SR_F ())) {
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    UDI opval = ADDDI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_BF) : /* l.bf ${disp26} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (GET_H_SYS_SR_F ()) {
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    UDI opval = ADDDI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_TRAP) : /* l.trap ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_exception (current_cpu, pc, EXCEPT_TRAP);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SYS) : /* l.sys ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_exception (current_cpu, pc, EXCEPT_SYSCALL);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MSYNC) : /* l.msync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_PSYNC) : /* l.psync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CSYNC) : /* l.csync */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_RFE) : /* l.rfe */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_rfe (current_cpu);
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_NOP_IMM) : /* l.nop ${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_nop (current_cpu, ZEXTSIDI (FLD (f_uimm16)));
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MOVHI) : /* l.movhi $rD,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (ZEXTSIDI (FLD (f_uimm16)), 16);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MACRC) : /* l.macrc $rD */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = GET_H_MAC_MACLO ();
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+  {
+    UDI opval = 0;
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'D', opval);
+  }
+  {
+    UDI opval = 0;
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'D', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MFSPR) : /* l.mfspr $rD,$rA,${uimm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_mfspr (current_cpu, ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MTSPR) : /* l.mtspr $rA,$rB,${uimm16-split} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_mtspr (current_cpu, ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16_split))), GET_H_GPR (FLD (f_r3)));
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWZ) : /* l.lwz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTSIDI (GETMEMUSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWS) : /* l.lws $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTSIDI (GETMEMSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LWA) : /* l.lwa $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ZEXTSIDI (GETMEMUSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+  {
+    BI opval = 1;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+  {
+    SI opval = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4);
+    CPU (h_atomic_address) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-address", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LBZ) : /* l.lbz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTQIDI (GETMEMUQI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LBS) : /* l.lbs $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTQIDI (GETMEMQI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LHZ) : /* l.lhz $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTHIDI (GETMEMUHI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_LHS) : /* l.lhs $rD,${simm16}($rA) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTHIDI (GETMEMHI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SW) : /* l.sw ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = TRUNCDISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SB) : /* l.sb ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 1);
+  {
+    UQI opval = TRUNCDIQI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUQI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SH) : /* l.sh ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 2);
+  {
+    UHI opval = TRUNCDIHI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUHI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SWA) : /* l.swa ${simm16-split}($rA),$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  BI tmp_flag;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    UDI opval = ANDBI (CPU (h_atomic_reserve), EQSI (tmp_addr, CPU (h_atomic_address)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = TRUNCDISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    written |= (1 << 7);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SLL) : /* l.sll $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SLLI) : /* l.slli $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRL) : /* l.srl $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRLDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRLI) : /* l.srli $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRLDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRA) : /* l.sra $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRADI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SRAI) : /* l.srai $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRADI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ROR) : /* l.ror $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = RORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_RORI) : /* l.rori $rD,$rA,${uimm6} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = RORDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_AND) : /* l.and $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ANDDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_OR) : /* l.or $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_XOR) : /* l.xor $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = XORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADD) : /* l.add $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SUB) : /* l.sub $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = SUBCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = SUBOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = SUBDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDC) : /* l.addc $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDCDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MUL) : /* l.mul $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = MUL2OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MULU) : /* l.mulu $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_DIV) : /* l.div $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NEDI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    DI opval = DIVDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_DIVU) : /* l.divu $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NEDI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = UDIVDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_FF1) : /* l.ff1 $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_ff1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_FL1) : /* l.fl1 $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_fl1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ANDI) : /* l.andi $rD,$rA,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ANDDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ORI) : /* l.ori $rD,$rA,$uimm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_XORI) : /* l.xori $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = XORDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDI) : /* l.addi $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_ADDIC) : /* l.addic $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    DI opval = ADDCDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MULI) : /* l.muli $rD,$rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = MUL2OFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'D', opval);
+  }
+  {
+    UDI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'D', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTHS) : /* l.exths $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTHIDI (TRUNCDIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTBS) : /* l.extbs $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTQIDI (TRUNCDIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTHZ) : /* l.exthz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTHIDI (TRUNCDIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTBZ) : /* l.extbz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTQIDI (TRUNCDIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTWS) : /* l.extws $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTSIDI (TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_EXTWZ) : /* l.extwz $rD,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTSISI (TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CMOV) : /* l.cmov $rD,$rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+if (GET_H_SYS_SR_F ()) {
+  {
+    UDI opval = GET_H_GPR (FLD (f_r2));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+} else {
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTS) : /* l.sfgts $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTSI) : /* l.sfgtsi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTU) : /* l.sfgtu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGTUI) : /* l.sfgtui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGES) : /* l.sfges $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGESI) : /* l.sfgesi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGEU) : /* l.sfgeu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFGEUI) : /* l.sfgeui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTS) : /* l.sflts $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTSI) : /* l.sfltsi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTU) : /* l.sfltu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLTUI) : /* l.sfltui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLES) : /* l.sfles $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLESI) : /* l.sflesi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLEU) : /* l.sfleu $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFLEUI) : /* l.sfleui $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFEQ) : /* l.sfeq $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EQDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFEQI) : /* l.sfeqi $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EQDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFNE) : /* l.sfne $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = NEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_SFNEI) : /* l.sfnei $rA,$simm16 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = NEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MAC) : /* l.mac $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MSB) : /* l.msb $rA,$rB */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = SUBDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_MACI) : /* l.maci $rA,${simm16} */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (EXTSIDI (FLD (f_simm16)), GET_H_GPR (FLD (f_r2)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST1) : /* l.cust1 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST2) : /* l.cust2 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST3) : /* l.cust3 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST4) : /* l.cust4 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST5) : /* l.cust5 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST6) : /* l.cust6 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST7) : /* l.cust7 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_L_CUST8) : /* l.cust8 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ADD_S) : /* lf.add.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ADD_D) : /* lf.add.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_SUB_S) : /* lf.sub.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_SUB_D) : /* lf.sub.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->subdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MUL_S) : /* lf.mul.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MUL_D) : /* lf.mul.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_DIV_S) : /* lf.div.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_DIV_D) : /* lf.div.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->divdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_REM_S) : /* lf.rem.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->remsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_REM_D) : /* lf.rem.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->moddf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ITOF_S) : /* lf.itof.s $rDSF,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_ITOF_D) : /* lf.itof.d $rDSF,$rA */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatdidf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_GPR (FLD (f_r2)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_FTOI_S) : /* lf.ftoi.s $rD,$rASF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTSIDI (CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FSR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_FTOI_D) : /* lf.ftoi.d $rD,$rADF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfdi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FDR (FLD (f_r1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_EQ_S) : /* lf.sfeq.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_EQ_D) : /* lf.sfeq.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_NE_S) : /* lf.sfne.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_NE_D) : /* lf.sfne.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nedf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GE_S) : /* lf.sfge.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GE_D) : /* lf.sfge.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gedf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GT_S) : /* lf.sfgt.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_GT_D) : /* lf.sfgt.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LT_S) : /* lf.sflt.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LT_D) : /* lf.sflt.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LE_S) : /* lf.sfle.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->lesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_LE_D) : /* lf.sfle.d $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ledf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MADD_S) : /* lf.madd.s $rDSF,$rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3))), GET_H_FSR (FLD (f_r1)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_MADD_D) : /* lf.madd.d $rDDF,$rADF,$rBDF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1))), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_CUST1_S) : /* lf.cust1.s $rASF,$rBSF */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LF_CUST1_D) : /* lf.cust1.d */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_empty.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+#undef FLD
+}
+  NEXT (vpc);
+
+
+    }
+  ENDSWITCH (sem) /* End of semantic switch.  */
+
+  /* At this point `vpc' contains the next insn to execute.  */
+}
+
+#undef DEFINE_SWITCH
+#endif /* DEFINE_SWITCH */
diff --git a/sim/or1k/sem64.c b/sim/or1k/sem64.c
new file mode 100644
index 0000000..8b6c504
--- /dev/null
+++ b/sim/or1k/sem64.c
@@ -0,0 +1,3279 @@
+/* Simulator instruction semantics for or1k64bf.
+
+THIS FILE IS MACHINE GENERATED WITH CGEN.
+
+Copyright 1996-2010 Free Software Foundation, Inc.
+
+This file is part of the GNU simulators.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#define WANT_CPU or1k64bf
+#define WANT_CPU_OR1K64BF
+
+#include "sim-main.h"
+#include "cgen-mem.h"
+#include "cgen-ops.h"
+
+#undef GET_ATTR
+#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
+
+/* This is used so that we can compile two copies of the semantic code,
+   one with full feature support and one without that runs fast(er).
+   FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
+#if FAST_P
+#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
+#undef CGEN_TRACE_RESULT
+#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
+#else
+#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
+#endif
+
+/* x-invalid: --invalid-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+    /* Update the recorded pc in the cpu state struct.
+       Only necessary for WITH_SCACHE case, but to avoid the
+       conditional compilation ....  */
+    SET_H_PC (pc);
+    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
+       using the default-insn-bitsize spec.  When executing insns in parallel
+       we may want to queue the fault and continue execution.  */
+    vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-after: --after-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    or1k64bf_pbb_after (current_cpu, sem_arg);
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-before: --before-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    or1k64bf_pbb_before (current_cpu, sem_arg);
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-cti-chain: --cti-chain-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+#ifdef DEFINE_SWITCH
+    vpc = or1k64bf_pbb_cti_chain (current_cpu, sem_arg,
+			       pbb_br_type, pbb_br_npc);
+    BREAK (sem);
+#else
+    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
+    vpc = or1k64bf_pbb_cti_chain (current_cpu, sem_arg,
+			       CPU_PBB_BR_TYPE (current_cpu),
+			       CPU_PBB_BR_NPC (current_cpu));
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-chain: --chain-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+    vpc = or1k64bf_pbb_chain (current_cpu, sem_arg);
+#ifdef DEFINE_SWITCH
+    BREAK (sem);
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* x-begin: --begin-- */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
+
+  {
+#if WITH_SCACHE_PBB_OR1K64BF
+#if defined DEFINE_SWITCH || defined FAST_P
+    /* In the switch case FAST_P is a constant, allowing several optimizations
+       in any called inline functions.  */
+    vpc = or1k64bf_pbb_begin (current_cpu, FAST_P);
+#else
+#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
+    vpc = or1k64bf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
+#else
+    vpc = or1k64bf_pbb_begin (current_cpu, 0);
+#endif
+#endif
+#endif
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-j: l.j ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_j) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jal: l.jal ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_jal) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ADDDI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+{
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jr: l.jr $rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_jr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-jalr: l.jalr $rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_jalr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ADDDI (pc, ((GET_H_SYS_CPUCFGR_ND ()) ? (4) : (8)));
+    SET_H_GPR (((UINT) 9), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+{
+{
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+}
+
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-bnf: l.bnf ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_bnf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NOTDI (GET_H_SYS_SR_F ())) {
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    UDI opval = ADDDI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-bf: l.bf ${disp26} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_bf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_j.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (GET_H_SYS_SR_F ()) {
+{
+  {
+    UDI opval = FLD (i_disp26);
+    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+} else {
+if (GET_H_SYS_CPUCFGR_ND ()) {
+{
+  {
+    UDI opval = ADDDI (pc, 4);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+}
+}
+if (GET_H_SYS_CPUCFGR_ND ()) {
+if (1)
+  SEM_SKIP_INSN (current_cpu, sem_arg, vpc);
+}
+}
+
+  abuf->written = written;
+  SEM_BRANCH_FINI (vpc);
+  return vpc;
+#undef FLD
+}
+
+/* l-trap: l.trap ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_trap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_exception (current_cpu, pc, EXCEPT_TRAP);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sys: l.sys ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sys) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_exception (current_cpu, pc, EXCEPT_SYSCALL);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-msync: l.msync */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_msync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-psync: l.psync */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_psync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-csync: l.csync */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_csync) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-rfe: l.rfe */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_rfe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_rfe (current_cpu);
+
+  return vpc;
+#undef FLD
+}
+
+/* l-nop-imm: l.nop ${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_nop_imm) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_nop (current_cpu, ZEXTSIDI (FLD (f_uimm16)));
+
+  return vpc;
+#undef FLD
+}
+
+/* l-movhi: l.movhi $rD,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_movhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (ZEXTSIDI (FLD (f_uimm16)), 16);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-macrc: l.macrc $rD */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_macrc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = GET_H_MAC_MACLO ();
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+  {
+    UDI opval = 0;
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'D', opval);
+  }
+  {
+    UDI opval = 0;
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'D', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mfspr: l.mfspr $rD,$rA,${uimm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_mfspr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_mfspr (current_cpu, ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mtspr: l.mtspr $rA,$rB,${uimm16-split} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_mtspr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mtspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+or1k64bf_mtspr (current_cpu, ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16_split))), GET_H_GPR (FLD (f_r3)));
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lwz: l.lwz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lwz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTSIDI (GETMEMUSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lws: l.lws $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lws) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTSIDI (GETMEMSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lwa: l.lwa $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lwa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  {
+    UDI opval = ZEXTSIDI (GETMEMUSI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+  {
+    BI opval = 1;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+  {
+    SI opval = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 4);
+    CPU (h_atomic_address) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-address", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lbz: l.lbz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lbz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTQIDI (GETMEMUQI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lbs: l.lbs $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lbs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTQIDI (GETMEMQI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lhz: l.lhz $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lhz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTHIDI (GETMEMUHI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-lhs: l.lhs $rD,${simm16}($rA) */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_lhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTHIDI (GETMEMHI (current_cpu, pc, or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16)), 2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sw: l.sw ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    USI opval = TRUNCDISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sb: l.sb ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 1);
+  {
+    UQI opval = TRUNCDIQI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUQI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sh: l.sh ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 2);
+  {
+    UHI opval = TRUNCDIHI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUHI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+if (EQSI (ANDSI (tmp_addr, 268435452), CPU (h_atomic_address))) {
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-swa: l.swa ${simm16-split}($rA),$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_swa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sw.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  SI tmp_addr;
+  BI tmp_flag;
+  tmp_addr = or1k64bf_make_load_store_addr (current_cpu, GET_H_GPR (FLD (f_r2)), EXTSISI (FLD (f_simm16_split)), 4);
+  {
+    UDI opval = ANDBI (CPU (h_atomic_reserve), EQSI (tmp_addr, CPU (h_atomic_address)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+if (GET_H_SYS_SR_F ()) {
+  {
+    USI opval = TRUNCDISI (GET_H_GPR (FLD (f_r3)));
+    SETMEMUSI (current_cpu, pc, tmp_addr, opval);
+    written |= (1 << 7);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    CPU (h_atomic_reserve) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "atomic-reserve", 'x', opval);
+  }
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sll: l.sll $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-slli: l.slli $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SLLDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srl: l.srl $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRLDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srli: l.srli $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRLDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sra: l.sra $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRADI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-srai: l.srai $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = SRADI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-ror: l.ror $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_ror) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = RORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-rori: l.rori $rD,$rA,${uimm6} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_rori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = RORDI (GET_H_GPR (FLD (f_r2)), FLD (f_uimm6));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-and: l.and $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ANDDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-or: l.or $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-xor: l.xor $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = XORDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-add: l.add $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sub: l.sub $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = SUBCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = SUBOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = SUBDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addc: l.addc $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_addc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDCDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mul: l.mul $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_mul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = MUL2OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mulu: l.mulu $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_mulu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    BI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-div: l.div $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_div) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NEDI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    DI opval = DIVDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-divu: l.divu $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_divu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+if (NEDI (GET_H_GPR (FLD (f_r3)), 0)) {
+{
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    UDI opval = UDIVDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+} else {
+  {
+    BI opval = 1;
+    SET_H_SYS_SR_CY (opval);
+    written |= (1 << 6);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+}
+  {
+    BI opval = 0;
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+if (ANDIF (GET_H_SYS_SR_CY (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-ff1: l.ff1 $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_ff1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_ff1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-fl1: l.fl1 $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_fl1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = or1k64bf_fl1 (current_cpu, GET_H_GPR (FLD (f_r2)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-andi: l.andi $rD,$rA,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ANDDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-ori: l.ori $rD,$rA,$uimm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_mfspr.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ORDI (GET_H_GPR (FLD (f_r2)), ZEXTSIDI (FLD (f_uimm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-xori: l.xori $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = XORDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addi: l.addi $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), 0);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    UDI opval = ADDDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-addic: l.addic $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_addic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  BI tmp_tmp_sys_sr_cy;
+  tmp_tmp_sys_sr_cy = GET_H_SYS_SR_CY ();
+  {
+    BI opval = ADDCFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'x', opval);
+  }
+  {
+    BI opval = ADDOFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'x', opval);
+  }
+  {
+    DI opval = ADDCDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)), tmp_tmp_sys_sr_cy);
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-muli: l.muli $rD,$rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_muli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+{
+  {
+    UDI opval = MUL2OFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_OV (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-ov", 'D', opval);
+  }
+  {
+    UDI opval = MUL1OFDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_CY (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-cy", 'D', opval);
+  }
+  {
+    UDI opval = MULDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+if (ANDIF (GET_H_SYS_SR_OV (), GET_H_SYS_SR_OVE ())) {
+or1k64bf_exception (current_cpu, pc, EXCEPT_RANGE);
+}
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-exths: l.exths $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_exths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTHIDI (TRUNCDIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extbs: l.extbs $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_extbs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTQIDI (TRUNCDIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-exthz: l.exthz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_exthz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTHIDI (TRUNCDIHI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extbz: l.extbz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_extbz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTQIDI (TRUNCDIQI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extws: l.extws $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_extws) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EXTSIDI (TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-extwz: l.extwz $rD,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_extwz) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = ZEXTSISI (TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cmov: l.cmov $rD,$rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cmov) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+if (GET_H_SYS_SR_F ()) {
+  {
+    UDI opval = GET_H_GPR (FLD (f_r2));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+} else {
+  {
+    UDI opval = GET_H_GPR (FLD (f_r3));
+    SET_H_GPR (FLD (f_r1), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+}
+
+  abuf->written = written;
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgts: l.sfgts $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtsi: l.sfgtsi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgtsi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtu: l.sfgtu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgtu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgtui: l.sfgtui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgtui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GTUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfges: l.sfges $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfges) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgesi: l.sfgesi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgesi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgeu: l.sfgeu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgeu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfgeui: l.sfgeui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfgeui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = GEUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sflts: l.sflts $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sflts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltsi: l.sfltsi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfltsi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltu: l.sfltu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfltu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfltui: l.sfltui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfltui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LTUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfles: l.sfles $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfles) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sflesi: l.sflesi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sflesi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfleu: l.sfleu $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfleu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEUDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfleui: l.sfleui $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfleui) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = LEUDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfeq: l.sfeq $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EQDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfeqi: l.sfeqi $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfeqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = EQDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfne: l.sfne $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = NEDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-sfnei: l.sfnei $rA,$simm16 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_sfnei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    UDI opval = NEDI (GET_H_GPR (FLD (f_r2)), EXTSIDI (FLD (f_simm16)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* l-mac: l.mac $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_mac) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-msb: l.msb $rA,$rB */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_msb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (GET_H_GPR (FLD (f_r2)), GET_H_GPR (FLD (f_r3)));
+  tmp_result = SUBDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-maci: l.maci $rA,${simm16} */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_maci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_lwz.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+{
+  DI tmp_prod;
+  DI tmp_result;
+  tmp_prod = MULDI (EXTSIDI (FLD (f_simm16)), GET_H_GPR (FLD (f_r2)));
+  tmp_result = ADDDI (JOINSIDI (GET_H_MAC_MACHI (), GET_H_MAC_MACLO ()), EXTDIDI (tmp_prod));
+  {
+    SI opval = SUBWORDDISI (tmp_result, 0);
+    SET_H_MAC_MACHI (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-machi", 'x', opval);
+  }
+  {
+    SI opval = SUBWORDDISI (tmp_result, 1);
+    SET_H_MAC_MACLO (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mac-maclo", 'x', opval);
+  }
+}
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust1: l.cust1 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust2: l.cust2 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust3: l.cust3 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust3) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust4: l.cust4 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust4) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust5: l.cust5 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust5) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust6: l.cust6 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust6) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust7: l.cust7 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust7) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* l-cust8: l.cust8 */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,l_cust8) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-add-s: lf.add.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_add_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-add-d: lf.add.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_add_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-sub-s: lf.sub.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_sub_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-sub-d: lf.sub.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_sub_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->subdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-mul-s: lf.mul.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_mul_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-mul-d: lf.mul.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_mul_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-div-s: lf.div.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_div_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-div-d: lf.div.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_div_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->divdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-rem-s: lf.rem.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_rem_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->remsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-rem-d: lf.rem.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_rem_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->moddf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-itof-s: lf.itof.s $rDSF,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_itof_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), TRUNCDISI (GET_H_GPR (FLD (f_r2))));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-itof-d: lf.itof.d $rDSF,$rA */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_itof_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatdidf (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_GPR (FLD (f_r2)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ftoi-s: lf.ftoi.s $rD,$rASF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ftoi_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = EXTSIDI (CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FSR (FLD (f_r2))));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ftoi-d: lf.ftoi.d $rD,$rADF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ftoi_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfdi (CGEN_CPU_FPU (current_cpu), (GET_H_SYS_FPCSR_RM () == 0) ? (1) : (GET_H_SYS_FPCSR_RM () == 1) ? (3) : (GET_H_SYS_FPCSR_RM () == 2) ? (4) : (5), GET_H_FDR (FLD (f_r1)));
+    SET_H_GPR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gpr", 'D', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-eq-s: lf.sfeq.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_eq_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-eq-d: lf.sfeq.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_eq_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->eqdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ne-s: lf.sfne.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ne_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ne-d: lf.sfne.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ne_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->nedf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ge-s: lf.sfge.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ge_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-ge-d: lf.sfge.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_ge_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gedf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-gt-s: lf.sfgt.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_gt_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-gt-d: lf.sfgt.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_gt_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->gtdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-lt-s: lf.sflt.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_lt_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-lt-d: lf.sflt.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_lt_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ltdf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-le-s: lf.sfle.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_le_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->lesf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-le-d: lf.sfle.d $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_le_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    BI opval = CGEN_CPU_FPU (current_cpu)->ops->ledf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1)));
+    SET_H_SYS_SR_F (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sys-sr-f", 'x', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-madd-s: lf.madd.s $rDSF,$rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_madd_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_sll.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FSR (FLD (f_r2)), GET_H_FSR (FLD (f_r3))), GET_H_FSR (FLD (f_r1)));
+    SET_H_FSR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-madd-d: lf.madd.d $rDDF,$rADF,$rBDF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_madd_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_l_slli.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), GET_H_FDR (FLD (f_r1)), GET_H_FDR (FLD (f_r1))), GET_H_FDR (FLD (f_r1)));
+    SET_H_FDR (FLD (f_r1), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fdr", 'f', opval);
+  }
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-cust1-s: lf.cust1.s $rASF,$rBSF */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_cust1_s) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* lf-cust1-d: lf.cust1.d */
+
+static SEM_PC
+SEM_FN_NAME (or1k64bf,lf_cust1_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
+{
+#define FLD(f) abuf->fields.sfmt_empty.f
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+((void) 0); /*nop*/
+
+  return vpc;
+#undef FLD
+}
+
+/* Table of all semantic fns.  */
+
+static const struct sem_fn_desc sem_fns[] = {
+  { OR1K64BF_INSN_X_INVALID, SEM_FN_NAME (or1k64bf,x_invalid) },
+  { OR1K64BF_INSN_X_AFTER, SEM_FN_NAME (or1k64bf,x_after) },
+  { OR1K64BF_INSN_X_BEFORE, SEM_FN_NAME (or1k64bf,x_before) },
+  { OR1K64BF_INSN_X_CTI_CHAIN, SEM_FN_NAME (or1k64bf,x_cti_chain) },
+  { OR1K64BF_INSN_X_CHAIN, SEM_FN_NAME (or1k64bf,x_chain) },
+  { OR1K64BF_INSN_X_BEGIN, SEM_FN_NAME (or1k64bf,x_begin) },
+  { OR1K64BF_INSN_L_J, SEM_FN_NAME (or1k64bf,l_j) },
+  { OR1K64BF_INSN_L_JAL, SEM_FN_NAME (or1k64bf,l_jal) },
+  { OR1K64BF_INSN_L_JR, SEM_FN_NAME (or1k64bf,l_jr) },
+  { OR1K64BF_INSN_L_JALR, SEM_FN_NAME (or1k64bf,l_jalr) },
+  { OR1K64BF_INSN_L_BNF, SEM_FN_NAME (or1k64bf,l_bnf) },
+  { OR1K64BF_INSN_L_BF, SEM_FN_NAME (or1k64bf,l_bf) },
+  { OR1K64BF_INSN_L_TRAP, SEM_FN_NAME (or1k64bf,l_trap) },
+  { OR1K64BF_INSN_L_SYS, SEM_FN_NAME (or1k64bf,l_sys) },
+  { OR1K64BF_INSN_L_MSYNC, SEM_FN_NAME (or1k64bf,l_msync) },
+  { OR1K64BF_INSN_L_PSYNC, SEM_FN_NAME (or1k64bf,l_psync) },
+  { OR1K64BF_INSN_L_CSYNC, SEM_FN_NAME (or1k64bf,l_csync) },
+  { OR1K64BF_INSN_L_RFE, SEM_FN_NAME (or1k64bf,l_rfe) },
+  { OR1K64BF_INSN_L_NOP_IMM, SEM_FN_NAME (or1k64bf,l_nop_imm) },
+  { OR1K64BF_INSN_L_MOVHI, SEM_FN_NAME (or1k64bf,l_movhi) },
+  { OR1K64BF_INSN_L_MACRC, SEM_FN_NAME (or1k64bf,l_macrc) },
+  { OR1K64BF_INSN_L_MFSPR, SEM_FN_NAME (or1k64bf,l_mfspr) },
+  { OR1K64BF_INSN_L_MTSPR, SEM_FN_NAME (or1k64bf,l_mtspr) },
+  { OR1K64BF_INSN_L_LWZ, SEM_FN_NAME (or1k64bf,l_lwz) },
+  { OR1K64BF_INSN_L_LWS, SEM_FN_NAME (or1k64bf,l_lws) },
+  { OR1K64BF_INSN_L_LWA, SEM_FN_NAME (or1k64bf,l_lwa) },
+  { OR1K64BF_INSN_L_LBZ, SEM_FN_NAME (or1k64bf,l_lbz) },
+  { OR1K64BF_INSN_L_LBS, SEM_FN_NAME (or1k64bf,l_lbs) },
+  { OR1K64BF_INSN_L_LHZ, SEM_FN_NAME (or1k64bf,l_lhz) },
+  { OR1K64BF_INSN_L_LHS, SEM_FN_NAME (or1k64bf,l_lhs) },
+  { OR1K64BF_INSN_L_SW, SEM_FN_NAME (or1k64bf,l_sw) },
+  { OR1K64BF_INSN_L_SB, SEM_FN_NAME (or1k64bf,l_sb) },
+  { OR1K64BF_INSN_L_SH, SEM_FN_NAME (or1k64bf,l_sh) },
+  { OR1K64BF_INSN_L_SWA, SEM_FN_NAME (or1k64bf,l_swa) },
+  { OR1K64BF_INSN_L_SLL, SEM_FN_NAME (or1k64bf,l_sll) },
+  { OR1K64BF_INSN_L_SLLI, SEM_FN_NAME (or1k64bf,l_slli) },
+  { OR1K64BF_INSN_L_SRL, SEM_FN_NAME (or1k64bf,l_srl) },
+  { OR1K64BF_INSN_L_SRLI, SEM_FN_NAME (or1k64bf,l_srli) },
+  { OR1K64BF_INSN_L_SRA, SEM_FN_NAME (or1k64bf,l_sra) },
+  { OR1K64BF_INSN_L_SRAI, SEM_FN_NAME (or1k64bf,l_srai) },
+  { OR1K64BF_INSN_L_ROR, SEM_FN_NAME (or1k64bf,l_ror) },
+  { OR1K64BF_INSN_L_RORI, SEM_FN_NAME (or1k64bf,l_rori) },
+  { OR1K64BF_INSN_L_AND, SEM_FN_NAME (or1k64bf,l_and) },
+  { OR1K64BF_INSN_L_OR, SEM_FN_NAME (or1k64bf,l_or) },
+  { OR1K64BF_INSN_L_XOR, SEM_FN_NAME (or1k64bf,l_xor) },
+  { OR1K64BF_INSN_L_ADD, SEM_FN_NAME (or1k64bf,l_add) },
+  { OR1K64BF_INSN_L_SUB, SEM_FN_NAME (or1k64bf,l_sub) },
+  { OR1K64BF_INSN_L_ADDC, SEM_FN_NAME (or1k64bf,l_addc) },
+  { OR1K64BF_INSN_L_MUL, SEM_FN_NAME (or1k64bf,l_mul) },
+  { OR1K64BF_INSN_L_MULU, SEM_FN_NAME (or1k64bf,l_mulu) },
+  { OR1K64BF_INSN_L_DIV, SEM_FN_NAME (or1k64bf,l_div) },
+  { OR1K64BF_INSN_L_DIVU, SEM_FN_NAME (or1k64bf,l_divu) },
+  { OR1K64BF_INSN_L_FF1, SEM_FN_NAME (or1k64bf,l_ff1) },
+  { OR1K64BF_INSN_L_FL1, SEM_FN_NAME (or1k64bf,l_fl1) },
+  { OR1K64BF_INSN_L_ANDI, SEM_FN_NAME (or1k64bf,l_andi) },
+  { OR1K64BF_INSN_L_ORI, SEM_FN_NAME (or1k64bf,l_ori) },
+  { OR1K64BF_INSN_L_XORI, SEM_FN_NAME (or1k64bf,l_xori) },
+  { OR1K64BF_INSN_L_ADDI, SEM_FN_NAME (or1k64bf,l_addi) },
+  { OR1K64BF_INSN_L_ADDIC, SEM_FN_NAME (or1k64bf,l_addic) },
+  { OR1K64BF_INSN_L_MULI, SEM_FN_NAME (or1k64bf,l_muli) },
+  { OR1K64BF_INSN_L_EXTHS, SEM_FN_NAME (or1k64bf,l_exths) },
+  { OR1K64BF_INSN_L_EXTBS, SEM_FN_NAME (or1k64bf,l_extbs) },
+  { OR1K64BF_INSN_L_EXTHZ, SEM_FN_NAME (or1k64bf,l_exthz) },
+  { OR1K64BF_INSN_L_EXTBZ, SEM_FN_NAME (or1k64bf,l_extbz) },
+  { OR1K64BF_INSN_L_EXTWS, SEM_FN_NAME (or1k64bf,l_extws) },
+  { OR1K64BF_INSN_L_EXTWZ, SEM_FN_NAME (or1k64bf,l_extwz) },
+  { OR1K64BF_INSN_L_CMOV, SEM_FN_NAME (or1k64bf,l_cmov) },
+  { OR1K64BF_INSN_L_SFGTS, SEM_FN_NAME (or1k64bf,l_sfgts) },
+  { OR1K64BF_INSN_L_SFGTSI, SEM_FN_NAME (or1k64bf,l_sfgtsi) },
+  { OR1K64BF_INSN_L_SFGTU, SEM_FN_NAME (or1k64bf,l_sfgtu) },
+  { OR1K64BF_INSN_L_SFGTUI, SEM_FN_NAME (or1k64bf,l_sfgtui) },
+  { OR1K64BF_INSN_L_SFGES, SEM_FN_NAME (or1k64bf,l_sfges) },
+  { OR1K64BF_INSN_L_SFGESI, SEM_FN_NAME (or1k64bf,l_sfgesi) },
+  { OR1K64BF_INSN_L_SFGEU, SEM_FN_NAME (or1k64bf,l_sfgeu) },
+  { OR1K64BF_INSN_L_SFGEUI, SEM_FN_NAME (or1k64bf,l_sfgeui) },
+  { OR1K64BF_INSN_L_SFLTS, SEM_FN_NAME (or1k64bf,l_sflts) },
+  { OR1K64BF_INSN_L_SFLTSI, SEM_FN_NAME (or1k64bf,l_sfltsi) },
+  { OR1K64BF_INSN_L_SFLTU, SEM_FN_NAME (or1k64bf,l_sfltu) },
+  { OR1K64BF_INSN_L_SFLTUI, SEM_FN_NAME (or1k64bf,l_sfltui) },
+  { OR1K64BF_INSN_L_SFLES, SEM_FN_NAME (or1k64bf,l_sfles) },
+  { OR1K64BF_INSN_L_SFLESI, SEM_FN_NAME (or1k64bf,l_sflesi) },
+  { OR1K64BF_INSN_L_SFLEU, SEM_FN_NAME (or1k64bf,l_sfleu) },
+  { OR1K64BF_INSN_L_SFLEUI, SEM_FN_NAME (or1k64bf,l_sfleui) },
+  { OR1K64BF_INSN_L_SFEQ, SEM_FN_NAME (or1k64bf,l_sfeq) },
+  { OR1K64BF_INSN_L_SFEQI, SEM_FN_NAME (or1k64bf,l_sfeqi) },
+  { OR1K64BF_INSN_L_SFNE, SEM_FN_NAME (or1k64bf,l_sfne) },
+  { OR1K64BF_INSN_L_SFNEI, SEM_FN_NAME (or1k64bf,l_sfnei) },
+  { OR1K64BF_INSN_L_MAC, SEM_FN_NAME (or1k64bf,l_mac) },
+  { OR1K64BF_INSN_L_MSB, SEM_FN_NAME (or1k64bf,l_msb) },
+  { OR1K64BF_INSN_L_MACI, SEM_FN_NAME (or1k64bf,l_maci) },
+  { OR1K64BF_INSN_L_CUST1, SEM_FN_NAME (or1k64bf,l_cust1) },
+  { OR1K64BF_INSN_L_CUST2, SEM_FN_NAME (or1k64bf,l_cust2) },
+  { OR1K64BF_INSN_L_CUST3, SEM_FN_NAME (or1k64bf,l_cust3) },
+  { OR1K64BF_INSN_L_CUST4, SEM_FN_NAME (or1k64bf,l_cust4) },
+  { OR1K64BF_INSN_L_CUST5, SEM_FN_NAME (or1k64bf,l_cust5) },
+  { OR1K64BF_INSN_L_CUST6, SEM_FN_NAME (or1k64bf,l_cust6) },
+  { OR1K64BF_INSN_L_CUST7, SEM_FN_NAME (or1k64bf,l_cust7) },
+  { OR1K64BF_INSN_L_CUST8, SEM_FN_NAME (or1k64bf,l_cust8) },
+  { OR1K64BF_INSN_LF_ADD_S, SEM_FN_NAME (or1k64bf,lf_add_s) },
+  { OR1K64BF_INSN_LF_ADD_D, SEM_FN_NAME (or1k64bf,lf_add_d) },
+  { OR1K64BF_INSN_LF_SUB_S, SEM_FN_NAME (or1k64bf,lf_sub_s) },
+  { OR1K64BF_INSN_LF_SUB_D, SEM_FN_NAME (or1k64bf,lf_sub_d) },
+  { OR1K64BF_INSN_LF_MUL_S, SEM_FN_NAME (or1k64bf,lf_mul_s) },
+  { OR1K64BF_INSN_LF_MUL_D, SEM_FN_NAME (or1k64bf,lf_mul_d) },
+  { OR1K64BF_INSN_LF_DIV_S, SEM_FN_NAME (or1k64bf,lf_div_s) },
+  { OR1K64BF_INSN_LF_DIV_D, SEM_FN_NAME (or1k64bf,lf_div_d) },
+  { OR1K64BF_INSN_LF_REM_S, SEM_FN_NAME (or1k64bf,lf_rem_s) },
+  { OR1K64BF_INSN_LF_REM_D, SEM_FN_NAME (or1k64bf,lf_rem_d) },
+  { OR1K64BF_INSN_LF_ITOF_S, SEM_FN_NAME (or1k64bf,lf_itof_s) },
+  { OR1K64BF_INSN_LF_ITOF_D, SEM_FN_NAME (or1k64bf,lf_itof_d) },
+  { OR1K64BF_INSN_LF_FTOI_S, SEM_FN_NAME (or1k64bf,lf_ftoi_s) },
+  { OR1K64BF_INSN_LF_FTOI_D, SEM_FN_NAME (or1k64bf,lf_ftoi_d) },
+  { OR1K64BF_INSN_LF_EQ_S, SEM_FN_NAME (or1k64bf,lf_eq_s) },
+  { OR1K64BF_INSN_LF_EQ_D, SEM_FN_NAME (or1k64bf,lf_eq_d) },
+  { OR1K64BF_INSN_LF_NE_S, SEM_FN_NAME (or1k64bf,lf_ne_s) },
+  { OR1K64BF_INSN_LF_NE_D, SEM_FN_NAME (or1k64bf,lf_ne_d) },
+  { OR1K64BF_INSN_LF_GE_S, SEM_FN_NAME (or1k64bf,lf_ge_s) },
+  { OR1K64BF_INSN_LF_GE_D, SEM_FN_NAME (or1k64bf,lf_ge_d) },
+  { OR1K64BF_INSN_LF_GT_S, SEM_FN_NAME (or1k64bf,lf_gt_s) },
+  { OR1K64BF_INSN_LF_GT_D, SEM_FN_NAME (or1k64bf,lf_gt_d) },
+  { OR1K64BF_INSN_LF_LT_S, SEM_FN_NAME (or1k64bf,lf_lt_s) },
+  { OR1K64BF_INSN_LF_LT_D, SEM_FN_NAME (or1k64bf,lf_lt_d) },
+  { OR1K64BF_INSN_LF_LE_S, SEM_FN_NAME (or1k64bf,lf_le_s) },
+  { OR1K64BF_INSN_LF_LE_D, SEM_FN_NAME (or1k64bf,lf_le_d) },
+  { OR1K64BF_INSN_LF_MADD_S, SEM_FN_NAME (or1k64bf,lf_madd_s) },
+  { OR1K64BF_INSN_LF_MADD_D, SEM_FN_NAME (or1k64bf,lf_madd_d) },
+  { OR1K64BF_INSN_LF_CUST1_S, SEM_FN_NAME (or1k64bf,lf_cust1_s) },
+  { OR1K64BF_INSN_LF_CUST1_D, SEM_FN_NAME (or1k64bf,lf_cust1_d) },
+  { 0, 0 }
+};
+
+/* Add the semantic fns to IDESC_TABLE.  */
+
+void
+SEM_FN_NAME (or1k64bf,init_idesc_table) (SIM_CPU *current_cpu)
+{
+  IDESC *idesc_table = CPU_IDESC (current_cpu);
+  const struct sem_fn_desc *sf;
+  int mach_num = MACH_NUM (CPU_MACH (current_cpu));
+
+  for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
+    {
+      const CGEN_INSN *insn = idesc_table[sf->index].idata;
+      int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
+		     || CGEN_INSN_MACH_HAS_P (insn, mach_num));
+#if FAST_P
+      if (valid_p)
+	idesc_table[sf->index].sem_fast = sf->fn;
+      else
+	idesc_table[sf->index].sem_fast = SEM_FN_NAME (or1k64bf,x_invalid);
+#else
+      if (valid_p)
+	idesc_table[sf->index].sem_full = sf->fn;
+      else
+	idesc_table[sf->index].sem_full = SEM_FN_NAME (or1k64bf,x_invalid);
+#endif
+    }
+}
+
diff --git a/sim/testsuite/configure b/sim/testsuite/configure
index bbc3bea..e37bdbd 100755
--- a/sim/testsuite/configure
+++ b/sim/testsuite/configure
@@ -1888,6 +1888,10 @@ case "${target}" in
    msp430*-*-*)
        sim_arch=msp430
        ;;
+   or1k-*-* | or1knd-*-*)
+       sim_arch=or1k
+       sim_testsuite=yes
+       ;;
    rl78-*-*)
        sim_arch=rl78
        ;;
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 6/6] sim: testsuite: add testsuite for or1k sim
  2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
                   ` (4 preceding siblings ...)
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 5/6] sim: or1k: Add generated files Stafford Horne
@ 2017-01-21  3:03 ` Stafford Horne
  5 siblings, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-01-21  3:03 UTC (permalink / raw)
  To: openrisc

From: Peter Gavin <pgavin@gmail.com>

* sim/testsuite/ChangeLog-OR1K:

	* add testsuite for or1k
---
 sim/testsuite/sim/or1k/add.S                   | 546 +++++++++++++++++
 sim/testsuite/sim/or1k/alltests.exp            |  19 +
 sim/testsuite/sim/or1k/and.S                   | 208 +++++++
 sim/testsuite/sim/or1k/basic.S                 | 535 +++++++++++++++++
 sim/testsuite/sim/or1k/div.S                   | 198 +++++++
 sim/testsuite/sim/or1k/ext.S                   | 251 ++++++++
 sim/testsuite/sim/or1k/find.S                  | 119 ++++
 sim/testsuite/sim/or1k/flag.S                  | 405 +++++++++++++
 sim/testsuite/sim/or1k/jump.S                  | 121 ++++
 sim/testsuite/sim/or1k/load.S                  | 373 ++++++++++++
 sim/testsuite/sim/or1k/mac.S                   | 785 +++++++++++++++++++++++++
 sim/testsuite/sim/or1k/mfspr.S                 | 196 ++++++
 sim/testsuite/sim/or1k/mul.S                   | 277 +++++++++
 sim/testsuite/sim/or1k/or.S                    | 207 +++++++
 sim/testsuite/sim/or1k/or1k-asm-test-env.h     |  61 ++
 sim/testsuite/sim/or1k/or1k-asm-test-helpers.h | 134 +++++
 sim/testsuite/sim/or1k/or1k-asm-test.h         | 258 ++++++++
 sim/testsuite/sim/or1k/or1k-asm.h              |  20 +
 sim/testsuite/sim/or1k/or1k-test.ld            |  57 ++
 sim/testsuite/sim/or1k/ror.S                   | 186 ++++++
 sim/testsuite/sim/or1k/shift.S                 | 572 ++++++++++++++++++
 sim/testsuite/sim/or1k/spr-defs.h              | 590 +++++++++++++++++++
 sim/testsuite/sim/or1k/sub.S                   | 176 ++++++
 sim/testsuite/sim/or1k/xor.S                   | 210 +++++++
 24 files changed, 6504 insertions(+)
 create mode 100644 sim/testsuite/sim/or1k/add.S
 create mode 100644 sim/testsuite/sim/or1k/alltests.exp
 create mode 100644 sim/testsuite/sim/or1k/and.S
 create mode 100644 sim/testsuite/sim/or1k/basic.S
 create mode 100644 sim/testsuite/sim/or1k/div.S
 create mode 100644 sim/testsuite/sim/or1k/ext.S
 create mode 100644 sim/testsuite/sim/or1k/find.S
 create mode 100644 sim/testsuite/sim/or1k/flag.S
 create mode 100644 sim/testsuite/sim/or1k/jump.S
 create mode 100644 sim/testsuite/sim/or1k/load.S
 create mode 100644 sim/testsuite/sim/or1k/mac.S
 create mode 100644 sim/testsuite/sim/or1k/mfspr.S
 create mode 100644 sim/testsuite/sim/or1k/mul.S
 create mode 100644 sim/testsuite/sim/or1k/or.S
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-env.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-helpers.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-asm.h
 create mode 100644 sim/testsuite/sim/or1k/or1k-test.ld
 create mode 100644 sim/testsuite/sim/or1k/ror.S
 create mode 100644 sim/testsuite/sim/or1k/shift.S
 create mode 100644 sim/testsuite/sim/or1k/spr-defs.h
 create mode 100644 sim/testsuite/sim/or1k/sub.S
 create mode 100644 sim/testsuite/sim/or1k/xor.S

diff --git a/sim/testsuite/sim/or1k/add.S b/sim/testsuite/sim/or1k/add.S
new file mode 100644
index 0000000..ee565c3
--- /dev/null
+++ b/sim/testsuite/sim/or1k/add.S
@@ -0,0 +1,546 @@
+/* Tests instructions l.add, l.addc, l.addi and l.addic
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x3fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x40000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xc0000000);\n
+# output: report(0xc0000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xbfffffff);\n
+# output: report(0xbfffffff);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x3fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x3fffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x40000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xc0000000);\n
+# output: report(0xc0000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xc0000000);\n
+# output: report(0xbfffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xbfffffff);\n
+# output: report(0xbfffffff);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000fffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fff8000);\n
+# output: report(0x00007fff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fffc000);\n
+# output: report(0x00004000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80008000);\n
+# output: report(0x00008000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80007fff);\n
+# output: report(0x00008000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000fffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000fffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fff8000);\n
+# output: report(0x00007fff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fff8000);\n
+# output: report(0x00007fff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fffc000);\n
+# output: report(0x00004000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x0000ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80008000);\n
+# output: report(0x00008000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80007fff);\n
+# output: report(0x00008000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80007fff);\n
+# output: report(0x00008000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000fffe);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x0000ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .exception_vectors
+        
+        // Alignment exception.
+	    .org	0x600
+        // TODO: print out address of instruction that caused the problem
+        
+        // Range exception.
+	    .org	0xb00
+
+        // TODO: The stack safety zone is not taken into consideration.
+        
+        // The handling is a bit dubious at present. We just patch the instruction with l.nop and
+        // restart. This will go wrong in branch delay slots. Really we need to single
+
+        // step past and then continue.
+
+
+        // TODO: do we need to patch the instruction? Can we not skip it somehow?
+
+        PUSH r2
+        PUSH r3
+
+        MOVE_FROM_SPR r2, SPR_EPCR_BASE  // Address of the instruction that caused the problem.
+
+	    LOAD_IMMEDIATE r3, 0x15000000	// Opcode for l.nop
+	    l.sw	-4(r2), r3  // TODO: temporary, remove at the end
+	    l.sw	 0(r2), r3
+	    l.sw	+4(r2), r3  // TODO: temporary, remove at the end
+
+        POP r3
+        POP r2
+
+	    l.rfe
+        
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+        
+        // ----------- Test l.add -----------
+        
+        // Add two small positive numbers
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 1, 2
+
+        // The carry flag should be ignored.
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.add, 1, 2
+
+        // Add two small negative numbers, which should set the carry flag but not the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, -1, -2
+
+        // Add two quite large positive numbers. Should set neither the overflow nor the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0x40000000, 0x3fffffff
+
+        // Add two large positive numbers. Should set the overflow, but not the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0x40000000, 0x40000000
+
+        // Add two quite large negative numbers. Should set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, -1073741824, -1073741824  // -1073741824 = 0xC0000000
+
+        // Add two large negative numbers. Should set both the overflow and carry flags.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0xbfffffff, 0xbfffffff
+
+        
+        // ------ Check that range exceptions are triggered.
+        
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that an overflow alone causes a RANGE Exception.
+        // TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0x40000000, 0x40000000
+
+        // Check that a carry alone does not cause a RANGE Exception.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0xffffffff, 0xfffffffe
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that carry and overflow together cause an exception.
+        // TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.add, 0xbfffffff, 0xbfffffff
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+
+        // ----------- Test l.addc -----------
+
+        // Add two small positive numbers
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV,  l.addc, 1, 2
+
+        // Add two small negative numbers. Sets the carry flag but not the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, -1, -2
+
+        // Add two quite large positive numbers. Should set neither the overflow nor the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, 0x40000000, 0x3fffffff
+
+        // Add two quite large positive numbers with a carry in. Should set the overflow but not the carry flag.
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc, 0x40000000, 0x3fffffff
+
+        // Add two large positive numbers. Should set the overflow, but not the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, 0x40000000, 0x40000000
+
+        // Add the largest unsigned value to zero with a carry. This potentially can break a
+        // simplistic test for carry that does not  consider the carry flag properly. Do it both ways around.
+        // TODO: investigate why this test is failing
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc, -1,  0
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc,  0, -1
+
+        // Add two quite large negative numbers. Should set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, -1073741824, -1073741824  // -1073741824 = 0xC0000000
+
+        // Add two quite large negative numbers that would overflow, with a carry that just avoids
+        // the overflow. Should set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc, -1073741824, -1073741825  // -1073741824 = 0xC0000000, -1073741825 = 0xBFFFFFFF
+
+        // Add two large negative numbers. Should set both the overflow and  carry flags.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, -1073741825, -1073741825
+
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that an overflow alone causes a RANGE Exception, even when it
+        // is the carry that causes the overflow.
+        // TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, 0x40000000, 0x40000000
+        // TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc, 0x40000000, 0x3fffffff
+
+        // Check that a carry alone does not cause a RANGE Exception, even when it is the carry that causes the overflow.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, 0xffffffff, 0xfffffffe
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.addc, 0x00000000, 0xffffffff
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that carry and overflow together cause an exception.
+        // TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.addc, 0xbfffffff, 0xbfffffff
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+
+        // ----------- Test l.addi -----------
+
+        // Add two small positive numbers
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 1, 2
+
+        // Check carry in is ignored.
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addi, 1, 2
+
+        // Add two small negative numbers. Sets the carry flag but not the overflow flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0xffffffff, 0xfffe
+
+        // Add two quite large positive numbers. Should set neither the overflow nor the carry flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x7fff8000, 0x7fff
+
+        // Add two large positive numbers. Should set the overflow, but not the carry flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x7fffc000, 0x4000
+        
+        // Add two quite large negative numbers. Should set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x80008000, 0x8000
+
+        // Add two large negative numbers. Should set both the overflow and carry flags.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x80007fff, 0x8000
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that an overflow alone causes a RANGE Exception.
+        // TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x7fffc000, 0x4000
+
+        // Check that a carry alone does not cause a RANGE Exception.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0xffffffff, 0xfffe
+
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // Check that carry and overflow together cause an exception.
+        // TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addi, 0x80007fff, 0x8000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+
+        // ----------- Test l.addi -----------
+
+        // Add two small positive numbers
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 1, 2
+
+        // Add two small negative numbers. Sets the carry flag but not the overflow flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0xffffffff, 0xfffe
+
+        // Add two quite large positive numbers. Should set neither the overflow nor the carry flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x7fff8000, 0x7fff
+
+        // Add two quite large positive numbers with a carry in. Should set the overflow but not the carry flag.
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0x7fff8000, 0x7fff
+
+        // Add two large positive numbers. Should set the overflow, but not the carry flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x7fffc000, 0x4000
+
+        // Add the largest unsigned value to zero with a carry. This  potentially can break a simplistic
+        // test for carry that does not  consider the carry flag properly. Do it both ways around.
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0xffffffff, 0x0000
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0x00000000, 0xffff
+
+        // Add two quite large negative numbers. Should set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x80008000, 0x8000
+
+        // Add two quite large negative numbers that would overflow, with a carry that just avoids the overflow.
+        // Should set the carry, but not the overflow flag. flag.
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0x80007fff, 0x8000
+
+        // Add two large negative numbers. Should set both the overflow and carry flags.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x80007fff, 0x8000
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        
+        // Check that an overflow alone causes a RANGE Exception, even when it
+        //   is the carry that causes the overflow.
+        // TODO: Disabled at the moment, as this test fails against the ORPSoC V2 core.
+        // TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x7fffc000, 0x4000
+        // TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0x7fffc000, 0x3fff
+
+        // Check that a carry alone does not cause a RANGE Exception, even
+        // when it is the carry that causes the overflow.
+        TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0xffffffff, 0xfffe
+        TEST_INST_FF_I32_I16 SPR_SR_CY, SPR_SR_OV, l.addic, 0x00000000, 0xffff
+
+        // Check that carry and overflow together cause an exception.
+        // TEST_INST_FF_I32_I16 0, SPR_SR_CY | SPR_SR_OV, l.addic, 0x80007fff, 0x8000
+        
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/alltests.exp b/sim/testsuite/sim/or1k/alltests.exp
new file mode 100644
index 0000000..f10379e
--- /dev/null
+++ b/sim/testsuite/sim/or1k/alltests.exp
@@ -0,0 +1,19 @@
+# OR1K simulator testsuite.
+
+if [istarget or1k*-*-*] {
+    
+    set all_machs "or1k"
+
+    global global_ld_options
+    set global_ld_options "-T $srcdir/$subdir/or1k-test.ld"
+    
+    foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.S]] {
+        
+        if ![runtest_file_p $runtests $src] {
+            continue
+        }
+                
+        run_sim_test $src $all_machs
+    }
+
+}
\ No newline at end of file
diff --git a/sim/testsuite/sim/or1k/and.S b/sim/testsuite/sim/or1k/and.S
new file mode 100644
index 0000000..6552474
--- /dev/null
+++ b/sim/testsuite/sim/or1k/and.S
@@ -0,0 +1,208 @@
+/* Tests instructions l.and, l.andi
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x55555555);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xc4c70f07);\n
+# output: report(0x44400004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x38f0f83b);\n
+# output: report(0x30800803);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x0000aaaa);\n
+# output: report(0x0000aaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00005555);\n
+# output: report(0x00005555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00005555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f83);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f07);\n
+# output: report(0x00000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000f83b);\n
+# output: report(0x00000803);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+	    // Always set OVE. We should never trigger an exception, even if this bit is set.
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // Test the l.and instruction with a range of operands.
+        
+	    TEST_INST_I32_I32 l.and, 0x00000000, 0x00000000
+	    TEST_INST_I32_I32 l.and, 0xffffffff, 0xffffffff
+	    TEST_INST_I32_I32 l.and, 0xaaaaaaaa, 0x00000000
+	    TEST_INST_I32_I32 l.and, 0xaaaaaaaa, 0xaaaaaaaa
+	    TEST_INST_I32_I32 l.and, 0x55555555, 0x00000000
+	    TEST_INST_I32_I32 l.and, 0x55555555, 0x55555555
+	    TEST_INST_I32_I32 l.and, 0xaaaaaaaa, 0x55555555
+	    TEST_INST_I32_I32 l.and, 0x4c70f07c, 0xb38f0f83
+	    TEST_INST_I32_I32 l.and, 0x4c70f07c, 0xc4c70f07
+	    TEST_INST_I32_I32 l.and, 0xb38f0f83, 0x38f0f83b
+
+        // Test the l.andi instruction with a range of operands.
+        
+	    TEST_INST_I32_I16 l.andi, 0x00000000, 0x0000
+	    TEST_INST_I32_I16 l.andi, 0xffffffff, 0xffff
+	    TEST_INST_I32_I16 l.andi, 0xaaaaaaaa, 0x0000
+	    TEST_INST_I32_I16 l.andi, 0xaaaaaaaa, 0xaaaa
+	    TEST_INST_I32_I16 l.andi, 0x55555555, 0x0000
+	    TEST_INST_I32_I16 l.andi, 0x55555555, 0x5555
+	    TEST_INST_I32_I16 l.andi, 0xaaaaaaaa, 0x5555
+	    TEST_INST_I32_I16 l.andi, 0x4c70f07c, 0x0f83
+	    TEST_INST_I32_I16 l.andi, 0x4c70f07c, 0x0f07
+	    TEST_INST_I32_I16 l.andi, 0xb38f0f83, 0xf83b
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/basic.S b/sim/testsuite/sim/or1k/basic.S
new file mode 100644
index 0000000..1e349a0
--- /dev/null
+++ b/sim/testsuite/sim/or1k/basic.S
@@ -0,0 +1,535 @@
+/* Tests some basic CPU instructions.
+
+   Copyright (C) 1999-2006 OpenCores
+     Contributors various OpenCores participants
+   Copyright (C) 2010 Embecosm Limited
+     Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+   Copyright (C) 2012 R. Diez
+
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3 of the License, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+# mach: or1k
+# output: report(0xffff0012);\n
+# output: report(0x12352af7);\n
+# output: report(0x7ffffffe);\n
+# output: report(0xffffa5a7);\n
+# output: report(0x000fffff);\n
+# output: report(0x00002800);\n
+# output: report(0x00000009);\n
+# output: report(0xdeaddead);\n
+# output: report(0xffff0000);\n
+# output: report(0x12345678);\n
+# output: report(0xabcdf0bd);\n
+# output: exit(0)\n
+
+#include "or1k-asm-test-env.h"
+
+#define FIRST_RAM_ADDR 0x00000000
+
+
+        STANDARD_TEST_HEADER
+
+        // -------- Early test begin.
+        
+        // Do this test upfront, as it modifies STACK_POINTER_R1.
+        
+        l.addi  r1 , r0 , 0x1
+	    l.addi  r2 , r1 , 0x2
+	    l.addi  r3 , r2 , 0x4
+	    l.addi  r4 , r3 , 0x8
+	    l.addi  r5 , r4 , 0x10
+	    l.addi  r6 , r5 , 0x20
+	    l.addi  r7 , r6 , 0x40
+	    l.addi  r8 , r7 , 0x80
+	    l.addi  r9 , r8 , 0x100
+	    l.addi  r10, r9 , 0x200
+	    l.addi  r11, r10, 0x400
+	    l.addi  r12, r11, 0x800
+	    l.addi  r13, r12, 0x1000
+	    l.addi  r14, r13, 0x2000
+	    l.addi  r15, r14, 0x4000
+	    l.addi  r16, r15, 0x8000
+
+	    l.sub   r31, r0 , r1
+	    l.sub   r30, r31, r2
+	    l.sub   r29, r30, r3
+	    l.sub   r28, r29, r4
+	    l.sub   r27, r28, r5
+	    l.sub   r26, r27, r6
+	    l.sub   r25, r26, r7
+	    l.sub   r24, r25, r8
+	    l.sub   r23, r24, r9
+	    l.sub   r22, r23, r10
+	    l.sub   r21, r22, r11
+	    l.sub   r20, r21, r12
+	    l.sub   r19, r20, r13
+	    l.sub   r18, r19, r14
+	    l.sub   r17, r18, r15
+	    l.sub   r16, r17, r16
+
+        // We cannot use REPORT_REG_TO_CONSOLE here, as the stack is not set up yet.
+        MOVE_REG NOP_REPORT_R3, r16
+        REPORT_TO_CONSOLE  // Should be 0xffff0012
+
+        // -------- Early test end.
+
+        STANDARD_TEST_BODY
+
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+        // ------ Read and write from RAM -----
+        
+        LOAD_IMMEDIATE r31, FIRST_RAM_ADDR
+        l.sw    0(r31), r16
+        
+        l.movhi r3,0x1234
+        l.ori   r3,r3,0x5678
+
+        l.sw    4(r31),r3
+
+        l.lbz   r4,4(r31)
+        l.add   r8,r8,r4
+        l.sb    11(r31),r4
+        l.lbz   r4,5(r31)
+        l.add   r8,r8,r4
+        l.sb    10(r31),r4
+        l.lbz   r4,6(r31)
+        l.add   r8,r8,r4
+        l.sb    9(r31),r4
+        l.lbz   r4,7(r31)
+        l.add   r8,r8,r4
+        l.sb    8(r31),r4
+
+        l.lbs   r4,8(r31)
+        l.add   r8,r8,r4
+        l.sb    7(r31),r4
+        l.lbs   r4,9(r31)
+        l.add   r8,r8,r4
+        l.sb    6(r31),r4
+        l.lbs   r4,10(r31)
+        l.add   r8,r8,r4
+        l.sb    5(r31),r4
+        l.lbs   r4,11(r31)
+        l.add   r8,r8,r4
+        l.sb    4(r31),r4
+    
+        l.lhz   r4,4(r31)
+        l.add   r8,r8,r4
+        l.sh    10(r31),r4
+        l.lhz   r4,6(r31)
+        l.add   r8,r8,r4
+        l.sh    8(r31),r4
+
+        l.lhs   r4,8(r31)
+        l.add   r8,r8,r4
+        l.sh    6(r31),r4
+        l.lhs   r4,10(r31)
+        l.add   r8,r8,r4
+        l.sh    4(r31),r4
+
+        l.lwz   r4,4(r31)
+        l.add   r8,r8,r4
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0x12352af7
+        
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+        
+        // ------ Do some arithmetic operations -----
+        
+        l.addi  r3,r0,1
+        l.addi  r4,r0,2
+        l.addi  r5,r0,-1
+        l.addi  r6,r0,-1
+        l.addi  r8,r0,0
+    
+        l.sub   r7,r5,r3
+        l.sub   r8,r3,r5
+        l.add   r8,r8,r7
+    
+        l.div   r7,r7,r4
+        l.add   r9,r3,r4
+        l.mul   r7,r9,r7
+        l.divu  r7,r7,r4
+        l.add   r8,r8,r7
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0x7ffffffe
+
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+        
+        // ------ Do some logical operations -----
+        
+        l.addi  r3,r0,1
+        l.addi  r4,r0,2
+        l.addi  r5,r0,-1
+        l.addi  r6,r0,-1
+        l.addi  r8,r0,0 
+
+        l.andi  r8,r8,1
+        l.and   r8,r8,r3
+
+        l.xori  r8,r5,0xa5a5
+        l.xor   r8,r8,r5
+
+        l.ori   r8,r8,2
+        l.or    r8,r8,r4
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0xffffa5a7
+
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+        
+        // ------ Do some shifting operations -----
+        
+        l.addi  r3,r0,1
+        l.addi  r4,r0,2
+        l.addi  r5,r0,-1
+        l.addi  r6,r0,-1
+        l.addi  r8,r0,0
+
+        l.slli  r8,r5,6
+        l.sll   r8,r8,r4
+    
+        l.srli  r8,r8,6
+        l.srl   r8,r8,r4
+    
+        l.srai  r8,r8,2
+        l.sra   r8,r8,r4    
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0x000fffff
+
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+        
+        // ------ Test the CPU flag -----
+    
+        l.addi  r3,r0,1
+        l.addi  r4,r0,-2
+        l.addi  r8,r0,0
+
+        l.sfeq  r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfeq  r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfeqi r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfeqi r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4 
+    
+        l.sfne  r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfne  r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4 
+
+        l.sfnei r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfnei r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfgtu r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgtu r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfgtui    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgtui    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfgeu r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgeu r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfgeui    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgeui    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfltu r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfltu r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfltui    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfltui    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfleu r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfleu r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfleui    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfleui    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfgts r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgts r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgtsi    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgtsi    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfges r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfges r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgesi    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfgesi    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sflts r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sflts r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfltsi    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfltsi    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        l.sfles r3,r3
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sfles r3,r4
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sflesi    r3,1
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+ 
+        l.sflesi    r3,-2
+        l.mfspr r5,r0,17
+        l.andi  r4,r5,0x200
+        l.add   r8,r8,r4
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0x00002800
+
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+
+        // ------ Test the jump instructions -----
+        
+        l.addi  r8,r0,0
+
+        OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.j _T1)
+        )
+
+_T2:    OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.jr    r9)
+        )
+
+_T1:    OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.jal   _T2)
+        )
+
+        l.sfeqi r0,0
+        OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.bf    _T3)
+        )
+
+_T3:    l.sfeqi r0,1
+        OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.bf    _T4)
+        )
+    
+        l.addi  r8,r8,1
+
+_T4:    l.sfeqi r0,0
+        OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.bnf    _T5)
+        )
+
+        l.addi  r8,r8,1
+
+_T5:    l.sfeqi r0,1
+        OR1K_DELAYED(
+        OR1K_INST(l.addi  r8,r8,1),
+        OR1K_INST(l.bnf    _T6)
+        )
+ 
+        l.addi  r8,r8,1
+
+_T6:    l.movhi r3,hi(_T7)
+        l.ori  r3,r3,lo(_T7)
+        l.mtspr r0,r3,32
+        l.mfspr r5,r0,17
+        l.mtspr r0,r5,64
+        l.rfe
+        l.addi  r8,r8,1         // l.rfe should not have a delay slot
+
+        l.addi  r8,r8,1
+
+_T7:    REPORT_REG_TO_CONSOLE r8  // Should be 0x000000009
+
+        l.lwz   r9,0(r31)
+        l.add   r8,r9,r8
+        l.sw    0(r31),r8
+
+        l.lwz   r9,0(r31)
+        l.movhi r3,0x4c69
+        l.ori   r3,r3,0xe5f7
+        l.add   r8,r8,r3
+
+        REPORT_REG_TO_CONSOLE r8  // Should be 0xdeaddead
+
+
+        // Test l.movhi, on 32-bit implementations it should not sign-extend anything.
+        
+        l.movhi r3, -1
+        REPORT_REG_TO_CONSOLE r3
+
+        
+        // Test l.cmov
+        
+        LOAD_IMMEDIATE r14, 0x12345678
+        LOAD_IMMEDIATE r15, 0xABCDF0BD
+        
+        SET_SPR_SR_FLAGS  SPR_SR_F, r6, r7
+        l.cmov r10, r14, r15
+        CLEAR_SPR_SR_FLAGS SPR_SR_F, r6, r7
+        l.cmov r11, r14, r15
+
+        REPORT_REG_TO_CONSOLE r10
+        REPORT_REG_TO_CONSOLE r11
+
+        
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/div.S b/sim/testsuite/sim/or1k/div.S
new file mode 100644
index 0000000..1821e63
--- /dev/null
+++ b/sim/testsuite/sim/or1k/div.S
@@ -0,0 +1,198 @@
+/* Tests the divide instructions.
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x0000000c);\n
+# output: report(0x00000003);\n
+# output: report(0x00000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x0000000b);\n
+# output: report(0x00000003);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff4);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff5);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff4);\n
+# output: report(0x00000003);\n
+# output: report(0xfffffffc);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff5);\n
+# output: report(0x00000003);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x0000000c);\n
+# output: report(0xfffffffd);\n
+# output: report(0xfffffffc);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x0000000b);\n
+# output: report(0xfffffffd);\n
+# output: report(0xfffffffd);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x0000000c);\n
+# output: report(0x00000003);\n
+# output: report(0x00000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x0000000b);\n
+# output: report(0x00000003);\n
+# output: report(0x00000003);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff4);\n
+# output: report(0x00000003);\n
+# output: report(0x55555551);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffff5);\n
+# output: report(0x00000003);\n
+# output: report(0x55555551);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+        
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+        
+
+        // Test l.div
+
+	    // Divide two positive numbers and check rounding. Should set no flags. 
+        TEST_INST_I32_I32 l.div, 0x0000000c, 0x00000003  // 12 / 3 = 4
+	    TEST_INST_I32_I32 l.div, 0x0000000b, 0x00000003  // 11 / 3 = 3
+        
+	    // Divide two negative numbers and check rounding. Should set no flags. 
+	    TEST_INST_I32_I32 l.div, 0xfffffff4, 0xfffffffd
+	    TEST_INST_I32_I32 l.div, 0xfffffff5, 0xfffffffd
+
+	    // Divide a negative number by a positive number and check rounding. Should set no flags. 
+	    TEST_INST_I32_I32 l.div, 0xfffffff4, 0x00000003
+	    TEST_INST_I32_I32 l.div, 0xfffffff5, 0x00000003
+
+	    // Divide a positive number by a negative number and check rounding. Should set no flags. 
+	    TEST_INST_I32_I32 l.div, 0x0000000c, 0xfffffffd
+	    TEST_INST_I32_I32 l.div, 0x0000000b, 0xfffffffd
+
+	    // Divide by zero. Should set the overflow flag.
+        // TODO: temporarily disabled as these tests fail on both or1ksim and or1200
+	    // TEST_INST_I32_I32 l.div, 0x0000000c, 0x00000000
+	    // TEST_INST_I32_I32 l.div, 0xfffffff4, 0x00000000
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        
+	    // Divide by zero. Should set the overflow flag and trigger an exception. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+	    // TEST_INST_I32_I32 l.div, 0x0000000c, 0x00000000
+	    // TEST_INST_I32_I32 l.div, 0xfffffff4, 0x00000000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        
+        // Test l.divu
+       
+	    // Divide two positive numbers and check rounding. Should set no flags. 
+	    TEST_INST_I32_I32 l.divu, 0x0000000c, 0x00000003
+	    TEST_INST_I32_I32 l.divu, 0x0000000b, 0x00000003
+
+	    // Divide two numbers that would be negative under 2's complement and
+	    // check rounding. Should set no flags. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+	    // TEST_INST_I32_I32 l.divu, 0xfffffff4, 0xfffffffd
+	    // TEST_INST_I32_I32 l.divu, 0xfffffff5, 0xfffffffd
+
+	    // Divide a number that would be negative under 2's complement by a
+	    // number that would be positive under 2's complement and check rounding. Should set no flags. 
+	    TEST_INST_I32_I32 l.divu, 0xfffffff4, 0x00000003
+	    TEST_INST_I32_I32 l.divu, 0xfffffff5, 0x00000003
+
+	    // Divide a number that would be positive under 2's complement by a
+	    // number that would be negative under 2's complement and check rounding. Should set no flags. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+	    // TEST_INST_I32_I32 l.divu, 0x0000000c, 0xfffffffd
+	    // TEST_INST_I32_I32 l.divu, 0x0000000b, 0xfffffffd
+
+	    // Divide by zero. Should set the overflow flag. 
+        // TODO: temporarily disabled as these tests fail on both or1ksim and or1200
+	    // TEST_INST_I32_I32 l.divu, 0x0000000c, 0x00000000
+		// TEST_INST_I32_I32 l.divu, 0xfffffff4, 0x00000000
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+	    // Divide by zero. Should set the overflow flag and trigger an exception. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+	    // TEST_INST_I32_I32 l.divu, 0x0000000c, 0x00000000
+	    // TEST_INST_I32_I32 l.divu, 0xfffffff4, 0x00000000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/ext.S b/sim/testsuite/sim/or1k/ext.S
new file mode 100644
index 0000000..78d9cf2
--- /dev/null
+++ b/sim/testsuite/sim/or1k/ext.S
@@ -0,0 +1,251 @@
+/* Tests the l.ext{b,h}{s,z} instructions
+
+   Copyright (C) 2005 Gy�rgy 'nog' Jeney <nog@sdf.lonestar.org>
+     Contributor Gy�rgy 'nog' Jeney <nog@sdf.lonestar.org>
+   Copyright (C) 2010 Embecosm Limited
+     Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+   Copyright (C) 2012 R. Diez
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3 of the License, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+# mach: or1k
+# output: report(0x0000007f);\n
+# output: report(0x0000007f);\n
+# output: report(0x00000053);\n
+# output: report(0x00000053);\n
+# output: report(0x0000ff53);\n
+# output: report(0x00000053);\n
+# output: report(0x00001234);\n
+# output: report(0x00000034);\n
+# output: report(0x000000ff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000080);\n
+# output: report(0xffffff80);\n
+# output: report(0x0000ff80);\n
+# output: report(0xffffff80);\n
+# output: report(0x00007f80);\n
+# output: report(0xffffff80);\n
+# output: report(0x00007fff);\n
+# output: report(0xffffffff);\n
+# output: report(0x0000007f);\n
+# output: report(0x0000007f);\n
+# output: report(0x00000053);\n
+# output: report(0x00000053);\n
+# output: report(0x0000ff53);\n
+# output: report(0x00000053);\n
+# output: report(0x00001234);\n
+# output: report(0x00000034);\n
+# output: report(0x000000ff);\n
+# output: report(0x000000ff);\n
+# output: report(0x00000080);\n
+# output: report(0x00000080);\n
+# output: report(0x0000ff80);\n
+# output: report(0x00000080);\n
+# output: report(0x00007f80);\n
+# output: report(0x00000080);\n
+# output: report(0x00007fff);\n
+# output: report(0x000000ff);\n
+# output: report(0x00007fff);\n
+# output: report(0x00007fff);\n
+# output: report(0x00005233);\n
+# output: report(0x00005233);\n
+# output: report(0xffff2f53);\n
+# output: report(0x00002f53);\n
+# output: report(0x12345678);\n
+# output: report(0x00005678);\n
+# output: report(0x0000ffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00008000);\n
+# output: report(0xffff8000);\n
+# output: report(0x0000ff80);\n
+# output: report(0xffffff80);\n
+# output: report(0x80008000);\n
+# output: report(0xffff8000);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00007fff);\n
+# output: report(0x00007fff);\n
+# output: report(0x00005233);\n
+# output: report(0x00005233);\n
+# output: report(0xffff2f53);\n
+# output: report(0x00002f53);\n
+# output: report(0x12345678);\n
+# output: report(0x00005678);\n
+# output: report(0x0000ffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0x00008000);\n
+# output: report(0x00008000);\n
+# output: report(0x0000ff80);\n
+# output: report(0x0000ff80);\n
+# output: report(0x80008000);\n
+# output: report(0x00008000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fff7fff);\n
+# output: report(0x7fff7fff);\n
+# output: report(0xffff7f7f);\n
+# output: report(0xffff7f7f);\n
+# output: report(0xffffff7f);\n
+# output: report(0xffffff7f);\n
+# output: report(0xffff7fff);\n
+# output: report(0xffff7fff);\n
+# output: report(0x7fff7f7f);\n
+# output: report(0x7fff7f7f);\n
+# output: report(0x12345678);\n
+# output: report(0x12345678);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fff7fff);\n
+# output: report(0x7fff7fff);\n
+# output: report(0xffff7f7f);\n
+# output: report(0xffff7f7f);\n
+# output: report(0xffffff7f);\n
+# output: report(0xffffff7f);\n
+# output: report(0xffff7fff);\n
+# output: report(0xffff7fff);\n
+# output: report(0x7fff7f7f);\n
+# output: report(0x7fff7f7f);\n
+# output: report(0x12345678);\n
+# output: report(0x12345678);\n
+# output: exit(0)\n
+
+#include "or1k-asm-test-env.h"
+
+.macro CHECK_EXT insn, val, mask, high_mask
+    LOAD_IMMEDIATE r4, \val
+    REPORT_REG_TO_CONSOLE r4
+    \insn   r5, r4
+    REPORT_REG_TO_CONSOLE r5
+
+    LOAD_IMMEDIATE r6, \mask
+    l.xori  r7, r6, -1
+
+    l.and   r8, r4, r6
+    l.and   r9, r5, r6
+    l.sfne  r8, r9
+    OR1K_DELAYED_NOP(l.bf    ext_fail)
+        
+    l.and   r8, r5, r7
+
+    LOAD_IMMEDIATE r7, \high_mask
+
+    l.sfne  r8, r7
+    OR1K_DELAYED_NOP(l.bf    ext_fail)
+.endm        
+
+        
+#define CHECK_HIGH3_CLEAR(insn, val) CHECK_EXT insn, val, 0x000000ff, 0
+#define CHECK_HIGH3_SET(val)         CHECK_EXT l.extbs, val, 0x000000ff, 0xffffff00
+#define CHECK_HIGH2_CLEAR(insn, val) CHECK_EXT insn, val, 0x0000ffff, 0
+#define CHECK_HIGH2_SET(val)         CHECK_EXT l.exths, val, 0x0000ffff, 0xffff0000
+
+.macro CHECK_MOVE insn, val
+        
+    LOAD_IMMEDIATE r4, \val    
+    REPORT_REG_TO_CONSOLE r4
+
+    \insn   r5, r4            
+    REPORT_REG_TO_CONSOLE r5
+        
+    l.sfne  r5, r4            
+    OR1K_DELAYED_NOP(l.bf    ext_fail)
+        
+.endm        
+
+
+        STANDARD_TEST_ENVIRONMENT
+        
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+        // Test l.extbs
+        CHECK_HIGH3_CLEAR( l.extbs, 0x7f   )
+        CHECK_HIGH3_CLEAR( l.extbs, 0x53   )
+        CHECK_HIGH3_CLEAR( l.extbs, 0xff53 )
+        CHECK_HIGH3_CLEAR( l.extbs, 0x1234 )
+
+        CHECK_HIGH3_SET(0xff)
+        CHECK_HIGH3_SET(0x80)
+        CHECK_HIGH3_SET(0xff80)
+        CHECK_HIGH3_SET(0x7f80)
+        CHECK_HIGH3_SET(0x7fff)
+
+        // Test l.extbz
+        CHECK_HIGH3_CLEAR(l.extbz, 0x7f)
+        CHECK_HIGH3_CLEAR(l.extbz, 0x53)
+        CHECK_HIGH3_CLEAR(l.extbz, 0xff53)
+        CHECK_HIGH3_CLEAR(l.extbz, 0x1234)
+
+        CHECK_HIGH3_CLEAR(l.extbz, 0xff)
+        CHECK_HIGH3_CLEAR(l.extbz, 0x80)
+        CHECK_HIGH3_CLEAR(l.extbz, 0xff80)
+        CHECK_HIGH3_CLEAR(l.extbz, 0x7f80)
+        CHECK_HIGH3_CLEAR(l.extbz, 0x7fff)
+
+        // Test l.exths
+        CHECK_HIGH2_CLEAR(l.exths, 0x7fff)
+        CHECK_HIGH2_CLEAR(l.exths, 0x5233)
+        CHECK_HIGH2_CLEAR(l.exths, 0xffff2f53)
+        CHECK_HIGH2_CLEAR(l.exths, 0x12345678)
+
+        CHECK_HIGH2_SET(0xffff)
+        CHECK_HIGH2_SET(0x8000)
+        CHECK_HIGH2_SET(0xff80)
+        CHECK_HIGH2_SET(0x80008000)
+        CHECK_HIGH2_SET(0x7fffffff)
+
+        // Test l.exthz
+        CHECK_HIGH2_CLEAR(l.exthz, 0x7fff)
+        CHECK_HIGH2_CLEAR(l.exthz, 0x5233)
+        CHECK_HIGH2_CLEAR(l.exthz, 0xffff2f53)
+        CHECK_HIGH2_CLEAR(l.exthz, 0x12345678)
+
+        CHECK_HIGH2_CLEAR(l.exthz, 0xffff)
+        CHECK_HIGH2_CLEAR(l.exthz, 0x8000)
+        CHECK_HIGH2_CLEAR(l.exthz, 0xff80)
+        CHECK_HIGH2_CLEAR(l.exthz, 0x80008000)
+        CHECK_HIGH2_CLEAR(l.exthz, 0x7fffffff)
+
+        // Test l.extws
+        CHECK_MOVE l.extws, 0xffffffff
+        CHECK_MOVE l.extws, 0x7fffffff
+        CHECK_MOVE l.extws, 0x7fff7fff
+        CHECK_MOVE l.extws, 0xffff7f7f
+        CHECK_MOVE l.extws, 0xffffff7f
+        CHECK_MOVE l.extws, 0xffff7fff
+        CHECK_MOVE l.extws, 0x7fff7f7f
+        CHECK_MOVE l.extws, 0x12345678
+
+        // Test l.extwz
+        CHECK_MOVE l.extwz, 0xffffffff
+        CHECK_MOVE l.extwz, 0x7fffffff
+        CHECK_MOVE l.extwz, 0x7fff7fff
+        CHECK_MOVE l.extwz, 0xffff7f7f
+        CHECK_MOVE l.extwz, 0xffffff7f
+        CHECK_MOVE l.extwz, 0xffff7fff
+        CHECK_MOVE l.extwz, 0x7fff7f7f
+        CHECK_MOVE l.extwz, 0x12345678
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
+        
+ext_fail:
+        EXIT_SIMULATION_WITH_IMMEDIATE_EXIT_CODE SEC_GENERIC_ERROR
diff --git a/sim/testsuite/sim/or1k/find.S b/sim/testsuite/sim/or1k/find.S
new file mode 100644
index 0000000..6c52721
--- /dev/null
+++ b/sim/testsuite/sim/or1k/find.S
@@ -0,0 +1,119 @@
+/* Tests the find instructions.
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x80000000);\n
+# output: report(0x00000020);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000002);\n
+# output: \n
+# output: report(0x00018000);\n
+# output: report(0x00000010);\n
+# output: \n
+# output: report(0xc0000000);\n
+# output: report(0x0000001f);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x80000000);\n
+# output: report(0x00000020);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x0000001f);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000020);\n
+# output: \n
+# output: report(0x00018000);\n
+# output: report(0x00000011);\n
+# output: \n
+# output: report(0xc0000000);\n
+# output: report(0x00000020);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+.macro TEST_FIND opcode, operand
+        
+    LOAD_IMMEDIATE r5, \operand
+
+    REPORT_REG_TO_CONSOLE r5
+
+    \opcode r4, r5
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE        
+
+.endm
+        
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Test l.ff1
+        
+ 	    TEST_FIND l.ff1, 0x00000001
+	    TEST_FIND l.ff1, 0x80000000
+	    TEST_FIND l.ff1, 0x55555555
+	    TEST_FIND l.ff1, 0xaaaaaaaa
+	    TEST_FIND l.ff1, 0x00018000
+	    TEST_FIND l.ff1, 0xc0000000
+	    TEST_FIND l.ff1, 0x00000000
+        
+
+        // Test l.fl1
+         
+	    TEST_FIND l.fl1, 0x00000001
+	    TEST_FIND l.fl1, 0x80000000
+	    TEST_FIND l.fl1, 0x55555555
+	    TEST_FIND l.fl1, 0xaaaaaaaa
+	    TEST_FIND l.fl1, 0x00018000
+	    TEST_FIND l.fl1, 0xc0000000
+	    TEST_FIND l.fl1, 0x00000000
+
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/flag.S b/sim/testsuite/sim/or1k/flag.S
new file mode 100644
index 0000000..c8edbe7
--- /dev/null
+++ b/sim/testsuite/sim/or1k/flag.S
@@ -0,0 +1,405 @@
+/* Tests the l.sf* instructions
+ *
+ * Copyright (C) Julius Baxter, ORSoC AB, <julius.baxter@orsoc.se>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+        
+#define INT_MAX          2147483647  // 0x7fffffff
+#define INT_MAX_MIN1     2147483646  // 0x7ffffffe
+#define NEG_INT_MAX     -2147483648  // 0x80000000
+#define NEG_INT_MAX_PL1 -2147483647  // 0x80000001
+#define MIN1            -1           // 0xffffffff
+
+#define SHRT_MIN    (-32768)
+#define SHRT_MAX    32767
+        
+#define UINT_MAX      4294967295  // 0xffffffff
+#define UINT_MAX_MIN1 4294967294  // 0xfffffffe
+
+#define USHRT_MAX      65535
+        
+
+.macro MOVE_TO_R4_R5_AND_REPORT a, b
+
+    LOAD_IMMEDIATE r4, \a
+    LOAD_IMMEDIATE r5, \b
+
+    // During development, add REPORT_xxx statements here to see the operands.
+
+.endm
+
+.macro MOVE_TO_R4_AND_REPORT_I a, b
+        
+    LOAD_IMMEDIATE r4, \a
+
+    // During development, add REPORT_xxx statements here to see the operands.
+        
+.endm
+
+
+.macro SHOULD_BE_SET
+    OR1K_DELAYED_NOP(l.bnf  failed)
+.endm
+        
+.macro SHOULDNT_BE_SET
+    OR1K_DELAYED_NOP(l.bf    failed)
+.endm
+
+
+.macro SHOULD_BE_LESS_THAN_SIGNED a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+
+    l.sfeq  r4, r5
+    SHOULDNT_BE_SET
+    l.sfne  r4, r5
+    SHOULD_BE_SET
+    l.sfgts r4, r5
+    SHOULDNT_BE_SET
+    l.sfges r4, r5
+    SHOULDNT_BE_SET
+    l.sfles r4, r5
+    SHOULD_BE_SET
+    l.sflts r4, r5
+    SHOULD_BE_SET
+.endm
+
+.macro SHOULD_BE_GREATER_THAN_SIGNED a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+        
+    l.sfeq  r4, r5
+    SHOULDNT_BE_SET
+    l.sfne  r4, r5
+    SHOULD_BE_SET
+    l.sfgts r4, r5
+    SHOULD_BE_SET
+    l.sfges r4, r5
+    SHOULD_BE_SET
+    l.sfles r4, r5
+    SHOULDNT_BE_SET
+    l.sflts r4, r5
+    SHOULDNT_BE_SET
+.endm
+    
+.macro SHOULD_BE_LESS_THAN_UNSIGNED a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+        
+    l.sfeq  r4, r5
+    SHOULDNT_BE_SET
+    l.sfne  r4, r5
+    SHOULD_BE_SET 
+    l.sfgtu r4, r5
+    SHOULDNT_BE_SET
+    l.sfgeu r4, r5
+    SHOULDNT_BE_SET
+    l.sfleu r4, r5
+    SHOULD_BE_SET
+    l.sfltu r4, r5
+    SHOULD_BE_SET
+.endm
+
+.macro SHOULD_BE_GREATER_THAN_UNSIGNED a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+
+    l.sfeq  r4, r5
+    SHOULDNT_BE_SET
+    l.sfne  r4, r5
+    SHOULD_BE_SET
+    l.sfgtu r4, r5
+    SHOULD_BE_SET
+    l.sfgeu r4, r5
+    SHOULD_BE_SET
+    l.sfleu r4, r5
+    SHOULDNT_BE_SET
+    l.sfltu r4, r5
+    SHOULDNT_BE_SET
+.endm
+
+
+.macro SHOULD_BE_EQUAL a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+        
+    l.sfeq  r4, r5
+    SHOULD_BE_SET
+    l.sfne  r4, r5
+    SHOULDNT_BE_SET
+
+    // Signed tests.        
+    l.sfgts r4, r5
+    SHOULDNT_BE_SET
+    l.sfges r4, r5
+    SHOULD_BE_SET
+    l.sfles r4, r5
+    SHOULD_BE_SET
+    l.sflts r4, r5
+    SHOULDNT_BE_SET
+        
+    // Unsigned tests.
+    l.sfgtu r4, r5
+    SHOULDNT_BE_SET
+    l.sfgeu r4, r5
+    SHOULD_BE_SET
+    l.sfleu r4, r5
+    SHOULD_BE_SET
+    l.sfltu r4, r5
+    SHOULDNT_BE_SET
+
+.endm
+
+.macro SHOULDNT_BE_EQUAL a, b
+    MOVE_TO_R4_R5_AND_REPORT \a , \b
+        
+    l.sfeq  r4, r5
+    SHOULDNT_BE_SET
+    l.sfne  r4, r5
+    SHOULD_BE_SET
+
+.endm
+        
+.macro SHOULD_BE_EQUAL_I a, b
+
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+        
+    l.sfeqi  r4, \b
+    SHOULD_BE_SET
+    l.sfnei  r4, \b
+    SHOULDNT_BE_SET
+
+    // Signed tests.        
+    l.sfgtsi r4, \b
+    SHOULDNT_BE_SET
+    l.sfgesi r4, \b
+    SHOULD_BE_SET
+    l.sflesi r4, \b
+    SHOULD_BE_SET
+    l.sfltsi r4, \b
+    SHOULDNT_BE_SET
+        
+    // Unsigned tests.
+    l.sfgtui r4, \b
+    SHOULDNT_BE_SET
+    l.sfgeui r4, \b
+    SHOULD_BE_SET
+    l.sfleui r4, \b
+    SHOULD_BE_SET
+    l.sfltui r4, \b
+    SHOULDNT_BE_SET
+
+.endm
+
+.macro SHOULDNT_BE_EQUAL_I a, b
+
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+
+    l.sfeqi  r4, \b
+    SHOULDNT_BE_SET
+    l.sfnei  r4, \b
+    SHOULD_BE_SET
+        
+.endm
+
+
+.macro SHOULD_BE_LESS_THAN_SIGNED_I a, b
+
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+        
+    l.sfeqi  r4, \b
+    SHOULDNT_BE_SET
+    l.sfnei  r4, \b
+    SHOULD_BE_SET
+    l.sfgtsi r4, \b
+    SHOULDNT_BE_SET
+    l.sfgesi r4, \b
+    SHOULDNT_BE_SET
+    l.sflesi r4, \b
+    SHOULD_BE_SET
+    l.sfltsi r4, \b
+    SHOULD_BE_SET
+.endm
+
+.macro SHOULD_BE_GREATER_THAN_SIGNED_I a, b
+
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+        
+    l.sfeqi  r4, \b
+    SHOULDNT_BE_SET
+    l.sfnei  r4, \b
+    SHOULD_BE_SET
+    l.sfgtsi r4, \b
+    SHOULD_BE_SET
+    l.sfgesi r4, \b
+    SHOULD_BE_SET
+    l.sflesi r4, \b
+    SHOULDNT_BE_SET
+    l.sfltsi r4, \b
+    SHOULDNT_BE_SET
+.endm
+
+        
+.macro SHOULD_BE_LESS_THAN_UNSIGNED_I a, b
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+        
+    l.sfeqi  r4, \b
+    SHOULDNT_BE_SET
+    l.sfnei  r4, \b
+    SHOULD_BE_SET 
+    l.sfgtui r4, \b
+    SHOULDNT_BE_SET
+    l.sfgeui r4, \b
+    SHOULDNT_BE_SET
+    l.sfleui r4, \b
+    SHOULD_BE_SET
+    l.sfltui r4, \b
+    SHOULD_BE_SET
+.endm
+
+.macro SHOULD_BE_GREATER_THAN_UNSIGNED_I a, b
+    MOVE_TO_R4_AND_REPORT_I \a, \b
+
+    l.sfeqi  r4, \b
+    SHOULDNT_BE_SET
+    l.sfnei  r4, \b
+    SHOULD_BE_SET
+    l.sfgtui r4, \b
+    SHOULD_BE_SET
+    l.sfgeui r4, \b
+    SHOULD_BE_SET
+    l.sfleui r4, \b
+    SHOULDNT_BE_SET
+    l.sfltui r4, \b
+    SHOULDNT_BE_SET
+.endm
+
+        
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Signed tests
+        
+        SHOULD_BE_LESS_THAN_SIGNED 0, 1
+        SHOULD_BE_LESS_THAN_SIGNED MIN1, 0
+        SHOULD_BE_LESS_THAN_SIGNED INT_MAX_MIN1, INT_MAX
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX, INT_MAX
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX, INT_MAX_MIN1
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX_PL1, INT_MAX
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX_PL1, INT_MAX_MIN1
+        SHOULD_BE_LESS_THAN_SIGNED -7, -6
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX, NEG_INT_MAX_PL1
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX, MIN1
+        SHOULD_BE_LESS_THAN_SIGNED NEG_INT_MAX, 0
+    
+        SHOULD_BE_GREATER_THAN_SIGNED 1, 0
+        SHOULD_BE_GREATER_THAN_SIGNED 0, MIN1
+        SHOULD_BE_GREATER_THAN_SIGNED INT_MAX, INT_MAX_MIN1
+        SHOULD_BE_GREATER_THAN_SIGNED INT_MAX, NEG_INT_MAX
+        SHOULD_BE_GREATER_THAN_SIGNED INT_MAX_MIN1, NEG_INT_MAX
+        SHOULD_BE_GREATER_THAN_SIGNED INT_MAX, NEG_INT_MAX_PL1
+        SHOULD_BE_GREATER_THAN_SIGNED INT_MAX_MIN1, NEG_INT_MAX_PL1
+        SHOULD_BE_GREATER_THAN_SIGNED -6, -7
+        SHOULD_BE_GREATER_THAN_SIGNED NEG_INT_MAX_PL1, NEG_INT_MAX
+        SHOULD_BE_GREATER_THAN_SIGNED MIN1, NEG_INT_MAX
+        SHOULD_BE_GREATER_THAN_SIGNED 0, NEG_INT_MAX
+
+        SHOULD_BE_LESS_THAN_SIGNED    0xFFFF7FFF, 0xFFFF8000  // See the immediate tests below.
+        SHOULD_BE_GREATER_THAN_SIGNED 0xFFFF8001, 0xFFFF8000  // See the immediate tests below.
+
+        
+        // Signed tests, immediate
+        
+        SHOULD_BE_LESS_THAN_SIGNED_I   0,  1
+        SHOULD_BE_LESS_THAN_SIGNED_I  -1,  0
+        SHOULD_BE_LESS_THAN_SIGNED_I  -7, -6
+        
+        SHOULD_BE_GREATER_THAN_SIGNED_I 0x00008000, 0x7FFF
+        SHOULD_BE_LESS_THAN_SIGNED_I    0xFFFFFFFF, 0x7FFF
+        SHOULD_BE_LESS_THAN_SIGNED_I    0xFFFF7FFF, 0x8000  // 0x8000 gets sign-extended to 0xFFFF8000.
+        SHOULD_BE_GREATER_THAN_SIGNED_I 0xFFFF8001, 0x8000  // 0x8000 gets sign-extended to 0xFFFF8000.
+        SHOULD_BE_GREATER_THAN_SIGNED_I 0x00008000, 0x8000  // 0x8000 gets sign-extended to 0xFFFF8000.
+
+        
+        // Unsigned tests
+        
+        SHOULD_BE_LESS_THAN_UNSIGNED 0, 1
+        SHOULD_BE_LESS_THAN_UNSIGNED UINT_MAX_MIN1, UINT_MAX
+        SHOULD_BE_GREATER_THAN_UNSIGNED 1, 0
+        SHOULD_BE_GREATER_THAN_UNSIGNED UINT_MAX, UINT_MAX_MIN1
+        SHOULD_BE_GREATER_THAN_UNSIGNED UINT_MAX, 0
+        SHOULD_BE_GREATER_THAN_UNSIGNED 0x80000001,  0x80000000
+        SHOULD_BE_LESS_THAN_UNSIGNED 0x80000000,  0x80000001
+        SHOULD_BE_GREATER_THAN_UNSIGNED 0x80000000, 0x7fffffff
+        SHOULD_BE_LESS_THAN_UNSIGNED 0x7fffffff,  0x80000000
+        SHOULD_BE_GREATER_THAN_UNSIGNED 0x7fffffff,  0x7ffffffe
+        SHOULD_BE_LESS_THAN_UNSIGNED 0x7ffffffe,  0x7fffffff
+        SHOULD_BE_LESS_THAN_UNSIGNED 0x2024fae0,  0xfef03220
+
+        
+        // Unsigned tests, immediate
+        
+        SHOULD_BE_LESS_THAN_UNSIGNED_I 0, 1
+        SHOULD_BE_GREATER_THAN_UNSIGNED_I 1, 0
+        SHOULD_BE_LESS_THAN_UNSIGNED_I    SHRT_MAX - 1, SHRT_MAX
+        SHOULD_BE_GREATER_THAN_UNSIGNED_I SHRT_MAX    , SHRT_MAX - 1
+
+        // The sign extension produces unexpected results here.
+        SHOULD_BE_LESS_THAN_UNSIGNED_I 0xFFFFFFFF - 1, 0xFFFF  // 0xFFFF gets sign-extended to 0xFFFFFFFF.
+        SHOULD_BE_LESS_THAN_UNSIGNED_I 0xFFFF7FFF    , 0x8000  // 0x8000 gets sign-extended to 0xFFFF8000.
+        
+        
+        // Equal tests.
+        
+        SHOULD_BE_EQUAL 0, 0
+        SHOULD_BE_EQUAL UINT_MAX, UINT_MAX
+        SHOULD_BE_EQUAL MIN1, UINT_MAX
+        SHOULD_BE_EQUAL INT_MAX, INT_MAX
+        SHOULD_BE_EQUAL NEG_INT_MAX, NEG_INT_MAX
+
+        
+        // Equal tests, immediate. Test the 16-to-32-bit sign extension.
+        
+        SHOULD_BE_EQUAL_I 0, 0
+        SHOULD_BE_EQUAL_I 0x00007FFF, 0x7FFF
+        SHOULD_BE_EQUAL_I 0xFFFF8000, 0x8000
+        SHOULD_BE_EQUAL_I 0xFFFFFFFF, 0xFFFF
+
+
+        // Non-equal tests.
+        
+        SHOULDNT_BE_EQUAL 0, 1
+        SHOULDNT_BE_EQUAL UINT_MAX, INT_MAX
+        SHOULDNT_BE_EQUAL UINT_MAX, NEG_INT_MAX
+        SHOULDNT_BE_EQUAL MIN1, NEG_INT_MAX_PL1
+        SHOULDNT_BE_EQUAL INT_MAX, NEG_INT_MAX
+        SHOULDNT_BE_EQUAL NEG_INT_MAX_PL1, UINT_MAX_MIN1
+
+
+        // Non-equal tests, immediate. Test the 16-to-32-bit sign extension.
+        
+        SHOULDNT_BE_EQUAL_I 0x00008000, 0x8000
+        
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
+
+failed:
+        EXIT_SIMULATION_WITH_IMMEDIATE_EXIT_CODE SEC_GENERIC_ERROR
diff --git a/sim/testsuite/sim/or1k/jump.S b/sim/testsuite/sim/or1k/jump.S
new file mode 100644
index 0000000..63b1acc
--- /dev/null
+++ b/sim/testsuite/sim/or1k/jump.S
@@ -0,0 +1,121 @@
+/* Tests the jump instructions
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x48000000);\n
+# output: report(0x00000005);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x44000000);\n
+# output: report(0x00000005);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+/* ----------------------------------------------------------------------------
+ * Tests a jump instruction using a register destination.
+ * Checks whether the jump succeeds, or whether an exception is triggered (but not if the right exception was triggered yet).
+ *
+ * We manually construct the opcode, to allow us to force R9 into the
+ * destination field, to test exception handling. Usually the assembler would
+ * prevent this.
+ *
+ * Do not specify R31 as the register to use for the jump, as it's used internally.
+ * ------------------------------------------------------------------------- */
+
+.macro TEST_JUMP  opcode_value  dest_register_number  alignment_offset
+
+        REPORT_IMMEDIATE_TO_CONSOLE \opcode_value
+        REPORT_IMMEDIATE_TO_CONSOLE \dest_register_number
+        REPORT_IMMEDIATE_TO_CONSOLE \alignment_offset
+
+        LOAD_IMMEDIATE r\dest_register_number, 51f + \alignment_offset
+
+        // Clear the last exception address. Not really necessary.
+        MOVE_TO_SPR  SPR_EPCR_BASE, ZERO_R0
+
+        // Generate the jump opcode.
+    50: OR1K_DELAYED_NOP(.word  ( \opcode_value | (\dest_register_number << 11) ))
+
+        // If the jump failed, we land here.
+        REPORT_IMMEDIATE_TO_CONSOLE 1
+
+        OR1K_DELAYED_NOP(l.j 52f)
+
+        // If the jump succeeds, we land here.
+    51: REPORT_IMMEDIATE_TO_CONSOLE 0
+        
+    52:
+
+.endm
+        
+
+        STANDARD_TEST_ENVIRONMENT
+
+
+        .section .exception_vectors
+        
+        // Alignment exception.
+	    .org	0x600
+        // TODO: We need to patch the instruction here before returning, or we need to return
+        //       to the next instruction. But beware that the or1200 implementation does not behave like the or1ksim simulator.
+	    l.rfe
+        
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+        
+
+        // Test l.jalr (jump and link register)
+
+        TEST_JUMP 0x48000000, 5, 0
+        // TODO: some tests disabled, further work is needed
+        // TEST_JUMP 0x48000000, 5, 1
+        // TEST_JUMP 0x48000000, 5, 2
+        // TEST_JUMP 0x48000000, 5, 3
+        
+        // Test with link register as the destination
+        // TODO: disabled, need to add support for the ILLEGAL INSTRUCTION exception:
+        // TEST_JUMP (0x48000000, 9, 0)
+        
+
+        // Test l.jr (jump register)
+        
+        TEST_JUMP 0x44000000, 5, 0
+        // TODO: some tests disabled, further work is needed
+        // TEST_JUMP 0x44000000, 5, 1
+        // TEST_JUMP 0x44000000, 5, 2
+        // TEST_JUMP 0x44000000, 5, 3
+
+        // Test with link register as the destination (OK here)
+        // TODO: disabled, need to add support for the ILLEGAL INSTRUCTION exception:
+        // TEST_JUMP 0x44000000, 9, 0
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/load.S b/sim/testsuite/sim/or1k/load.S
new file mode 100644
index 0000000..6818ca7
--- /dev/null
+++ b/sim/testsuite/sim/or1k/load.S
@@ -0,0 +1,373 @@
+/* Tests the load and store instructions.
+ *
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0xdeadbeef);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x80000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x80000000);\n
+# output: report(0xffffffff);\n
+# output: report(0xdeadbeef);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x000000de);\n
+# output: report(0x000000ad);\n
+# output: report(0x000000be);\n
+# output: report(0x000000ef);\n
+# output: report(0x000000ef);\n
+# output: report(0x000000be);\n
+# output: report(0x000000ad);\n
+# output: report(0x000000de);\n
+# output: report(0xffffffde);\n
+# output: report(0xffffffad);\n
+# output: report(0xffffffbe);\n
+# output: report(0xffffffef);\n
+# output: report(0xffffffef);\n
+# output: report(0xffffffbe);\n
+# output: report(0xffffffad);\n
+# output: report(0xffffffde);\n
+# output: report(0x0000dead);\n
+# output: report(0x0000beef);\n
+# output: report(0x0000beef);\n
+# output: report(0x0000dead);\n
+# output: report(0xffffdead);\n
+# output: report(0xffffbeef);\n
+# output: report(0xffffbeef);\n
+# output: report(0xffffdead);\n
+# output: report(0xa1a2a3a4);\n
+# output: report(0xb4b3b2b1);\n
+# output: report(0x81828384);\n
+# output: report(0x53545152);\n
+# output: report(0xa0b0c0d0);\n
+# output: report(0xa1b1c1d1);\n
+# output: report(0xa3b3c3d3);\n
+# output: report(0xa2b2c2d2);\n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+.macro TEST_LW  opcode, label, offset
+   
+    LOAD_IMMEDIATE r5, \label
+        
+    \opcode  r4, \offset(r5)
+
+    REPORT_REG_TO_CONSOLE r4
+        
+.endm
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .rodata
+        .balign 4
+        
+50:     .word   0xdeadbeef
+51:     .word   0x00000000
+52:     .word   0x7fffffff
+53:     .word   0x80000000
+54:     .word   0xffffffff
+
+        
+        .section .data
+        .balign 4
+        
+buffer1:  .word 0x00000000
+buffer2:  .word 0x00000000
+buffer3:  .word 0x00000000
+buffer4:  .word 0x00000000
+buffer5:
+
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Test instruction l.lws
+        /* TODO: The instruction l.lws is not implemeted yet in or1200, search for "l.lws support patch" in the mailing list.
+                 Note that this instruction is redundant, as l.lwz does exactly the same.
+
+        // Load with zero offset
+        TEST_LW l.lws 50b, 0
+        TEST_LW l.lws 51b, 0
+        TEST_LW l.lws 52b, 0
+        TEST_LW l.lws 53b, 0
+        TEST_LW l.lws 54b, 0
+
+        // Load with positive offset
+        TEST_LW l.lws 50b,  4
+        TEST_LW l.lws 50b,  8
+        TEST_LW l.lws 50b, 12
+        TEST_LW l.lws 50b, 16
+
+        // Load with negative offset
+        TEST_LW l.lws 54b, -16
+        TEST_LW l.lws 54b, -12
+        TEST_LW l.lws 54b,  -8
+        TEST_LW l.lws 54b,  -4
+
+        add here test cases to cover unaligned memory accesses with l.lws
+        */
+
+
+        // ---------- Test instruction l.lwz ----------
+        // Same tests as above. The instruction l.lwz does the same as l.lws (it is a redundant instruction).
+
+        // Load with zero offset
+        TEST_LW l.lwz 50b, 0
+        TEST_LW l.lwz 51b, 0
+        TEST_LW l.lwz 52b, 0
+        TEST_LW l.lwz 53b, 0
+        TEST_LW l.lwz 54b, 0
+
+        // Load with positive offset
+        TEST_LW l.lwz 50b,  4
+        TEST_LW l.lwz 50b,  8
+        TEST_LW l.lwz 50b, 12
+        TEST_LW l.lwz 50b, 16
+
+        // Load with negative offset
+        TEST_LW l.lwz 54b, -16
+        TEST_LW l.lwz 54b, -12
+        TEST_LW l.lwz 54b,  -8
+        TEST_LW l.lwz 54b,  -4
+        
+        // TODO: add here test cases to cover unaligned memory accesses with l.lwz
+
+        // ---------- Test instruction l.lbz ----------
+        
+        // Read data at label 50, forwards, byte by byte.
+        LOAD_IMMEDIATE r5, 50b
+
+        l.lbz r4, 0(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbz r4, 1(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbz r4, 2(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbz r4, 3(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        
+        // Read data at label 50, backwards, byte by byte.
+        LOAD_IMMEDIATE r31, 51b
+
+        l.lbz r3, -1(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbz r3, -2(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbz r3, -3(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbz r3, -4(r31)
+        REPORT_REG_TO_CONSOLE r3
+        
+
+        // ---------- Test instruction l.lbs ----------
+
+        // Read data at label 50, forwards, byte by byte.
+        LOAD_IMMEDIATE r5, 50b
+
+        l.lbs r4, 0(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbs r4, 1(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbs r4, 2(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lbs r4, 3(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        
+        // Read data at label 50, backwards, byte by byte.
+        LOAD_IMMEDIATE r31, 51b
+
+        l.lbs r3, -1(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbs r3, -2(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbs r3, -3(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lbs r3, -4(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+
+        // ---------- Test instruction l.lhz ----------
+
+        // Read data at label 50, forwards, half-word by half-word.
+        LOAD_IMMEDIATE r5, 50b
+
+        l.lhz r4, 0(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lhz r4, 2(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        
+        // Read data at label 50, backwards, half-word by half-word.
+        LOAD_IMMEDIATE r31, 51b
+
+        l.lhz r3, -2(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lhz r3, -4(r31)
+        REPORT_REG_TO_CONSOLE r3
+        
+        // TODO: add here test cases to cover unaligned memory accesses with l.lhz
+
+        
+        // ---------- Test instruction l.lhs ----------
+
+        // Read data at label 50, forwards, half-word by half-word.
+        LOAD_IMMEDIATE r5, 50b
+
+        l.lhs r4, 0(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        l.lhs r4, 2(r5)
+        REPORT_REG_TO_CONSOLE r4
+
+        
+        // Read data at label 50, backwards, half-word by half-word.
+        LOAD_IMMEDIATE r31, 51b
+
+        l.lhs r3, -2(r31)
+        REPORT_REG_TO_CONSOLE r3
+
+        l.lhs r3, -4(r31)
+        REPORT_REG_TO_CONSOLE r3
+        
+        // TODO: add here test cases to cover unaligned memory accesses with l.lhs
+
+
+        // ---------- Test instruction l.sb ----------
+
+        // Write 32-bits forwards, byte-to-byte.
+        
+        LOAD_IMMEDIATE r5, buffer1
+
+        LOAD_IMMEDIATE r10, 0xA1
+        LOAD_IMMEDIATE r11, 0xA2
+        LOAD_IMMEDIATE r12, 0xA3
+        LOAD_IMMEDIATE r13, 0xA4
+
+        l.sb 0(r5), r10
+        l.sb 1(r5), r11
+        l.sb 2(r5), r12
+        l.sb 3(r5), r13
+
+        l.lwz r3, 0(r5)
+        REPORT_REG_TO_CONSOLE r3
+
+        // Write 32-bits backwards, byte-to-byte.
+        
+        LOAD_IMMEDIATE r6, buffer2
+
+        LOAD_IMMEDIATE r10, 0xB1
+        LOAD_IMMEDIATE r11, 0xB2
+        LOAD_IMMEDIATE r12, 0xB3
+        LOAD_IMMEDIATE r13, 0xB4
+
+        l.sb -1(r6), r10
+        l.sb -2(r6), r11
+        l.sb -3(r6), r12
+        l.sb -4(r6), r13
+
+        l.lwz r3, 0(r5)
+        REPORT_REG_TO_CONSOLE r3
+        
+        // TODO: add here test cases to cover unaligned memory accesses with l.sb
+
+        
+        // ---------- Test instruction l.sh ----------
+
+        // Write 32-bits forwards, one half-word at a time.
+        
+        LOAD_IMMEDIATE r5, buffer1
+
+        LOAD_IMMEDIATE r10, 0x8182
+        LOAD_IMMEDIATE r11, 0x8384
+
+        l.sh 0(r5), r10
+        l.sh 2(r5), r11
+
+        l.lwz r3, 0(r5)
+        REPORT_REG_TO_CONSOLE r3
+
+        
+        // Write 32-bits backwards, one half-word at a time.
+        
+        LOAD_IMMEDIATE r6, buffer2
+
+        LOAD_IMMEDIATE r10, 0x5152
+        LOAD_IMMEDIATE r11, 0x5354
+
+        l.sh -2(r6), r10
+        l.sh -4(r6), r11
+
+        l.lwz r3, 0(r5)
+        REPORT_REG_TO_CONSOLE r3
+        
+        // TODO: add here test cases to cover unaligned memory accesses with l.sh
+
+        
+        // ---------- Test instruction l.sw ----------
+
+        LOAD_IMMEDIATE r5, buffer1
+        LOAD_IMMEDIATE r6, buffer5
+
+        LOAD_IMMEDIATE r10, 0xA0B0C0D0
+        LOAD_IMMEDIATE r11, 0xA1B1C1D1
+        LOAD_IMMEDIATE r12, 0xA2B2C2D2
+        LOAD_IMMEDIATE r13, 0xA3B3C3D3
+        
+        l.sw  0(r5), r10
+        l.sw  4(r5), r11
+        l.sw -4(r6), r12
+        l.sw -8(r6), r13
+
+        TEST_LW l.lwz buffer1, 0
+        TEST_LW l.lwz buffer2, 0
+        TEST_LW l.lwz buffer3, 0
+        TEST_LW l.lwz buffer4, 0
+
+        // TODO: add here test cases to cover unaligned memory accesses with l.sw
+        
+        
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/mac.S b/sim/testsuite/sim/or1k/mac.S
new file mode 100644
index 0000000..08e0ebb
--- /dev/null
+++ b/sim/testsuite/sim/or1k/mac.S
@@ -0,0 +1,785 @@
+/* Tests the MAC instructions.
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x40000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000006);\n
+# output: report(0x80000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x00000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x7ffffffd);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000000);\n
+# output: report(0x00000005);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000006);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x40000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000006);\n
+# output: report(0x80000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x00000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x7ffffffd);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000000);\n
+# output: report(0x00000005);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000006);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000006);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x7ffffffd);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000005);\n
+# output: report(0xfffffffa);\n
+# output: report(0x00000006);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0xfffffff9);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x80000000);\n
+# output: report(0x80000006);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0xfffffffa);\n
+# output: report(0x3fffffff);\n
+# output: report(0xfffffffa);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffff4);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000002);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000004);\n
+# output: report(0x7ffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000001);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000004);\n
+# output: report(0xfffffffe);\n
+# output: report(0x00000004);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0xffffffff);\n
+# output: report(0xfffffff9);\n
+# output: report(0x00000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x0000000c);\n
+# output: report(0x00000001);\n
+# output: report(0x00000005);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000005);\n
+# output: report(0x80000000);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x80000006);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x7fffffff);\n
+# output: report(0x80000000);\n
+# output: report(0x80000000);\n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+.macro TEST_MACRC mac_hi, mac_lo, op1, op2
+
+    LOAD_IMMEDIATE r2, \mac_hi
+    MOVE_TO_SPR SPR_MACHI, r2
+        
+    LOAD_IMMEDIATE r2, \mac_lo
+    MOVE_TO_SPR SPR_MACLO, r2
+        
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    l.mac   r5, r6
+    l.macrc r3
+        
+    REPORT_REG_TO_CONSOLE r3
+
+.endm
+
+    
+.macro TEST_MAC mac_hi, mac_lo, op1, op2
+
+    LOAD_IMMEDIATE r2, \mac_hi
+    MOVE_TO_SPR SPR_MACHI, r2
+        
+    LOAD_IMMEDIATE r2, \mac_lo
+    MOVE_TO_SPR SPR_MACLO, r2
+        
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    l.mac r5, r6
+        
+    MOVE_FROM_SPR r3, SPR_MACHI
+    REPORT_REG_TO_CONSOLE r3
+        
+    MOVE_FROM_SPR r3, SPR_MACLO
+    REPORT_REG_TO_CONSOLE r3
+
+.endm
+
+
+.macro TEST_MACI mac_hi, mac_lo, op1, op2_immediate
+
+    LOAD_IMMEDIATE r2, \mac_hi
+    MOVE_TO_SPR SPR_MACHI, r2
+        
+    LOAD_IMMEDIATE r2, \mac_lo
+    MOVE_TO_SPR SPR_MACLO, r2
+        
+    LOAD_IMMEDIATE r5, \op1
+
+    l.maci r5, \op2_immediate
+        
+    MOVE_FROM_SPR r3, SPR_MACHI
+    REPORT_REG_TO_CONSOLE r3
+        
+    MOVE_FROM_SPR r3, SPR_MACLO
+    REPORT_REG_TO_CONSOLE r3
+
+.endm
+        
+
+.macro TEST_MSB mac_hi, mac_lo, op1, op2
+
+    LOAD_IMMEDIATE r2, \mac_hi
+    MOVE_TO_SPR SPR_MACHI, r2
+        
+    LOAD_IMMEDIATE r2, \mac_lo
+    MOVE_TO_SPR SPR_MACLO, r2
+        
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    l.msb r5, r6
+        
+    MOVE_FROM_SPR r3, SPR_MACHI
+    REPORT_REG_TO_CONSOLE r3
+        
+    MOVE_FROM_SPR r3, SPR_MACLO
+    REPORT_REG_TO_CONSOLE r3
+        
+.endm
+
+    
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+       
+        // Test the l.mac instruction.
+        // --------------------------------------------
+
+        // -------- two small positive numbers --------
+        
+        // MAC two small positive numbers on a zero total 
+        TEST_MAC 0x00000000, 0x00000000, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a small positive total 
+        TEST_MAC 0x00000000, 0x00000006, 0x00000002, 0x00000003,
+
+        // MAC two small positive numbers on a moderate positive total 
+        TEST_MAC 0x00000000, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a large positive total 
+        TEST_MAC 0x3fffffff, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a small negative total 
+        TEST_MAC 0xffffffff, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a moderate negative total 
+        TEST_MAC 0xffffffff, 0x00000000, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a large negative total 
+        TEST_MAC 0x80000000, 0x00000000, 0x00000002, 0x00000003
+
+
+        // -------- two moderate positive numbers --------
+        
+        // MAC two moderate positive numbers on a zero total 
+        TEST_MAC 0x00000000, 0x00000000, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a small positive total 
+        TEST_MAC 0x00000000, 0x00000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a moderate positive total 
+        TEST_MAC 0x00000000, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a large positive total 
+        TEST_MAC 0x7fffffff, 0x80000001, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a small negative total 
+        TEST_MAC 0xffffffff, 0xffffffff, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a moderate negative total 
+        TEST_MAC 0xffffffff, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a large negative total 
+        TEST_MAC 0xfffffffe, 0x80000002, 0x00008001, 0x0000fffe
+
+
+        // -------- two small negative numbers --------
+        
+        // MAC two small negative numbers on a zero total
+        TEST_MAC 0x00000000, 0x00000000, 0xfffffffe, 0xfffffffd
+
+        // MAC two small negative numbers on a small positive total 
+        TEST_MAC 0x00000000, 0x00000006, 0xfffffffe, 0xfffffffd
+
+        // MAC two small negative numbers on a small negative total 
+        TEST_MAC 0xffffffff, 0xffffffff, 0xfffffffe, 0xfffffffd
+
+
+        // -------- one small positive and one small negative --------
+
+        // MAC one small positive and one small negative number on a zero total 
+        TEST_MAC 0x00000000, 0x00000000, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a small positive total 
+        TEST_MAC 0x00000000, 0x0000000c, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a moderate positive total 
+        TEST_MAC 0x00000001, 0x00000005, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a large positive total 
+        TEST_MAC 0x7fffffff, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a small negative total 
+        TEST_MAC 0xffffffff, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a moderate negative total 
+        TEST_MAC 0xffffffff, 0x00000005, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a large negative total 
+        TEST_MAC 0x80000000, 0x00000006, 0x00000002, 0xfffffffd
+
+
+        // -------- one moderate positive and one moderate negative number --------
+
+        // MAC one moderate positive and one moderate negative number on a zero total 
+        TEST_MAC 0x00000000, 0x00000000, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a small positive total 
+        TEST_MAC 0x00000000, 0x00000006, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a moderate positive total 
+        TEST_MAC 0x00000000, 0x80000000, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a large positive total 
+        TEST_MAC 0x7fffffff, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a small negative total 
+        TEST_MAC 0xffffffff, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a moderate negative total 
+        TEST_MAC 0xffffffff, 0x7fffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a large negative total 
+        TEST_MAC 0x80000000, 0x80000000, 0x00008000, 0xffff0000
+
+
+        // Test the l.maci instruction.
+        // --------------------------------------------
+
+        // -------- two small positive numbers --------
+        
+        // MAC two small positive numbers on a zero total 
+        TEST_MACI 0x00000000, 0x00000000, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a small positive total 
+        TEST_MACI 0x00000000, 0x00000006, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a moderate positive total 
+        TEST_MACI 0x00000000, 0xfffffffa, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a large positive total 
+        TEST_MACI 0x3fffffff, 0xfffffffa, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a small negative total 
+        TEST_MACI 0xffffffff, 0xfffffffa, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a moderate negative total 
+        TEST_MACI 0xffffffff, 0x00000000, 0x00000002, 0x0003
+
+        // MAC two small positive numbers on a large negative total 
+        TEST_MACI 0x80000000, 0x00000000, 0x00000002, 0x0003
+
+        
+        // -------- two moderate positive numbers --------
+
+        // MAC two moderate positive numbers on a zero total 
+        TEST_MACI 0x00000000, 0x00000000, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a small positive total 
+        TEST_MACI 0x00000000, 0x00000002, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a moderate positive total 
+        TEST_MACI 0x00000000, 0x80000002, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a large positive total 
+        TEST_MACI 0x7fffffff, 0x80000001, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a small negative total 
+        TEST_MACI 0xffffffff, 0xffffffff, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a moderate negative total 
+        TEST_MACI 0xffffffff, 0x80000002, 0x00010002, 0x7fff
+
+        // MAC two moderate positive numbers on a large negative total 
+        TEST_MACI 0xfffffffe, 0x80000002, 0x00010002, 0x7fff
+
+
+        // -------- two small negative numbers --------
+        
+        // MAC two small negative numbers on a zero total 
+        TEST_MACI 0x00000000, 0x00000000, 0xfffffffe, 0xfffd
+
+        // MAC two small negative numbers on a small positive total 
+        TEST_MACI 0x00000000, 0x00000006, 0xfffffffe, 0xfffd
+
+        // MAC two small negative numbers on a small negative total 
+        TEST_MACI 0xffffffff, 0xffffffff, 0xfffffffe, 0xfffd
+
+
+        // -------- one small positive and one small negative --------
+
+        // MAC one small positive and one small negative number on a zero total 
+        TEST_MACI 0x00000000, 0x00000000, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a small positive total 
+        TEST_MACI 0x00000000, 0x0000000c, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a moderate positive total 
+        TEST_MACI 0x00000001, 0x00000005, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a large positive total 
+        TEST_MACI 0x7fffffff, 0xffffffff, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a small negative total 
+        TEST_MACI 0xffffffff, 0xffffffff, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a moderate negative total 
+        TEST_MACI 0xffffffff, 0x00000005, 0x00000002, 0xfffd
+
+        // MAC one small positive and one small negative number on a large negative total 
+        TEST_MACI 0x80000000, 0x00000006, 0x00000002, 0xfffd
+
+        
+        // -------- one moderate positive and one moderate negative --------
+
+        // MAC one moderate positive and one moderate negative number on a zero total 
+        TEST_MACI 0x00000000, 0x00000000, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a small positive total 
+        TEST_MACI 0x00000000, 0x00000006, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a moderate positive total 
+        TEST_MACI 0x00000000, 0x80000000, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a large positive total 
+        TEST_MACI 0x7fffffff, 0xffffffff, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a small negative total 
+        TEST_MACI 0xffffffff, 0xffffffff, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a moderate negative total 
+        TEST_MACI 0xffffffff, 0x7fffffff, 0x00010000, 0x8000
+
+        // MAC one moderate positive and one moderate negative number on a large negative total 
+        TEST_MACI 0x80000000, 0x80000000, 0x00010000, 0x8000
+
+
+        // Test the l.macrc instruction.
+        // --------------------------------------------
+        // Note that these tests use the same input data as the ones for l.mac above.
+        // The results are the same, but only the low 32-bits are compared.
+        
+        // -------- two small positive numbers --------
+        
+        // MAC two small positive numbers on a zero total 
+        TEST_MACRC 0x00000000, 0x00000000, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a small positive total 
+        TEST_MACRC 0x00000000, 0x00000006, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a moderate positive total 
+        TEST_MACRC 0x00000000, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a large positive total 
+        TEST_MACRC 0x3fffffff, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a small negative total 
+        TEST_MACRC 0xffffffff, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a moderate negative total 
+        TEST_MACRC 0xffffffff, 0x00000000, 0x00000002, 0x00000003
+
+        // MAC two small positive numbers on a large negative total 
+        TEST_MACRC 0x80000000, 0x00000000, 0x00000002, 0x00000003
+
+
+        // -------- two moderate positive numbers --------
+        
+        // MAC two moderate positive numbers on a zero total 
+        TEST_MACRC 0x00000000, 0x00000000, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a small positive total 
+        TEST_MACRC 0x00000000, 0x00000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a moderate positive total 
+        TEST_MACRC 0x00000000, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a large positive total 
+        TEST_MACRC 0x7fffffff, 0x80000001, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a small negative total 
+        TEST_MACRC 0xffffffff, 0xffffffff, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a moderate negative total 
+        TEST_MACRC 0xffffffff, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MAC two moderate positive numbers on a large negative total 
+        TEST_MACRC 0xfffffffe, 0x80000002, 0x00008001, 0x0000fffe
+
+
+        // -------- two small negative numbers --------
+        
+        // MAC two small negative numbers on a zero total 
+        TEST_MACRC 0x00000000, 0x00000000, 0xfffffffe, 0xfffffffd
+
+        // MAC two small negative numbers on a small positive total 
+        TEST_MACRC 0x00000000, 0x00000006, 0xfffffffe, 0xfffffffd
+
+        // MAC two small negative numbers on a small negative total 
+        TEST_MACRC 0xffffffff, 0xffffffff, 0xfffffffe, 0xfffffffd
+
+        
+        // -------- one small positive and one small negative number --------
+        
+        // MAC one small positive and one small negative number on a zero total 
+        TEST_MACRC 0x00000000, 0x00000000, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a small positive total 
+        TEST_MACRC 0x00000000, 0x0000000c, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a moderate positive total 
+        TEST_MACRC 0x00000001, 0x00000005, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a large positive total 
+        TEST_MACRC 0x7fffffff, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a small negative total 
+        TEST_MACRC 0xffffffff, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a moderate negative total 
+        TEST_MACRC 0xffffffff, 0x00000005, 0x00000002, 0xfffffffd
+
+        // MAC one small positive and one small negative number on a large negative total 
+        TEST_MACRC 0x80000000, 0x00000006, 0x00000002, 0xfffffffd
+
+        
+        // -------- one moderate positive and one moderate negative --------
+
+        // MAC one moderate positive and one moderate negative number on a zero total 
+        TEST_MACRC 0x00000000, 0x00000000, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a small positive total 
+        TEST_MACRC 0x00000000, 0x00000006, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a moderate positive total 
+        TEST_MACRC 0x00000000, 0x80000000, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a large positive total 
+        TEST_MACRC 0x7fffffff, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a small negative total 
+        TEST_MACRC 0xffffffff, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a moderate negative total 
+        TEST_MACRC 0xffffffff, 0x7fffffff, 0x00008000, 0xffff0000
+
+        // MAC one moderate positive and one moderate negative number on a large negative total 
+        TEST_MACRC 0x80000000, 0x80000000, 0x00008000, 0xffff0000
+
+
+        // Test the l.msb instruction.
+        // --------------------------------------------
+
+        // MSB two small positive numbers on a zero total 
+        TEST_MSB 0x00000000, 0x00000000, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a small positive total 
+        TEST_MSB 0x00000000, 0x0000000c, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a moderate positive total 
+        TEST_MSB 0x00000001, 0x00000000, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a large positive total 
+        TEST_MSB 0x40000000, 0x00000000, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a small negative total 
+        TEST_MSB 0xffffffff, 0xfffffffa, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a moderate negative total 
+        TEST_MSB 0xffffffff, 0x00000005, 0x00000002, 0x00000003
+
+        // MSB two small positive numbers on a large negative total 
+        TEST_MSB 0x80000000, 0x00000006, 0x00000002, 0x00000003
+
+
+        // -------- two moderate positive numbers --------
+
+        // MSB two moderate positive numbers on a zero total 
+        TEST_MSB 0x00000000, 0x00000000, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a small positive total 
+        TEST_MSB 0x00000000, 0x00000002, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a moderate positive total 
+        TEST_MSB 0x00000000, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a large positive total 
+        TEST_MSB 0x7fffffff, 0x7ffffffd, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a small negative total 
+        TEST_MSB 0xffffffff, 0xffffffff, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a moderate negative total 
+        TEST_MSB 0xffffffff, 0x80000002, 0x00008001, 0x0000fffe
+
+        // MSB two moderate positive numbers on a large negative total 
+        TEST_MSB 0xfffffffe, 0x80000002, 0x00008001, 0x0000fffe
+
+
+        // -------- two small negative numbers --------
+        
+        // MSB two small negative numbers on a zero total 
+        TEST_MSB 0x00000000, 0x00000006, 0xfffffffe, 0xfffffffd
+
+        // MSB two small negative numbers on a small positive total 
+        TEST_MSB 0x00000000, 0x0000000c, 0xfffffffe, 0xfffffffd
+
+        // MSB two small negative numbers on a small negative total 
+        TEST_MSB 0xffffffff, 0xffffffff, 0xfffffffe, 0xfffffffd
+
+
+        // -------- one small positive and one small negative number --------
+        
+        // MSB one small positive and one small negative number on a zero total 
+        TEST_MSB 0x00000000, 0x00000000, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a small positive total 
+        TEST_MSB 0x00000000, 0x00000006, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a moderate positive total 
+        TEST_MSB 0x00000000, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a large positive total 
+        TEST_MSB 0x7fffffff, 0xfffffff9, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a small negative total 
+        TEST_MSB 0xffffffff, 0xfffffff9, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a moderate negative total 
+        TEST_MSB 0xfffffffe, 0xffffffff, 0x00000002, 0xfffffffd
+
+        // MSB one small positive and one small negative number on a large negative total 
+        TEST_MSB 0x80000000, 0x00000000, 0x00000002, 0xfffffffd
+
+
+        // -------- one moderate positive and one moderate negative number --------
+        
+        // MSB one moderate positive and one moderate negative number on a zero total 
+        TEST_MSB 0x00000000, 0x00000000, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a small positive total 
+        TEST_MSB 0x00000000, 0x00000006, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a moderate positive total 
+        TEST_MSB 0x00000000, 0x80000000, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a large positive total 
+        TEST_MSB 0x7fffffff, 0x7fffffff, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a small negative total 
+        TEST_MSB 0xffffffff, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a moderate negative total 
+        TEST_MSB 0xfffffffe, 0xffffffff, 0x00008000, 0xffff0000
+
+        // MSB one moderate positive and one moderate negative number on a large negative total 
+        TEST_MSB 0x80000000, 0x00000000, 0x00008000, 0xffff0000
+
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/mfspr.S b/sim/testsuite/sim/or1k/mfspr.S
new file mode 100644
index 0000000..7007fb6
--- /dev/null
+++ b/sim/testsuite/sim/or1k/mfspr.S
@@ -0,0 +1,196 @@
+/* Tests instructions l.mfspr and l.mtspr
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000000);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00000000);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00000801);\n
+# output: report(0x00002000);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002000);\n
+# output: report(0x00000801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00000001);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00000800);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00000000);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00000801);\n
+# output: report(0x00002000);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002000);\n
+# output: report(0x00000801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00002801);\n
+# output: report(0x00000001);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: report(0x00000800);\n
+# output: report(0x00002801);\n
+# output: report(0xdeadbeef);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-env.h"
+
+#define MACLO_VAL 0xdeadbeef
+        
+
+/* ----------------------------------------------------------------------------
+ * A macro to carry out a test of l.mfspr
+ *
+ * MACLO (0x2801) is used as the SPR, since it can be read and cleared using l.macrc
+ * and can be set using l.maci. spr_number and immediate_val_to_or should be chosen
+ * to address this register.
+ *
+ * The value placed in the register is entirely arbitrary - we use 0xdeadbeef.
+ * ------------------------------------------------------------------------- */
+
+.macro TEST_MFSPR  spr_number, immediate_val_to_or
+
+    REPORT_IMMEDIATE_TO_CONSOLE \spr_number
+    REPORT_IMMEDIATE_TO_CONSOLE \immediate_val_to_or
+
+    // Write MACLO_VAL to MACLO.
+    l.macrc r2
+    LOAD_IMMEDIATE r2, MACLO_VAL
+    l.maci  r2, 1
+
+    LOAD_IMMEDIATE r5, \spr_number
+
+    l.mfspr r4, r5, \immediate_val_to_or
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE        
+
+.endm
+
+    
+/* ----------------------------------------------------------------------------
+ * A macro to carry out a test of l.mtspr
+ *
+ * MACLO (0x2801) is used as the SPR, since it can be read and cleared using l.macrc
+ * and can be set using l.maci. spr_number and immediate_val_to_or should be chosen
+ * to address this register.
+ *
+ * The value placed in the register is entirely arbitrary - we use 0xdeadbeef.
+ * ------------------------------------------------------------------------- */
+
+.macro TEST_MTSPR  spr_number, immediate_val_to_or
+
+    REPORT_IMMEDIATE_TO_CONSOLE \spr_number
+    REPORT_IMMEDIATE_TO_CONSOLE \immediate_val_to_or
+
+    // Clear MACLO
+    l.macrc r2
+
+    LOAD_IMMEDIATE r4, MACLO_VAL
+    LOAD_IMMEDIATE r5, \spr_number
+
+    l.mtspr r5, r4, \immediate_val_to_or
+
+    // Retrieve MACLO.
+    l.macrc r4
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE
+        
+.endm
+        
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Test the l.mfspr instruction with a range of operands.
+
+        // Move a test value using zero in the register
+        TEST_MFSPR SPR_VR, SPR_MACLO  // 0x0000, 0x2801
+
+        // Move a test value using zero as the constant
+        TEST_MFSPR SPR_MACLO, SPR_VR  // 0x2801, 0x0000
+
+        // Move a test value using non-zero in both register and constant.
+        // Some of these values will not give the correct result if OR rather
+        // than ADD is used to determine the SPR address
+        TEST_MFSPR SPR_MACLO,  SPR_MACLO  // 0x2801, 0x2801
+        TEST_MFSPR SPR_DMMUPR, SPR_ICCR   // 0x0801, 0x2000
+        TEST_MFSPR SPR_ICCR,   SPR_DMMUPR // 0x2000, 0x0801
+        TEST_MFSPR SPR_MACLO,  SPR_UPR    // 0x2801, 0x0001
+        TEST_MFSPR SPR_DMMUCR, SPR_MACLO  // 0x0800, 0x2801
+
+
+        // Test the l.mtspr instruction with a range of operands.
+        
+        // Move a test value using zero in the register
+        TEST_MTSPR SPR_VR, SPR_MACLO  // 0x0000, 0x2801
+
+        // Move a test value using zero as the constant
+        TEST_MTSPR SPR_MACLO, SPR_VR  // 0x2801, 0x0000
+
+        // Move a test value using non-zero in both register and constant.
+        // Some of these values will not give the correct result if OR rather
+        // than ADD is used to determine the SPR address
+        TEST_MTSPR SPR_MACLO,  SPR_MACLO  // 0x2801, 0x2801
+        TEST_MTSPR SPR_DMMUPR, SPR_ICCR   // 0x0801, 0x2000
+        TEST_MTSPR SPR_ICCR,   SPR_DMMUPR // 0x2000, 0x0801
+        TEST_MTSPR SPR_MACLO,  SPR_UPR    // 0x2801, 0x0001
+        TEST_MTSPR SPR_DMMUCR, SPR_MACLO  // 0x0800, 0x2801
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/mul.S b/sim/testsuite/sim/or1k/mul.S
new file mode 100644
index 0000000..97b703e
--- /dev/null
+++ b/sim/testsuite/sim/or1k/mul.S
@@ -0,0 +1,277 @@
+/* Tests the multiply instructions.
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00008001);\n
+# output: report(0x0000fffe);\n
+# output: report(0x7ffffffe);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00008000);\n
+# output: report(0x00010000);\n
+# output: report(0x80000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000002);\n
+# output: report(0x00000003);\n
+# output: report(0x00000006);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Test l.mul
+        
+        // Multiply two small positive numbers. Should set no flags. 
+        TEST_INST_I32_I32 l.mul, 0x00000002, 0x00000003
+
+        // Multiply two quite large positive numbers. Should set no flags 
+        TEST_INST_I32_I32 l.mul, 0x00008001, 0x0000fffe
+
+        // Multiply two slightly too large positive numbers. Should set the
+        // overflow, but not the carry flag .
+        TEST_INST_I32_I32 l.mul, 0x00008000, 0x00010000
+
+        // Multiply two large positive numbers. Should set both the carry and
+        // overflow flags (even though the result is not a negative number. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0x00010000, 0x00010000
+
+        // Multiply two small negative numbers. Should set the overflow, but not
+        // the carry flag. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xfffffffe, 0xfffffffd
+
+        // Multiply two quite large negative numbers. Should set the overflow,
+        // but not the carry flag. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff7fff, 0xffff0002
+
+        // Multiply two slightly too large negative numbers. Should set both the
+        // overflow, and the carry flags 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff7fff, 0xffff0000
+
+        // Multiply two large negative numbers. Should set the
+        // both the carry and overflow flags (even though the result is a
+        // positive number. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff0000, 0xfffeffff
+
+        // Multiply one small negative number and one small positive number.
+        // Should set the overflow, but not the carry flag. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0x00000002, 0xfffffffd
+
+        // Multiply one quite large negative number and one quite large
+        // positive number. Should set the overflow, but not the carry flag. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff8000, 0x00010000
+
+        // Multiply one slightly too large negative number and one slightly
+        // too large positive number. Should set both the carry and overflow flags. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff7fff, 0x00010000
+
+        // Multiply the largest negative number by positive unity. Should set
+        // neither carry, nor overflow flag. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0x80000000, 0x00000001
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        
+        // Check that an overflow alone causes a RANGE Exception. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0x00008000, 0x00010000
+
+        // Check that a carry alone does not cause a RANGE Exception. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0x00000002, 0xfffffffd
+
+        // Check that carry and overflow together cause an exception. 
+        // TODO: disabled, as it fails against ORPSoC V2's or1200
+        // TEST_INST_I32_I32 l.mul, 0xffff7fff, 0xffff0000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+
+        // Test l.muli
+        
+        // Multiply two small positive numbers. Should set no flags. 
+        TEST_INST_I32_I16 l.muli, 0x00000002, 0x0003
+
+        /* TODO: carry on here
+        // Multiply two quite large positive numbers. Should set no flags 
+        TEST_INST_I32_I16 l.muli, 0x00010002, 0x7fff
+
+        // Multiply two slightly too large positive numbers. Should set the
+        // overflow, but not the carry flag 
+        TEST_INST_I32_I16 l.muli, 0x00020000, 0x4000
+
+        // Multiply two large positive numbers. Should set both the carry and
+        // overflow flags (even though the result is not a negative number. 
+        TEST_INST_I32_I16 l.muli, 0x00040000, 0x4000
+
+        // Multiply two small negative numbers. Should set the overflow, but not
+        // the carry flag. 
+        TEST_INST_I32_I16 l.muli, 0xfffffffe, 0xfffd
+
+        // Multiply two quite large negative numbers. Should set the overflow,
+        // but not the carry flag. 
+        TEST_INST_I32_I16 l.muli, 0xfffefffe, 0x8001
+
+        // Multiply two slightly too large negative numbers. Should set both the
+        // overflow, and the carry flags 
+        TEST_INST_I32_I16 l.muli, 0xfffe0000, 0xbfff
+
+        // Multiply two large negative numbers. Should set the
+        // both the carry and overflow flags (even though the result is a positive number. 
+        TEST_INST_I32_I16 l.muli, 0xfffdfffe, 0x8000
+
+        // Multiply one small negative number and one small positive number.
+        // Should set the overflow, but not the carry flag. 
+        TEST_INST_I32_I16 l.muli, 0x00000002, 0xfffd
+
+        // Multiply one quite large negative number and one quite large
+        // positive number. Should set the overflow, but not the carry flag. 
+        TEST_INST_I32_I16 l.muli, 0x00010000, 0x8000
+
+        // Multiply one slightly too large negative number and one slightly
+        // too large positive number. Should set both the carry and overflow flags. 
+        TEST_INST_I32_I16 l.muli, 0xfffdfffc, 0x4000
+
+        // Multiply the largest negative number by positive unity. Should set
+        // neither carry, nor overflow flag. 
+        TEST_INST_I32_I16 l.muli, 0x80000000, 0x0001
+
+        // ------ Check that range exceptions are triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // Check that an overflow alone causes a RANGE Exception. 
+        TEST_INST_I32_I16 l.muli, 0x00020000, 0x4000
+
+        // Check that a carry alone does not cause a RANGE Exception. 
+        TEST_INST_I32_I16 l.muli, 0xfffffffe, 0xfffd
+
+        // Check that carry and overflow together cause an exception. 
+        TEST_INST_I32_I16 l.muli, 0xfffdfffe, 0x8000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        
+        // Test l.mulu
+        
+        // Multiply two small positive numbers. Should set no flags. 
+        TEST_INST_I32_I32 l.mulu, 0x00000002, 0x00000003
+
+        // Multiply two quite large positive numbers. Should set no flags 
+        TEST_INST_I32_I32 l.mulu, 0x00008001, 0x0000fffe
+
+        // Multiply two slightly too large positive numbers. Should set the
+        // overflow, but not the carry flag 
+        TEST_INST_I32_I32 l.mulu, 0x00008000, 0x00010000
+
+        // Multiply two large positive numbers. Should set both the carry and
+        // overflow flags (even though the result is not a negative number. 
+        TEST_INST_I32_I32 l.mulu, 0x00010000, 0x00010000
+
+        // Multiply two small negative numbers. Should set the overflow, but not
+        // the carry flag. 
+        TEST_INST_I32_I32 l.mulu, 0xfffffffe, 0xfffffffd
+
+        // Multiply two quite large negative numbers. Should set the overflow,
+        // but not the carry flag. 
+        TEST_INST_I32_I32 l.mulu, 0xffff7fff, 0xffff0002
+
+        // Multiply two slightly too large negative numbers. Should set both the
+        // overflow, and the carry flags 
+        TEST_INST_I32_I32 l.mulu, 0xffff7fff, 0xffff0000
+
+        // Multiply two large negative numbers. Should set the
+        //  both the carry and overflow flags (even though the result is a positive number. 
+        TEST_INST_I32_I32 l.mulu, 0xffff0000, 0xfffeffff
+
+        // Multiply one small negative number and one small positive number.
+        // Should set the overflow, but not the carry flag. 
+        TEST_INST_I32_I32 l.mulu, 0x00000002, 0xfffffffd
+
+        // Multiply one quite large negative number and one quite large
+        // positive number. Should set the overflow, but not the carry flag. 
+        TEST_INST_I32_I32 l.mulu, 0xffff8000, 0x00010000
+
+        // Multiply one slightly too large negative number and one slightly
+        // too large positive number. Should set both the carry and overflow flags. 
+        TEST_INST_I32_I32 l.mulu, 0xffff7fff, 0x00010000
+
+        // Multiply the largest negative number by positive unity. Should set
+        // neither carry, nor overflow flag. 
+        TEST_INST_I32_I32 l.mulu, 0x80000000, 0x00000001
+
+
+        // ------ Check that range exceptions are NEVER triggered.
+
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        
+        // Check that what would cause an overflow alone in 2's complement does
+        // not cause a RANGE Exception. 
+        TEST_INST_I32_I32 l.mulu, 0x00008000, 0x00010000
+
+        // Check that a carry alone does not cause a RANGE Exception. 
+        TEST_INST_I32_I32 l.mulu, 0x00000002, 0xfffffffd
+
+        // Check that what would cause an overflow and carry in 2's complement
+        // does not cause a RANGE Exception. 
+        TEST_INST_I32_I32 l.mulu, 0xffff7fff, 0xffff0000
+
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        */
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/or.S b/sim/testsuite/sim/or1k/or.S
new file mode 100644
index 0000000..5d96baf
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or.S
@@ -0,0 +1,207 @@
+/* Tests instructions l.or, l.ori
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x55555555);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x55555555);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xc4c70f07);\n
+# output: report(0xccf7ff7f);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x38f0f83b);\n
+# output: report(0xbbffffbb);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x0000aaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00005555);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00005555);\n
+# output: report(0xaaaaffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f83);\n
+# output: report(0x4c70ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f07);\n
+# output: report(0x4c70ff7f);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000f83b);\n
+# output: report(0xb38fffbb);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+	    // Always set OVE. We should never trigger an exception, even if this bit is set.
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        // Test the l.or instruction with a range of operands.
+        
+	    TEST_INST_I32_I32 l.or, 0x00000000, 0x00000000
+	    TEST_INST_I32_I32 l.or, 0xffffffff, 0xffffffff
+	    TEST_INST_I32_I32 l.or, 0xaaaaaaaa, 0x00000000
+	    TEST_INST_I32_I32 l.or, 0xaaaaaaaa, 0xaaaaaaaa
+	    TEST_INST_I32_I32 l.or, 0x55555555, 0x00000000
+	    TEST_INST_I32_I32 l.or, 0x55555555, 0x55555555
+	    TEST_INST_I32_I32 l.or, 0xaaaaaaaa, 0x55555555
+	    TEST_INST_I32_I32 l.or, 0x4c70f07c, 0xb38f0f83
+	    TEST_INST_I32_I32 l.or, 0x4c70f07c, 0xc4c70f07
+	    TEST_INST_I32_I32 l.or, 0xb38f0f83, 0x38f0f83b
+
+        // Test the l.ori instruction with a range of operands.
+	    TEST_INST_I32_I16 l.ori, 0x00000000, 0x0000
+	    TEST_INST_I32_I16 l.ori, 0xffffffff, 0xffff
+	    TEST_INST_I32_I16 l.ori, 0xaaaaaaaa, 0x0000
+	    TEST_INST_I32_I16 l.ori, 0xaaaaaaaa, 0xaaaa
+	    TEST_INST_I32_I16 l.ori, 0x55555555, 0x0000
+	    TEST_INST_I32_I16 l.ori, 0x55555555, 0x5555
+	    TEST_INST_I32_I16 l.ori, 0xaaaaaaaa, 0x5555
+	    TEST_INST_I32_I16 l.ori, 0x4c70f07c, 0x0f83
+	    TEST_INST_I32_I16 l.ori, 0x4c70f07c, 0x0f07
+	    TEST_INST_I32_I16 l.ori, 0xb38f0f83, 0xf83b
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/or1k-asm-test-env.h b/sim/testsuite/sim/or1k/or1k-asm-test-env.h
new file mode 100644
index 0000000..3cf3585
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or1k-asm-test-env.h
@@ -0,0 +1,61 @@
+
+#ifndef OR1K_ASM_TEST_ENV_H
+#define OR1K_ASM_TEST_ENV_H
+
+#include "or1k-asm.h"
+#include "or1k-asm-test.h"
+#include "spr-defs.h"
+
+
+.macro STANDARD_TEST_HEADER
+
+        // Without the "a" (allocatable) flag, this section gets some default flags,
+        // and then it's discarded by objcopy when flattening to the binary file.
+        // 'x' means executable.
+        .section .exception_vectors, "ax"
+        .org    0x100
+        .global _start
+    _start:
+        // Clear R0 on start-up. There is no guarantee that R0 is hardwired to zero,
+        // and indeed it is not when simulating the or1200 Verilog core.
+        CLEAR_REG r0
+
+        OR1K_DELAYED_NOP(l.j test_startup)
+
+        .section .text
+      
+    test_startup:
+
+.endm
+
+
+.macro STANDARD_TEST_BODY
+
+        LOAD_IMMEDIATE STACK_POINTER_R1, stack_begin
+
+        CLEAR_BSS r3, r4
+
+        CALL r3, start_tests
+
+        EXIT_SIMULATION_WITH_IMMEDIATE_EXIT_CODE SEC_SUCCESS
+
+        .section .stack
+        .space 4096  // We need more than EXCEPTION_STACK_SKIP_SIZE bytes.
+    stack_begin:
+
+.endm
+
+
+.macro STANDARD_TEST_ENVIRONMENT
+
+       // One of the test cases needs to do some tests before setting up the stack and so on.
+       // That's the reason this macro is split into 2 parts, so that the caller
+       // can inject code between the 2 initialisation phases.
+
+       STANDARD_TEST_HEADER
+       STANDARD_TEST_BODY
+
+.endm
+
+
+#endif  // Include this file only once.
diff --git a/sim/testsuite/sim/or1k/or1k-asm-test-helpers.h b/sim/testsuite/sim/or1k/or1k-asm-test-helpers.h
new file mode 100644
index 0000000..7cc918c
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or1k-asm-test-helpers.h
@@ -0,0 +1,134 @@
+
+#ifndef OR1K_ASM_TEST_HELPERS_H
+#define OR1K_ASM_TEST_HELPERS_H
+
+#include "spr-defs.h"
+#include "or1k-asm-test-env.h"
+
+
+.macro REPORT_EXCEPTION  reg, instruction_addr
+
+    PUSH r2
+    PUSH r3
+
+    MOVE_REG r2, \reg
+
+    LOAD_IMMEDIATE r3, \instruction_addr
+
+    l.sfeq r2, r3
+
+    OR1K_DELAYED_NOP(l.bnf 55f)
+
+    REPORT_IMMEDIATE_TO_CONSOLE 0x00000001
+    OR1K_DELAYED_NOP(l.j 56f)
+
+ 55:
+    REPORT_IMMEDIATE_TO_CONSOLE 0x00000000
+
+ 56:
+    POP r3
+    POP r2
+
+.endm
+
+
+.macro TEST_INST_FF_I32_I32  flags_to_set, flags_to_clear, opcode, op1, op2
+
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_REG_TO_CONSOLE r6
+
+    // Clear the last exception address.
+    MOVE_TO_SPR SPR_EPCR_BASE, ZERO_R0
+
+    SET_SPR_SR_FLAGS   \flags_to_set  , r2, r3
+    CLEAR_SPR_SR_FLAGS \flags_to_clear, r2, r3
+
+    l.nop 0  // TODO: temporary, remove at the end
+    l.nop 0  // TODO: temporary, remove at the end
+
+\@1$: \opcode r4, r5, r6
+
+    l.nop 0  // TODO: temporary, remove at the end
+    l.nop 0  // TODO: temporary, remove at the end
+
+    MOVE_FROM_SPR r2, SPR_SR         // Save the flags.
+    MOVE_FROM_SPR r5, SPR_EPCR_BASE  // Save the exception address.
+
+    REPORT_REG_TO_CONSOLE r4
+
+    REPORT_BIT_TO_CONSOLE r2, SPR_SR_CY
+    REPORT_BIT_TO_CONSOLE r2, SPR_SR_OV
+
+    REPORT_EXCEPTION r5, \@1$
+
+    PRINT_NEWLINE_TO_CONSOLE
+        
+.endm
+
+
+.macro TEST_INST_FF_I32_I16  flags_to_set, flags_to_clear, opcode, op1, op2
+
+    LOAD_IMMEDIATE r5, \op1
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_IMMEDIATE_TO_CONSOLE \op2
+        
+    SET_SPR_SR_FLAGS   \flags_to_set  , r2, r3
+    CLEAR_SPR_SR_FLAGS \flags_to_clear, r2, r3
+
+    // Clear the last exception address.
+    MOVE_TO_SPR SPR_EPCR_BASE, ZERO_R0
+
+\@1$: \opcode r4, r5, \op2
+
+    MOVE_FROM_SPR r2, SPR_SR         // Save the flags.
+    MOVE_FROM_SPR r5, SPR_EPCR_BASE  // Save the exception address.
+
+    REPORT_REG_TO_CONSOLE r4
+
+    REPORT_BIT_TO_CONSOLE r2, SPR_SR_CY
+    REPORT_BIT_TO_CONSOLE r2, SPR_SR_OV
+
+    REPORT_EXCEPTION r5, \@1$
+
+    PRINT_NEWLINE_TO_CONSOLE
+        
+.endm
+
+
+.macro TEST_INST_I32_I32  opcode, op1, op2
+
+  TEST_INST_FF_I32_I32 0, 0, \opcode, \op1, \op2
+
+.endm
+
+        
+.macro TEST_INST_I32_I16  opcode, op1, op2
+
+  TEST_INST_FF_I32_I16 0, 0, \opcode, \op1, \op2
+
+.endm
+
+
+.macro CHECK_CARRY_AND_OVERFLOW_NOT_SET  overwritten_reg1, overwritten_reg2
+
+    MOVE_FROM_SPR \overwritten_reg1, SPR_SR
+
+    LOAD_IMMEDIATE \overwritten_reg2, SPR_SR_CY + SPR_SR_OV
+    l.and   \overwritten_reg1, \overwritten_reg1, \overwritten_reg2
+
+    l.sfne \overwritten_reg1, ZERO_R0
+
+    OR1K_DELAYED_NOP(l.bnf \@1$)
+
+    EXIT_SIMULATION_WITH_IMMEDIATE_EXIT_CODE  SEC_GENERIC_ERROR
+
+  \@1$:
+
+.endm
+
+
+#endif  // Include this file only once.
diff --git a/sim/testsuite/sim/or1k/or1k-asm-test.h b/sim/testsuite/sim/or1k/or1k-asm-test.h
new file mode 100644
index 0000000..14c41fe
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or1k-asm-test.h
@@ -0,0 +1,258 @@
+
+#ifndef OR1K_ASM_TEST_H
+#define OR1K_ASM_TEST_H
+
+#include "spr-defs.h"
+
+
+// ----------- Register definitions -----------
+
+// The "jump and link" instructions store the return address in R9.
+#define LINK_REGISTER_R9 r9
+
+// These register definitions match the ABI.
+#define ZERO_R0          r0
+#define STACK_POINTER_R1 r1
+#define FRAME_POINTER_R2 r2
+#define RETURN_VALUE_R11 r11
+
+
+// ----------- Load/move/clear helpers -----------
+
+.macro LOAD_IMMEDIATE  reg, val
+    l.movhi \reg,       hi( \val ) 
+    l.ori   \reg, \reg, lo( \val )
+.endm
+
+.macro MOVE_REG  dest_reg, src_reg
+    .ifnes "\dest_reg","\src_reg"
+        l.ori \dest_reg, \src_reg, 0
+    .endif
+.endm
+
+.macro CLEAR_REG reg
+    l.movhi \reg, 0
+.endm
+
+
+.macro MOVE_FROM_SPR  reg, spr_reg
+    l.mfspr \reg, ZERO_R0, \spr_reg
+.endm
+
+.macro MOVE_TO_SPR  spr_reg, reg
+    l.mtspr ZERO_R0, \reg, \spr_reg
+.endm
+
+
+.macro SET_SPR_SR_FLAGS flag_mask, scratch_reg_1, scratch_reg_2
+    // We cannot use PUSH and POP here because some flags like Carry would get overwritten.
+
+    // We could optimise this routine, as instruction l.mtspr already does a logical OR.
+    MOVE_FROM_SPR \scratch_reg_2, SPR_SR
+    LOAD_IMMEDIATE \scratch_reg_1, \flag_mask
+    l.or    \scratch_reg_2, \scratch_reg_2, \scratch_reg_1
+    MOVE_TO_SPR SPR_SR, \scratch_reg_2
+
+.endm
+
+.macro CLEAR_SPR_SR_FLAGS flag_mask, scratch_reg_1, scratch_reg_2
+    // We cannot use PUSH and POP here because some flags like Carry would get overwritten.
+
+    MOVE_FROM_SPR \scratch_reg_2, SPR_SR
+    LOAD_IMMEDIATE \scratch_reg_1, ~\flag_mask
+    l.and   \scratch_reg_2, \scratch_reg_2, \scratch_reg_1
+    MOVE_TO_SPR SPR_SR, \scratch_reg_2
+        
+.endm        
+
+
+// ----------- Stack helpers -----------
+
+// This value is defined in the OpenRISC 1000 specification.
+#define EXCEPTION_STACK_SKIP_SIZE  2092
+
+
+// WARNING: Functions without prolog cannot use these PUSH or POP macros.
+// PERFORMANCE WARNING: These PUSH/POP macros are convenient, but can lead to slow code:
+//                      if you need to PUSH or POP several registers, it's faster to
+//                      use non-zero offsets when loading/storing and then increment/decrement
+//                      the stack pointer just once.
+// NOTE: There is a 2092-byte (see EXCEPTION_STACK_SKIP_SIZE) safety zone at the bottom of the stack,
+//       check out the OpenRISC specification for more information.
+.macro PUSH reg
+    l.addi STACK_POINTER_R1, STACK_POINTER_R1, -4
+    l.sw   0(STACK_POINTER_R1), \reg
+.endm
+
+// WARNING: see the warnings for PUSH.
+.macro POP reg
+    l.lwz  \reg, 0(STACK_POINTER_R1)
+    l.addi STACK_POINTER_R1, STACK_POINTER_R1, 4         
+.endm
+
+
+// ----------- l.nop definitions for simulation control and console output -----------
+
+
+// Register definitions for the simulation l.nop codes.
+#define NOP_REPORT_R3 r3
+#define NOP_EXIT_R3   r3
+
+
+// SEC = Simulation Exit Code
+#define SEC_SUCCESS            0
+#define SEC_RETURNED_FROM_MAIN 1
+#define SEC_GENERIC_ERROR      2
+
+// When running under the simulator, this l.nop code terminates the simulation.
+.macro EXIT_SIMULATION_WITH_IMMEDIATE_EXIT_CODE immediate_value
+    LOAD_IMMEDIATE NOP_EXIT_R3, \immediate_value
+    l.nop 1
+.endm
+
+.macro EXIT_SIMULATION_WITH_REG_EXIT_CODE reg
+    MOVE_REG NOP_EXIT_R3, \reg
+    l.nop 1
+.endm
+
+
+// When running under the simulator, this l.nop code prints the value of R3 to the console.
+.macro REPORT_TO_CONSOLE
+    l.nop 2
+.endm
+
+
+// NOTE: The stack must be set up, as this macro uses PUSH and POP.
+.macro REPORT_REG_TO_CONSOLE reg
+
+    .ifeqs "\reg","r3"
+
+        // Nothing more to do here, R3 is the register that gets printed.
+        REPORT_TO_CONSOLE
+
+    .else 
+
+        PUSH     NOP_REPORT_R3
+
+        MOVE_REG NOP_REPORT_R3, \reg
+        REPORT_TO_CONSOLE
+
+        POP      NOP_REPORT_R3
+
+    .endif
+
+.endm
+
+
+// NOTE: The stack must be set up, as this macro uses PUSH and POP.
+.macro REPORT_IMMEDIATE_TO_CONSOLE val
+
+    PUSH     NOP_REPORT_R3
+
+    LOAD_IMMEDIATE NOP_REPORT_R3, \val
+    REPORT_TO_CONSOLE
+
+    POP      NOP_REPORT_R3
+
+.endm
+
+
+.macro PRINT_NEWLINE_TO_CONSOLE
+
+    PUSH  r3
+
+    LOAD_IMMEDIATE r3, 0x0A
+    l.nop 4
+
+    POP   r3
+
+.endm
+
+
+// If SR[F] is set, writes 0x00000001 to the console, otherwise it writes 0x00000000.
+        
+.macro REPORT_SRF_TO_CONSOLE
+
+    OR1K_DELAYED_NOP(l.bnf \@1$)
+
+    REPORT_IMMEDIATE_TO_CONSOLE 0x00000001
+    OR1K_DELAYED_NOP(l.j \@2$)
+
+\@1$:
+    REPORT_IMMEDIATE_TO_CONSOLE 0x00000000
+
+\@2$:
+        
+.endm
+
+
+// If the given register is 0, writes 0x00000000 to the console, otherwise it writes 0x00000001.
+
+.macro REPORT_BOOL_TO_CONSOLE  reg
+
+  l.sfne \reg, ZERO_R0
+
+  REPORT_SRF_TO_CONSOLE
+        
+.endm
+
+
+// Writes to the console the value of the given register bit.
+
+.macro REPORT_BIT_TO_CONSOLE  reg, single_bit_mask
+
+    PUSH r2
+    PUSH r3
+    PUSH r4
+
+    MOVE_REG r2, \reg
+        
+    LOAD_IMMEDIATE r4, \single_bit_mask
+    l.and   r3, r2, r4
+
+    REPORT_BOOL_TO_CONSOLE r3
+        
+    POP r4
+    POP r3
+    POP r2
+
+.endm
+
+
+// ----------- Jump helpers -----------
+
+.macro CALL overwritten_reg, subroutine_name
+    LOAD_IMMEDIATE \overwritten_reg, \subroutine_name
+    OR1K_DELAYED_NOP(l.jalr  \overwritten_reg)
+.endm
+
+.macro RETURN_TO_LINK_REGISTER_R9
+    OR1K_DELAYED_NOP(l.jr LINK_REGISTER_R9)
+.endm
+
+
+// ----------- Clear the BSS section on start-up -----------
+        
+.macro CLEAR_BSS overwritten_reg1, overwritten_reg2
+
+        LOAD_IMMEDIATE \overwritten_reg1, _bss_begin
+        LOAD_IMMEDIATE \overwritten_reg2, _bss_end
+
+        l.sfgeu \overwritten_reg1, \overwritten_reg2
+        OR1K_DELAYED_NOP(l.bf    bss_is_empty)
+
+bss_clear_loop:
+        // Possible optimisation to investigate: move "l.sw 0(\overwritten_reg1), r0" to the jump delay slot
+        // as "l.sw -4(\overwritten_reg1), r0" or similar. But keep in mind that there are plans to remove
+        // the jump delay slot.
+        l.sw    0(\overwritten_reg1), r0
+        l.addi  \overwritten_reg1, \overwritten_reg1, 4
+        l.sfgtu \overwritten_reg2, \overwritten_reg1
+        OR1K_DELAYED_NOP(l.bf    bss_clear_loop)
+
+bss_is_empty:
+
+.endm
+
+
+#endif  // Include this file only once.
diff --git a/sim/testsuite/sim/or1k/or1k-asm.h b/sim/testsuite/sim/or1k/or1k-asm.h
new file mode 100644
index 0000000..c328b20
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or1k-asm.h
@@ -0,0 +1,20 @@
+#ifndef OR1K_ASM_H
+#define OR1K_ASM_H
+
+#define OR1K_INST(...) __VA_ARGS__
+
+#if defined(__OR1K_NODELAY__)
+#define OR1K_DELAYED(a, b) a; b
+#define OR1K_DELAYED_NOP(a) a
+.nodelay
+#elif defined(__OR1K_DELAY__)
+#define OR1K_DELAYED(a, b) b; a
+#define OR1K_DELAYED_NOP(a) a; l.nop
+#elif defined(__OR1K_DELAY_COMPAT__)
+#define OR1K_DELAYED(a, b) a; b; l.nop
+#define OR1K_DELAYED_NOP(a) a; l.nop
+#else
+#error One of __OR1K_NODELAY__, __OR1K_DELAY__, or __OR1K_DELAY_COMPAT__ must be defined
+#endif
+
+#endif
diff --git a/sim/testsuite/sim/or1k/or1k-test.ld b/sim/testsuite/sim/or1k/or1k-test.ld
new file mode 100644
index 0000000..11ed9c9
--- /dev/null
+++ b/sim/testsuite/sim/or1k/or1k-test.ld
@@ -0,0 +1,57 @@
+
+MEMORY
+{
+    /* The exception vectors actually start at 0x100, but if you specify that address here,
+       the "--output-target binary" step will start from address 0 with the contents meant for address 0x100 */
+    exception_vectors : ORIGIN =  0 , LENGTH = 8K
+    ram               : ORIGIN =  8K, LENGTH = 2M - 8K
+}
+
+SECTIONS
+{
+    .exception_vectors :
+    {
+        KEEP(*(.exception_vectors))
+    } > exception_vectors
+
+    .text :
+    {
+        *(.text)
+        *(.text.*)
+        *(.rodata)
+        *(.rodata.*)
+    } > ram
+
+    .data :
+    {
+        *(.data)
+        *(.data.*)
+    } > ram
+
+
+    .bss :
+    {
+        *(.bss)
+        *(.bss.*)
+
+        /* WARNING about section size alignment:
+           The start-up assembly code can only clear BSS section sizes which are aligned to 4 bytes.
+           However, the size of the BSS  section may not be aligned, therefore up to 3 bytes more
+           could be zeroed on start-up. This is normally not an issue, as the start of the next section
+           is usually aligned too, so those extra bytes should be just padding. I did try the following
+           trick to align the BSS section size, to no avail:
+           . = ALIGN(., 4);
+        */
+    } > ram
+
+    _bss_begin = ADDR(.bss);
+    _bss_end   = _bss_begin + SIZEOF(.bss);
+
+
+    .stack ALIGN(16) (NOLOAD):
+    {
+      *(.stack)
+    } > ram
+}
+
+ENTRY(_start)  /* Otherwise, --gc-sections would throw everything away. */
diff --git a/sim/testsuite/sim/or1k/ror.S b/sim/testsuite/sim/or1k/ror.S
new file mode 100644
index 0000000..f263a8e
--- /dev/null
+++ b/sim/testsuite/sim/or1k/ror.S
@@ -0,0 +1,186 @@
+/* Tests instructions l.ror and l.rori
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x3b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0f83b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x671e1f07);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00002224);\n
+# output: report(0x3b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00f789f0);\n
+# output: report(0x0f83b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0x671e1f07);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x3b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0f83b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x671e1f07);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000024);\n
+# output: report(0x3b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000030);\n
+# output: report(0x0f83b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000003f);\n
+# output: report(0x671e1f07);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-env.h"
+
+
+.macro TEST_ROR op1, op2, res
+
+    // Note that 'res' is not used here. We could stop using the .TestResults file
+    // and use 'res' here instead.
+        
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_REG_TO_CONSOLE r6
+
+    l.ror r4, r5, r6
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE        
+
+.endm
+
+
+.macro TEST_RORI op1, op2, res
+
+    // Note that 'res' is not used here. We could stop using the .TestResults file
+    // and use 'res' here instead.
+        
+    LOAD_IMMEDIATE r5, \op1
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_IMMEDIATE_TO_CONSOLE \op2        
+
+    l.rori r4, r5, \op2
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE        
+
+.endm
+
+    
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // Test the l.ror instruction.
+        
+        // Rotate by zero
+        TEST_ROR 0xb38f0f83, 0x00000000, 0xb38f0f83
+
+        // Rotate by amounts in the 1 - 31 range.
+        TEST_ROR 0xb38f0f83, 0x00000001, 0xd9c787c1
+        TEST_ROR 0xb38f0f83, 0x00000004, 0x3b38f0f8
+        TEST_ROR 0xb38f0f83, 0x00000010, 0x0f83b38f
+        TEST_ROR 0xb38f0f83, 0x0000001f, 0x671e1f07
+
+        // Rotate by larger amounts - should be masked.
+        TEST_ROR 0xb38f0f83, 0x00000021, 0xd9c787c1
+        TEST_ROR 0xb38f0f83, 0x00002224, 0x3b38f0f8
+        TEST_ROR 0xb38f0f83, 0x00f789f0, 0x0f83b38f
+        TEST_ROR 0xb38f0f83, 0xffffffff, 0x671e1f07
+    
+
+        // Test the l.rori instruction.
+
+        // Rotate by zero */
+        TEST_RORI 0xb38f0f83, 0x00000000, 0xb38f0f83
+
+        // Rotate by amounts in the 1 - 31 range.
+        TEST_RORI 0xb38f0f83, 0x01, 0xd9c787c1
+        TEST_RORI 0xb38f0f83, 0x04, 0x3b38f0f8
+        TEST_RORI 0xb38f0f83, 0x10, 0x0f83b38f
+        TEST_RORI 0xb38f0f83, 0x1f, 0x671e1f07
+
+        // Rotate by larger amounts (32 - 63) - should be masked.
+        TEST_RORI 0xb38f0f83, 0x21, 0xd9c787c1
+        TEST_RORI 0xb38f0f83, 0x24, 0x3b38f0f8
+        TEST_RORI 0xb38f0f83, 0x30, 0x0f83b38f
+        TEST_RORI 0xb38f0f83, 0x3f, 0x671e1f07
+    
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/shift.S b/sim/testsuite/sim/or1k/shift.S
new file mode 100644
index 0000000..b4b3ea3
--- /dev/null
+++ b/sim/testsuite/sim/or1k/shift.S
@@ -0,0 +1,572 @@
+/* Tests the shift instructions.
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0x671e1f06);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x38f0f830);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0f830000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x80000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0x671e1f06);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00002224);\n
+# output: report(0x38f0f830);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00f789f0);\n
+# output: report(0x0f830000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0x80000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0x671e1f06);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x38f0f830);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0f830000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x80000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0x671e1f06);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000024);\n
+# output: report(0x38f0f830);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000030);\n
+# output: report(0x0f830000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000003f);\n
+# output: report(0x80000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0xfb38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0xffffb38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0xffffffff);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000001);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000004);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000010);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00002224);\n
+# output: report(0xfb38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00f789f0);\n
+# output: report(0xffffb38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000021);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00002224);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00f789f0);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0xfb38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0xffffb38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0xffffffff);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000001);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000004);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000010);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0xd9c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000024);\n
+# output: report(0xfb38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000030);\n
+# output: report(0xffffb38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000003f);\n
+# output: report(0xffffffff);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000021);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000024);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000030);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000003f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0x59c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x0b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0000b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000001);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000004);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000010);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0x59c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00002224);\n
+# output: report(0x0b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00f789f0);\n
+# output: report(0x0000b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000021);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00002224);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00f789f0);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000000);\n
+# output: report(0xb38f0f83);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000001);\n
+# output: report(0x59c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000004);\n
+# output: report(0x0b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000010);\n
+# output: report(0x0000b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000001);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000004);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000010);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000001f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000021);\n
+# output: report(0x59c787c1);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000024);\n
+# output: report(0x0b38f0f8);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x00000030);\n
+# output: report(0x0000b38f);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000003f);\n
+# output: report(0x00000001);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000021);\n
+# output: report(0x2638783e);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000024);\n
+# output: report(0x04c70f07);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000030);\n
+# output: report(0x00004c70);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x0000003f);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+.macro TEST_SHIFT opcode, op1, op2
+        
+    LOAD_IMMEDIATE r5, \op1
+    LOAD_IMMEDIATE r6, \op2
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_REG_TO_CONSOLE r6
+
+    \opcode r4, r5, r6
+
+    CHECK_CARRY_AND_OVERFLOW_NOT_SET r2, r3
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE
+
+.endm
+
+        
+.macro TEST_SHIFT_I opcode, op1, op2
+
+    LOAD_IMMEDIATE r5, \op1
+
+    REPORT_REG_TO_CONSOLE r5
+    REPORT_IMMEDIATE_TO_CONSOLE \op2        
+
+    \opcode r4, r5, \op2
+
+    CHECK_CARRY_AND_OVERFLOW_NOT_SET r2, r3
+
+    REPORT_REG_TO_CONSOLE r4
+
+    PRINT_NEWLINE_TO_CONSOLE        
+
+.endm
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+	    // Always set OVE. We should never trigger an exception, even if this bit is set.
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+        
+
+        // Test l.sll
+
+	    // Shift left by zero. 
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00000000
+
+	    // Shift left by amounts in the 1-31 range 
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00000001
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00000004
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00000010
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x0000001f
+
+	    // Shift left by larger amounts - should be masked. 
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00000021
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00002224
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0x00f789f0
+	    TEST_SHIFT l.sll, 0xb38f0f83, 0xffffffff
+
+        
+        // Test l.slli
+        
+	    // Shift left by zero. 
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0000
+
+	    // Shift left by amounts in the 1-31 range 
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0001
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0004
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0010
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x001f
+
+	    // Shift left by larger amounts - should be masked. 
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0021
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0024
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x0030
+	    TEST_SHIFT_I l.slli, 0xb38f0f83, 0x003f
+
+
+        // Test l.sra
+        
+	    // Shift right by zero. 
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00000000
+
+	    // Shift right by amounts in the 1-31 range 
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00000001
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00000004
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00000010
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x0000001f
+
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00000001
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00000004
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00000010
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x0000001f
+
+	    // Shift right by larger amounts - should be masked. 
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00000021
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00002224
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0x00f789f0
+	    TEST_SHIFT l.sra, 0xb38f0f83, 0xffffffff
+
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00000021
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00002224
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0x00f789f0
+	    TEST_SHIFT l.sra, 0x4c70f07c, 0xffffffff
+
+
+        // Test l.srai
+
+	    // Shift right by zero. 
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0000
+
+	    // Shift right by amounts in the 1-31 range 
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0001
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0004
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0010
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x001f
+
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0001
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0004
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0010
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x001f
+
+	    // Shift right by larger amounts - should be masked. 
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0021
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0024
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x0030
+	    TEST_SHIFT_I l.srai, 0xb38f0f83, 0x003f
+
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0021
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0024
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x0030
+	    TEST_SHIFT_I l.srai, 0x4c70f07c, 0x003f
+
+
+        // Test l.srl
+
+	    // Shift right by zero. 
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00000000
+
+	    // Shift right by amounts in the 1-31 range 
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00000001
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00000004
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00000010
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x0000001f
+
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00000001
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00000004
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00000010
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x0000001f
+
+	    // Shift right by larger amounts - should be masked. 
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00000021
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00002224
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0x00f789f0
+	    TEST_SHIFT l.srl, 0xb38f0f83, 0xffffffff
+
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00000021
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00002224
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0x00f789f0
+	    TEST_SHIFT l.srl, 0x4c70f07c, 0xffffffff
+
+        
+        // Test l.srli
+
+	    // Shift right by zero. 
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0000
+
+	    // Shift right by amounts in the 1-31 range 
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0001
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0004
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0010
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x001f
+
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0001
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0004
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0010
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x001f
+
+	    // Shift right by larger amounts - should be masked. 
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0021
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0024
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x0030
+	    TEST_SHIFT_I l.srli, 0xb38f0f83, 0x003f
+
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0021
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0024
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x0030
+	    TEST_SHIFT_I l.srli, 0x4c70f07c, 0x003f
+
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/spr-defs.h b/sim/testsuite/sim/or1k/spr-defs.h
new file mode 100644
index 0000000..4499a75
--- /dev/null
+++ b/sim/testsuite/sim/or1k/spr-defs.h
@@ -0,0 +1,590 @@
+/* Special Purpose Registers definitions
+    
+   Copyright (C) 1999, 2000 Damjan Lampret, lampret at opencores.org
+   Copyright (C) 2008, 2010 Embecosm Limited
+     Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+   Copyright (C) 2012, R. Diez
+   
+   
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3 of the License, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+
+#ifndef SPR_DEFS_H
+#define SPR_DEFS_H
+
+#define MAX_GRPS 32
+#define MAX_SPRS_PER_GRP_BITS 11
+
+/* Base addresses for the groups */
+#define SPRGROUP_SYS   (0<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_DMMU  (1<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_IMMU  (2<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_DC    (3<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_IC    (4<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_MAC   (5<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_D     (6<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_PC    (7<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_PM    (8<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_PIC   (9<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_TT    (10<< MAX_SPRS_PER_GRP_BITS)
+#define SPRGROUP_FP    (11<< MAX_SPRS_PER_GRP_BITS)
+
+/* System control and status group */
+#define SPR_VR      (SPRGROUP_SYS + 0)   // Value: 0x0000
+#define SPR_UPR     (SPRGROUP_SYS + 1)   // Value: 0x0001
+#define SPR_CPUCFGR (SPRGROUP_SYS + 2)
+#define SPR_DMMUCFGR    (SPRGROUP_SYS + 3)
+#define SPR_IMMUCFGR    (SPRGROUP_SYS + 4)
+#define SPR_DCCFGR  (SPRGROUP_SYS + 5)
+#define SPR_ICCFGR  (SPRGROUP_SYS + 6)
+#define SPR_DCFGR   (SPRGROUP_SYS + 7)
+#define SPR_PCCFGR  (SPRGROUP_SYS + 8)
+#define SPR_NPC         (SPRGROUP_SYS + 16)  /* CZ 21/06/01 */
+#define SPR_SR      (SPRGROUP_SYS + 17)  /* CZ 21/06/01 */
+#define SPR_PPC         (SPRGROUP_SYS + 18)  /* CZ 21/06/01 */
+#define SPR_FPCSR       (SPRGROUP_SYS + 20)  /* CZ 21/06/01 */
+#define SPR_EPCR_BASE   (SPRGROUP_SYS + 32)  /* CZ 21/06/01 */
+#define SPR_EPCR_LAST   (SPRGROUP_SYS + 47)  /* CZ 21/06/01 */
+#define SPR_EEAR_BASE   (SPRGROUP_SYS + 48)
+#define SPR_EEAR_LAST   (SPRGROUP_SYS + 63)
+#define SPR_ESR_BASE    (SPRGROUP_SYS + 64)
+#define SPR_ESR_LAST    (SPRGROUP_SYS + 79)
+#define SPR_GPR_BASE    (SPRGROUP_SYS + 1024)
+
+/* Data MMU group */
+#define SPR_DMMUCR  (SPRGROUP_DMMU + 0)  // Value: 0x0800
+#define SPR_DMMUPR  (SPRGROUP_DMMU + 1)  // Value: 0x0801
+#define SPR_DTLBEIR     (SPRGROUP_DMMU + 2)
+#define SPR_DTLBMR_BASE(WAY)    (SPRGROUP_DMMU + 0x200 + (WAY) * 0x100)
+#define SPR_DTLBMR_LAST(WAY)    (SPRGROUP_DMMU + 0x27f + (WAY) * 0x100)
+#define SPR_DTLBTR_BASE(WAY)    (SPRGROUP_DMMU + 0x280 + (WAY) * 0x100)
+#define SPR_DTLBTR_LAST(WAY)    (SPRGROUP_DMMU + 0x2ff + (WAY) * 0x100)
+
+/* Instruction MMU group */
+#define SPR_IMMUCR  (SPRGROUP_IMMU + 0)
+#define SPR_ITLBEIR     (SPRGROUP_IMMU + 2)
+#define SPR_ITLBMR_BASE(WAY)    (SPRGROUP_IMMU + 0x200 + (WAY) * 0x100)
+#define SPR_ITLBMR_LAST(WAY)    (SPRGROUP_IMMU + 0x27f + (WAY) * 0x100)
+#define SPR_ITLBTR_BASE(WAY)    (SPRGROUP_IMMU + 0x280 + (WAY) * 0x100)
+#define SPR_ITLBTR_LAST(WAY)    (SPRGROUP_IMMU + 0x2ff + (WAY) * 0x100)
+
+/* Data cache group */
+#define SPR_DCCR    (SPRGROUP_DC + 0)
+#define SPR_DCBPR   (SPRGROUP_DC + 1)
+#define SPR_DCBFR   (SPRGROUP_DC + 2)
+#define SPR_DCBIR   (SPRGROUP_DC + 3)
+#define SPR_DCBWR   (SPRGROUP_DC + 4)
+#define SPR_DCBLR   (SPRGROUP_DC + 5)
+#define SPR_DCR_BASE(WAY)   (SPRGROUP_DC + 0x200 + (WAY) * 0x200)
+#define SPR_DCR_LAST(WAY)   (SPRGROUP_DC + 0x3ff + (WAY) * 0x200)
+
+/* Instruction cache group */
+#define SPR_ICCR    (SPRGROUP_IC + 0)  // Value: 0x2000
+#define SPR_ICBPR   (SPRGROUP_IC + 1)
+#define SPR_ICBIR   (SPRGROUP_IC + 2)
+#define SPR_ICBLR   (SPRGROUP_IC + 3)
+#define SPR_ICR_BASE(WAY)   (SPRGROUP_IC + 0x200 + (WAY) * 0x200)
+#define SPR_ICR_LAST(WAY)   (SPRGROUP_IC + 0x3ff + (WAY) * 0x200)
+
+/* MAC group */
+#define SPR_MACLO   (SPRGROUP_MAC + 1)  // Value: 0x2801
+#define SPR_MACHI   (SPRGROUP_MAC + 2)
+
+/* Debug group */
+#define SPR_DVR(N)  (SPRGROUP_D + (N))
+#define SPR_DCR(N)  (SPRGROUP_D + 8 + (N))
+#define SPR_DMR1    (SPRGROUP_D + 16)
+#define SPR_DMR2    (SPRGROUP_D + 17)
+#define SPR_DWCR0   (SPRGROUP_D + 18)
+#define SPR_DWCR1   (SPRGROUP_D + 19)
+#define SPR_DSR     (SPRGROUP_D + 20)
+#define SPR_DRR     (SPRGROUP_D + 21)
+
+/* Performance counters group */
+#define SPR_PCCR(N) (SPRGROUP_PC + (N))
+#define SPR_PCMR(N) (SPRGROUP_PC + 8 + (N))
+
+/* Power management group */
+#define SPR_PMR (SPRGROUP_PM + 0)
+
+/* PIC group */
+#define SPR_PICMR (SPRGROUP_PIC + 0)
+#define SPR_PICPR (SPRGROUP_PIC + 1)
+#define SPR_PICSR (SPRGROUP_PIC + 2)
+
+/* Tick Timer group */
+#define SPR_TTMR (SPRGROUP_TT + 0)
+#define SPR_TTCR (SPRGROUP_TT + 1)
+
+/*
+ * Bit definitions for the Version Register
+ *
+ */
+#define SPR_VR_VER  0xff000000  /* Processor version */
+#define SPR_VR_CFG  0x00ff0000  /* Processor configuration */
+#define SPR_VR_RES  0x0000ffc0  /* Reserved */
+#define SPR_VR_REV  0x0000003f  /* Processor revision */
+
+#define SPR_VR_VER_OFF  24
+#define SPR_VR_CFG_OFF  16
+#define SPR_VR_REV_OFF  0
+
+/*
+ * Bit definitions for the Unit Present Register
+ *
+ */
+#define SPR_UPR_UP     0x00000001  /* UPR present */
+#define SPR_UPR_DCP    0x00000002  /* Data cache present */
+#define SPR_UPR_ICP    0x00000004  /* Instruction cache present */
+#define SPR_UPR_DMP    0x00000008  /* Data MMU present */
+#define SPR_UPR_IMP    0x00000010  /* Instruction MMU present */
+#define SPR_UPR_MP     0x00000020  /* MAC present */
+#define SPR_UPR_DUP    0x00000040  /* Debug unit present */
+#define SPR_UPR_PCUP       0x00000080  /* Performance counters unit present */
+#define SPR_UPR_PMP    0x00000100  /* Power management present */
+#define SPR_UPR_PICP       0x00000200  /* PIC present */
+#define SPR_UPR_TTP    0x00000400  /* Tick timer present */
+#define SPR_UPR_RES    0x00fe0000  /* Reserved */
+#define SPR_UPR_CUP    0xff000000  /* Context units present */
+
+/*
+ * JPB: Bit definitions for the CPU configuration register
+ *
+ */
+#define SPR_CPUCFGR_NSGF   0x0000000f  /* Number of shadow GPR files */
+#define SPR_CPUCFGR_CGF    0x00000010  /* Custom GPR file */
+#define SPR_CPUCFGR_OB32S  0x00000020  /* ORBIS32 supported */
+#define SPR_CPUCFGR_OB64S  0x00000040  /* ORBIS64 supported */
+#define SPR_CPUCFGR_OF32S  0x00000080  /* ORFPX32 supported */
+#define SPR_CPUCFGR_OF64S  0x00000100  /* ORFPX64 supported */
+#define SPR_CPUCFGR_OV64S  0x00000200  /* ORVDX64 supported */
+#define SPR_CPUCFGR_RES    0xfffffc00  /* Reserved */
+
+/*
+ * JPB: Bit definitions for the Debug configuration register and other
+ * constants.
+ *
+ */
+
+#define SPR_DCFGR_NDP      0x00000007  /* Number of matchpoints mask */
+#define SPR_DCFGR_NDP1     0x00000000  /* One matchpoint supported */
+#define SPR_DCFGR_NDP2     0x00000001  /* Two matchpoints supported */
+#define SPR_DCFGR_NDP3     0x00000002  /* Three matchpoints supported */
+#define SPR_DCFGR_NDP4     0x00000003  /* Four matchpoints supported */
+#define SPR_DCFGR_NDP5     0x00000004  /* Five matchpoints supported */
+#define SPR_DCFGR_NDP6     0x00000005  /* Six matchpoints supported */
+#define SPR_DCFGR_NDP7     0x00000006  /* Seven matchpoints supported */
+#define SPR_DCFGR_NDP8     0x00000007  /* Eight matchpoints supported */
+#define SPR_DCFGR_WPCI     0x00000008  /* Watchpoint counters implemented */
+
+#define MATCHPOINTS_TO_NDP(n) (1 == n ? SPR_DCFGR_NDP1 : \
+                               2 == n ? SPR_DCFGR_NDP2 : \
+                               3 == n ? SPR_DCFGR_NDP3 : \
+                               4 == n ? SPR_DCFGR_NDP4 : \
+                               5 == n ? SPR_DCFGR_NDP5 : \
+                               6 == n ? SPR_DCFGR_NDP6 : \
+                               7 == n ? SPR_DCFGR_NDP7 : SPR_DCFGR_NDP8)
+#define MAX_MATCHPOINTS  8
+#define MAX_WATCHPOINTS  (MAX_MATCHPOINTS + 2)
+
+/*
+ * Bit definitions for the Supervision Register
+ *
+ */
+#define SPR_SR_SM          0x00000001  /* Supervisor Mode */
+#define SPR_SR_TEE         0x00000002  /* Tick timer Exception Enable */
+#define SPR_SR_IEE         0x00000004  /* Interrupt Exception Enable */
+#define SPR_SR_DCE         0x00000008  /* Data Cache Enable */
+#define SPR_SR_ICE         0x00000010  /* Instruction Cache Enable */
+#define SPR_SR_DME         0x00000020  /* Data MMU Enable */
+#define SPR_SR_IME         0x00000040  /* Instruction MMU Enable */
+#define SPR_SR_LEE         0x00000080  /* Little Endian Enable */
+#define SPR_SR_CE          0x00000100  /* CID Enable */
+#define SPR_SR_F           0x00000200  /* Condition Flag */
+#define SPR_SR_CY          0x00000400  /* Carry flag */
+#define SPR_SR_OV          0x00000800  /* Overflow flag */
+#define SPR_SR_OVE         0x00001000  /* Overflow flag Exception */
+#define SPR_SR_DSX         0x00002000  /* Delay Slot Exception */
+#define SPR_SR_EPH         0x00004000  /* Exception Prefix High */
+#define SPR_SR_FO          0x00008000  /* Fixed one */
+#define SPR_SR_SUMRA       0x00010000  /* Supervisor SPR read access */
+#define SPR_SR_RES         0x0ffe0000  /* Reserved */
+#define SPR_SR_CID         0xf0000000  /* Context ID */
+
+/*
+ * Bit definitions for the Data MMU Control Register
+ *
+ */
+#define SPR_DMMUCR_P2S     0x0000003e  /* Level 2 Page Size */
+#define SPR_DMMUCR_P1S     0x000007c0  /* Level 1 Page Size */
+#define SPR_DMMUCR_VADDR_WIDTH  0x0000f800  /* Virtual ADDR Width */
+#define SPR_DMMUCR_PADDR_WIDTH  0x000f0000  /* Physical ADDR Width */
+
+/*
+ * Bit definitions for the Instruction MMU Control Register
+ *
+ */
+#define SPR_IMMUCR_P2S     0x0000003e  /* Level 2 Page Size */
+#define SPR_IMMUCR_P1S     0x000007c0  /* Level 1 Page Size */
+#define SPR_IMMUCR_VADDR_WIDTH  0x0000f800  /* Virtual ADDR Width */
+#define SPR_IMMUCR_PADDR_WIDTH  0x000f0000  /* Physical ADDR Width */
+
+/*
+ * Bit definitions for the Data TLB Match Register
+ *
+ */
+#define SPR_DTLBMR_V       0x00000001  /* Valid */
+#define SPR_DTLBMR_PL1     0x00000002  /* Page Level 1 (if 0 then PL2) */
+#define SPR_DTLBMR_CID     0x0000003c  /* Context ID */
+#define SPR_DTLBMR_LRU     0x000000c0  /* Least Recently Used */
+#define SPR_DTLBMR_VPN     0xffffe000  /* Virtual Page Number */
+
+/*
+ * Bit definitions for the Data TLB Translate Register
+ *
+ */
+#define SPR_DTLBTR_CC      0x00000001  /* Cache Coherency */
+#define SPR_DTLBTR_CI      0x00000002  /* Cache Inhibit */
+#define SPR_DTLBTR_WBC     0x00000004  /* Write-Back Cache */
+#define SPR_DTLBTR_WOM     0x00000008  /* Weakly-Ordered Memory */
+#define SPR_DTLBTR_A       0x00000010  /* Accessed */
+#define SPR_DTLBTR_D       0x00000020  /* Dirty */
+#define SPR_DTLBTR_URE     0x00000040  /* User Read Enable */
+#define SPR_DTLBTR_UWE     0x00000080  /* User Write Enable */
+#define SPR_DTLBTR_SRE     0x00000100  /* Supervisor Read Enable */
+#define SPR_DTLBTR_SWE     0x00000200  /* Supervisor Write Enable */
+#define SPR_DTLBTR_PPN     0xffffe000  /* Physical Page Number */
+
+/*
+ * Bit definitions for the Instruction TLB Match Register
+ *
+ */
+#define SPR_ITLBMR_V       0x00000001  /* Valid */
+#define SPR_ITLBMR_PL1     0x00000002  /* Page Level 1 (if 0 then PL2) */
+#define SPR_ITLBMR_CID     0x0000003c  /* Context ID */
+#define SPR_ITLBMR_LRU     0x000000c0  /* Least Recently Used */
+#define SPR_ITLBMR_VPN     0xffffe000  /* Virtual Page Number */
+
+/*
+ * Bit definitions for the Instruction TLB Translate Register
+ *
+ */
+#define SPR_ITLBTR_CC      0x00000001  /* Cache Coherency */
+#define SPR_ITLBTR_CI      0x00000002  /* Cache Inhibit */
+#define SPR_ITLBTR_WBC     0x00000004  /* Write-Back Cache */
+#define SPR_ITLBTR_WOM     0x00000008  /* Weakly-Ordered Memory */
+#define SPR_ITLBTR_A       0x00000010  /* Accessed */
+#define SPR_ITLBTR_D       0x00000020  /* Dirty */
+#define SPR_ITLBTR_SXE     0x00000040  /* User Read Enable */
+#define SPR_ITLBTR_UXE     0x00000080  /* User Write Enable */
+#define SPR_ITLBTR_PPN     0xffffe000  /* Physical Page Number */
+
+/*
+ * Bit definitions for Data Cache Control register
+ *
+ */
+#define SPR_DCCR_EW    0x000000ff  /* Enable ways */
+
+/*
+ * Bit definitions for Insn Cache Control register
+ *
+ */
+#define SPR_ICCR_EW    0x000000ff  /* Enable ways */
+
+/*
+ * Bit definitions for Data Cache Configuration Register
+ *
+ */
+
+#define SPR_DCCFGR_NCW      0x00000007
+#define SPR_DCCFGR_NCS      0x00000078
+#define SPR_DCCFGR_CBS      0x00000080
+#define SPR_DCCFGR_CWS      0x00000100
+#define SPR_DCCFGR_CCRI     0x00000200
+#define SPR_DCCFGR_CBIRI    0x00000400
+#define SPR_DCCFGR_CBPRI    0x00000800
+#define SPR_DCCFGR_CBLRI    0x00001000
+#define SPR_DCCFGR_CBFRI    0x00002000
+#define SPR_DCCFGR_CBWBRI   0x00004000
+
+#define SPR_DCCFGR_NCW_OFF      0
+#define SPR_DCCFGR_NCS_OFF      3
+#define SPR_DCCFGR_CBS_OFF  7
+
+/*
+ * Bit definitions for Instruction Cache Configuration Register
+ *
+ */
+#define SPR_ICCFGR_NCW      0x00000007
+#define SPR_ICCFGR_NCS      0x00000078
+#define SPR_ICCFGR_CBS      0x00000080
+#define SPR_ICCFGR_CCRI     0x00000200
+#define SPR_ICCFGR_CBIRI    0x00000400
+#define SPR_ICCFGR_CBPRI    0x00000800
+#define SPR_ICCFGR_CBLRI    0x00001000
+
+#define SPR_ICCFGR_NCW_OFF      0
+#define SPR_ICCFGR_NCS_OFF      3
+#define SPR_ICCFGR_CBS_OFF  7
+
+/*
+ * Bit definitions for Data MMU Configuration Register
+ *
+ */
+
+#define SPR_DMMUCFGR_NTW    0x00000003
+#define SPR_DMMUCFGR_NTS    0x0000001C
+#define SPR_DMMUCFGR_NAE    0x000000E0
+#define SPR_DMMUCFGR_CRI    0x00000100
+#define SPR_DMMUCFGR_PRI        0x00000200
+#define SPR_DMMUCFGR_TEIRI  0x00000400
+#define SPR_DMMUCFGR_HTR    0x00000800
+
+#define SPR_DMMUCFGR_NTW_OFF    0
+#define SPR_DMMUCFGR_NTS_OFF    2
+
+/*
+ * Bit definitions for Instruction MMU Configuration Register
+ *
+ */
+
+#define SPR_IMMUCFGR_NTW    0x00000003
+#define SPR_IMMUCFGR_NTS    0x0000001C
+#define SPR_IMMUCFGR_NAE    0x000000E0
+#define SPR_IMMUCFGR_CRI    0x00000100
+#define SPR_IMMUCFGR_PRI    0x00000200
+#define SPR_IMMUCFGR_TEIRI  0x00000400
+#define SPR_IMMUCFGR_HTR    0x00000800
+
+#define SPR_IMMUCFGR_NTW_OFF    0
+#define SPR_IMMUCFGR_NTS_OFF    2
+
+/*
+ * Bit definitions for Debug Control registers
+ *
+ */
+#define SPR_DCR_DP  0x00000001  /* DVR/DCR present */
+#define SPR_DCR_CC  0x0000000e  /* Compare condition */
+#define SPR_DCR_SC  0x00000010  /* Signed compare */
+#define SPR_DCR_CT  0x000000e0  /* Compare to */
+
+/* Bit results with SPR_DCR_CC mask */
+#define SPR_DCR_CC_MASKED 0x00000000
+#define SPR_DCR_CC_EQUAL  0x00000002
+#define SPR_DCR_CC_LESS   0x00000004
+#define SPR_DCR_CC_LESSE  0x00000006
+#define SPR_DCR_CC_GREAT  0x00000008
+#define SPR_DCR_CC_GREATE 0x0000000a
+#define SPR_DCR_CC_NEQUAL 0x0000000c
+
+/* Bit results with SPR_DCR_CT mask */
+#define SPR_DCR_CT_DISABLED 0x00000000
+#define SPR_DCR_CT_IFEA     0x00000020
+#define SPR_DCR_CT_LEA      0x00000040
+#define SPR_DCR_CT_SEA      0x00000060
+#define SPR_DCR_CT_LD       0x00000080
+#define SPR_DCR_CT_SD       0x000000a0
+#define SPR_DCR_CT_LSEA     0x000000c0
+#define SPR_DCR_CT_LSD      0x000000e0
+/* SPR_DCR_CT_LSD doesn't seem to be implemented anywhere in or1ksim. 2004-1-30 HP */
+
+/*
+ * Bit definitions for Debug Mode 1 register
+ *
+ */
+#define SPR_DMR1_CW       0x000fffff  /* Chain register pair data */
+#define SPR_DMR1_CW0_AND  0x00000001
+#define SPR_DMR1_CW0_OR   0x00000002
+#define SPR_DMR1_CW0      (SPR_DMR1_CW0_AND | SPR_DMR1_CW0_OR)
+#define SPR_DMR1_CW1_AND  0x00000004
+#define SPR_DMR1_CW1_OR   0x00000008
+#define SPR_DMR1_CW1      (SPR_DMR1_CW1_AND | SPR_DMR1_CW1_OR)
+#define SPR_DMR1_CW2_AND  0x00000010
+#define SPR_DMR1_CW2_OR   0x00000020
+#define SPR_DMR1_CW2      (SPR_DMR1_CW2_AND | SPR_DMR1_CW2_OR)
+#define SPR_DMR1_CW3_AND  0x00000040
+#define SPR_DMR1_CW3_OR   0x00000080
+#define SPR_DMR1_CW3      (SPR_DMR1_CW3_AND | SPR_DMR1_CW3_OR)
+#define SPR_DMR1_CW4_AND  0x00000100
+#define SPR_DMR1_CW4_OR   0x00000200
+#define SPR_DMR1_CW4      (SPR_DMR1_CW4_AND | SPR_DMR1_CW4_OR)
+#define SPR_DMR1_CW5_AND  0x00000400
+#define SPR_DMR1_CW5_OR   0x00000800
+#define SPR_DMR1_CW5      (SPR_DMR1_CW5_AND | SPR_DMR1_CW5_OR)
+#define SPR_DMR1_CW6_AND  0x00001000
+#define SPR_DMR1_CW6_OR   0x00002000
+#define SPR_DMR1_CW6      (SPR_DMR1_CW6_AND | SPR_DMR1_CW6_OR)
+#define SPR_DMR1_CW7_AND  0x00004000
+#define SPR_DMR1_CW7_OR   0x00008000
+#define SPR_DMR1_CW7      (SPR_DMR1_CW7_AND | SPR_DMR1_CW7_OR)
+#define SPR_DMR1_CW8_AND  0x00010000
+#define SPR_DMR1_CW8_OR   0x00020000
+#define SPR_DMR1_CW8      (SPR_DMR1_CW8_AND | SPR_DMR1_CW8_OR)
+#define SPR_DMR1_CW9_AND  0x00040000
+#define SPR_DMR1_CW9_OR   0x00080000
+#define SPR_DMR1_CW9      (SPR_DMR1_CW9_AND | SPR_DMR1_CW9_OR)
+#define SPR_DMR1_RES1      0x00300000  /* Reserved */
+#define SPR_DMR1_ST   0x00400000  /* Single-step trace*/
+#define SPR_DMR1_BT   0x00800000  /* Branch trace */
+#define SPR_DMR1_RES2     0xff000000  /* Reserved */
+
+/*
+ * Bit definitions for Debug Mode 2 register. AWTC and WGB corrected by JPB
+ *
+ */
+#define SPR_DMR2_WCE0      0x00000001  /* Watchpoint counter 0 enable */
+#define SPR_DMR2_WCE1      0x00000002  /* Watchpoint counter 0 enable */
+#define SPR_DMR2_AWTC      0x00000ffc  /* Assign watchpoints to counters */
+#define SPR_DMR2_AWTC_OFF           2  /* Bit offset to AWTC field */
+#define SPR_DMR2_WGB       0x003ff000  /* Watchpoints generating breakpoint */
+#define SPR_DMR2_WGB_OFF           12  /* Bit offset to WGB field */
+#define SPR_DMR2_WBS       0xffc00000  /* JPB: Watchpoint status */
+#define SPR_DMR2_WBS_OFF           22  /* Bit offset to WBS field */
+
+/*
+ * Bit definitions for Debug watchpoint counter registers
+ *
+ */
+#define SPR_DWCR_COUNT      0x0000ffff  /* Count */
+#define SPR_DWCR_MATCH      0xffff0000  /* Match */
+#define SPR_DWCR_MATCH_OFF          16  /* Match bit offset */
+
+/*
+ * Bit definitions for Debug stop register
+ *
+ */
+#define SPR_DSR_RSTE    0x00000001  /* Reset exception */
+#define SPR_DSR_BUSEE   0x00000002  /* Bus error exception */
+#define SPR_DSR_DPFE    0x00000004  /* Data Page Fault exception */
+#define SPR_DSR_IPFE    0x00000008  /* Insn Page Fault exception */
+#define SPR_DSR_TTE 0x00000010  /* Tick Timer exception */
+#define SPR_DSR_AE  0x00000020  /* Alignment exception */
+#define SPR_DSR_IIE 0x00000040  /* Illegal Instruction exception */
+#define SPR_DSR_IE  0x00000080  /* Interrupt exception */
+#define SPR_DSR_DME 0x00000100  /* DTLB miss exception */
+#define SPR_DSR_IME 0x00000200  /* ITLB miss exception */
+#define SPR_DSR_RE  0x00000400  /* Range exception */
+#define SPR_DSR_SCE 0x00000800  /* System call exception */
+#define SPR_DSR_FPE     0x00001000  /* Floating Point Exception */
+#define SPR_DSR_TE  0x00002000  /* Trap exception */
+
+/*
+ * Bit definitions for Debug reason register
+ *
+ */
+#define SPR_DRR_RSTE    0x00000001  /* Reset exception */
+#define SPR_DRR_BUSEE   0x00000002  /* Bus error exception */
+#define SPR_DRR_DPFE    0x00000004  /* Data Page Fault exception */
+#define SPR_DRR_IPFE    0x00000008  /* Insn Page Fault exception */
+#define SPR_DRR_TTE 0x00000010  /* Tick Timer exception */
+#define SPR_DRR_AE  0x00000020  /* Alignment exception */
+#define SPR_DRR_IIE 0x00000040  /* Illegal Instruction exception */
+#define SPR_DRR_IE  0x00000080  /* Interrupt exception */
+#define SPR_DRR_DME 0x00000100  /* DTLB miss exception */
+#define SPR_DRR_IME 0x00000200  /* ITLB miss exception */
+#define SPR_DRR_RE  0x00000400  /* Range exception */
+#define SPR_DRR_SCE 0x00000800  /* System call exception */
+#define SPR_DRR_FPE     0x00001000  /* Floating Point Exception */
+#define SPR_DRR_TE  0x00002000  /* Trap exception */
+
+/*
+ * Bit definitions for Performance counters mode registers
+ *
+ */
+#define SPR_PCMR_CP 0x00000001  /* Counter present */
+#define SPR_PCMR_UMRA   0x00000002  /* User mode read access */
+#define SPR_PCMR_CISM   0x00000004  /* Count in supervisor mode */
+#define SPR_PCMR_CIUM   0x00000008  /* Count in user mode */
+#define SPR_PCMR_LA 0x00000010  /* Load access event */
+#define SPR_PCMR_SA 0x00000020  /* Store access event */
+#define SPR_PCMR_IF 0x00000040  /* Instruction fetch event*/
+#define SPR_PCMR_DCM    0x00000080  /* Data cache miss event */
+#define SPR_PCMR_ICM    0x00000100  /* Insn cache miss event */
+#define SPR_PCMR_IFS    0x00000200  /* Insn fetch stall event */
+#define SPR_PCMR_LSUS   0x00000400  /* LSU stall event */
+#define SPR_PCMR_BS 0x00000800  /* Branch stall event */
+#define SPR_PCMR_DTLBM  0x00001000  /* DTLB miss event */
+#define SPR_PCMR_ITLBM  0x00002000  /* ITLB miss event */
+#define SPR_PCMR_DDS    0x00004000  /* Data dependency stall event */
+#define SPR_PCMR_WPE    0x03ff8000  /* Watchpoint events */
+
+/* 
+ * Bit definitions for the Power management register
+ *
+ */
+#define SPR_PMR_SDF 0x0000000f  /* Slow down factor */
+#define SPR_PMR_DME 0x00000010  /* Doze mode enable */
+#define SPR_PMR_SME 0x00000020  /* Sleep mode enable */
+#define SPR_PMR_DCGE    0x00000040  /* Dynamic clock gating enable */
+#define SPR_PMR_SUME    0x00000080  /* Suspend mode enable */
+
+/*
+ * Bit definitions for PICMR
+ *
+ */
+#define SPR_PICMR_IUM   0xfffffffc  /* Interrupt unmask */
+
+/*
+ * Bit definitions for PICPR
+ *
+ */
+#define SPR_PICPR_IPRIO 0xfffffffc  /* Interrupt priority */
+ 
+/*
+ * Bit definitions for PICSR
+ *
+ */
+#define SPR_PICSR_IS    0xffffffff  /* Interrupt status */
+
+/*
+ * Bit definitions for Tick Timer Control Register
+ *
+ */
+#define SPR_TTCR_CNT    0xffffffff  /* Count, time period */
+#define SPR_TTMR_TP     0x0fffffff  /* Time period */
+#define SPR_TTMR_IP 0x10000000  /* Interrupt Pending */
+#define SPR_TTMR_IE 0x20000000  /* Interrupt Enable */
+#define SPR_TTMR_DI 0x00000000  /* Disabled */
+#define SPR_TTMR_RT 0x40000000  /* Restart tick */
+#define SPR_TTMR_SR     0x80000000  /* Single run */
+#define SPR_TTMR_CR     0xc0000000  /* Continuous run */
+#define SPR_TTMR_M      0xc0000000  /* Tick mode */
+
+/*
+ * Bit definitions for the FP Control Status Register
+ *
+ */
+#define SPR_FPCSR_FPEE  0x00000001  /* Floating Point Exception Enable */
+#define SPR_FPCSR_RM    0x00000006  /* Rounding Mode */
+#define SPR_FPCSR_OVF   0x00000008  /* Overflow Flag */
+#define SPR_FPCSR_UNF   0x00000010  /* Underflow Flag */
+#define SPR_FPCSR_SNF   0x00000020  /* SNAN Flag */
+#define SPR_FPCSR_QNF   0x00000040  /* QNAN Flag */
+#define SPR_FPCSR_ZF    0x00000080  /* Zero Flag */
+#define SPR_FPCSR_IXF   0x00000100  /* Inexact Flag */
+#define SPR_FPCSR_IVF   0x00000200  /* Invalid Flag */
+#define SPR_FPCSR_INF   0x00000400  /* Infinity Flag */
+#define SPR_FPCSR_DZF   0x00000800  /* Divide By Zero Flag */
+#define SPR_FPCSR_ALLF (SPR_FPCSR_OVF | SPR_FPCSR_UNF | SPR_FPCSR_SNF | \
+            SPR_FPCSR_QNF | SPR_FPCSR_ZF | SPR_FPCSR_IXF |  \
+            SPR_FPCSR_IVF | SPR_FPCSR_INF | SPR_FPCSR_DZF)
+
+#define FPCSR_RM_RN (0<<1)
+#define FPCSR_RM_RZ (1<<1)
+#define FPCSR_RM_RIP (2<<1)
+#define FPCSR_RM_RIN (3<<1)
+
+
+#endif  // Include this file only once.
+
diff --git a/sim/testsuite/sim/or1k/sub.S b/sim/testsuite/sim/or1k/sub.S
new file mode 100644
index 0000000..0da4cf0
--- /dev/null
+++ b/sim/testsuite/sim/or1k/sub.S
@@ -0,0 +1,176 @@
+/* Tests instruction l.sub
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000003);\n
+# output: report(0x00000002);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000001);\n
+# output: report(0x00000002);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000003);\n
+# output: report(0x00000002);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xfffffffd);\n
+# output: report(0xfffffffe);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xfffffffe);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x7fffffff);\n
+# output: report(0x3fffffff);\n
+# output: report(0x40000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x40000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x3fffffff);\n
+# output: report(0x40000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x40000000);\n
+# output: report(0x3fffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x80000000);\n
+# output: report(0x7fffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x3fffffff);\n
+# output: report(0x40000000);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000001);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+
+        // ----------- Test l.sub -----------
+
+        // Subtract two small positive numbers. Sets the carry, but never the overflow if the result is negative.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x00000003, 0x00000002
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x00000001, 0x00000002
+
+        // Check carry in is ignored.
+        TEST_INST_FF_I32_I32 SPR_SR_CY, SPR_SR_OV, l.sub, 0x00000003, 0x00000002
+
+        // Subtract two small negative numbers. Sets the carry flag if the
+        // result is negative, but never the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0xfffffffd, 0xfffffffe
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0xffffffff, 0xfffffffe
+
+        // Subtract two quite large positive numbers. Should set neither the
+        // overflow nor the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x7fffffff, 0x3fffffff
+
+        // Subtract two quite large negative numbers. Should set neither the overflow nor the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x40000000, 0x40000000
+
+        // Subtract two large positive numbers with a negative result. Should
+        // set the carry, but not the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x3fffffff, 0x40000000
+
+        // Subtract two large negative numbers with a positive result. Should
+        // set neither the carry nor the overflow flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x40000000, 0x3fffffff
+
+        // Subtract a large positive from a large negative number. Should set
+        // overflow but not the carry flag.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x80000000, 0x7fffffff
+
+        // Subtract a large negative from a large positive number. Should set
+        // both the overflow and carry flags.
+        // TODO: disabled, as it fails against ORPSoC V2
+        // TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x7fffffff, 0x80000000
+
+
+        // ------ Check that range exceptions are triggered.
+        
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        
+        /*  TODO: exceptions test disabled until or1200 fix is in place.
+        // Check that an overflow alone causes a RANGE Exception.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x80000000, 0x7fffffff
+        */
+
+        // Check that a carry alone does not cause a RANGE Exception.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x3fffffff, 0x40000000
+
+        /*  TODO: exceptions test disabled until or1200 fix is in place.
+        // Check that carry and overflow together cause an exception.
+        TEST_INST_FF_I32_I32 0, SPR_SR_CY | SPR_SR_OV, l.sub, 0x7fffffff, 0x80000000
+        */
+       
+        CLEAR_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
diff --git a/sim/testsuite/sim/or1k/xor.S b/sim/testsuite/sim/or1k/xor.S
new file mode 100644
index 0000000..4864615
--- /dev/null
+++ b/sim/testsuite/sim/or1k/xor.S
@@ -0,0 +1,210 @@
+/* Tests instructions l.xor, l.xori
+ *
+ * This is not a comprehensive test of any instruction (yet).
+ * Of course what is really needed is a comprehensive instruction test...
+ *
+ * 
+ * Copyright (C) 1999-2006 OpenCores
+ *   Contributors various OpenCores participants
+ * Copyright (C) 2010 Embecosm Limited
+ *   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
+ * Copyright (C) 2012 R. Diez
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+# mach: or1k
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x55555555);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xb38f0f83);\n
+# output: report(0xffffffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0xc4c70f07);\n
+# output: report(0x88b7ff7b);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x38f0f83b);\n
+# output: report(0x8b7ff7b8);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xffffffff);\n
+# output: report(0x0000ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x0000aaaa);\n
+# output: report(0x55550000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x55555555);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x55555555);\n
+# output: report(0x00005555);\n
+# output: report(0x55550000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xaaaaaaaa);\n
+# output: report(0x00005555);\n
+# output: report(0xaaaaffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f83);\n
+# output: report(0x4c70ffff);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0x4c70f07c);\n
+# output: report(0x00000f07);\n
+# output: report(0x4c70ff7b);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: report(0xb38f0f83);\n
+# output: report(0x0000f83b);\n
+# output: report(0x4c70f7b8);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: report(0x00000000);\n
+# output: \n
+# output: exit(0)\n
+
+#include "or1k-asm-test-helpers.h"
+
+
+        STANDARD_TEST_ENVIRONMENT
+
+        .section .text
+start_tests:
+        PUSH LINK_REGISTER_R9
+
+	    // Always set OVE. We should never trigger an exception, even if this bit is set.
+        SET_SPR_SR_FLAGS SPR_SR_OVE, r2, r3
+
+
+        // Test the l.xor instruction with a range of operands.
+        
+	    TEST_INST_I32_I32 l.xor, 0x00000000, 0x00000000
+	    TEST_INST_I32_I32 l.xor, 0xffffffff, 0xffffffff
+	    TEST_INST_I32_I32 l.xor, 0xaaaaaaaa, 0x00000000
+	    TEST_INST_I32_I32 l.xor, 0xaaaaaaaa, 0xaaaaaaaa
+	    TEST_INST_I32_I32 l.xor, 0x55555555, 0x00000000
+	    TEST_INST_I32_I32 l.xor, 0x55555555, 0x55555555
+	    TEST_INST_I32_I32 l.xor, 0xaaaaaaaa, 0x55555555
+	    TEST_INST_I32_I32 l.xor, 0x4c70f07c, 0xb38f0f83
+	    TEST_INST_I32_I32 l.xor, 0x4c70f07c, 0xc4c70f07
+	    TEST_INST_I32_I32 l.xor, 0xb38f0f83, 0x38f0f83b
+
+
+        // Test the l.xori instruction with a range of operands.
+
+	    TEST_INST_I32_I16 l.xori, 0x00000000, 0x0000
+	    TEST_INST_I32_I16 l.xori, 0xffffffff, 0xffff
+	    TEST_INST_I32_I16 l.xori, 0xaaaaaaaa, 0x0000
+	    TEST_INST_I32_I16 l.xori, 0xaaaaaaaa, 0xaaaa
+	    TEST_INST_I32_I16 l.xori, 0x55555555, 0x0000
+	    TEST_INST_I32_I16 l.xori, 0x55555555, 0x5555
+	    TEST_INST_I32_I16 l.xori, 0xaaaaaaaa, 0x5555
+	    TEST_INST_I32_I16 l.xori, 0x4c70f07c, 0x0f83
+	    TEST_INST_I32_I16 l.xori, 0x4c70f07c, 0x0f07
+	    TEST_INST_I32_I16 l.xori, 0xb38f0f83, 0xf83b
+
+        POP LINK_REGISTER_R9
+        RETURN_TO_LINK_REGISTER_R9
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim
  2017-01-21  3:03 ` [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim Stafford Horne
@ 2017-02-14 18:52   ` Mike Frysinger
  2017-02-15 13:24     ` Stafford Horne
  2017-02-28 11:07     ` Stafford Horne
  0 siblings, 2 replies; 11+ messages in thread
From: Mike Frysinger @ 2017-02-14 18:52 UTC (permalink / raw)
  To: openrisc

On 21 Jan 2017 12:03, Stafford Horne wrote:
> --- /dev/null
> +++ b/sim/or1k/Makefile.in
>
> +# Extra headers included by sim-main.h.

you shouldn't need to do any manual dep management.  i'd suggest
deleting all this logic and seeing if things still work.

> --- /dev/null
> +++ b/sim/or1k/configure.ac
> @@ -0,0 +1,41 @@
> +dnl Process this file with autoconf to produce a configure script.
> +AC_PREREQ(2.64)dnl
> +AC_INIT(Makefile.in)
> +sinclude(../common/acinclude.m4)
> +
> +  case "${target_alias}" in

drop the indentation

> +  or1k-linux*|or1knd-linux*)
> +    traps_obj=traps32-linux.o
> +    ;;
> +  or1k-*|or1knd-*)
> +    traps_obj=traps32.o
> +    ;;
> +  esac

we really don't like to see this kind of logic.  can't you do a single
build and then select the right details at runtime ?

--- /dev/null
> +++ b/sim/or1k/or1k.h
> @@ -0,0 +1,38 @@
> +#ifndef OR1K_H
> +#define OR1K_H

all files should have a header with copyright & license info

also, please use namespaced defines like SIM_OR1K_H

> --- /dev/null
> +++ b/sim/or1k/sim-if.c
> @@ -0,0 +1,318 @@
> +/* Main simulator entry points specific to the OR1K.
> +   Copyright (C) 1996-1999, 2003, 2007-2012 Free Software Foundation,
> +   Inc.
> +   Contributed by Cygnus Support.

looks like you need to double check where you copied & pasted things from.
cygnus isn't doing this port ;).

> +SIM_DESC
> +sim_open (kind, callback, abfd, argv)
> +     SIM_OPEN_KIND kind;
> +     host_callback *callback;
> +     struct bfd *abfd;
> +     char * const *argv;

you need to update all your prototypes.  we don't do old style ones like
this anymore.

> +#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */
> +  if (dv_sockser_install (sd) != SIM_RC_OK)
> +    {
> +      free_state (sd);
> +      return 0;
> +    }
> +#endif

delete this.  common code handles it for you now.

> +  /* Allocate core managed memory if none specified by user.
> +     Use address 4 here in case the user wanted address 0 unmapped.  */
> +  if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) {
> +    sim_do_commandf (sd, "memory region 0,0x%x", OR1K_DEFAULT_MEM_SIZE);
> +  }

this isn't using GNU style for the braces/if body.  this comes up
multiple times in this patch, so please fix them all.

> +  /* check for/establish the reference program image */

this comment isn't using GNU style.  this comes up
multiple times in this patch, so please fix them all.

> +
> +  for (c = 0; c < MAX_NR_PROCESSORS; ++c)
> +    {
> +      SIM_CPU *cpu = STATE_CPU (sd, i);
> +      /* Only needed for profiling, but the structure member is small.  */
> +      memset (CPU_OR1K_MISC_PROFILE (cpu), 0,
> +	      sizeof (* CPU_OR1K_MISC_PROFILE (cpu)));
> +
> +#ifdef WANT_CPU_OR1K32BF
> +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,VR),      or1k_vr);
> +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,UPR),     or1k_upr);
> +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,CPUCFGR), or1k_cpucfgr);
> +
> +      or1k32bf_cpu_init (sd, cpu);
> +#endif
> +    }

this loop has to call these funcs:
	CPU_REG_FETCH
	CPU_REG_STORE
	CPU_PC_FETCH
	CPU_PC_STORE

> +  /* Store in a global so things like sparc32_dump_regs can be invoked
> +     from the gdb command line.  */
> +  current_state = sd;

you must kill current_state.  we do not allow global state anymore.

> --- /dev/null
> +++ b/sim/or1k/sim-main.h
>
> +typedef IAI sim_cia;
> +#define CIA_GET(cpu) CPU_PC_GET (cpu)
> +#define CIA_SET(cpu,val) CPU_PC_SET ((cpu),(val))

these defines are dead -> delete

> +typedef struct _sim_cpu SIM_CPU;

delete this

> +#ifdef OR1K_LINUX

nothing defines this -> delete

> +#if (WITH_SMP)
> +#define STATE_CPU(sd, n) ((sd)->cpu[n])
> +#else
> +#define STATE_CPU(sd, n) ((sd)->cpu[0])
> +#endif

delete these -- common code does it for you now
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://lists.librecores.org/pipermail/openrisc/attachments/20170214/3ef1d98b/attachment.sig>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim
  2017-02-14 18:52   ` Mike Frysinger
@ 2017-02-15 13:24     ` Stafford Horne
  2017-02-15 15:42       ` Mike Frysinger
  2017-02-28 11:07     ` Stafford Horne
  1 sibling, 1 reply; 11+ messages in thread
From: Stafford Horne @ 2017-02-15 13:24 UTC (permalink / raw)
  To: openrisc

Hello,

Before, we get started I just want to point out that some of these
issues seem pretty obvious, but this code had been sitting in the
openrisc source repo's for some time.  I believe it was done on contract
by the people mentioned in the cover letter, who may have worked at
Cygnus.

Nevertheless, ill give my comments on a few things below, and
these will be fixed in time.

On Tue, Feb 14, 2017 at 01:52:08PM -0500, Mike Frysinger wrote:
> On 21 Jan 2017 12:03, Stafford Horne wrote:
> > --- /dev/null
> > +++ b/sim/or1k/Makefile.in
> >
> > +# Extra headers included by sim-main.h.
> 
> you shouldn't need to do any manual dep management.  i'd suggest
> deleting all this logic and seeing if things still work.

Right I thought these headers are a bit strange.
I think the strange header logic is because the or1k cgen stamp is done
in two phases, 1st for 32 and 2nd 64.  Then this header stuff is used to
figure out which version we want.

I noticed in other archs like cris they generate all archs at 1 time.
Then the headers are setup correctly automatically.

I'll try to do the same.

> > --- /dev/null
> > +++ b/sim/or1k/configure.ac
> > @@ -0,0 +1,41 @@
> > +dnl Process this file with autoconf to produce a configure script.
> > +AC_PREREQ(2.64)dnl
> > +AC_INIT(Makefile.in)
> > +sinclude(../common/acinclude.m4)
> > +
> > +  case "${target_alias}" in
> 
> drop the indentation

OK.

> > +  or1k-linux*|or1knd-linux*)
> > +    traps_obj=traps32-linux.o
> > +    ;;
> > +  or1k-*|or1knd-*)
> > +    traps_obj=traps32.o
> > +    ;;
> > +  esac
> 
> we really don't like to see this kind of logic.  can't you do a single
> build and then select the right details at runtime ?

I think so, we did the same with gdb, Ill see what can be done.

> --- /dev/null
> > +++ b/sim/or1k/or1k.h
> > @@ -0,0 +1,38 @@
> > +#ifndef OR1K_H
> > +#define OR1K_H
> 
> all files should have a header with copyright & license info

OK.

> also, please use namespaced defines like SIM_OR1K_H

OK.

> > --- /dev/null
> > +++ b/sim/or1k/sim-if.c
> > @@ -0,0 +1,318 @@
> > +/* Main simulator entry points specific to the OR1K.
> > +   Copyright (C) 1996-1999, 2003, 2007-2012 Free Software Foundation,
> > +   Inc.
> > +   Contributed by Cygnus Support.
> 
> looks like you need to double check where you copied & pasted things from.
> cygnus isn't doing this port ;).

Yes, as mentioned above the orginal work here was originally done by Peter
Gavin, he may be worked there.  Either way I will clean this up.  As I did
in the gdb port we removed names from all the headers.

> > +SIM_DESC
> > +sim_open (kind, callback, abfd, argv)
> > +     SIM_OPEN_KIND kind;
> > +     host_callback *callback;
> > +     struct bfd *abfd;
> > +     char * const *argv;
> 
> you need to update all your prototypes.  we don't do old style ones like
> this anymore.

Yeah, this is not good, sorry I didn't notice.

> > +#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */
> > +  if (dv_sockser_install (sd) != SIM_RC_OK)
> > +    {
> > +      free_state (sd);
> > +      return 0;
> > +    }
> > +#endif
> 
> delete this.  common code handles it for you now.

OK.

> > +  /* Allocate core managed memory if none specified by user.
> > +     Use address 4 here in case the user wanted address 0 unmapped.  */
> > +  if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) {
> > +    sim_do_commandf (sd, "memory region 0,0x%x", OR1K_DEFAULT_MEM_SIZE);
> > +  }
> 
> this isn't using GNU style for the braces/if body.  this comes up
> multiple times in this patch, so please fix them all.
> 
> > +  /* check for/establish the reference program image */
> 
> this comment isn't using GNU style.  this comes up
> multiple times in this patch, so please fix them all.

Right I did the same things in the gdb patch. Need to fix.

> > +
> > +  for (c = 0; c < MAX_NR_PROCESSORS; ++c)
> > +    {
> > +      SIM_CPU *cpu = STATE_CPU (sd, i);
> > +      /* Only needed for profiling, but the structure member is small.  */
> > +      memset (CPU_OR1K_MISC_PROFILE (cpu), 0,
> > +	      sizeof (* CPU_OR1K_MISC_PROFILE (cpu)));
> > +
> > +#ifdef WANT_CPU_OR1K32BF
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,VR),      or1k_vr);
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,UPR),     or1k_upr);
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,CPUCFGR), or1k_cpucfgr);
> > +
> > +      or1k32bf_cpu_init (sd, cpu);
> > +#endif
> > +    }
> 
> this loop has to call these funcs:
> 	CPU_REG_FETCH
> 	CPU_REG_STORE
> 	CPU_PC_FETCH
> 	CPU_PC_STORE

Ill have a look.

> > +  /* Store in a global so things like sparc32_dump_regs can be invoked
> > +     from the gdb command line.  */
> > +  current_state = sd;
> 
> you must kill current_state.  we do not allow global state anymore.

OK, ill look into it.

> > --- /dev/null
> > +++ b/sim/or1k/sim-main.h
> >
> > +typedef IAI sim_cia;
> > +#define CIA_GET(cpu) CPU_PC_GET (cpu)
> > +#define CIA_SET(cpu,val) CPU_PC_SET ((cpu),(val))
> 
> these defines are dead -> delete

OK, good to know.

> > +typedef struct _sim_cpu SIM_CPU;
> 
> delete this
> 
> > +#ifdef OR1K_LINUX
> 
> nothing defines this -> delete
> 
> > +#if (WITH_SMP)
> > +#define STATE_CPU(sd, n) ((sd)->cpu[n])
> > +#else
> > +#define STATE_CPU(sd, n) ((sd)->cpu[0])
> > +#endif
> 
> delete these -- common code does it for you now
> -mike

OK.

Thanks, you have pointed out a lot, some things I should have spotted,
but a lot is new to me.  Thank you for spending your time.

I will take a few days to get through all of this.

-Stafford

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim
  2017-02-15 13:24     ` Stafford Horne
@ 2017-02-15 15:42       ` Mike Frysinger
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger @ 2017-02-15 15:42 UTC (permalink / raw)
  To: openrisc

On 15 Feb 2017 22:24, Stafford Horne wrote:
> Before, we get started I just want to point out that some of these
> issues seem pretty obvious, but this code had been sitting in the
> openrisc source repo's for some time.  I believe it was done on contract
> by the people mentioned in the cover letter, who may have worked at
> Cygnus.

i suspected it's an old port because it looks like it was copied from
another sim port, but before a lot of cleanups were done.  there has
been a bunch of fixups across the codebase to try and make things easy
for new ports.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://lists.librecores.org/pipermail/openrisc/attachments/20170215/5833e4cd/attachment.sig>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim
  2017-02-14 18:52   ` Mike Frysinger
  2017-02-15 13:24     ` Stafford Horne
@ 2017-02-28 11:07     ` Stafford Horne
  1 sibling, 0 replies; 11+ messages in thread
From: Stafford Horne @ 2017-02-28 11:07 UTC (permalink / raw)
  To: openrisc

On Tue, Feb 14, 2017 at 01:52:08PM -0500, Mike Frysinger wrote:
> On 21 Jan 2017 12:03, Stafford Horne wrote:
> > --- /dev/null
> > +++ b/sim/or1k/Makefile.in
> >
> > +# Extra headers included by sim-main.h.
> 
> you shouldn't need to do any manual dep management.  i'd suggest
> deleting all this logic and seeing if things still work.

Hi Mike,

I have started to look into this.  Its kind of interesting, what the
original author was doing here is putting both 32 and 64 bit families in
the same sim, something that I think is not currently supported by the
cgen dep management.

If I try to general all, I rightly get:
  ERROR: app requires all selected cpu families to have same word size

Would you have a suggestion for this?

 - Should 32 and 64 bits be in separate sim_arch directories?
 - SHould we modify cgen to support handling different word sizes at the
   same time?  Like the author has done here?

At the moment I think I will work on getting the 32bit sim working
alone.

-Stafford

> > --- /dev/null
> > +++ b/sim/or1k/configure.ac
> > @@ -0,0 +1,41 @@
> > +dnl Process this file with autoconf to produce a configure script.
> > +AC_PREREQ(2.64)dnl
> > +AC_INIT(Makefile.in)
> > +sinclude(../common/acinclude.m4)
> > +
> > +  case "${target_alias}" in
> 
> drop the indentation
> 
> > +  or1k-linux*|or1knd-linux*)
> > +    traps_obj=traps32-linux.o
> > +    ;;
> > +  or1k-*|or1knd-*)
> > +    traps_obj=traps32.o
> > +    ;;
> > +  esac
> 
> we really don't like to see this kind of logic.  can't you do a single
> build and then select the right details at runtime ?
> 
> --- /dev/null
> > +++ b/sim/or1k/or1k.h
> > @@ -0,0 +1,38 @@
> > +#ifndef OR1K_H
> > +#define OR1K_H
> 
> all files should have a header with copyright & license info
> 
> also, please use namespaced defines like SIM_OR1K_H
> 
> > --- /dev/null
> > +++ b/sim/or1k/sim-if.c
> > @@ -0,0 +1,318 @@
> > +/* Main simulator entry points specific to the OR1K.
> > +   Copyright (C) 1996-1999, 2003, 2007-2012 Free Software Foundation,
> > +   Inc.
> > +   Contributed by Cygnus Support.
> 
> looks like you need to double check where you copied & pasted things from.
> cygnus isn't doing this port ;).
> 
> > +SIM_DESC
> > +sim_open (kind, callback, abfd, argv)
> > +     SIM_OPEN_KIND kind;
> > +     host_callback *callback;
> > +     struct bfd *abfd;
> > +     char * const *argv;
> 
> you need to update all your prototypes.  we don't do old style ones like
> this anymore.
> 
> > +#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */
> > +  if (dv_sockser_install (sd) != SIM_RC_OK)
> > +    {
> > +      free_state (sd);
> > +      return 0;
> > +    }
> > +#endif
> 
> delete this.  common code handles it for you now.
> 
> > +  /* Allocate core managed memory if none specified by user.
> > +     Use address 4 here in case the user wanted address 0 unmapped.  */
> > +  if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) {
> > +    sim_do_commandf (sd, "memory region 0,0x%x", OR1K_DEFAULT_MEM_SIZE);
> > +  }
> 
> this isn't using GNU style for the braces/if body.  this comes up
> multiple times in this patch, so please fix them all.
> 
> > +  /* check for/establish the reference program image */
> 
> this comment isn't using GNU style.  this comes up
> multiple times in this patch, so please fix them all.
> 
> > +
> > +  for (c = 0; c < MAX_NR_PROCESSORS; ++c)
> > +    {
> > +      SIM_CPU *cpu = STATE_CPU (sd, i);
> > +      /* Only needed for profiling, but the structure member is small.  */
> > +      memset (CPU_OR1K_MISC_PROFILE (cpu), 0,
> > +	      sizeof (* CPU_OR1K_MISC_PROFILE (cpu)));
> > +
> > +#ifdef WANT_CPU_OR1K32BF
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,VR),      or1k_vr);
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,UPR),     or1k_upr);
> > +      or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,CPUCFGR), or1k_cpucfgr);
> > +
> > +      or1k32bf_cpu_init (sd, cpu);
> > +#endif
> > +    }
> 
> this loop has to call these funcs:
> 	CPU_REG_FETCH
> 	CPU_REG_STORE
> 	CPU_PC_FETCH
> 	CPU_PC_STORE
> 
> > +  /* Store in a global so things like sparc32_dump_regs can be invoked
> > +     from the gdb command line.  */
> > +  current_state = sd;
> 
> you must kill current_state.  we do not allow global state anymore.
> 
> > --- /dev/null
> > +++ b/sim/or1k/sim-main.h
> >
> > +typedef IAI sim_cia;
> > +#define CIA_GET(cpu) CPU_PC_GET (cpu)
> > +#define CIA_SET(cpu,val) CPU_PC_SET ((cpu),(val))
> 
> these defines are dead -> delete
> 
> > +typedef struct _sim_cpu SIM_CPU;
> 
> delete this
> 
> > +#ifdef OR1K_LINUX
> 
> nothing defines this -> delete
> 
> > +#if (WITH_SMP)
> > +#define STATE_CPU(sd, n) ((sd)->cpu[n])
> > +#else
> > +#define STATE_CPU(sd, n) ((sd)->cpu[0])
> > +#endif
> 
> delete these -- common code does it for you now
> -mike



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-02-28 11:07 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-21  3:03 [OpenRISC] [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd]) Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 2/6] sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 3/6] sim: cgen: allow suffix on generated arch.[ch] and cpuall.h Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 4/6] sim: or1k: add or1k target to sim Stafford Horne
2017-02-14 18:52   ` Mike Frysinger
2017-02-15 13:24     ` Stafford Horne
2017-02-15 15:42       ` Mike Frysinger
2017-02-28 11:07     ` Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 5/6] sim: or1k: Add generated files Stafford Horne
2017-01-21  3:03 ` [OpenRISC] [PATCH v2 6/6] sim: testsuite: add testsuite for or1k sim Stafford Horne

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.