summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-14 01:47:18 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-14 01:47:18 +0000
commitb0dcacabaac30072bc3fc4076723cd42c5d8973d (patch)
tree3d6e37cf70f7f3b18557baccf884ca90c2da4580
parent5027365b990fb1ab4a6d5626acddcafba01977f5 (diff)
downloadnuttx-b0dcacabaac30072bc3fc4076723cd42c5d8973d.tar.gz
nuttx-b0dcacabaac30072bc3fc4076723cd42c5d8973d.tar.bz2
nuttx-b0dcacabaac30072bc3fc4076723cd42c5d8973d.zip
Removed old CVS directories
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3292 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--CVSROOT/checkoutlist13
-rw-r--r--CVSROOT/commitinfo15
-rw-r--r--CVSROOT/config21
-rw-r--r--CVSROOT/cvswrappers19
-rw-r--r--CVSROOT/editinfo21
-rw-r--r--CVSROOT/loginfo27
-rw-r--r--CVSROOT/modules26
-rw-r--r--CVSROOT/notify12
-rw-r--r--CVSROOT/rcsinfo13
-rw-r--r--CVSROOT/taginfo20
-rw-r--r--CVSROOT/verifymsg21
-rw-r--r--misc/buildroot/toolchain/binutils/2.14.90.0.8/001-debian.patch142
-rw-r--r--misc/buildroot/toolchain/binutils/2.14.90.0.8/210-cflags.patch32
-rw-r--r--misc/buildroot/toolchain/binutils/2.14.90.0.8/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.14.90.0.8/600-arm-textrel.patch63
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/210-cflags.patch32
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch52
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch39
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.15.94.0.2.2/sh-flags-off-by-one.patch21
-rw-r--r--misc/buildroot/toolchain/binutils/2.15/210-cflags.patch32
-rw-r--r--misc/buildroot/toolchain/binutils/2.15/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.15/600-arm-textrel.patch63
-rw-r--r--misc/buildroot/toolchain/binutils/2.15/700-nios2-2.15.patch38356
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.1/300-001_ld_makefile_patch.patch52
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.1/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.1/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.1/sh-flags-off-by-one.patch21
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.90.0.3/300-001_ld_makefile_patch.patch52
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.90.0.3/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.90.0.3/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.90.0.3/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.90.0.3/sh-flags-off-by-one.patch21
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.5/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.5/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.5/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.5/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.6/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.6/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.6/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.6/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.7/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.7/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.7/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.7/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.16.91.0.7/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.10/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.10/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.10/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.10/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.2/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.3/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.3/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.3/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.3/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.3/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.4/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.4/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.4/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.4/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.4/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.5/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.5/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.5/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.5/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.5/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.6/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.6/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.6/300-006_better_file_error.patch43
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.6/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.6/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.7/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.7/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.7/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.7/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.8/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.8/400-makeinfo-version-check.patch12
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.9/110-arm-eabi-conf.patch24
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch50
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch47
-rw-r--r--misc/buildroot/toolchain/binutils/2.17.50.0.9/400-makeinfo-version-check.patch12
-rw-r--r--nuttx/arch/c5471/include/arch.h80
-rw-r--r--nuttx/arch/c5471/include/c5471/irq.h105
-rw-r--r--nuttx/arch/c5471/include/irq.h226
-rw-r--r--nuttx/arch/c5471/include/limits.h75
-rw-r--r--nuttx/arch/c5471/include/serial.h61
-rw-r--r--nuttx/arch/c5471/include/types.h82
-rw-r--r--nuttx/arch/c5471/include/watchdog.h63
-rw-r--r--nuttx/arch/c5471/src/Makefile125
-rw-r--r--nuttx/arch/c5471/src/c5471.h379
-rw-r--r--nuttx/arch/c5471/src/up_allocateheap.c78
-rw-r--r--nuttx/arch/c5471/src/up_assert.c200
-rw-r--r--nuttx/arch/c5471/src/up_blocktask.c168
-rw-r--r--nuttx/arch/c5471/src/up_copystate.c75
-rw-r--r--nuttx/arch/c5471/src/up_createstack.c127
-rw-r--r--nuttx/arch/c5471/src/up_dataabort.c68
-rw-r--r--nuttx/arch/c5471/src/up_delay.c102
-rw-r--r--nuttx/arch/c5471/src/up_doirq.c104
-rw-r--r--nuttx/arch/c5471/src/up_exit.c162
-rw-r--r--nuttx/arch/c5471/src/up_fullcontextrestore.S117
-rw-r--r--nuttx/arch/c5471/src/up_head.S162
-rw-r--r--nuttx/arch/c5471/src/up_idle.c87
-rw-r--r--nuttx/arch/c5471/src/up_initialize.c103
-rw-r--r--nuttx/arch/c5471/src/up_initialstate.c91
-rw-r--r--nuttx/arch/c5471/src/up_internal.h168
-rw-r--r--nuttx/arch/c5471/src/up_interruptcontext.c68
-rw-r--r--nuttx/arch/c5471/src/up_irq.c242
-rw-r--r--nuttx/arch/c5471/src/up_lowputc.S127
-rw-r--r--nuttx/arch/c5471/src/up_prefetchabort.c69
-rw-r--r--nuttx/arch/c5471/src/up_releasepending.c131
-rw-r--r--nuttx/arch/c5471/src/up_releasestack.c78
-rw-r--r--nuttx/arch/c5471/src/up_reprioritizertr.c179
-rw-r--r--nuttx/arch/c5471/src/up_saveusercontext.S119
-rw-r--r--nuttx/arch/c5471/src/up_schedulesigaction.c190
-rw-r--r--nuttx/arch/c5471/src/up_serial.c865
-rw-r--r--nuttx/arch/c5471/src/up_sigdeliver.c135
-rw-r--r--nuttx/arch/c5471/src/up_syscall.c82
-rw-r--r--nuttx/arch/c5471/src/up_timerisr.c125
-rw-r--r--nuttx/arch/c5471/src/up_unblocktask.c162
-rw-r--r--nuttx/arch/c5471/src/up_undefinedinsn.c68
-rw-r--r--nuttx/arch/c5471/src/up_usestack.c118
-rw-r--r--nuttx/arch/c5471/src/up_vectors.S449
-rw-r--r--nuttx/arch/c5471/src/up_watchdog.c392
-rw-r--r--nuttx/arch/dm320/include/arch.h80
-rw-r--r--nuttx/arch/dm320/include/dm320/irq.h134
-rw-r--r--nuttx/arch/dm320/include/irq.h226
-rw-r--r--nuttx/arch/dm320/include/limits.h75
-rw-r--r--nuttx/arch/dm320/include/serial.h61
-rw-r--r--nuttx/arch/dm320/include/types.h82
-rw-r--r--nuttx/arch/dm320/src/Makefile125
-rw-r--r--nuttx/arch/dm320/src/arm9.h256
-rw-r--r--nuttx/arch/dm320/src/dm320-gio.h175
-rw-r--r--nuttx/arch/dm320/src/dm320-intc.h105
-rw-r--r--nuttx/arch/dm320/src/dm320-memorymap.h222
-rw-r--r--nuttx/arch/dm320/src/dm320-timer.h112
-rw-r--r--nuttx/arch/dm320/src/dm320-uart.h172
-rw-r--r--nuttx/arch/dm320/src/dm320.h102
-rw-r--r--nuttx/arch/dm320/src/up_allocateheap.c78
-rw-r--r--nuttx/arch/dm320/src/up_assert.c215
-rw-r--r--nuttx/arch/dm320/src/up_blocktask.c168
-rw-r--r--nuttx/arch/dm320/src/up_boot.c227
-rw-r--r--nuttx/arch/dm320/src/up_cache.S74
-rw-r--r--nuttx/arch/dm320/src/up_copystate.c75
-rw-r--r--nuttx/arch/dm320/src/up_createstack.c126
-rw-r--r--nuttx/arch/dm320/src/up_dataabort.c81
-rw-r--r--nuttx/arch/dm320/src/up_delay.c102
-rw-r--r--nuttx/arch/dm320/src/up_doirq.c119
-rw-r--r--nuttx/arch/dm320/src/up_exit.c161
-rw-r--r--nuttx/arch/dm320/src/up_fullcontextrestore.S117
-rw-r--r--nuttx/arch/dm320/src/up_head.S324
-rw-r--r--nuttx/arch/dm320/src/up_idle.c87
-rw-r--r--nuttx/arch/dm320/src/up_initialize.c104
-rw-r--r--nuttx/arch/dm320/src/up_initialstate.c91
-rw-r--r--nuttx/arch/dm320/src/up_internal.h161
-rw-r--r--nuttx/arch/dm320/src/up_interruptcontext.c68
-rw-r--r--nuttx/arch/dm320/src/up_irq.c245
-rw-r--r--nuttx/arch/dm320/src/up_lowputc.S127
-rw-r--r--nuttx/arch/dm320/src/up_prefetchabort.c81
-rw-r--r--nuttx/arch/dm320/src/up_releasepending.c131
-rw-r--r--nuttx/arch/dm320/src/up_releasestack.c78
-rw-r--r--nuttx/arch/dm320/src/up_reprioritizertr.c179
-rw-r--r--nuttx/arch/dm320/src/up_restart.S136
-rw-r--r--nuttx/arch/dm320/src/up_saveusercontext.S119
-rw-r--r--nuttx/arch/dm320/src/up_schedulesigaction.c190
-rw-r--r--nuttx/arch/dm320/src/up_serial.c777
-rw-r--r--nuttx/arch/dm320/src/up_sigdeliver.c132
-rw-r--r--nuttx/arch/dm320/src/up_syscall.c94
-rw-r--r--nuttx/arch/dm320/src/up_timerisr.c153
-rw-r--r--nuttx/arch/dm320/src/up_unblocktask.c161
-rw-r--r--nuttx/arch/dm320/src/up_undefinedinsn.c79
-rw-r--r--nuttx/arch/dm320/src/up_usestack.c118
-rw-r--r--nuttx/arch/dm320/src/up_vectors.S457
-rwxr-xr-xnuttx/tools/zipme.sh26
183 files changed, 0 insertions, 55741 deletions
diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist
deleted file mode 100644
index 2921bffcd..000000000
--- a/CVSROOT/checkoutlist
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "checkoutlist" file is used to support additional version controlled
-# administrative files in $CVSROOT/CVSROOT, such as template files.
-#
-# The first entry on a line is a filename which will be checked out from
-# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
-# The remainder of the line is an error message to use if the file cannot
-# be checked out.
-#
-# File format:
-#
-# [<whitespace>]<filename>[<whitespace><error message>]<end-of-line>
-#
-# comment lines begin with '#'
diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo
deleted file mode 100644
index b19e7b7a6..000000000
--- a/CVSROOT/commitinfo
+++ /dev/null
@@ -1,15 +0,0 @@
-# The "commitinfo" file is used to control pre-commit checks.
-# The filter on the right is invoked with the repository and a list
-# of files to check. A non-zero exit of the filter program will
-# cause the commit to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT. For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/config b/CVSROOT/config
deleted file mode 100644
index 92c150bf7..000000000
--- a/CVSROOT/config
+++ /dev/null
@@ -1,21 +0,0 @@
-# Set this to "no" if pserver shouldn't check system users/passwords
-#SystemAuth=no
-
-# Put CVS lock files in this directory rather than directly in the repository.
-#LockDir=/var/lock/cvs
-
-# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
-# level of the new working directory when using the `cvs checkout'
-# command.
-#TopLevelAdmin=no
-
-# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
-# history file, or a subset as needed (ie `TMAR' logs all write operations)
-#LogHistory=TOEFWUPCGMAR
-
-# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
-# script to change the log message. Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra
-# second per directory being committed, so it is not recommended for large
-# repositories. Set it to `never' (the previous CVS behavior) to prevent
-# verifymsg scripts from changing the log message.
-#RereadLogAfterVerify=always
diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers
deleted file mode 100644
index e989b7545..000000000
--- a/CVSROOT/cvswrappers
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file affects handling of files based on their names.
-#
-# The -m option specifies whether CVS attempts to merge files.
-#
-# The -k option specifies keyword expansion (e.g. -kb for binary).
-#
-# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
-#
-# wildcard [option value][option value]...
-#
-# where option is one of
-# -f from cvs filter value: path to filter
-# -t to cvs filter value: path to filter
-# -m update methodology value: MERGE or COPY
-# -k expansion mode value: b, o, kkv, &c
-#
-# and value is a single-quote delimited value.
-# For example:
-#*.gif -k 'b'
diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo
deleted file mode 100644
index d78886c15..000000000
--- a/CVSROOT/editinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "editinfo" file is used to allow verification of logging
-# information. It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure. Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-# Making sure that the entered bug-id number is correct.
-# Validating that the code that was reviewed is indeed the code being
-# checked in (using the bug-id number or a seperate review
-# number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported. There can be only one entry that matches a given
-# repository.
diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo
deleted file mode 100644
index 537607daf..000000000
--- a/CVSROOT/loginfo
+++ /dev/null
@@ -1,27 +0,0 @@
-# The "loginfo" file controls where "cvs commit" log information
-# is sent. The first entry on a line is a regular expression which must match
-# the directory that the change is being made to, relative to the
-# $CVSROOT. If a match is found, then the remainder of the line is a filter
-# program that should expect log information on its standard input.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name ALL appears as a regular expression it is always used
-# in addition to the first matching regex or DEFAULT.
-#
-# You may specify a format string as part of the
-# filter. The string is composed of a `%' followed
-# by a single format character, or followed by a set of format
-# characters surrounded by `{' and `}' as separators. The format
-# characters are:
-#
-# s = file name
-# V = old version number (pre-checkin)
-# v = new version number (post-checkin)
-# t = tag or branch name
-#
-# For example:
-#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
-# or
-#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
diff --git a/CVSROOT/modules b/CVSROOT/modules
deleted file mode 100644
index cb9e9efc9..000000000
--- a/CVSROOT/modules
+++ /dev/null
@@ -1,26 +0,0 @@
-# Three different line formats are valid:
-# key -a aliases...
-# key [options] directory
-# key [options] directory files...
-#
-# Where "options" are composed of:
-# -i prog Run "prog" on "cvs commit" from top-level of module.
-# -o prog Run "prog" on "cvs checkout" of module.
-# -e prog Run "prog" on "cvs export" of module.
-# -t prog Run "prog" on "cvs rtag" of module.
-# -u prog Run "prog" on "cvs update" of module.
-# -d dir Place module in directory "dir" instead of module name.
-# -l Top-level directory only -- do not recurse.
-#
-# NOTE: If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias. An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module. This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.
diff --git a/CVSROOT/notify b/CVSROOT/notify
deleted file mode 100644
index 74ae6f9e9..000000000
--- a/CVSROOT/notify
+++ /dev/null
@@ -1,12 +0,0 @@
-# The "notify" file controls where notifications from watches set by
-# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
-# a regular expression which is tested against the directory that the
-# change is being made to, relative to the $CVSROOT. If it matches,
-# then the remainder of the line is a filter program that should contain
-# one occurrence of %s for the user to notify, and information on its
-# standard input.
-#
-# "ALL" or "DEFAULT" can be used in place of the regular expression.
-#
-# For example:
-#ALL mail -s "CVS notification" %s
diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo
deleted file mode 100644
index 49e59f4d0..000000000
--- a/CVSROOT/rcsinfo
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "rcsinfo" file is used to control templates with which the editor
-# is invoked on commit and import.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being made to, relative to the
-# $CVSROOT. For the first match that is found, then the remainder of the
-# line is the name of the file that contains the template.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo
deleted file mode 100644
index 274a46dd5..000000000
--- a/CVSROOT/taginfo
+++ /dev/null
@@ -1,20 +0,0 @@
-# The "taginfo" file is used to control pre-tag checks.
-# The filter on the right is invoked with the following arguments:
-#
-# $1 -- tagname
-# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
-# $3 -- repository
-# $4-> file revision [file revision ...]
-#
-# A non-zero exit of the filter program will cause the tag to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT. For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg
deleted file mode 100644
index 86f747ce2..000000000
--- a/CVSROOT/verifymsg
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "verifymsg" file is used to allow verification of logging
-# information. It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure. Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-# Making sure that the entered bug-id number is correct.
-# Validating that the code that was reviewed is indeed the code being
-# checked in (using the bug-id number or a seperate review
-# number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported. There can be only one entry that matches a given
-# repository.
diff --git a/misc/buildroot/toolchain/binutils/2.14.90.0.8/001-debian.patch b/misc/buildroot/toolchain/binutils/2.14.90.0.8/001-debian.patch
deleted file mode 100644
index 780823542..000000000
--- a/misc/buildroot/toolchain/binutils/2.14.90.0.8/001-debian.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-diff -urN binutils-2.14.90.0.8-dist/bfd/elf64-alpha.c binutils-2.14.90.0.8/bfd/elf64-alpha.c
---- binutils-2.14.90.0.8-dist/bfd/elf64-alpha.c 2004-01-14 15:07:43.000000000 -0600
-+++ binutils-2.14.90.0.8/bfd/elf64-alpha.c 2004-02-11 03:42:05.000000000 -0600
-@@ -4144,9 +4144,12 @@
-
- loc = srel->contents;
- loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
-- bfd_elf64_swap_reloca_out (abfd, &outrel, loc);
-- BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
-- <= srel->_cooked_size);
-+ if (loc)
-+ {
-+ bfd_elf64_swap_reloca_out (abfd, &outrel, loc);
-+ BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
-+ <= srel->_cooked_size);
-+ }
- }
-
- /* Relocate an Alpha ELF section for a relocatable link.
-diff -urN binutils-2.14.90.0.8-dist/bfd/opncls.c binutils-2.14.90.0.8/bfd/opncls.c
---- binutils-2.14.90.0.8-dist/bfd/opncls.c 2004-01-14 15:07:43.000000000 -0600
-+++ binutils-2.14.90.0.8/bfd/opncls.c 2004-02-11 03:42:01.000000000 -0600
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
-diff -urN binutils-2.14.90.0.8-dist/gprof/gprof.texi binutils-2.14.90.0.8/gprof/gprof.texi
---- binutils-2.14.90.0.8-dist/gprof/gprof.texi 2004-01-14 15:07:51.000000000 -0600
-+++ binutils-2.14.90.0.8/gprof/gprof.texi 2004-02-11 03:42:01.000000000 -0600
-@@ -138,6 +138,10 @@
- If more than one profile file is specified, the @code{gprof}
- output shows the sum of the profile information in the given profile files.
-
-+If you use gcc 2.95.x or 3.0 to compile your binaries, you may need
-+to add the @samp{-fprofile-arcs} to the compile command line in order
-+for the call graphs to be properly stored in gmon.out.
-+
- @code{Gprof} calculates the amount of time spent in each routine.
- Next, these times are propagated along the edges of the call graph.
- Cycles are discovered, and calls into a cycle are made to share the time
-@@ -182,7 +186,7 @@
- @c man end
-
- @c man begin SEEALSO
--monitor(3), profil(2), cc(1), prof(1), and the Info entry for @file{gprof}.
-+profil(2), cc(1), prof(1), and the Info entry for @file{gprof}.
-
- ``An Execution Profiler for Modular Programs'',
- by S. Graham, P. Kessler, M. McKusick;
-@@ -268,6 +272,11 @@
- options. The same option, @samp{-pg}, alters either compilation or linking
- to do what is necessary for profiling. Here are examples:
-
-+If you use gcc 2.95.x or 3.0.x, you may need to add the
-+@samp{-fprofile-arcs} option to the compile line along with @samp{-pg}
-+in order to allow the call-graphs to be properly included in the gmon.out
-+file.
-+
- @example
- cc -g -c myprog.c utils.c -pg
- cc -o myprog myprog.o utils.o -pg
-diff -urN binutils-2.14.90.0.8-dist/ld/Makefile.am binutils-2.14.90.0.8/ld/Makefile.am
---- binutils-2.14.90.0.8-dist/ld/Makefile.am 2004-01-14 15:07:52.000000000 -0600
-+++ binutils-2.14.90.0.8/ld/Makefile.am 2004-02-11 03:42:01.000000000 -0600
-@@ -19,7 +19,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -urN binutils-2.14.90.0.8-dist/ld/Makefile.in binutils-2.14.90.0.8/ld/Makefile.in
---- binutils-2.14.90.0.8-dist/ld/Makefile.in 2004-01-14 15:07:52.000000000 -0600
-+++ binutils-2.14.90.0.8/ld/Makefile.in 2004-02-11 03:42:01.000000000 -0600
-@@ -128,7 +128,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -urN binutils-2.14.90.0.8-dist/ld/emultempl/elf32.em binutils-2.14.90.0.8/ld/emultempl/elf32.em
---- binutils-2.14.90.0.8-dist/ld/emultempl/elf32.em 2004-01-14 15:07:53.000000000 -0600
-+++ binutils-2.14.90.0.8/ld/emultempl/elf32.em 2004-02-11 03:42:01.000000000 -0600
-@@ -671,6 +671,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, l->name,
- force))
- break;
-@@ -850,6 +852,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf${ELFSIZE}_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
-diff -urN binutils-2.14.90.0.8-dist/ltmain.sh binutils-2.14.90.0.8/ltmain.sh
---- binutils-2.14.90.0.8-dist/ltmain.sh 2002-03-22 16:06:16.000000000 -0600
-+++ binutils-2.14.90.0.8/ltmain.sh 2004-02-11 03:42:05.000000000 -0600
-@@ -4413,6 +4413,10 @@
- # LD_LIBRARY_PATH before the program is installed.
- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-+ if test -n "$linkname"; then
-+ $show "(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)"
-+ $run eval '(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)' || exit $?
-+ fi
- ;;
- esac
- exit 0
-diff -urN binutils-2.14.90.0.8-dist/opcodes/i386-dis.c binutils-2.14.90.0.8/opcodes/i386-dis.c
---- binutils-2.14.90.0.8-dist/opcodes/i386-dis.c 2004-01-14 15:07:55.000000000 -0600
-+++ binutils-2.14.90.0.8/opcodes/i386-dis.c 2004-02-11 03:42:01.000000000 -0600
-@@ -1879,7 +1879,7 @@
- * The function returns the length of this instruction in bytes.
- */
-
--static char intel_syntax;
-+static signed char intel_syntax;
- static char open_char;
- static char close_char;
- static char separator_char;
diff --git a/misc/buildroot/toolchain/binutils/2.14.90.0.8/210-cflags.patch b/misc/buildroot/toolchain/binutils/2.14.90.0.8/210-cflags.patch
deleted file mode 100644
index dc67d3c4e..000000000
--- a/misc/buildroot/toolchain/binutils/2.14.90.0.8/210-cflags.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am
---- binutils-2.14.90.0.6/bfd/doc/Makefile.am 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am 2004-03-01 16:05:16.000000000 -0600
-@@ -55,10 +55,10 @@
- MKDOC = chew$(EXEEXT_FOR_BUILD)
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in
---- binutils-2.14.90.0.6/bfd/doc/Makefile.in 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in 2004-03-01 16:05:03.000000000 -0600
-@@ -469,10 +469,10 @@
-
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
diff --git a/misc/buildroot/toolchain/binutils/2.14.90.0.8/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.14.90.0.8/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index e07a7e8ce..000000000
--- a/misc/buildroot/toolchain/binutils/2.14.90.0.8/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1611,7 +1611,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -1976,7 +1976,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.14.90.0.8/600-arm-textrel.patch b/misc/buildroot/toolchain/binutils/2.14.90.0.8/600-arm-textrel.patch
deleted file mode 100644
index 73d5b9df8..000000000
--- a/misc/buildroot/toolchain/binutils/2.14.90.0.8/600-arm-textrel.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-http://sources.redhat.com/ml/binutils/2004-06/msg00010.html
---- binutils-2.15.90.0.3-old/bfd/elf32-arm.h 2004-04-12 14:56:33.000000000 -0500
-+++ binutils-2.15.90.0.3/bfd/elf32-arm.h 2004-09-03 06:56:40.000000000 -0500
-@@ -87,6 +87,8 @@
- #endif
- static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *h, PTR inf));
-+static bfd_boolean elf32_arm_readonly_dynrelocs
-+ PARAMS ((struct elf_link_hash_entry *, PTR));
- static bfd_boolean create_got_section
- PARAMS ((bfd * dynobj, struct bfd_link_info * info));
- static bfd_boolean elf32_arm_create_dynamic_sections
-@@ -3531,6 +3533,37 @@
- return TRUE;
- }
-
-+/* Find any dynamic relocs that apply to read-only sections. */
-+
-+static bfd_boolean
-+elf32_arm_readonly_dynrelocs (h, inf)
-+ struct elf_link_hash_entry *h;
-+ PTR inf;
-+{
-+ struct elf32_arm_link_hash_entry *eh;
-+ struct elf32_arm_relocs_copied *p;
-+
-+ if (h->root.type == bfd_link_hash_warning)
-+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+
-+ eh = (struct elf32_arm_link_hash_entry *) h;
-+ for (p = eh->relocs_copied; p != NULL; p = p->next)
-+ {
-+ asection *s = p->section;
-+
-+ if (s != NULL && (s->flags & SEC_READONLY) != 0)
-+ {
-+ struct bfd_link_info *info = (struct bfd_link_info *) inf;
-+
-+ info->flags |= DF_TEXTREL;
-+
-+ /* Not an error, just cut short the traversal. */
-+ return FALSE;
-+ }
-+ }
-+ return TRUE;
-+}
-+
- /* Set the sizes of the dynamic sections. */
-
- static bfd_boolean
-@@ -3740,6 +3773,12 @@
- return FALSE;
- }
-
-+ /* If any dynamic relocs apply to a read-only section,
-+ then we need a DT_TEXTREL entry. */
-+ if ((info->flags & DF_TEXTREL) == 0)
-+ elf_link_hash_traverse (&htab->root, elf32_arm_readonly_dynrelocs,
-+ (PTR) info);
-+
- if ((info->flags & DF_TEXTREL) != 0)
- {
- if (!add_dynamic_entry (DT_TEXTREL, 0))
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/210-cflags.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/210-cflags.patch
deleted file mode 100644
index dc67d3c4e..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/210-cflags.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am
---- binutils-2.14.90.0.6/bfd/doc/Makefile.am 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am 2004-03-01 16:05:16.000000000 -0600
-@@ -55,10 +55,10 @@
- MKDOC = chew$(EXEEXT_FOR_BUILD)
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in
---- binutils-2.14.90.0.6/bfd/doc/Makefile.in 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in 2004-03-01 16:05:03.000000000 -0600
-@@ -469,10 +469,10 @@
-
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch
deleted file mode 100644
index b25d5b7e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am binutils-2.14.90.0.6/ld/Makefile.am
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.am 2003-09-10 23:12:09.000000000 +0100
-@@ -19,7 +19,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in binutils-2.14.90.0.6/ld/Makefile.in
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.in 2003-09-10 23:12:09.000000000 +0100
-@@ -128,7 +128,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch
deleted file mode 100644
index ae2033d06..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /bin/sh -e
-## 120_mips_xgot_multigot_workaround.dpatch
-##
-## DP: Description: Make multigot/xgot handling mutually exclusive.
-## DP: Author: Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-## DP: Upstream status: Not submitted
-## DP: Date: 2004-09-17
-
-if [ $# -lt 1 ]; then
- echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
-
-case "$1" in
- -patch) patch -p1 ${patch_opts} < $0;;
- -unpatch) patch -R -p1 ${patch_opts} < $0;;
- *)
- echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.15/bfd/elfxx-mips.c binutils-2.15/bfd/elfxx-mips.c
---- /home/james/debian/packages/binutils/binutils-2.15/bfd/elfxx-mips.c 2004-09-23 22:41:37.156466673 +0100
-+++ binutils-2.15/bfd/elfxx-mips.c 2004-09-23 22:42:15.998362861 +0100
-@@ -5883,6 +5883,8 @@
- s->size += i * MIPS_ELF_GOT_SIZE (output_bfd);
-
- if (s->size > MIPS_ELF_GOT_MAX_SIZE (output_bfd)
-+ && g->global_gotno <= (MIPS_ELF_GOT_MAX_SIZE (output_bfd)
-+ / MIPS_ELF_GOT_SIZE (output_bfd))
- && ! mips_elf_multi_got (output_bfd, info, g, s, local_gotno))
- return FALSE;
-
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index e07a7e8ce..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1611,7 +1611,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -1976,7 +1976,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/sh-flags-off-by-one.patch b/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/sh-flags-off-by-one.patch
deleted file mode 100644
index 19a2f54ca..000000000
--- a/misc/buildroot/toolchain/binutils/2.15.94.0.2.2/sh-flags-off-by-one.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-2005-08-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-
- * elf32-sh.c (sh_elf_get_flags_from_mach): Fix off-by-one error.
-
-Index: bfd/elf32-sh.c
-===================================================================
-RCS file: /cvs/src/src/bfd/elf32-sh.c,v
-retrieving revision 1.128
-retrieving revision 1.129
-diff -u -p -r1.128 -r1.129
---- binutils/bfd/elf32-sh.c 25 Aug 2005 02:32:10 -0000 1.128
-+++ binutils/bfd/elf32-sh.c 25 Aug 2005 05:10:22 -0000 1.129
-@@ -6655,7 +6655,7 @@ sh_elf_set_mach_from_flags (bfd *abfd)
- int
- sh_elf_get_flags_from_mach (unsigned long mach)
- {
-- int i = ARRAY_SIZE (sh_ef_bfd_table);
-+ int i = ARRAY_SIZE (sh_ef_bfd_table) - 1;
-
- for (; i>0; i--)
- if (sh_ef_bfd_table[i] == mach)
diff --git a/misc/buildroot/toolchain/binutils/2.15/210-cflags.patch b/misc/buildroot/toolchain/binutils/2.15/210-cflags.patch
deleted file mode 100644
index dc67d3c4e..000000000
--- a/misc/buildroot/toolchain/binutils/2.15/210-cflags.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am
---- binutils-2.14.90.0.6/bfd/doc/Makefile.am 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am 2004-03-01 16:05:16.000000000 -0600
-@@ -55,10 +55,10 @@
- MKDOC = chew$(EXEEXT_FOR_BUILD)
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
-diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in
---- binutils-2.14.90.0.6/bfd/doc/Makefile.in 2003-07-23 10:08:09.000000000 -0500
-+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in 2004-03-01 16:05:03.000000000 -0600
-@@ -469,10 +469,10 @@
-
-
- $(MKDOC): chew.o
-- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
-+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
-
- chew.o: chew.c
-- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
-+ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
-
- protos: libbfd.h libcoff.h bfd.h
-
diff --git a/misc/buildroot/toolchain/binutils/2.15/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.15/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index e07a7e8ce..000000000
--- a/misc/buildroot/toolchain/binutils/2.15/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1611,7 +1611,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -1976,7 +1976,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.15/600-arm-textrel.patch b/misc/buildroot/toolchain/binutils/2.15/600-arm-textrel.patch
deleted file mode 100644
index 73d5b9df8..000000000
--- a/misc/buildroot/toolchain/binutils/2.15/600-arm-textrel.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-http://sources.redhat.com/ml/binutils/2004-06/msg00010.html
---- binutils-2.15.90.0.3-old/bfd/elf32-arm.h 2004-04-12 14:56:33.000000000 -0500
-+++ binutils-2.15.90.0.3/bfd/elf32-arm.h 2004-09-03 06:56:40.000000000 -0500
-@@ -87,6 +87,8 @@
- #endif
- static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *h, PTR inf));
-+static bfd_boolean elf32_arm_readonly_dynrelocs
-+ PARAMS ((struct elf_link_hash_entry *, PTR));
- static bfd_boolean create_got_section
- PARAMS ((bfd * dynobj, struct bfd_link_info * info));
- static bfd_boolean elf32_arm_create_dynamic_sections
-@@ -3531,6 +3533,37 @@
- return TRUE;
- }
-
-+/* Find any dynamic relocs that apply to read-only sections. */
-+
-+static bfd_boolean
-+elf32_arm_readonly_dynrelocs (h, inf)
-+ struct elf_link_hash_entry *h;
-+ PTR inf;
-+{
-+ struct elf32_arm_link_hash_entry *eh;
-+ struct elf32_arm_relocs_copied *p;
-+
-+ if (h->root.type == bfd_link_hash_warning)
-+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+
-+ eh = (struct elf32_arm_link_hash_entry *) h;
-+ for (p = eh->relocs_copied; p != NULL; p = p->next)
-+ {
-+ asection *s = p->section;
-+
-+ if (s != NULL && (s->flags & SEC_READONLY) != 0)
-+ {
-+ struct bfd_link_info *info = (struct bfd_link_info *) inf;
-+
-+ info->flags |= DF_TEXTREL;
-+
-+ /* Not an error, just cut short the traversal. */
-+ return FALSE;
-+ }
-+ }
-+ return TRUE;
-+}
-+
- /* Set the sizes of the dynamic sections. */
-
- static bfd_boolean
-@@ -3740,6 +3773,12 @@
- return FALSE;
- }
-
-+ /* If any dynamic relocs apply to a read-only section,
-+ then we need a DT_TEXTREL entry. */
-+ if ((info->flags & DF_TEXTREL) == 0)
-+ elf_link_hash_traverse (&htab->root, elf32_arm_readonly_dynrelocs,
-+ (PTR) info);
-+
- if ((info->flags & DF_TEXTREL) != 0)
- {
- if (!add_dynamic_entry (DT_TEXTREL, 0))
diff --git a/misc/buildroot/toolchain/binutils/2.15/700-nios2-2.15.patch b/misc/buildroot/toolchain/binutils/2.15/700-nios2-2.15.patch
deleted file mode 100644
index 42655f306..000000000
--- a/misc/buildroot/toolchain/binutils/2.15/700-nios2-2.15.patch
+++ /dev/null
@@ -1,38356 +0,0 @@
---- binutils-2.15/bfd/Makefile.am 2004-05-17 21:35:56.000000000 +0200
-+++ binutils-2.15-nios2/bfd/Makefile.am 2005-05-17 12:20:13.000000000 +0200
-@@ -82,6 +82,7 @@ ALL_MACHINES = \
- cpu-mips.lo \
- cpu-mmix.lo \
- cpu-msp430.lo \
-+ cpu-nios2.lo \
- cpu-or32.lo \
- cpu-ns32k.lo \
- cpu-openrisc.lo \
-@@ -139,6 +140,7 @@ ALL_MACHINES_CFILES = \
- cpu-msp430.c \
- cpu-or32.c \
- cpu-ns32k.c \
-+ cpu-nios2.c \
- cpu-openrisc.c \
- cpu-pdp11.c \
- cpu-pj.c \
-@@ -241,6 +243,7 @@ BFD32_BACKENDS = \
- elfxx-mips.lo \
- elf32-mips.lo \
- elf32-msp430.lo \
-+ elf32-nios2.lo \
- elf32-openrisc.lo \
- elf32-or32.lo \
- elf32-pj.lo \
-@@ -405,6 +408,7 @@ BFD32_BACKENDS_CFILES = \
- elfxx-mips.c \
- elf32-mips.c \
- elf32-msp430.c \
-+ elf32-nios2.c \
- elf32-openrisc.c \
- elf32-or32.c \
- elf32-pj.c \
-@@ -943,6 +947,7 @@ cpu-mcore.lo: cpu-mcore.c $(INCDIR)/file
- cpu-mips.lo: cpu-mips.c $(INCDIR)/filenames.h
- cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filenames.h
- cpu-msp430.lo: cpu-msp430.c $(INCDIR)/filenames.h
-+cpu-nios2.lo: cpu-nios2.c $(INCDIR)/filenames.h
- cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h
- cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h
- cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h
-@@ -1250,6 +1255,10 @@ elf32-msp430.lo: elf32-msp430.c $(INCDIR
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
- $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
- elf32-target.h
-+elf32-nios2.lo: elf32-nios2.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
-+ genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-+ $(INCDIR)/elf/external.h $(INCDIR)/elf/nios2.h \
-+ $(INCDIR)/elf/reloc-macros.h elf32-target.h
- elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
- elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
- $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
---- binutils-2.15/bfd/Makefile.in 2004-05-17 21:35:56.000000000 +0200
-+++ binutils-2.15-nios2/bfd/Makefile.in 2005-05-17 12:20:13.000000000 +0200
-@@ -210,6 +210,7 @@ ALL_MACHINES = \
- cpu-mips.lo \
- cpu-mmix.lo \
- cpu-msp430.lo \
-+ cpu-nios2.lo \
- cpu-or32.lo \
- cpu-ns32k.lo \
- cpu-openrisc.lo \
-@@ -267,6 +268,7 @@ ALL_MACHINES_CFILES = \
- cpu-mmix.c \
- cpu-msp430.c \
- cpu-or32.c \
-+ cpu-nios2.c \
- cpu-ns32k.c \
- cpu-openrisc.c \
- cpu-pdp11.c \
-@@ -371,6 +373,7 @@ BFD32_BACKENDS = \
- elfxx-mips.lo \
- elf32-mips.lo \
- elf32-msp430.lo \
-+ elf32-nios2.lo \
- elf32-openrisc.lo \
- elf32-or32.lo \
- elf32-pj.lo \
-@@ -536,6 +539,7 @@ BFD32_BACKENDS_CFILES = \
- elfxx-mips.c \
- elf32-mips.c \
- elf32-msp430.c \
-+ elf32-nios2.c \
- elf32-openrisc.c \
- elf32-or32.c \
- elf32-pj.c \
-@@ -1482,6 +1486,7 @@ cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filena
- cpu-msp430.lo: cpu-msp430.c $(INCDIR)/filenames.h
- cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h
- cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h
-+cpu-nios2.lo: cpu-nios2.c $(INCDIR)/filenames.h
- cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h
- cpu-pdp11.lo: cpu-pdp11.c $(INCDIR)/filenames.h
- cpu-pj.lo: cpu-pj.c $(INCDIR)/filenames.h
-@@ -1787,6 +1792,10 @@ elf32-msp430.lo: elf32-msp430.c $(INCDIR
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
- $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
- elf32-target.h
-+elf32-nios2.lo: elf32-nios2.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
-+ genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-+ $(INCDIR)/elf/external.h $(INCDIR)/elf/nios2.h \
-+ $(INCDIR)/elf/reloc-macros.h elf32-target.h
- elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
- elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
- $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
---- binutils-2.15/bfd/archures.c 2003-12-03 18:38:48.000000000 +0100
-+++ binutils-2.15-nios2/bfd/archures.c 2005-05-17 12:20:13.000000000 +0200
-@@ -330,6 +330,8 @@ DESCRIPTION
- .#define bfd_mach_msp44 44
- . bfd_arch_xtensa, {* Tensilica's Xtensa cores. *}
- .#define bfd_mach_xtensa 1
-+. bfd_arch_nios2,
-+.#define bfd_mach_nios2 1
- . bfd_arch_last
- . };
- */
-@@ -422,6 +424,7 @@ extern const bfd_arch_info_type bfd_w65_
- extern const bfd_arch_info_type bfd_xstormy16_arch;
- extern const bfd_arch_info_type bfd_xtensa_arch;
- extern const bfd_arch_info_type bfd_z8k_arch;
-+extern const bfd_arch_info_type bfd_nios2_arch;
-
- static const bfd_arch_info_type * const bfd_archures_list[] =
- {
-@@ -460,6 +463,7 @@ static const bfd_arch_info_type * const
- &bfd_mn10200_arch,
- &bfd_mn10300_arch,
- &bfd_msp430_arch,
-+ &bfd_nios2_arch,
- &bfd_ns32k_arch,
- &bfd_openrisc_arch,
- &bfd_or32_arch,
---- binutils-2.15/bfd/bfd-in2.h 2004-05-17 21:35:56.000000000 +0200
-+++ binutils-2.15-nios2/bfd/bfd-in2.h 2005-05-17 12:20:13.000000000 +0200
-@@ -830,37 +830,48 @@ extern void bfd_elf64_ia64_after_parse
- (int);
-
- /* Extracted from init.c. */
--void bfd_init (void);
-+void
-+bfd_init PARAMS ((void));
-
- /* Extracted from opncls.c. */
--bfd *bfd_openr (const char *filename, const char *target);
-+bfd *
-+bfd_openr PARAMS ((const char *filename, const char *target));
-
--bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
-+bfd *
-+bfd_fdopenr PARAMS ((const char *filename, const char *target, int fd));
-
--bfd *bfd_openstreamr (const char *, const char *, void *);
-+bfd *
-+bfd_openstreamr PARAMS ((const char *, const char *, void *));
-
--bfd *bfd_openw (const char *filename, const char *target);
-+bfd *
-+bfd_openw PARAMS ((const char *filename, const char *target));
-
--bfd_boolean bfd_close (bfd *abfd);
-+bfd_boolean
-+bfd_close PARAMS ((bfd *abfd));
-
--bfd_boolean bfd_close_all_done (bfd *);
-+bfd_boolean
-+bfd_close_all_done PARAMS ((bfd *));
-
--bfd *bfd_create (const char *filename, bfd *templ);
-+bfd *
-+bfd_create PARAMS ((const char *filename, bfd *templ));
-
--bfd_boolean bfd_make_writable (bfd *abfd);
-+bfd_boolean
-+bfd_make_writable PARAMS ((bfd *abfd));
-
--bfd_boolean bfd_make_readable (bfd *abfd);
-+bfd_boolean
-+bfd_make_readable PARAMS ((bfd *abfd));
-
--unsigned long bfd_calc_gnu_debuglink_crc32
-- (unsigned long crc, const unsigned char *buf, bfd_size_type len);
-+unsigned long
-+bfd_calc_gnu_debuglink_crc32 PARAMS ((unsigned long crc, const unsigned char *buf, bfd_size_type len));
-
--char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
-+char *
-+bfd_follow_gnu_debuglink PARAMS ((bfd *abfd, const char *dir));
-
--struct bfd_section *bfd_create_gnu_debuglink_section
-- (bfd *abfd, const char *filename);
-+struct bfd_section *
-+bfd_create_gnu_debuglink_section PARAMS ((bfd *abfd, const char *filename));
-
--bfd_boolean bfd_fill_in_gnu_debuglink_section
-- (bfd *abfd, struct bfd_section *sect, const char *filename);
-+bfd_boolean
-+bfd_fill_in_gnu_debuglink_section PARAMS ((bfd *abfd, struct bfd_section *sect, const char *filename));
-
- /* Extracted from libbfd.c. */
-
-@@ -976,9 +987,11 @@ bfd_boolean bfd_fill_in_gnu_debuglink_se
-
-
- /* Extracted from bfdio.c. */
--long bfd_get_mtime (bfd *abfd);
-+long
-+bfd_get_mtime PARAMS ((bfd *abfd));
-
--long bfd_get_size (bfd *abfd);
-+long
-+bfd_get_size PARAMS ((bfd *abfd));
-
- /* Extracted from bfdwin.c. */
- /* Extracted from section.c. */
-@@ -1421,48 +1434,54 @@ extern const struct bfd_symbol * const b
- } \
- while (0)
-
--void bfd_section_list_clear (bfd *);
-+void
-+bfd_section_list_clear PARAMS ((bfd *));
-
--asection *bfd_get_section_by_name (bfd *abfd, const char *name);
-+asection *
-+bfd_get_section_by_name PARAMS ((bfd *abfd, const char *name));
-
--char *bfd_get_unique_section_name
-- (bfd *abfd, const char *templat, int *count);
-+char *
-+bfd_get_unique_section_name PARAMS ((bfd *abfd, const char *templat, int *count));
-
--asection *bfd_make_section_old_way (bfd *abfd, const char *name);
-+asection *
-+bfd_make_section_old_way PARAMS ((bfd *abfd, const char *name));
-
--asection *bfd_make_section_anyway (bfd *abfd, const char *name);
-+asection *
-+bfd_make_section_anyway PARAMS ((bfd *abfd, const char *name));
-
--asection *bfd_make_section (bfd *, const char *name);
-+asection *
-+bfd_make_section PARAMS ((bfd *, const char *name));
-
--bfd_boolean bfd_set_section_flags
-- (bfd *abfd, asection *sec, flagword flags);
-+bfd_boolean
-+bfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags));
-
--void bfd_map_over_sections
-- (bfd *abfd,
-+void
-+bfd_map_over_sections PARAMS ((bfd *abfd,
- void (*func) (bfd *abfd, asection *sect, void *obj),
-- void *obj);
-+ void *obj));
-
--bfd_boolean bfd_set_section_size
-- (bfd *abfd, asection *sec, bfd_size_type val);
-+bfd_boolean
-+bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val));
-
--bfd_boolean bfd_set_section_contents
-- (bfd *abfd, asection *section, const void *data,
-- file_ptr offset, bfd_size_type count);
-+bfd_boolean
-+bfd_set_section_contents PARAMS ((bfd *abfd, asection *section, const void *data,
-+ file_ptr offset, bfd_size_type count));
-
--bfd_boolean bfd_get_section_contents
-- (bfd *abfd, asection *section, void *location, file_ptr offset,
-- bfd_size_type count);
-+bfd_boolean
-+bfd_get_section_contents PARAMS ((bfd *abfd, asection *section, void *location, file_ptr offset,
-+ bfd_size_type count));
-
--bfd_boolean bfd_copy_private_section_data
-- (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
-+bfd_boolean
-+bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, bfd *obfd, asection *osec));
-
- #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
- BFD_SEND (obfd, _bfd_copy_private_section_data, \
- (ibfd, isection, obfd, osection))
--void _bfd_strip_section_from_output
-- (struct bfd_link_info *info, asection *section);
-+void
-+_bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section));
-
--bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
-+bfd_boolean
-+bfd_generic_discard_group PARAMS ((bfd *abfd, asection *group));
-
- /* Extracted from archures.c. */
- enum bfd_architecture
-@@ -1728,6 +1747,8 @@ enum bfd_architecture
- #define bfd_mach_msp44 44
- bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
- #define bfd_mach_xtensa 1
-+ bfd_arch_nios2,
-+#define bfd_mach_nios2 1
- bfd_arch_last
- };
-
-@@ -1754,37 +1775,47 @@ typedef struct bfd_arch_info
- }
- bfd_arch_info_type;
-
--const char *bfd_printable_name (bfd *abfd);
-+const char *
-+bfd_printable_name PARAMS ((bfd *abfd));
-
--const bfd_arch_info_type *bfd_scan_arch (const char *string);
-+const bfd_arch_info_type *
-+bfd_scan_arch PARAMS ((const char *string));
-
--const char **bfd_arch_list (void);
-+const char **
-+bfd_arch_list PARAMS ((void));
-
--const bfd_arch_info_type *bfd_arch_get_compatible
-- (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
-+const bfd_arch_info_type *
-+bfd_arch_get_compatible PARAMS ((const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns));
-
--void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
-+void
-+bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg));
-
--enum bfd_architecture bfd_get_arch (bfd *abfd);
-+enum bfd_architecture
-+bfd_get_arch PARAMS ((bfd *abfd));
-
--unsigned long bfd_get_mach (bfd *abfd);
-+unsigned long
-+bfd_get_mach PARAMS ((bfd *abfd));
-
--unsigned int bfd_arch_bits_per_byte (bfd *abfd);
-+unsigned int
-+bfd_arch_bits_per_byte PARAMS ((bfd *abfd));
-
--unsigned int bfd_arch_bits_per_address (bfd *abfd);
-+unsigned int
-+bfd_arch_bits_per_address PARAMS ((bfd *abfd));
-
--const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
-+const bfd_arch_info_type *
-+bfd_get_arch_info PARAMS ((bfd *abfd));
-
--const bfd_arch_info_type *bfd_lookup_arch
-- (enum bfd_architecture arch, unsigned long machine);
-+const bfd_arch_info_type *
-+bfd_lookup_arch PARAMS ((enum bfd_architecture arch, unsigned long machine));
-
--const char *bfd_printable_arch_mach
-- (enum bfd_architecture arch, unsigned long machine);
-+const char *
-+bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine));
-
--unsigned int bfd_octets_per_byte (bfd *abfd);
-+unsigned int
-+bfd_octets_per_byte PARAMS ((bfd *abfd));
-
--unsigned int bfd_arch_mach_octets_per_byte
-- (enum bfd_architecture arch, unsigned long machine);
-+unsigned int
-+bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch, unsigned long machine));
-
- /* Extracted from reloc.c. */
- typedef enum bfd_reloc_status
-@@ -1967,7 +1998,8 @@ struct reloc_howto_struct
- } \
- }
-
--unsigned int bfd_get_reloc_size (reloc_howto_type *);
-+unsigned int
-+bfd_get_reloc_size PARAMS ((reloc_howto_type *));
-
- typedef struct relent_chain
- {
-@@ -1976,27 +2008,27 @@ typedef struct relent_chain
- }
- arelent_chain;
-
--bfd_reloc_status_type bfd_check_overflow
-- (enum complain_overflow how,
-+bfd_reloc_status_type
-+bfd_check_overflow PARAMS ((enum complain_overflow how,
- unsigned int bitsize,
- unsigned int rightshift,
- unsigned int addrsize,
-- bfd_vma relocation);
-+ bfd_vma relocation));
-
--bfd_reloc_status_type bfd_perform_relocation
-- (bfd *abfd,
-+bfd_reloc_status_type
-+bfd_perform_relocation PARAMS ((bfd *abfd,
- arelent *reloc_entry,
- void *data,
- asection *input_section,
- bfd *output_bfd,
-- char **error_message);
-+ char **error_message));
-
--bfd_reloc_status_type bfd_install_relocation
-- (bfd *abfd,
-+bfd_reloc_status_type
-+bfd_install_relocation PARAMS ((bfd *abfd,
- arelent *reloc_entry,
- void *data, bfd_vma data_start,
- asection *input_section,
-- char **error_message);
-+ char **error_message));
-
- enum bfd_reloc_code_real {
- _dummy_first_bfd_reloc_code_real,
-@@ -3439,6 +3471,23 @@ This is the 5 bits of a value. */
- BFD_RELOC_MSP430_16_PCREL_BYTE,
- BFD_RELOC_MSP430_16_BYTE,
-
-+/* Relocations used by the Altera New Jersey core */
-+ BFD_RELOC_NIOS2_S16,
-+ BFD_RELOC_NIOS2_U16,
-+ BFD_RELOC_NIOS2_CALL26,
-+ BFD_RELOC_NIOS2_IMM5,
-+ BFD_RELOC_NIOS2_CACHE_OPX,
-+ BFD_RELOC_NIOS2_IMM6,
-+ BFD_RELOC_NIOS2_IMM8,
-+ BFD_RELOC_NIOS2_HI16,
-+ BFD_RELOC_NIOS2_LO16,
-+ BFD_RELOC_NIOS2_HIADJ16,
-+ BFD_RELOC_NIOS2_GPREL,
-+ BFD_RELOC_NIOS2_UJMP,
-+ BFD_RELOC_NIOS2_CJMP,
-+ BFD_RELOC_NIOS2_CALLR,
-+ BFD_RELOC_NIOS2_ALIGN,
-+
- /* IQ2000 Relocations. */
- BFD_RELOC_IQ2000_OFFSET_16,
- BFD_RELOC_IQ2000_OFFSET_21,
-@@ -3477,10 +3526,11 @@ BFD_RELOC_XTENSA_ASM_EXPAND. */
- BFD_RELOC_XTENSA_ASM_SIMPLIFY,
- BFD_RELOC_UNUSED };
- typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
--reloc_howto_type *bfd_reloc_type_lookup
-- (bfd *abfd, bfd_reloc_code_real_type code);
-+reloc_howto_type *
-+bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-
--const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
-+const char *
-+bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code));
-
- /* Extracted from syms.c. */
-
-@@ -3611,9 +3661,11 @@ asymbol;
- #define bfd_get_symtab_upper_bound(abfd) \
- BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
-
--bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
-+bfd_boolean
-+bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym));
-
--bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
-+bfd_boolean
-+bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name));
-
- #define bfd_is_local_label_name(abfd, name) \
- BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
-@@ -3621,27 +3673,32 @@ bfd_boolean bfd_is_local_label_name (bfd
- #define bfd_canonicalize_symtab(abfd, location) \
- BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
-
--bfd_boolean bfd_set_symtab
-- (bfd *abfd, asymbol **location, unsigned int count);
-+bfd_boolean
-+bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count));
-
--void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
-+void
-+bfd_print_symbol_vandf PARAMS ((bfd *abfd, void *file, asymbol *symbol));
-
- #define bfd_make_empty_symbol(abfd) \
- BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
-
--asymbol *_bfd_generic_make_empty_symbol (bfd *);
-+asymbol *
-+_bfd_generic_make_empty_symbol PARAMS ((bfd *));
-
- #define bfd_make_debug_symbol(abfd,ptr,size) \
- BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
-
--int bfd_decode_symclass (asymbol *symbol);
-+int
-+bfd_decode_symclass PARAMS ((asymbol *symbol));
-
--bfd_boolean bfd_is_undefined_symclass (int symclass);
-+bfd_boolean
-+bfd_is_undefined_symclass PARAMS ((int symclass));
-
--void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
-+void
-+bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret));
-
--bfd_boolean bfd_copy_private_symbol_data
-- (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
-+bfd_boolean
-+bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym));
-
- #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
- BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-@@ -3840,57 +3897,76 @@ typedef enum bfd_error
- }
- bfd_error_type;
-
--bfd_error_type bfd_get_error (void);
-+bfd_error_type
-+bfd_get_error PARAMS ((void));
-
--void bfd_set_error (bfd_error_type error_tag);
-+void
-+bfd_set_error PARAMS ((bfd_error_type error_tag));
-
--const char *bfd_errmsg (bfd_error_type error_tag);
-+const char *
-+bfd_errmsg PARAMS ((bfd_error_type error_tag));
-
--void bfd_perror (const char *message);
-+void
-+bfd_perror PARAMS ((const char *message));
-
- typedef void (*bfd_error_handler_type) (const char *, ...);
-
--bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
-+bfd_error_handler_type
-+bfd_set_error_handler PARAMS ((bfd_error_handler_type));
-
--void bfd_set_error_program_name (const char *);
-+void
-+bfd_set_error_program_name PARAMS ((const char *));
-
--bfd_error_handler_type bfd_get_error_handler (void);
-+bfd_error_handler_type
-+bfd_get_error_handler PARAMS ((void));
-
--const char *bfd_archive_filename (bfd *);
-+const char *
-+bfd_archive_filename PARAMS ((bfd *));
-
--long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
-+long
-+bfd_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect));
-
--long bfd_canonicalize_reloc
-- (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
-+long
-+bfd_canonicalize_reloc PARAMS ((bfd *abfd, asection *sec, arelent **loc, asymbol **syms));
-
--void bfd_set_reloc
-- (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
-+void
-+bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count));
-
--bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
-+bfd_boolean
-+bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags));
-
--int bfd_get_arch_size (bfd *abfd);
-+int
-+bfd_get_arch_size PARAMS ((bfd *abfd));
-
--int bfd_get_sign_extend_vma (bfd *abfd);
-+int
-+bfd_get_sign_extend_vma PARAMS ((bfd *abfd));
-
--bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
-+bfd_boolean
-+bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma));
-
--unsigned int bfd_get_gp_size (bfd *abfd);
-+unsigned int
-+bfd_get_gp_size PARAMS ((bfd *abfd));
-
--void bfd_set_gp_size (bfd *abfd, unsigned int i);
-+void
-+bfd_set_gp_size PARAMS ((bfd *abfd, unsigned int i));
-
--bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
-+bfd_vma
-+bfd_scan_vma PARAMS ((const char *string, const char **end, int base));
-
--bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
-+bfd_boolean
-+bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
-
- #define bfd_copy_private_bfd_data(ibfd, obfd) \
- BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
- (ibfd, obfd))
--bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
-+bfd_boolean
-+bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
-
- #define bfd_merge_private_bfd_data(ibfd, obfd) \
- BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
- (ibfd, obfd))
--bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
-+bfd_boolean
-+bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
-
- #define bfd_set_private_flags(abfd, flags) \
- BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
-@@ -3968,7 +4044,8 @@ extern bfd_byte *bfd_get_relocated_secti
- (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
- bfd_boolean, asymbol **);
-
--bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
-+bfd_boolean
-+bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative));
-
- struct bfd_preserve
- {
-@@ -3982,27 +4059,34 @@ struct bfd_preserve
- struct bfd_hash_table section_htab;
- };
-
--bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
-+bfd_boolean
-+bfd_preserve_save PARAMS ((bfd *, struct bfd_preserve *));
-
--void bfd_preserve_restore (bfd *, struct bfd_preserve *);
-+void
-+bfd_preserve_restore PARAMS ((bfd *, struct bfd_preserve *));
-
--void bfd_preserve_finish (bfd *, struct bfd_preserve *);
-+void
-+bfd_preserve_finish PARAMS ((bfd *, struct bfd_preserve *));
-
- /* Extracted from archive.c. */
--symindex bfd_get_next_mapent
-- (bfd *abfd, symindex previous, carsym **sym);
-+symindex
-+bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
-
--bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
-+bfd_boolean
-+bfd_set_archive_head PARAMS ((bfd *output, bfd *new_head));
-
--bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
-+bfd *
-+bfd_openr_next_archived_file PARAMS ((bfd *archive, bfd *previous));
-
- /* Extracted from corefile.c. */
--const char *bfd_core_file_failing_command (bfd *abfd);
-+const char *
-+bfd_core_file_failing_command PARAMS ((bfd *abfd));
-
--int bfd_core_file_failing_signal (bfd *abfd);
-+int
-+bfd_core_file_failing_signal PARAMS ((bfd *abfd));
-
--bfd_boolean core_file_matches_executable_p
-- (bfd *core_bfd, bfd *exec_bfd);
-+bfd_boolean
-+core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd));
-
- /* Extracted from targets.c. */
- #define BFD_SEND(bfd, message, arglist) \
-@@ -4362,35 +4446,42 @@ typedef struct bfd_target
-
- } bfd_target;
-
--bfd_boolean bfd_set_default_target (const char *name);
-+bfd_boolean
-+bfd_set_default_target PARAMS ((const char *name));
-
--const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
-+const bfd_target *
-+bfd_find_target PARAMS ((const char *target_name, bfd *abfd));
-
--const char ** bfd_target_list (void);
-+const char **
-+bfd_target_list PARAMS ((void));
-
--const bfd_target *bfd_search_for_target
-- (int (*search_func) (const bfd_target *, void *),
-- void *);
-+const bfd_target *
-+bfd_search_for_target PARAMS ((int (*search_func) (const bfd_target *, void *),
-+ void *));
-
- /* Extracted from format.c. */
--bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
-+bfd_boolean
-+bfd_check_format PARAMS ((bfd *abfd, bfd_format format));
-
--bfd_boolean bfd_check_format_matches
-- (bfd *abfd, bfd_format format, char ***matching);
-+bfd_boolean
-+bfd_check_format_matches PARAMS ((bfd *abfd, bfd_format format, char ***matching));
-
--bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
-+bfd_boolean
-+bfd_set_format PARAMS ((bfd *abfd, bfd_format format));
-
--const char *bfd_format_string (bfd_format format);
-+const char *
-+bfd_format_string PARAMS ((bfd_format format));
-
- /* Extracted from linker.c. */
--bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
-+bfd_boolean
-+bfd_link_split_section PARAMS ((bfd *abfd, asection *sec));
-
- #define bfd_link_split_section(abfd, sec) \
- BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
-
- /* Extracted from simple.c. */
--bfd_byte *bfd_simple_get_relocated_section_contents
-- (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
-+bfd_byte *
-+bfd_simple_get_relocated_section_contents PARAMS ((bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table));
-
- #ifdef __cplusplus
- }
---- binutils-2.15/bfd/config.bfd 2004-05-17 21:35:56.000000000 +0200
-+++ binutils-2.15-nios2/bfd/config.bfd 2005-05-17 12:20:13.000000000 +0200
-@@ -59,6 +59,7 @@ m6812*|m68hc12*) targ_archs="bfd_m68hc12
- m68*) targ_archs=bfd_m68k_arch ;;
- m88*) targ_archs=bfd_m88k_arch ;;
- mips*) targ_archs=bfd_mips_arch ;;
-+nios2*) targ_archs=bfd_nios2_arch ;;
- or32*) targ_archs=bfd_or32_arch ;;
- pdp11*) targ_archs=bfd_pdp11_arch ;;
- pj*) targ_archs="bfd_pj_arch bfd_i386_arch";;
-@@ -874,6 +875,10 @@ case "${targ}" in
- targ_underscore=yes
- ;;
-
-+ nios2-*-*)
-+ targ_defvec=bfd_elf32_littlenios2_vec
-+ ;;
-+
- openrisc-*-elf)
- targ_defvec=bfd_elf32_openrisc_vec
- ;;
---- binutils-2.15/bfd/configure 2004-05-17 21:35:57.000000000 +0200
-+++ binutils-2.15-nios2/bfd/configure 2005-05-17 12:20:13.000000000 +0200
-@@ -6322,6 +6322,7 @@ do
- bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
- bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
- bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
-+ bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
- bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
- bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
- bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
---- binutils-2.15/bfd/configure.in 2004-05-17 21:35:57.000000000 +0200
-+++ binutils-2.15-nios2/bfd/configure.in 2005-05-17 12:20:13.000000000 +0200
-@@ -631,6 +631,7 @@ do
- bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
- bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
- bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
-+ bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
- bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
- bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
- bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
---- binutils-2.15/bfd/cpu-nios2.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/bfd/cpu-nios2.c 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,70 @@
-+/* bfd back-end for Altera Nios II support
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+This file is part of BFD, the Binary File Descriptor library.
-+
-+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 2 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, write to the Free Software
-+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#include "bfd.h"
-+#include "sysdep.h"
-+#include "libbfd.h"
-+
-+static const bfd_arch_info_type *nios2_compatible
-+ (const bfd_arch_info_type *, const bfd_arch_info_type *);
-+
-+/* The default routine tests bits_per_word, which is wrong on mips as
-+ mips word size doesn't correlate with reloc size. */
-+
-+static const bfd_arch_info_type *
-+nios2_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
-+{
-+ if (a->arch != b->arch)
-+ return NULL;
-+
-+ /* Machine compatibility is checked in
-+ _bfd_mips_elf_merge_private_bfd_data. */
-+
-+ return a;
-+}
-+
-+#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
-+ { \
-+ BITS_WORD, /* bits in a word */ \
-+ BITS_ADDR, /* bits in an address */ \
-+ 8, /* 8 bits in a byte */ \
-+ bfd_arch_nios2, \
-+ NUMBER, \
-+ "nios2", \
-+ PRINT, \
-+ 3, \
-+ DEFAULT, \
-+ nios2_compatible, \
-+ bfd_default_scan, \
-+ NEXT, \
-+ }
-+
-+#define NN(index) (&arch_info_struct[(index) + 1])
-+
-+static const bfd_arch_info_type arch_info_struct[] =
-+{
-+ N (32, 32, bfd_mach_nios2, "nios2", FALSE, 0),
-+};
-+
-+/* There is only one architecture - but we give the default a machine number of 0
-+ so the linker can distinguish it */
-+const bfd_arch_info_type bfd_nios2_arch =
-+N (32, 32, 0, "nios2", TRUE, &arch_info_struct[0]);
---- binutils-2.15/bfd/elf.c 2004-05-17 21:35:57.000000000 +0200
-+++ binutils-2.15-nios2/bfd/elf.c 2005-05-17 12:20:13.000000000 +0200
-@@ -3286,9 +3286,14 @@ map_sections_to_segments (bfd *abfd)
- phdr_size = elf_tdata (abfd)->program_header_size;
- if (phdr_size == 0)
- phdr_size = get_elf_backend_data (abfd)->s->sizeof_phdr;
-+
-+ /* NG - for standalone embedded applications we don't want the program
-+ headers or ELF header in the output memory map (cf CSP) */
- if ((abfd->flags & D_PAGED) == 0
- || sections[0]->lma < phdr_size
-- || sections[0]->lma % maxpagesize < phdr_size % maxpagesize)
-+ || sections[0]->lma % maxpagesize < phdr_size % maxpagesize
-+ || (elf_tdata (abfd)->elf_header[0].e_ident[EI_OSABI]
-+ == ELFOSABI_STANDALONE))
- phdr_in_segment = FALSE;
- }
-
---- binutils-2.15/bfd/elf32-nios2.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/bfd/elf32-nios2.c 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,2188 @@
-+/* New Jersey-specific support for 32-bit ELF
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+
-+This file is part of BFD, the Binary File Descriptor library.
-+
-+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 2 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, write to the Free Software
-+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+/* This file handles Altera New Jersey ELF targets */
-+
-+#include "bfd.h"
-+#include "sysdep.h"
-+#include "libbfd.h"
-+#include "bfdlink.h"
-+#include "genlink.h"
-+#include "elf-bfd.h"
-+#include "elf/nios2.h"
-+#include "opcode/nios2.h"
-+
-+/* use RELA relocations*/
-+#ifndef USE_RELA
-+#define USE_RELA
-+#endif
-+
-+#ifdef USE_REL
-+#undef USE_REL
-+#endif
-+
-+/* Function prototypes */
-+
-+static reloc_howto_type *nios2_elf32_bfd_reloc_type_lookup
-+ (bfd *, bfd_reloc_code_real_type);
-+
-+static bfd_boolean nios2_elf32_relax_section
-+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
-+
-+static bfd_boolean nios2_elf32_relax_delete_bytes
-+ (bfd *, asection *, bfd_vma, int);
-+
-+static reloc_howto_type *nios2_elf32_rtype_to_howto
-+ (unsigned int r_type, bfd_boolean rela_p);
-+
-+static void nios2_elf32_info_to_howto
-+ (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst);
-+
-+static bfd_boolean nios2_elf32_relocate_section
-+ (bfd * output_bfd, struct bfd_link_info * info, bfd * input_bfd,
-+ asection * input_section, bfd_byte * contents,
-+ Elf_Internal_Rela * relocs, Elf_Internal_Sym * local_syms,
-+ asection ** local_sections);
-+
-+static reloc_howto_type *lookup_howto (unsigned int rtype);
-+
-+static bfd_reloc_status_type nios2_elf_final_gp
-+ (bfd *, asymbol *, bfd_boolean, char **, bfd_vma *,
-+ struct bfd_link_info *);
-+
-+static bfd_boolean nios2_elf_assign_gp
-+ (bfd *, bfd_vma *, struct bfd_link_info *);
-+
-+static bfd_reloc_status_type nios2_elf32_ignore_reloc
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_hi16_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_lo16_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_hiadj16_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_pcrel16_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_call26_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_gprel_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_ujmp_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_cjmp_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_callr_relocate
-+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-+
-+static bfd_reloc_status_type nios2_elf32_do_hi16_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_lo16_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_hiadj16_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_pcrel16_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_call26_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_gprel_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_ujmp_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_cjmp_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+static bfd_reloc_status_type nios2_elf32_do_callr_relocate
-+ (bfd *, reloc_howto_type *, asection *,
-+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-+
-+
-+static void nios2_elf32_post_process_headers
-+ (bfd *, struct bfd_link_info *);
-+
-+static bfd_boolean nios2_elf32_section_from_shdr
-+ (bfd *, Elf_Internal_Shdr *, const char *name);
-+
-+static bfd_boolean nios2_elf32_section_flags
-+ (flagword *, Elf_Internal_Shdr *);
-+
-+static bfd_boolean nios2_elf32_fake_sections
-+ (bfd *, Elf_Internal_Shdr *, asection *);
-+
-+
-+
-+static bfd_boolean nios2_elf32_check_relocs
-+ (bfd *, struct bfd_link_info *, asection *,
-+ const Elf_Internal_Rela *);
-+
-+static asection *nios2_elf32_gc_mark_hook (asection * sec,
-+ struct bfd_link_info *
-+ info,
-+ Elf_Internal_Rela * rel,
-+ struct elf_link_hash_entry
-+ * h,
-+ Elf_Internal_Sym * sym);
-+
-+
-+/* target vector */
-+extern const bfd_target bfd_elf32_littlenios2_vec;
-+
-+/* The relocation table used for SHT_REL sections. */
-+
-+static reloc_howto_type elf_nios2_howto_table_rel[] = {
-+ /* No relocation. */
-+ HOWTO (R_NIOS2_NONE, /* type */
-+ 0, /* rightshift */
-+ 0, /* size (0 = byte, 1 = short, 2 = long) */
-+ 0, /* bitsize */
-+ FALSE, /* pc_relative */
-+ 0, /* bitpos */
-+ complain_overflow_dont, /* complain_on_overflow */
-+ bfd_elf_generic_reloc, /* special_function */
-+ "R_NIOS2_NONE", /* name */
-+ FALSE, /* partial_inplace */
-+ 0, /* src_mask */
-+ 0, /* dst_mask */
-+ FALSE), /* pcrel_offset */
-+
-+ /* 16-bit signed immediate relocation */
-+ HOWTO (R_NIOS2_S16, /* type */
-+ 0, /* rightshift */
-+ 2, /* size (0 = byte, 1 = short, 2 = long) */
-+ 16, /* bitsize */
-+ FALSE, /* pc_relative */
-+ 6, /* bitpos */
-+ complain_overflow_signed, /* complain on overflow */
-+ bfd_elf_generic_reloc, /* special function */
-+ "R_NIOS2_S16", /* name */
-+ FALSE, /* partial_inplace */
-+ 0x003fffc0, /* src_mask */
-+ 0x003fffc0, /* dest_mask */
-+ FALSE), /* pcrel_offset */
-+
-+ /* 16-bit unsigned immediate relocation */
-+ HOWTO (R_NIOS2_U16, /* type */
-+ 0, /* rightshift */
-+ 2, /* size (0 = byte, 1 = short, 2 = long) */
-+ 16, /* bitsize */
-+ FALSE, /* pc_relative */
-+ 6, /* bitpos */
-+ complain_overflow_unsigned, /* complain on overflow */
-+ bfd_elf_generic_reloc, /* special function */
-+ "R_NIOS2_U16", /* name */
-+ FALSE, /* partial_inplace */
-+ 0x003fffc0, /* src_mask */
-+ 0x003fffc0, /* dest_mask */
-+ FALSE), /* pcrel_offset */
-+
-+ HOWTO (R_NIOS2_PCREL16, /* type */
-+ 0, /* rightshift */
-+ 2, /* size (0 = byte, 1 = short, 2 = long) */
-+ 16, /* bitsize */
-+ TRUE, /* pc_relative */
-+ 6, /* bitpos */
-+ complain_overflow_signed, /* complain on overflow */
-+ nios2_elf32_pcrel16_relocate, /* special function */
-+ "R_NIOS2_PCREL16", /* name */
-+ FALSE, /* partial_inplace */
-+ 0x003fffc0, /* src_mask */
-+ 0x003fffc0, /* dest_mask */
-+ TRUE), /* pcrel_offset */
-+
-+ HOWTO (R_NIOS2_CALL26, /* type */
-+ 2, /* rightshift */
-+ 2, /* size (0 = byte, 1 = short, 2 = long) */
-+ 26, /* bitsize */
-+ FALSE, /* pc_relative */
-+ 6, /* bitpos */
-+ complain_overflow_dont, /* complain on overflow */
-+ nios2_elf32_call26_relocate, /* special function */
-+ "R_NIOS2_CALL26", /* name */
-+ FALSE, /* partial_inplace */
-+ 0xffffffc0, /* src_mask */
-+ 0xffffffc0, /* dst_mask */
-+ FALSE), /* pcrel_offset */
-+
-+ HOWTO (R_NIOS2_IMM5,
-+ 0,
-+ 2,
-+ 5,
-+ FALSE,
-+ 6,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_IMM5",
-+ FALSE,
-+ 0x000007c0,
-+ 0x000007c0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_CACHE_OPX,
-+ 0,
-+ 2,
-+ 5,
-+ FALSE,
-+ 22,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_CACHE_OPX",
-+ FALSE,
-+ 0x07c00000,
-+ 0x07c00000,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_IMM6,
-+ 0,
-+ 2,
-+ 6,
-+ FALSE,
-+ 6,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_IMM6",
-+ FALSE,
-+ 0x00000fc0,
-+ 0x00000fc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_IMM8,
-+ 0,
-+ 2,
-+ 8,
-+ FALSE,
-+ 6,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_IMM8",
-+ FALSE,
-+ 0x00003fc0,
-+ 0x00003fc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_HI16,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_hi16_relocate,
-+ "R_NIOS2_HI16",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_LO16,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_lo16_relocate,
-+ "R_NIOS2_LO16",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_HIADJ16,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_hiadj16_relocate,
-+ "R_NIOS2_HIADJ16",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_BFD_RELOC_32,
-+ 0,
-+ 2, /* long */
-+ 32,
-+ FALSE,
-+ 0,
-+ complain_overflow_dont,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_BFD_RELOC32",
-+ FALSE,
-+ 0xffffffff,
-+ 0xffffffff,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_BFD_RELOC_16,
-+ 0,
-+ 1, /* short */
-+ 16,
-+ FALSE,
-+ 0,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_BFD_RELOC16",
-+ FALSE,
-+ 0x0000ffff,
-+ 0x0000ffff,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_BFD_RELOC_8,
-+ 0,
-+ 0, /* byte */
-+ 8,
-+ FALSE,
-+ 0,
-+ complain_overflow_bitfield,
-+ bfd_elf_generic_reloc,
-+ "R_NIOS2_BFD_RELOC8",
-+ FALSE,
-+ 0x000000ff,
-+ 0x000000ff,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_GPREL,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_gprel_relocate,
-+ "R_NIOS2_GPREL",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_GNU_VTINHERIT,
-+ 0,
-+ 2, /* short */
-+ 0,
-+ FALSE,
-+ 0,
-+ complain_overflow_dont,
-+ NULL,
-+ "R_NIOS2_GNU_VTINHERIT",
-+ FALSE,
-+ 0,
-+ 0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_GNU_VTENTRY,
-+ 0,
-+ 2, /* byte */
-+ 0,
-+ FALSE,
-+ 0,
-+ complain_overflow_dont,
-+ _bfd_elf_rel_vtable_reloc_fn,
-+ "R_NIOS2_GNU_VTENTRY",
-+ FALSE,
-+ 0,
-+ 0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_UJMP,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_ujmp_relocate,
-+ "R_NIOS2_UJMP",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_CJMP,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_cjmp_relocate,
-+ "R_NIOS2_CJMP",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_CALLR,
-+ 0,
-+ 2,
-+ 32,
-+ FALSE,
-+ 6,
-+ complain_overflow_dont,
-+ nios2_elf32_callr_relocate,
-+ "R_NIOS2_CALLR",
-+ FALSE,
-+ 0x003fffc0,
-+ 0x003fffc0,
-+ FALSE),
-+
-+ HOWTO (R_NIOS2_ALIGN,
-+ 0,
-+ 2,
-+ 0,
-+ FALSE,
-+ 0,
-+ complain_overflow_dont,
-+ nios2_elf32_ignore_reloc,
-+ "R_NIOS2_ALIGN",
-+ FALSE,
-+ 0,
-+ 0,
-+ TRUE),
-+
-+/* add other relocations here */
-+};
-+
-+static unsigned char elf_code_to_howto_index[R_NIOS2_ILLEGAL + 1];
-+
-+static reloc_howto_type *
-+lookup_howto (unsigned int rtype)
-+{
-+ static int initialized = 0;
-+ int i;
-+ int howto_tbl_size = (int) (sizeof (elf_nios2_howto_table_rel)
-+ / sizeof (elf_nios2_howto_table_rel[0]));
-+
-+ if (!initialized)
-+ {
-+ initialized = 1;
-+ memset (elf_code_to_howto_index, 0xff,
-+ sizeof (elf_code_to_howto_index));
-+ for (i = 0; i < howto_tbl_size; i++)
-+ elf_code_to_howto_index[elf_nios2_howto_table_rel[i].type] = i;
-+ }
-+
-+ BFD_ASSERT (rtype <= R_NIOS2_ILLEGAL);
-+ i = elf_code_to_howto_index[rtype];
-+ if (i >= howto_tbl_size)
-+ return 0;
-+ return elf_nios2_howto_table_rel + i;
-+}
-+
-+/*
-+ map for converting BFD reloc types to New Jersey
-+ reloc types
-+ */
-+struct elf_reloc_map
-+{
-+ bfd_reloc_code_real_type bfd_val;
-+ enum elf_nios2_reloc_type elf_val;
-+};
-+
-+static const struct elf_reloc_map nios2_reloc_map[] = {
-+ {BFD_RELOC_NIOS2_S16, R_NIOS2_S16},
-+ {BFD_RELOC_NIOS2_U16, R_NIOS2_U16},
-+ {BFD_RELOC_16_PCREL, R_NIOS2_PCREL16},
-+ {BFD_RELOC_NIOS2_CALL26, R_NIOS2_CALL26},
-+ {BFD_RELOC_NIOS2_IMM5, R_NIOS2_IMM5},
-+ {BFD_RELOC_NIOS2_CACHE_OPX, R_NIOS2_CACHE_OPX},
-+ {BFD_RELOC_NIOS2_IMM6, R_NIOS2_IMM6},
-+ {BFD_RELOC_NIOS2_IMM8, R_NIOS2_IMM8},
-+ {BFD_RELOC_NIOS2_HI16, R_NIOS2_HI16},
-+ {BFD_RELOC_NIOS2_LO16, R_NIOS2_LO16},
-+ {BFD_RELOC_NIOS2_HIADJ16, R_NIOS2_HIADJ16},
-+ {BFD_RELOC_32, R_NIOS2_BFD_RELOC_32},
-+ {BFD_RELOC_16, R_NIOS2_BFD_RELOC_16},
-+ {BFD_RELOC_8, R_NIOS2_BFD_RELOC_8},
-+ {BFD_RELOC_NIOS2_GPREL, R_NIOS2_GPREL},
-+ {BFD_RELOC_VTABLE_INHERIT, R_NIOS2_GNU_VTINHERIT},
-+ {BFD_RELOC_VTABLE_ENTRY, R_NIOS2_GNU_VTENTRY},
-+ {BFD_RELOC_NIOS2_UJMP, R_NIOS2_UJMP},
-+ {BFD_RELOC_NIOS2_CJMP, R_NIOS2_CJMP},
-+ {BFD_RELOC_NIOS2_CALLR, R_NIOS2_CALLR},
-+ {BFD_RELOC_NIOS2_ALIGN, R_NIOS2_ALIGN},
-+};
-+
-+/* Given a BFD reloc type, return a howto structure. */
-+
-+static reloc_howto_type *
-+nios2_elf32_bfd_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
-+ bfd_reloc_code_real_type code)
-+{
-+ int i;
-+ for (i = 0;
-+ i < (int) (sizeof (nios2_reloc_map) / sizeof (struct elf_reloc_map));
-+ ++i)
-+ {
-+ if (nios2_reloc_map[i].bfd_val == code)
-+ return &elf_nios2_howto_table_rel[(int) nios2_reloc_map[i].elf_val];
-+ }
-+
-+ return NULL;
-+}
-+
-+/* Helper function for nios2_elf32_info_to_howto */
-+
-+static reloc_howto_type *
-+nios2_elf32_rtype_to_howto (unsigned int r_type,
-+ bfd_boolean rela_p ATTRIBUTE_UNUSED)
-+{
-+ BFD_ASSERT (r_type < R_NIOS2_ILLEGAL);
-+ return &elf_nios2_howto_table_rel[r_type];
-+}
-+
-+/* Given a ELF32 relocation, fill in a arelent structure */
-+
-+static void
-+nios2_elf32_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr,
-+ Elf_Internal_Rela * dst)
-+{
-+ unsigned int r_type;
-+
-+ r_type = ELF32_R_TYPE (dst->r_info);
-+ cache_ptr->howto = nios2_elf32_rtype_to_howto (r_type, FALSE);
-+
-+ // FIXME - do we need to do anything else here???
-+}
-+
-+/* The assembler has output long jmp/call sequences for all calls
-+ * and pc-relative branches that it cannot guarantee are within
-+ * range, so the linker must attempt to "relax" these sequences to
-+ * short branches and calls if it can. We avoid having to re-relax by
-+ * replacing redundant instructions with nops instead of deleting them.
-+ *
-+ *
-+ **/
-+static bfd_boolean
-+nios2_elf32_relax_section (bfd * abfd,
-+ asection * sec,
-+ struct bfd_link_info *link_info, bfd_boolean * again)
-+{
-+ Elf_Internal_Shdr *symtab_hdr;
-+ Elf_Internal_Rela *internal_relocs;
-+ Elf_Internal_Rela *irel, *irelend;
-+ bfd_byte *contents = NULL;
-+ Elf_Internal_Sym *isymbuf = NULL;
-+
-+#define OP_MATCH_NOP 0x0001883a
-+
-+ /* Assume nothing changes. */
-+ *again = FALSE;
-+
-+ /* We don't have to do anything for a relocatable link, if
-+ this section does not have relocs, or if this is not a
-+ code section. */
-+ if (link_info->relocatable
-+ || (sec->flags & SEC_RELOC) == 0
-+ || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0)
-+ return TRUE;
-+
-+ /* If this is the first time we have been called for this section,
-+ initialize the cooked size. */
-+ if (sec->_cooked_size == 0)
-+ sec->_cooked_size = sec->_raw_size;
-+
-+ symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-+
-+ /* Get a copy of the native relocations. */
-+ internal_relocs = (_bfd_elf_link_read_relocs
-+ (abfd, sec, (void *) NULL, (Elf_Internal_Rela *) NULL,
-+ link_info->keep_memory));
-+ if (internal_relocs == NULL)
-+ goto error_return;
-+
-+ /* Walk through them looking for relaxing opportunities. */
-+ irelend = internal_relocs + sec->reloc_count;
-+ for (irel = internal_relocs; irel < irelend; irel++)
-+ {
-+ bfd_vma symval;
-+
-+ /* If this isn't something that can be relaxed, then ignore
-+ this reloc. */
-+ if (ELF32_R_TYPE (irel->r_info) != (int) R_NIOS2_UJMP
-+ && ELF32_R_TYPE (irel->r_info) != (int) R_NIOS2_CJMP
-+ && ELF32_R_TYPE (irel->r_info) != (int) R_NIOS2_CALLR)
-+ {
-+ continue;
-+ }
-+
-+ /* Get the section contents if we haven't done so already. */
-+ if (contents == NULL)
-+ {
-+ /* Get cached copy if it exists. */
-+ if (elf_section_data (sec)->this_hdr.contents != NULL)
-+ contents = elf_section_data (sec)->this_hdr.contents;
-+ else
-+ {
-+ /* Go get them off disk. */
-+ contents = (bfd_byte *) bfd_malloc (sec->_raw_size);
-+ if (contents == NULL)
-+ goto error_return;
-+
-+ if (!bfd_get_section_contents (abfd, sec, contents,
-+ (file_ptr) 0, sec->_raw_size))
-+ goto error_return;
-+ }
-+ }
-+
-+ /* Read this BFD's local symbols if we haven't done so already. */
-+ if (isymbuf == NULL && symtab_hdr->sh_info != 0)
-+ {
-+ isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-+ if (isymbuf == NULL)
-+ isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
-+ symtab_hdr->sh_info, 0,
-+ NULL, NULL, NULL);
-+ if (isymbuf == NULL)
-+ goto error_return;
-+ }
-+
-+ /* Get the value of the symbol referred to by the reloc. */
-+ if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-+ {
-+ /* A local symbol. */
-+ Elf_Internal_Sym *isym;
-+ asection *sym_sec;
-+
-+ isym = isymbuf + ELF32_R_SYM (irel->r_info);
-+ if (isym->st_shndx == SHN_UNDEF)
-+ sym_sec = bfd_und_section_ptr;
-+ else if (isym->st_shndx == SHN_ABS)
-+ sym_sec = bfd_abs_section_ptr;
-+ else if (isym->st_shndx == SHN_COMMON)
-+ sym_sec = bfd_com_section_ptr;
-+ else
-+ sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-+ symval = (isym->st_value
-+ + sym_sec->output_section->vma + sym_sec->output_offset);
-+ }
-+ else
-+ {
-+ unsigned long indx;
-+ struct elf_link_hash_entry *h;
-+
-+ /* An external symbol. */
-+ indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
-+ h = elf_sym_hashes (abfd)[indx];
-+ BFD_ASSERT (h != NULL);
-+ if (h->root.type != bfd_link_hash_defined
-+ && h->root.type != bfd_link_hash_defweak)
-+ {
-+ /* This appears to be a reference to an undefined
-+ symbol. Just ignore it--it will be caught by the
-+ regular reloc processing. */
-+ continue;
-+ }
-+
-+ symval = (h->root.u.def.value
-+ + h->root.u.def.section->output_section->vma
-+ + h->root.u.def.section->output_offset);
-+ }
-+
-+ /* For simplicity of coding, we are going to modify the section
-+ contents, the section relocs, and the BFD symbol table. We
-+ must tell the rest of the code not to free up this
-+ information. It would be possible to instead create a table
-+ of changes which have to be made, as is done in coff-mips.c;
-+ that would be more work, but would require less memory when
-+ the linker is run. */
-+
-+ /* try to turn :
-+ * movhi at, %hi(symbol)
-+ * movui at, %lo(symbol)
-+ * callr at
-+ * into:
-+ * call symbol
-+ */
-+ if (ELF32_R_TYPE (irel->r_info) == (int) R_NIOS2_CALLR)
-+ {
-+ bfd_vma targ_addr = symval + irel->r_addend;
-+ bfd_vma curr_addr = (sec->output_section->vma + sec->output_offset);
-+ bfd_vma targ_page, curr_page;
-+ targ_page = targ_addr & 0xf0000000;
-+ curr_page = curr_addr & 0xf0000000;
-+
-+ if (targ_page == curr_page)
-+ {
-+ /* change the opcode to a call */
-+ bfd_put_32 (abfd, OP_MATCH_CALL, contents + irel->r_offset);
-+ /* Note that we've changed the relocs, section contents, etc. */
-+ elf_section_data (sec)->relocs = internal_relocs;
-+ elf_section_data (sec)->this_hdr.contents = contents;
-+ symtab_hdr->contents = (unsigned char *) isymbuf;
-+
-+ /* Fix the relocation's type. */
-+ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-+ R_NIOS2_CALL26);
-+
-+ /* replace next two instructions with nops */
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 4);
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 8);
-+ }
-+ }
-+
-+ /* try to turn :
-+ * movhi at, %hi(symbol)
-+ * movui at, %lo(symbol)
-+ * jmp at
-+ * into:
-+ * br symbol
-+ */
-+ if (ELF32_R_TYPE (irel->r_info) == (int) R_NIOS2_UJMP)
-+ {
-+ bfd_vma pcrel_offset;
-+ Elf_Internal_Rela *irelalign = NULL;
-+ Elf_Internal_Rela *irela = elf_section_data (sec)->relocs;
-+ Elf_Internal_Rela *irelend = irel + sec->reloc_count;
-+
-+ for (; irela < irelend; irela++)
-+ {
-+ if (ELF32_R_TYPE (irela->r_info) == (int) R_NIOS2_ALIGN
-+ && irela->r_offset > irel->r_offset + 4
-+ && 8 < (1 << irela->r_addend))
-+ {
-+ irelalign = irela;
-+ break;
-+ }
-+ }
-+
-+ /* calculate the pcrelative offset from current location */
-+ pcrel_offset = symval;
-+ pcrel_offset -= (sec->output_section->vma + sec->output_offset);
-+ pcrel_offset += irel->r_addend;
-+
-+ /* we need to compute the pcrel_offset from the next instruction */
-+ pcrel_offset -= (irel->r_offset + 4);
-+
-+ /* does this value fit in 16 bits */
-+ if ((irelalign == NULL && (long) pcrel_offset <= 0x8004
-+ && (long) pcrel_offset >= -0x8000) || (irelalign != NULL
-+ && (long) pcrel_offset
-+ <= 0x7ffc
-+ && (long) pcrel_offset
-+ >= -0x8000))
-+ {
-+ /* change the opcode to an unconditional branch */
-+ bfd_put_32 (abfd, OP_MATCH_BR, contents + irel->r_offset);
-+ /* Note that we've changed the relocs, section contents, etc. */
-+ elf_section_data (sec)->relocs = internal_relocs;
-+ elf_section_data (sec)->this_hdr.contents = contents;
-+ symtab_hdr->contents = (unsigned char *) isymbuf;
-+
-+ /* Fix the relocation's type. */
-+ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-+ R_NIOS2_PCREL16);
-+
-+ /* replace next two instructions with nops */
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 4);
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 8);
-+ }
-+ }
-+
-+ /* try to turn :
-+ * b{cond} a, b skip
-+ * movhi at, %hi(symbol)
-+ * movui at, %lo(symbol)
-+ * jmp at
-+ * skip:
-+ * ...
-+ * into:
-+ * br{opp_cond} a, b, symbol
-+ */
-+ if (ELF32_R_TYPE (irel->r_info) == (int) R_NIOS2_CJMP)
-+ {
-+ bfd_vma pcrel_offset;
-+ Elf_Internal_Rela *irelalign = NULL;
-+ Elf_Internal_Rela *irela = elf_section_data (sec)->relocs;
-+ Elf_Internal_Rela *irelend = irel + sec->reloc_count;
-+
-+ for (; irela < irelend; irela++)
-+ {
-+ if (ELF32_R_TYPE (irela->r_info) == (int) R_NIOS2_ALIGN
-+ && irela->r_offset > irel->r_offset + 4
-+ && 8 < (1 << irela->r_addend))
-+ {
-+ irelalign = irela;
-+ break;
-+ }
-+ }
-+
-+ /* calculate the pcrelative offset from current location */
-+ pcrel_offset = symval;
-+ pcrel_offset -= (sec->output_section->vma + sec->output_offset);
-+ pcrel_offset += irel->r_addend;
-+
-+ /* we need to compute the pcrel_offset from this instruction
-+ * ie the movhi */
-+ pcrel_offset -= (irel->r_offset);
-+
-+ /* does this value fit in 16 bits */
-+ if ((irelalign == NULL && (long) pcrel_offset <= 0x8008
-+ && (long) pcrel_offset >= -0x8000) || (irelalign != NULL
-+ && (long) pcrel_offset
-+ <= 0x7ffc
-+ && (long) pcrel_offset
-+ >= -0x8000))
-+ {
-+ unsigned long opcode, op_a, op_b;
-+ /* get the conditional branch opcode */
-+ opcode = bfd_get_32 (abfd, contents + irel->r_offset - 4);
-+ /* reverse the condition */
-+ switch (opcode & OP_MASK_OP)
-+ {
-+ case OP_MATCH_BEQ:
-+ opcode = (opcode & ~OP_MASK_OP) | OP_MATCH_BNE;
-+ break;
-+ case OP_MATCH_BNE:
-+ opcode = (opcode & ~OP_MASK_OP) | OP_MATCH_BEQ;
-+ break;
-+ case OP_MATCH_BGE:
-+ case OP_MATCH_BGEU:
-+ case OP_MATCH_BLT:
-+ case OP_MATCH_BLTU:
-+ /* swap the operands */
-+ op_a = (opcode & OP_MASK_RRT) << 5;
-+ op_b = (opcode & OP_MASK_RRS) >> 5;
-+ opcode =
-+ (opcode & ~(OP_MASK_RRS | OP_MASK_RRT)) | op_a | op_b;
-+ break;
-+ default:
-+ fprintf (stderr,
-+ "relaxation error - expecting conditional branch, aborting\n");
-+ abort ();
-+ break;
-+ }
-+
-+ /* we must set the branch target to zero so that the skip over the jmp doesn't get
-+ * added to the jmp */
-+ opcode = opcode & (~OP_MASK_IMM16);
-+
-+ /* change the opcode to the reversed conditional branch */
-+ bfd_put_32 (abfd, opcode, contents + irel->r_offset - 4);
-+ /* Note that we've changed the relocs, section contents, etc. */
-+ elf_section_data (sec)->relocs = internal_relocs;
-+ elf_section_data (sec)->this_hdr.contents = contents;
-+ symtab_hdr->contents = (unsigned char *) isymbuf;
-+
-+ /* Fix the relocation's type. */
-+ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-+ R_NIOS2_PCREL16);
-+
-+ /* this relocation's offset has also been reduced by 4 bytes */
-+ irel->r_offset -= 4;
-+
-+ /* replace next two instructions with nops */
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 4);
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 8);
-+ bfd_put_32 (abfd, OP_MATCH_NOP, contents + irel->r_offset + 12);
-+ }
-+ }
-+
-+ /* otherwise, leave alone */
-+ }
-+
-+ if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
-+ {
-+ if (!link_info->keep_memory)
-+ free (isymbuf);
-+ else
-+ {
-+ /* Cache the symbols for elf_link_input_bfd. */
-+ symtab_hdr->contents = (unsigned char *) isymbuf;
-+ }
-+ }
-+
-+ if (contents != NULL
-+ && elf_section_data (sec)->this_hdr.contents != contents)
-+ {
-+ if (!link_info->keep_memory)
-+ free (contents);
-+ else
-+ {
-+ /* Cache the section contents for elf_link_input_bfd. */
-+ elf_section_data (sec)->this_hdr.contents = contents;
-+ }
-+ }
-+
-+ if (internal_relocs != NULL
-+ && elf_section_data (sec)->relocs != internal_relocs)
-+ free (internal_relocs);
-+
-+
-+ return TRUE;
-+
-+error_return:
-+ if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
-+ free (isymbuf);
-+ if (contents != NULL
-+ && elf_section_data (sec)->this_hdr.contents != contents)
-+ free (contents);
-+ if (internal_relocs != NULL
-+ && elf_section_data (sec)->relocs != internal_relocs)
-+ free (internal_relocs);
-+
-+ return FALSE;
-+}
-+
-+/* Delete some bytes from a section while relaxing.
-+ * Copied from mn10200 port */
-+
-+static bfd_boolean
-+nios2_elf32_relax_delete_bytes (bfd * abfd,
-+ asection * sec, bfd_vma addr, int count)
-+{
-+ Elf_Internal_Shdr *symtab_hdr;
-+ unsigned int sec_shndx;
-+ bfd_byte *contents;
-+ Elf_Internal_Rela *irel, *irelend;
-+ Elf_Internal_Rela *irelalign;
-+ bfd_vma toaddr;
-+ Elf_Internal_Sym *isym;
-+ Elf_Internal_Sym *isymend;
-+ struct elf_link_hash_entry **sym_hashes;
-+ struct elf_link_hash_entry **end_hashes;
-+ unsigned int symcount;
-+ asection *asec;
-+
-+ sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
-+
-+ contents = elf_section_data (sec)->this_hdr.contents;
-+
-+ /* The deletion must stop at the next ALIGN reloc for an aligment
-+ power larger than the number of bytes we are deleting. */
-+
-+ irelalign = NULL;
-+ /* +1 because we need to readjust symbols at end of section */
-+ toaddr = sec->_cooked_size + 1;
-+
-+ irel = elf_section_data (sec)->relocs;
-+ irelend = irel + sec->reloc_count;
-+
-+ for (; irel < irelend; irel++)
-+ {
-+ if (ELF32_R_TYPE (irel->r_info) == (int) R_NIOS2_ALIGN
-+ && irel->r_offset > addr && count < (1 << irel->r_addend))
-+ {
-+ irelalign = irel;
-+ /* +1 because we need to readjust symbols at end of section */
-+ toaddr = irel->r_offset + 1;
-+ break;
-+ }
-+ }
-+
-+
-+ /* Actually delete the bytes. */
-+ memmove (contents + addr, contents + addr + count,
-+ (size_t) ((toaddr - 1) - addr - count));
-+
-+ if (irelalign == NULL)
-+ sec->_cooked_size -= count;
-+ else
-+ {
-+ int i;
-+
-+#define NOP_OPCODE (0x0001883a)
-+
-+ BFD_ASSERT ((count & 3) == 0);
-+ for (i = 0; i < count; i += 4)
-+ bfd_put_32 (abfd, (bfd_vma) NOP_OPCODE,
-+ contents + (toaddr - 1) - count + i);
-+ }
-+
-+ /* get the symbol table */
-+ symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-+ isym = (Elf_Internal_Sym *) symtab_hdr->contents;
-+
-+ /* Adjust all the reloc offsets in this section. */
-+ for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
-+ {
-+ /* Get the new reloc address. */
-+ if ((irel->r_offset > addr && irel->r_offset < toaddr))
-+ irel->r_offset -= count;
-+ }
-+
-+ /* Adjust relocations against targets in this section whose positions
-+ * have moved as a result of the relaxation */
-+
-+ for (asec = abfd->sections; asec; asec = asec->next)
-+ {
-+ irelend = elf_section_data (asec)->relocs + asec->reloc_count;
-+ for (irel = elf_section_data (asec)->relocs; irel < irelend; irel++)
-+ {
-+ Elf_Internal_Sym *sym;
-+ /* if the symbol which this reloc is against doesn't change
-+ * we need to change the reloc addend */
-+
-+ sym = isym + ELF32_R_SYM (irel->r_info);
-+ if (sym->st_shndx == sec_shndx
-+ && !(sym->st_value > addr && sym->st_value < toaddr)
-+ && sym->st_value + irel->r_addend > addr
-+ && sym->st_value + irel->r_addend < toaddr)
-+ {
-+ irel->r_addend -= count;
-+ }
-+
-+ }
-+ }
-+
-+ /* Adjust the local symbols defined in this section. */
-+ for (isymend = isym + symtab_hdr->sh_info; isym < isymend; isym++)
-+ {
-+ if (isym->st_shndx == sec_shndx
-+ && isym->st_value > addr && isym->st_value < toaddr)
-+ isym->st_value -= count;
-+
-+
-+ }
-+
-+ /* Now adjust the global symbols defined in this section. */
-+ symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
-+ - symtab_hdr->sh_info);
-+ sym_hashes = elf_sym_hashes (abfd);
-+ end_hashes = sym_hashes + symcount;
-+ for (; sym_hashes < end_hashes; sym_hashes++)
-+ {
-+ struct elf_link_hash_entry *sym_hash = *sym_hashes;
-+ if ((sym_hash->root.type == bfd_link_hash_defined
-+ || sym_hash->root.type == bfd_link_hash_defweak)
-+ && sym_hash->root.u.def.section == sec
-+ && sym_hash->root.u.def.value > addr
-+ && sym_hash->root.u.def.value < toaddr)
-+ {
-+ sym_hash->root.u.def.value -= count;
-+ }
-+ }
-+
-+ return TRUE;
-+}
-+
-+struct bfd_link_info *nios2_link_info = NULL;
-+
-+void
-+_bfd_set_link_info (info)
-+ struct bfd_link_info *info;
-+{
-+ nios2_link_info = info;
-+}
-+
-+bfd_boolean linker_force_make_executable = FALSE;
-+
-+void
-+_bfd_set_force_make_executable (force)
-+ bfd_boolean force;
-+{
-+ linker_force_make_executable = force;
-+}
-+
-+/* Set the GP value for OUTPUT_BFD. Returns FALSE if this is a
-+ dangerous relocation. */
-+
-+static bfd_boolean
-+nios2_elf_assign_gp (bfd *output_bfd, bfd_vma *pgp, struct bfd_link_info *info)
-+{
-+
-+ bfd_boolean gp_found;
-+ struct bfd_hash_entry *h;
-+ struct bfd_link_hash_entry *lh;
-+
-+ /* If we've already figured out what GP will be, just return it. */
-+ *pgp = _bfd_get_gp_value (output_bfd);
-+ if (*pgp)
-+ return TRUE;
-+
-+ h = bfd_hash_lookup (&info->hash->table, "_gp", FALSE, FALSE);
-+ lh = (struct bfd_link_hash_entry *) h;
-+lookup:
-+ if (lh)
-+ {
-+ switch (lh->type)
-+ {
-+ case bfd_link_hash_undefined:
-+ case bfd_link_hash_undefweak:
-+ case bfd_link_hash_common:
-+ gp_found = FALSE;
-+ break;
-+ case bfd_link_hash_defined:
-+ case bfd_link_hash_defweak:
-+ gp_found = TRUE;
-+ *pgp = lh->u.def.value;
-+ break;
-+ case bfd_link_hash_indirect:
-+ case bfd_link_hash_warning:
-+ lh = lh->u.i.link;
-+ /* @@FIXME ignoring warning for now */
-+ goto lookup;
-+ case bfd_link_hash_new:
-+ default:
-+ abort ();
-+ }
-+ }
-+ else
-+ gp_found = FALSE;
-+
-+ if (!gp_found)
-+ {
-+ /* Only get the error once. */
-+ *pgp = 4;
-+ _bfd_set_gp_value (output_bfd, *pgp);
-+ return FALSE;
-+ }
-+
-+ _bfd_set_gp_value (output_bfd, *pgp);
-+
-+ return TRUE;
-+}
-+
-+/* We have to figure out the gp value, so that we can adjust the
-+ symbol value correctly. We look up the symbol _gp in the output
-+ BFD. If we can't find it, we're stuck. We cache it in the ELF
-+ target data. We don't need to adjust the symbol value for an
-+ external symbol if we are producing relocatable output. */
-+
-+static bfd_reloc_status_type
-+nios2_elf_final_gp (bfd *output_bfd, asymbol *symbol, bfd_boolean relocatable,
-+ char **error_message, bfd_vma *pgp, struct bfd_link_info *info)
-+{
-+ if (bfd_is_und_section (symbol->section) && !relocatable)
-+ {
-+ *pgp = 0;
-+ return bfd_reloc_undefined;
-+ }
-+
-+ *pgp = _bfd_get_gp_value (output_bfd);
-+ if (*pgp == 0 && (!relocatable || (symbol->flags & BSF_SECTION_SYM) != 0))
-+ {
-+ /* if this is called without link_info, then
-+ we cannot be doing a final link */
-+ if (info == NULL)
-+ relocatable = TRUE;
-+
-+ if (relocatable)
-+ {
-+ /* Make up a value. */
-+ *pgp = symbol->section->output_section->vma + 0x4000;
-+ _bfd_set_gp_value (output_bfd, *pgp);
-+ }
-+ else if (!nios2_elf_assign_gp (output_bfd, pgp, info))
-+ {
-+ *error_message =
-+ (char *)
-+ _("global pointer relative relocation when _gp not defined");
-+ return bfd_reloc_dangerous;
-+ }
-+ }
-+
-+ return bfd_reloc_ok;
-+}
-+
-+
-+/* Relocations that require special handling */
-+
-+/* This is for relocations used only when relaxing to ensure
-+ * changes in size of section don't screw up .align */
-+static bfd_reloc_status_type
-+nios2_elf32_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry,
-+ asymbol *symbol ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED,
-+ asection *input_section, bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
-+{
-+ if (output_bfd != NULL)
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_hi16_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol, void *data,
-+ asection *input_section, bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
-+{
-+ /* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_hi16_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ + symbol->section->output_section->vma
-+ + symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_lo16_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
-+{
-+/* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_lo16_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ + symbol->section->output_section->vma
-+ + symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_hiadj16_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd,
-+ char **error_message ATTRIBUTE_UNUSED)
-+{
-+/* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_hiadj16_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ +
-+ symbol->section->output_section->
-+ vma +
-+ symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_pcrel16_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd,
-+ char **error_message ATTRIBUTE_UNUSED)
-+{
-+/* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_pcrel16_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ +
-+ symbol->section->output_section->
-+ vma +
-+ symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_call26_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
-+{
-+/* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_call26_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ +
-+ symbol->section->output_section->
-+ vma +
-+ symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_gprel_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **msg)
-+{
-+ bfd_vma relocation;
-+ bfd_vma gp;
-+ bfd_reloc_status_type r;
-+
-+
-+/* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ relocation = symbol->value
-+ + symbol->section->output_section->vma + symbol->section->output_offset;
-+
-+ if ((r =
-+ nios2_elf_final_gp (abfd, symbol, FALSE, msg, &gp,
-+ nios2_link_info)) == bfd_reloc_ok)
-+ {
-+ relocation = relocation + reloc_entry->addend - gp;
-+ reloc_entry->addend = 0;
-+ if ((signed) relocation < -32768 || (signed) relocation > 32767)
-+ {
-+ *msg = _("global pointer relative address out of range");
-+ r = bfd_reloc_outofrange;
-+ }
-+ else
-+ {
-+ r = nios2_elf32_do_gprel_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ relocation, reloc_entry->addend);
-+ }
-+ }
-+
-+ return r;
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_ujmp_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **msg ATTRIBUTE_UNUSED)
-+{
-+ /* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_ujmp_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ + symbol->section->output_section->vma
-+ + symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_cjmp_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **msg ATTRIBUTE_UNUSED)
-+{
-+ /* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+ return nios2_elf32_do_cjmp_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ + symbol->section->output_section->vma
-+ + symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_callr_relocate (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-+ void *data, asection *input_section, bfd *output_bfd, char **msg ATTRIBUTE_UNUSED)
-+{
-+ /* This part is from bfd_elf_generic_reloc. */
-+ if (output_bfd != (bfd *) NULL
-+ && (symbol->flags & BSF_SECTION_SYM) == 0
-+ && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
-+ {
-+ reloc_entry->address += input_section->output_offset;
-+ return bfd_reloc_ok;
-+ }
-+
-+ if (output_bfd != NULL)
-+ /* FIXME: See bfd_perform_relocation. Is this right? */
-+ return bfd_reloc_ok;
-+
-+
-+ return nios2_elf32_do_callr_relocate (abfd, reloc_entry->howto,
-+ input_section,
-+ data, reloc_entry->address,
-+ (symbol->value
-+ +
-+ symbol->section->output_section->
-+ vma +
-+ symbol->section->output_offset),
-+ reloc_entry->addend);
-+}
-+
-+/* Do the relocations which require special handling */
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_hi16_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_value = (symbol_value >> 16) & 0xffff;
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_value, addend);
-+}
-+
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_lo16_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_value = symbol_value & 0xffff;
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_value, addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_hiadj16_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data, bfd_vma offset,
-+ bfd_vma symbol_value, bfd_vma addend)
-+{
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_value =
-+ ((symbol_value >> 16) & 0xffff) + ((symbol_value >> 15) & 0x01);
-+ return _bfd_final_link_relocate (howto, abfd, input_section, data, offset,
-+ symbol_value, addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_pcrel16_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ // NIOS2 pc relative relocations are relative to the next 32-bit instruction so we need
-+ // to subtract 4 before doing a final_link_relocate
-+ symbol_value = symbol_value + addend - 4;
-+ addend = 0;
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_value, addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_call26_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ /* check that the relocation is in the same page as the current address */
-+ if (((symbol_value + addend) & 0xf0000000)
-+ != ((input_section->output_section->vma + offset) & 0xf0000000))
-+ return bfd_reloc_overflow;
-+
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_value, addend);
-+}
-+
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_gprel_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ // because we need the output_bfd, the special handling is done
-+ // in nios2_elf32_relocate_section or in nios2_elf32_gprel_relocate
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_value, addend);
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_ujmp_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ bfd_vma symbol_lo16, symbol_hi16;
-+ bfd_reloc_status_type r;
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_hi16 = (symbol_value >> 16) & 0xffff;
-+ symbol_lo16 = symbol_value & 0xffff;
-+
-+ r = _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_hi16, addend);
-+
-+ if (r == bfd_reloc_ok)
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset + 4, symbol_lo16, addend);
-+
-+ return r;
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_cjmp_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ bfd_vma symbol_lo16, symbol_hi16;
-+ bfd_reloc_status_type r;
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_hi16 = (symbol_value >> 16) & 0xffff;
-+ symbol_lo16 = symbol_value & 0xffff;
-+
-+ r = _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_hi16, addend);
-+
-+ if (r == bfd_reloc_ok)
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset + 4, symbol_lo16, addend);
-+
-+ return r;
-+}
-+
-+static bfd_reloc_status_type
-+nios2_elf32_do_callr_relocate (bfd *abfd, reloc_howto_type *howto,
-+ asection *input_section ATTRIBUTE_UNUSED, bfd_byte *data,
-+ bfd_vma offset, bfd_vma symbol_value, bfd_vma addend)
-+{
-+ bfd_vma symbol_lo16, symbol_hi16;
-+ bfd_reloc_status_type r;
-+ symbol_value = symbol_value + addend;
-+ addend = 0;
-+ symbol_hi16 = (symbol_value >> 16) & 0xffff;
-+ symbol_lo16 = symbol_value & 0xffff;
-+
-+ r = _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset, symbol_hi16, addend);
-+
-+ if (r == bfd_reloc_ok)
-+ return _bfd_final_link_relocate (howto, abfd, input_section,
-+ data, offset + 4, symbol_lo16, addend);
-+
-+ return r;
-+}
-+
-+/*
-+ The function nios2_elf32_relocate_section is used by the linker
-+ to perform relocations
-+*/
-+static bfd_boolean
-+nios2_elf32_relocate_section (bfd * output_bfd,
-+ struct bfd_link_info *info,
-+ bfd * input_bfd,
-+ asection * input_section,
-+ bfd_byte * contents,
-+ Elf_Internal_Rela * relocs,
-+ Elf_Internal_Sym * local_syms,
-+ asection ** local_sections)
-+{
-+ Elf_Internal_Shdr *symtab_hdr;
-+ struct elf_link_hash_entry **sym_hashes;
-+ Elf_Internal_Rela *rel;
-+ Elf_Internal_Rela *relend;
-+
-+ symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
-+ sym_hashes = elf_sym_hashes (input_bfd);
-+ relend = relocs + input_section->reloc_count;
-+
-+// size_t psymalloc = 0;
-+// _bfd_generic_link_output_symbols(output_bfd, input_bfd, info, &psymalloc);
-+ for (rel = relocs; rel < relend; rel++)
-+ {
-+ reloc_howto_type *howto;
-+ unsigned long r_symndx;
-+ Elf_Internal_Sym *sym;
-+ asection *sec;
-+ struct elf_link_hash_entry *h;
-+ bfd_vma relocation;
-+ bfd_vma gp;
-+ bfd_vma reloc_address;
-+ bfd_reloc_status_type r = bfd_reloc_ok;
-+ const char *name = NULL;
-+ int r_type;
-+ const char *format;
-+ char msgbuf[256];
-+ const char* msg = (const char*) NULL;
-+
-+
-+
-+ r_type = ELF32_R_TYPE (rel->r_info);
-+
-+ r_symndx = ELF32_R_SYM (rel->r_info);
-+
-+ if (info->relocatable)
-+ {
-+ /* This is a relocatable link. We don't have to change
-+ anything, unless the reloc is against a section symbol,
-+ in which case we have to adjust according to where the
-+ section symbol winds up in the output section. */
-+ if (r_symndx < symtab_hdr->sh_info)
-+ {
-+ sym = local_syms + r_symndx;
-+
-+ if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-+ {
-+ sec = local_sections[r_symndx];
-+ rel->r_addend += sec->output_offset + sym->st_value;
-+ }
-+ }
-+ continue;
-+ }
-+
-+ /* This is a final link. */
-+ howto = lookup_howto ((unsigned) ELF32_R_TYPE (rel->r_info));
-+ h = NULL;
-+ sym = NULL;
-+ sec = NULL;
-+
-+ if (r_symndx < symtab_hdr->sh_info)
-+ {
-+ sym = local_syms + r_symndx;
-+ sec = local_sections[r_symndx];
-+
-+ relocation = (sec->output_section->vma
-+ + sec->output_offset + sym->st_value);
-+
-+ // this ensures that relocations against duplicated symbols
-+ // in merged sections that have been removed are fixed up against
-+ // the remaining symbol and not the one that has been removed
-+ if ((sec->flags & SEC_MERGE)
-+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-+ {
-+ rel->r_addend =
-+ _bfd_elf_rel_local_sym (output_bfd, sym, &sec, rel->r_addend);
-+ rel->r_addend -= relocation;
-+ rel->r_addend += sec->output_section->vma + sec->output_offset;
-+ }
-+
-+ name = bfd_elf_string_from_elf_section
-+ (input_bfd, symtab_hdr->sh_link, sym->st_name);
-+
-+ name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
-+ }
-+ else
-+ {
-+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-+
-+ while (h->root.type == bfd_link_hash_indirect
-+ || h->root.type == bfd_link_hash_warning)
-+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+
-+ name = h->root.root.string;
-+
-+ if (h->root.type == bfd_link_hash_defined
-+ || h->root.type == bfd_link_hash_defweak)
-+ {
-+ sec = h->root.u.def.section;
-+
-+ relocation = (h->root.u.def.value
-+ + sec->output_section->vma + sec->output_offset);
-+ }
-+ else if (h->root.type == bfd_link_hash_undefweak)
-+ {
-+ relocation = 0;
-+ }
-+ else
-+ {
-+ if (!((*info->callbacks->undefined_symbol)
-+ (info, h->root.root.string, input_bfd,
-+ input_section, rel->r_offset, TRUE)))
-+ return FALSE;
-+ relocation = 0;
-+ }
-+ }
-+
-+ if (sec)
-+ reloc_address = sec->output_section->vma + sec->output_offset + rel->r_offset;
-+ else
-+ reloc_address = 0;
-+
-+ if (howto != NULL)
-+ {
-+ switch (howto->type)
-+ {
-+ case R_NIOS2_HI16:
-+ r =
-+ nios2_elf32_do_hi16_relocate (input_bfd, howto, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ break;
-+ case R_NIOS2_LO16:
-+ r =
-+ nios2_elf32_do_lo16_relocate (input_bfd, howto, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ break;
-+ case R_NIOS2_HIADJ16:
-+ r =
-+ nios2_elf32_do_hiadj16_relocate (input_bfd, howto,
-+ input_section, contents,
-+ rel->r_offset, relocation,
-+ rel->r_addend);
-+ break;
-+ case R_NIOS2_PCREL16:
-+ r =
-+ nios2_elf32_do_pcrel16_relocate (input_bfd, howto,
-+ input_section, contents,
-+ rel->r_offset, relocation,
-+ rel->r_addend);
-+ break;
-+ case R_NIOS2_GPREL:
-+ // turns an absolute address into a gp-relative address
-+ if (!nios2_elf_assign_gp (output_bfd, &gp, info))
-+ {
-+ format = _("global pointer relative relocation at address 0x%08x when _gp not defined\n");
-+ sprintf(msgbuf, format, reloc_address);
-+ msg = msgbuf;
-+ r = bfd_reloc_dangerous;
-+ }
-+ else
-+ {
-+ relocation = relocation + rel->r_addend - gp;
-+ rel->r_addend = 0;
-+ if ((signed) relocation < -32768
-+ || (signed) relocation > 32767)
-+ {
-+ format = _("global pointer relative offset %d at address 0x%08x out of range -32678 to 32767\n");
-+ sprintf(msgbuf, format, (signed)relocation, reloc_address);
-+ msg = msgbuf;
-+ r = bfd_reloc_outofrange;
-+ }
-+ else
-+ {
-+ r =
-+ _bfd_final_link_relocate (howto, input_bfd,
-+ input_section, contents,
-+ rel->r_offset, relocation,
-+ rel->r_addend);
-+ }
-+ }
-+
-+ break;
-+ case R_NIOS2_UJMP:
-+ r =
-+ nios2_elf32_do_ujmp_relocate (input_bfd, howto, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ break;
-+ case R_NIOS2_CJMP:
-+ r =
-+ nios2_elf32_do_cjmp_relocate (input_bfd, howto, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ break;
-+ case R_NIOS2_CALLR:
-+ r =
-+ nios2_elf32_do_callr_relocate (input_bfd, howto,
-+ input_section, contents,
-+ rel->r_offset, relocation,
-+ rel->r_addend);
-+ break;
-+ case R_NIOS2_CALL26:
-+ r =
-+ nios2_elf32_do_call26_relocate (input_bfd, howto,
-+ input_section, contents,
-+ rel->r_offset, relocation,
-+ rel->r_addend);
-+ break;
-+ case R_NIOS2_ALIGN:
-+ r = bfd_reloc_ok;
-+ /* comment - for symmetry this would be
-+ r = nios2_elf32_do_ignore_reloc (input_bfd, howto, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ but do_ignore_reloc would do no more than return bfd_reloc_ok */
-+ break;
-+ default:
-+ r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-+ contents, rel->r_offset,
-+ relocation, rel->r_addend);
-+ break;
-+ }
-+ }
-+ else
-+ {
-+ r = bfd_reloc_notsupported;
-+ }
-+
-+ if (r != bfd_reloc_ok)
-+ {
-+ if (h != NULL)
-+ name = h->root.root.string;
-+ else
-+ {
-+ name = (bfd_elf_string_from_elf_section
-+ (input_bfd, symtab_hdr->sh_link, sym->st_name));
-+ if (name == NULL || *name == '\0')
-+ name = bfd_section_name (input_bfd, sec);
-+ }
-+
-+ switch (r)
-+ {
-+ case bfd_reloc_overflow:
-+ r = info->callbacks->reloc_overflow
-+ (info, name, howto->name, (bfd_vma) 0,
-+ input_bfd, input_section, rel->r_offset);
-+ break;
-+
-+ case bfd_reloc_undefined:
-+ r = info->callbacks->undefined_symbol
-+ (info, name, input_bfd, input_section, rel->r_offset, TRUE);
-+ break;
-+
-+ case bfd_reloc_outofrange:
-+ if (msg == NULL)
-+ msg = _("relocation out of range");
-+ break;
-+
-+ case bfd_reloc_notsupported:
-+ if (msg == NULL)
-+ msg = _("unsupported relocation");
-+ break;
-+
-+ case bfd_reloc_dangerous:
-+ if (msg == NULL)
-+ msg = _("dangerous relocation");
-+ break;
-+
-+ default:
-+ if (msg == NULL)
-+ msg = _("unknown error");
-+ break;
-+ }
-+
-+ if (msg)
-+ {
-+ r = info->callbacks->warning
-+ (info, msg, name, input_bfd, input_section, rel->r_offset);
-+ return linker_force_make_executable;
-+ }
-+ }
-+ }
-+ return TRUE;
-+}
-+
-+
-+
-+/* Handle an NIOS2 specific section when reading an object file. This
-+ is called when elfcode.h finds a section with an unknown type.
-+ FIXME: We need to handle the SHF_NIOS2_GPREL flag */
-+
-+static bfd_boolean
-+nios2_elf32_section_from_shdr (bfd *abfd,
-+ Elf_Internal_Shdr *hdr, const char *name)
-+{
-+ asection *newsect;
-+
-+ /* NG - I'm keeping this code commented out at the moment
-+ in case we add a .mdebug section */
-+
-+ /*
-+ switch (hdr->sh_type)
-+ {
-+ case SHT_NIOS2_DEBUG:
-+ if (strcmp (name, ".mdebug") != 0)
-+ return FALSE;
-+ break;
-+ default:
-+ return FALSE;
-+ }
-+ */
-+
-+ if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name))
-+ return FALSE;
-+
-+ newsect = hdr->bfd_section;
-+
-+ /* ditto */
-+ /*
-+ if (hdr->sh_type == SHT_NIOS2_DEBUG)
-+ {
-+ if (! bfd_set_section_flags (abfd, newsect,
-+ (bfd_get_section_flags (abfd, newsect)
-+ | SEC_DEBUGGING)))
-+ return FALSE;
-+ }
-+ */
-+ return TRUE;
-+}
-+
-+/* Convert NIOS2 specific section flags to bfd internal section flags. */
-+
-+static bfd_boolean
-+nios2_elf32_section_flags (flagword *flags, Elf_Internal_Shdr *hdr)
-+{
-+ if (hdr->sh_flags & SHF_NIOS2_GPREL)
-+ *flags |= SEC_SMALL_DATA;
-+
-+ return TRUE;
-+}
-+
-+/* Set the correct type for an NIOS2 ELF section. We do this by the
-+ section name, which is a hack, but ought to work. */
-+
-+static bfd_boolean
-+nios2_elf32_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
-+ Elf_Internal_Shdr *hdr, asection *sec)
-+{
-+ register const char *name;
-+
-+ name = bfd_get_section_name (abfd, sec);
-+
-+ if (strcmp (name, ".mdebug") == 0)
-+ {
-+ /* we don't yet have an .mdebug section, but I'm leaving this here
-+ in case we ever do
-+ hdr->sh_type = SHT_NIOS2_DEBUG;
-+
-+ if ((abfd->flags & DYNAMIC) != 0 )
-+ hdr->sh_entsize = 0;
-+ else
-+ hdr->sh_entsize = 1;
-+ */
-+ }
-+ else if ((sec->flags & SEC_SMALL_DATA)
-+ || strcmp (name, ".sdata") == 0
-+ || strcmp (name, ".sbss") == 0
-+ || strcmp (name, ".lit4") == 0 || strcmp (name, ".lit8") == 0)
-+ hdr->sh_flags |= SHF_NIOS2_GPREL;
-+
-+ return TRUE;
-+}
-+
-+/* Look through the relocs for a section during the first phase.
-+ Since we don't do .gots or .plts, we just need to consider the
-+ virtual table relocs for gc. */
-+
-+static bfd_boolean
-+nios2_elf32_check_relocs (bfd *abfd, struct bfd_link_info *info,
-+ asection *sec, const Elf_Internal_Rela *relocs)
-+{
-+ Elf_Internal_Shdr *symtab_hdr;
-+ struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
-+ const Elf_Internal_Rela *rel;
-+ const Elf_Internal_Rela *rel_end;
-+
-+ if (info->relocatable)
-+ return TRUE;
-+
-+ symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-+ sym_hashes = elf_sym_hashes (abfd);
-+ sym_hashes_end =
-+ sym_hashes + symtab_hdr->sh_size / sizeof (Elf32_External_Sym);
-+ if (!elf_bad_symtab (abfd))
-+ sym_hashes_end -= symtab_hdr->sh_info;
-+
-+ rel_end = relocs + sec->reloc_count;
-+ for (rel = relocs; rel < rel_end; rel++)
-+ {
-+ struct elf_link_hash_entry *h;
-+ unsigned long r_symndx;
-+
-+ r_symndx = ELF32_R_SYM (rel->r_info);
-+ if (r_symndx < symtab_hdr->sh_info)
-+ h = NULL;
-+ else
-+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-+
-+ switch (ELF32_R_TYPE (rel->r_info))
-+ {
-+ /* This relocation describes the C++ object vtable hierarchy.
-+ Reconstruct it for later use during GC. */
-+ case R_NIOS2_GNU_VTINHERIT:
-+ if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-+ return FALSE;
-+ break;
-+
-+ /* This relocation describes which C++ vtable entries are actually
-+ used. Record for later use during GC. */
-+ case R_NIOS2_GNU_VTENTRY:
-+ if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-+ return FALSE;
-+ break;
-+ }
-+ }
-+
-+ return TRUE;
-+}
-+
-+
-+/* Return the section that should be marked against GC for a given
-+ relocation. */
-+
-+asection *
-+nios2_elf32_gc_mark_hook (asection *sec,
-+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
-+ Elf_Internal_Rela *rel, struct elf_link_hash_entry *h,
-+ Elf_Internal_Sym *sym)
-+{
-+ if (h != NULL)
-+ {
-+ switch (ELF32_R_TYPE (rel->r_info))
-+ {
-+ case R_NIOS2_GNU_VTINHERIT:
-+ case R_NIOS2_GNU_VTENTRY:
-+ break;
-+
-+ default:
-+ switch (h->root.type)
-+ {
-+ case bfd_link_hash_defined:
-+ case bfd_link_hash_defweak:
-+ return h->root.u.def.section;
-+
-+ case bfd_link_hash_common:
-+ return h->root.u.c.p->section;
-+
-+ default:
-+ break;
-+ }
-+ }
-+ }
-+ else
-+ return bfd_section_from_elf_index (sec->owner, sym->st_shndx);
-+
-+ return NULL;
-+}
-+
-+/*
-+ NG ??? I'm marking the sections as standalone ie. I'm linking for
-+ standalone embedded applications, not for UNIX System V or any other
-+ OS/ABI - this may need to change when we deal with embedded PIC or
-+ dynamic linking
-+*/
-+
-+static void
-+nios2_elf32_post_process_headers (bfd *abfd,
-+ struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
-+{
-+ Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
-+
-+ i_ehdrp = elf_elfheader (abfd);
-+ i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_STANDALONE;
-+}
-+
-+#define ELF_ARCH bfd_arch_nios2
-+#define ELF_MACHINE_CODE EM_ALTERA_NIOS2
-+
-+/* for now we just make this 1, as we have no MMU in New Jersey */
-+
-+#define ELF_MAXPAGESIZE 1
-+
-+/* relocation table lookup macros */
-+
-+#define bfd_elf32_bfd_reloc_type_lookup nios2_elf32_bfd_reloc_type_lookup
-+
-+/* JUMP_TABLE_LINK macros */
-+
-+#define bfd_elf32_bfd_relax_section nios2_elf32_relax_section
-+
-+/* elf_info_to_howto (using RELA relocations) */
-+
-+#define elf_info_to_howto nios2_elf32_info_to_howto
-+
-+/* elf backend functions */
-+
-+#define elf_backend_can_gc_sections 1
-+
-+#define elf_backend_relocate_section nios2_elf32_relocate_section
-+#define elf_backend_section_from_shdr nios2_elf32_section_from_shdr
-+#define elf_backend_section_flags nios2_elf32_section_flags
-+#define elf_backend_fake_sections nios2_elf32_fake_sections
-+#define elf_backend_post_process_headers nios2_elf32_post_process_headers
-+#define elf_backend_check_relocs nios2_elf32_check_relocs
-+
-+#define elf_backend_gc_mark_hook nios2_elf32_gc_mark_hook
-+
-+
-+
-+/* Support for SGI-ish mips targets. */
-+#define TARGET_LITTLE_SYM bfd_elf32_littlenios2_vec
-+#define TARGET_LITTLE_NAME "elf32-littlenios2"
-+//#define TARGET_BIG_SYM bfd_elf32_bignios2_vec
-+//#define TARGET_BIG_NAME "elf32-bignios2"
-+
-+#include "elf32-target.h"
---- binutils-2.15/bfd/libbfd.h 2004-02-12 00:23:20.000000000 +0100
-+++ binutils-2.15-nios2/bfd/libbfd.h 2005-05-17 12:20:13.000000000 +0200
-@@ -652,9 +652,11 @@ extern bfd_boolean _bfd_sh_align_load_sp
- #endif
- /* Extracted from init.c. */
- /* Extracted from libbfd.c. */
--bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
-+bfd_boolean
-+bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int));
-
--unsigned int bfd_log2 (bfd_vma x);
-+unsigned int
-+bfd_log2 PARAMS ((bfd_vma x));
-
- /* Extracted from bfdio.c. */
- /* Extracted from bfdwin.c. */
-@@ -673,13 +675,17 @@ extern bfd *bfd_last_cache;
- ((x)==bfd_last_cache? \
- (FILE*) (bfd_last_cache->iostream): \
- bfd_cache_lookup_worker(x))
--bfd_boolean bfd_cache_init (bfd *abfd);
-+bfd_boolean
-+bfd_cache_init PARAMS ((bfd *abfd));
-
--bfd_boolean bfd_cache_close (bfd *abfd);
-+bfd_boolean
-+bfd_cache_close PARAMS ((bfd *abfd));
-
--FILE* bfd_open_file (bfd *abfd);
-+FILE*
-+bfd_open_file PARAMS ((bfd *abfd));
-
--FILE *bfd_cache_lookup_worker (bfd *abfd);
-+FILE *
-+bfd_cache_lookup_worker PARAMS ((bfd *abfd));
-
- /* Extracted from reloc.c. */
- #ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
-@@ -1504,6 +1510,21 @@ static const char *const bfd_reloc_code_
- "BFD_RELOC_MSP430_16",
- "BFD_RELOC_MSP430_16_PCREL_BYTE",
- "BFD_RELOC_MSP430_16_BYTE",
-+ "BFD_RELOC_NIOS2_S16",
-+ "BFD_RELOC_NIOS2_U16",
-+ "BFD_RELOC_NIOS2_CALL26",
-+ "BFD_RELOC_NIOS2_IMM5",
-+ "BFD_RELOC_NIOS2_CACHE_OPX",
-+ "BFD_RELOC_NIOS2_IMM6",
-+ "BFD_RELOC_NIOS2_IMM8",
-+ "BFD_RELOC_NIOS2_HI16",
-+ "BFD_RELOC_NIOS2_LO16",
-+ "BFD_RELOC_NIOS2_HIADJ16",
-+ "BFD_RELOC_NIOS2_GPREL",
-+ "BFD_RELOC_NIOS2_UJMP",
-+ "BFD_RELOC_NIOS2_CJMP",
-+ "BFD_RELOC_NIOS2_CALLR",
-+ "BFD_RELOC_NIOS2_ALIGN",
- "BFD_RELOC_IQ2000_OFFSET_16",
- "BFD_RELOC_IQ2000_OFFSET_21",
- "BFD_RELOC_IQ2000_UHI16",
-@@ -1521,40 +1542,41 @@ static const char *const bfd_reloc_code_
- };
- #endif
-
--reloc_howto_type *bfd_default_reloc_type_lookup
-- (bfd *abfd, bfd_reloc_code_real_type code);
-+reloc_howto_type *
-+bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-
--bfd_boolean bfd_generic_relax_section
-- (bfd *abfd,
-+bfd_boolean
-+bfd_generic_relax_section PARAMS ((bfd *abfd,
- asection *section,
- struct bfd_link_info *,
-- bfd_boolean *);
-+ bfd_boolean *));
-
--bfd_boolean bfd_generic_gc_sections
-- (bfd *, struct bfd_link_info *);
-+bfd_boolean
-+bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *));
-
--bfd_boolean bfd_generic_merge_sections
-- (bfd *, struct bfd_link_info *);
-+bfd_boolean
-+bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *));
-
--bfd_byte *bfd_generic_get_relocated_section_contents
-- (bfd *abfd,
-+bfd_byte *
-+bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
- struct bfd_link_info *link_info,
- struct bfd_link_order *link_order,
- bfd_byte *data,
- bfd_boolean relocatable,
-- asymbol **symbols);
-+ asymbol **symbols));
-
- /* Extracted from archures.c. */
- extern const bfd_arch_info_type bfd_default_arch_struct;
--bfd_boolean bfd_default_set_arch_mach
-- (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
-+bfd_boolean
-+bfd_default_set_arch_mach PARAMS ((bfd *abfd, enum bfd_architecture arch, unsigned long mach));
-
--const bfd_arch_info_type *bfd_default_compatible
-- (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
-+const bfd_arch_info_type *
-+bfd_default_compatible PARAMS ((const bfd_arch_info_type *a, const bfd_arch_info_type *b));
-
--bfd_boolean bfd_default_scan
-- (const struct bfd_arch_info *info, const char *string);
-+bfd_boolean
-+bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string));
-
- /* Extracted from elf.c. */
--struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
-+struct elf_internal_shdr *
-+bfd_elf_find_section PARAMS ((bfd *abfd, char *name));
-
---- binutils-2.15/bfd/reloc.c 2004-01-21 12:17:53.000000000 +0100
-+++ binutils-2.15-nios2/bfd/reloc.c 2005-05-17 12:20:13.000000000 +0200
-@@ -3943,6 +3943,39 @@ ENUMDOC
- msp430 specific relocation codes
-
- ENUM
-+ BFD_RELOC_NIOS2_S16
-+ENUMX
-+ BFD_RELOC_NIOS2_U16
-+ENUMX
-+ BFD_RELOC_NIOS2_CALL26
-+ENUMX
-+ BFD_RELOC_NIOS2_IMM5
-+ENUMX
-+ BFD_RELOC_NIOS2_CACHE_OPX
-+ENUMX
-+ BFD_RELOC_NIOS2_IMM6
-+ENUMX
-+ BFD_RELOC_NIOS2_IMM8
-+ENUMX
-+ BFD_RELOC_NIOS2_HI16
-+ENUMX
-+ BFD_RELOC_NIOS2_LO16
-+ENUMX
-+ BFD_RELOC_NIOS2_HIADJ16
-+ENUMX
-+ BFD_RELOC_NIOS2_GPREL
-+ENUMX
-+ BFD_RELOC_NIOS2_UJMP
-+ENUMX
-+ BFD_RELOC_NIOS2_CJMP
-+ENUMX
-+ BFD_RELOC_NIOS2_CALLR
-+ENUMX
-+ BFD_RELOC_NIOS2_ALIGN
-+ENUMDOC
-+ Relocations used by the Altera New Jersey core
-+
-+ENUM
- BFD_RELOC_IQ2000_OFFSET_16
- ENUMX
- BFD_RELOC_IQ2000_OFFSET_21
---- binutils-2.15/bfd/srec.c 2003-11-30 19:40:41.000000000 +0100
-+++ binutils-2.15-nios2/bfd/srec.c 2005-05-17 12:20:13.000000000 +0200
-@@ -1009,9 +1009,14 @@ srec_write_header (abfd)
- {
- unsigned int len = strlen (abfd->filename);
-
-- /* I'll put an arbitrary 40 char limit on header size. */
-- if (len > 40)
-- len = 40;
-+ /* validate Chunk for header */
-+ if (Chunk == 0)
-+ Chunk = 1;
-+ else if (Chunk > MAXCHUNK - 2) /* S0 has 2 address bytes */
-+ Chunk = MAXCHUNK - 2;
-+
-+ if (len > Chunk)
-+ len = Chunk;
-
- return srec_write_record (abfd, 0, (bfd_vma) 0,
- abfd->filename, abfd->filename + len);
---- binutils-2.15/bfd/targets.c 2004-05-17 21:36:04.000000000 +0200
-+++ binutils-2.15-nios2/bfd/targets.c 2005-05-17 12:20:13.000000000 +0200
-@@ -559,6 +559,7 @@ extern const bfd_target bfd_elf32_nbigmi
- extern const bfd_target bfd_elf32_nlittlemips_vec;
- extern const bfd_target bfd_elf32_ntradbigmips_vec;
- extern const bfd_target bfd_elf32_ntradlittlemips_vec;
-+extern const bfd_target bfd_elf32_littlenios2_vec;
- extern const bfd_target bfd_elf32_openrisc_vec;
- extern const bfd_target bfd_elf32_or32_big_vec;
- extern const bfd_target bfd_elf32_pj_vec;
-@@ -746,6 +747,7 @@ extern const bfd_target sco5_core_vec;
- extern const bfd_target trad_core_vec;
-
- extern const bfd_target bfd_elf32_am33lin_vec;
-+extern const bfd_target bfd_elf32_littlenios2_vec;
- static const bfd_target * const _bfd_target_vector[] = {
-
- #ifdef SELECT_VECS
-@@ -854,6 +856,7 @@ static const bfd_target * const _bfd_tar
- &bfd_elf32_ntradbigmips_vec,
- &bfd_elf32_ntradlittlemips_vec,
- #endif
-+ &bfd_elf32_littlenios2_vec,
- &bfd_elf32_openrisc_vec,
- &bfd_elf32_or32_big_vec,
- &bfd_elf32_pj_vec,
---- binutils-2.15/binutils/nios2_binutils_xfail.lst 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/binutils/nios2_binutils_xfail.lst 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1 @@
-+No xfails
---- binutils-2.15/binutils/readelf.c 2004-05-17 21:35:52.000000000 +0200
-+++ binutils-2.15-nios2/binutils/readelf.c 2005-05-17 12:20:13.000000000 +0200
-@@ -110,6 +110,8 @@
-
- #include "aout/ar.h"
-
-+#include "elf/nios2.h"
-+
- #include "bucomm.h"
- #include "getopt.h"
- #include "libiberty.h"
-@@ -668,6 +670,7 @@ guess_is_rela (unsigned long e_machine)
- case EM_XTENSA:
- case EM_XTENSA_OLD:
- case EM_M32R:
-+ case EM_ALTERA_NIOS2:
- return TRUE;
-
- case EM_MMA:
-@@ -1166,6 +1169,10 @@ dump_relocations (FILE *file,
- case EM_XTENSA:
- rtype = elf_xtensa_reloc_type (type);
- break;
-+
-+ case EM_ALTERA_NIOS2:
-+ rtype = elf_nios2_reloc_type (type);
-+ break;
- }
-
- if (rtype == NULL)
-@@ -1649,6 +1656,7 @@ get_machine_name (unsigned e_machine)
- case EM_IQ2000: return "Vitesse IQ2000";
- case EM_XTENSA_OLD:
- case EM_XTENSA: return "Tensilica Xtensa Processor";
-+ case EM_ALTERA_NIOS2: return "Altera Nios II";
- default:
- sprintf (buff, _("<unknown>: %x"), e_machine);
- return buff;
---- binutils-2.15/binutils/testsuite/binutils-all/bintest.s 1999-05-03 09:29:11.000000000 +0200
-+++ binutils-2.15-nios2/binutils/testsuite/binutils-all/bintest.s 2005-05-17 12:20:13.000000000 +0200
-@@ -1,5 +1,8 @@
- .globl text_symbol
- .text
-+ # this is needed to get the readelf -s, -S and -r tests to work
-+ # with nios2 as it has relaxation on by default
-+ .set norelax
- text_symbol:
- static_text_symbol:
- .long 1
---- binutils-2.15/binutils-2.15_copied 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/binutils-2.15_copied 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1 @@
-+timestamp
---- binutils-2.15/binutils-2.15_untarred 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/binutils-2.15_untarred 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1 @@
-+timestamp
---- binutils-2.15/configure 2004-05-17 21:36:20.000000000 +0200
-+++ binutils-2.15-nios2/configure 2005-05-17 12:20:13.000000000 +0200
-@@ -1434,6 +1434,10 @@ case "${target}" in
- mips*-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
- ;;
-+ nios2-*-*)
-+ skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'`
-+ noconfigdirs="$noconfigdirs"
-+ ;;
- romp-*-*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
- ;;
---- binutils-2.15/configure.in 2004-05-17 21:40:54.000000000 +0200
-+++ binutils-2.15-nios2/configure.in 2005-05-17 12:20:13.000000000 +0200
-@@ -18,6 +18,7 @@
- ##############################################################################
- ### WARNING: this file contains embedded tabs. Do not run untabify on this file.
-
-+
- AC_INIT(move-if-change)
- AC_PREREQ(2.13)
- AC_CANONICAL_SYSTEM
-@@ -667,6 +668,10 @@ case "${target}" in
- mips*-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
- ;;
-+ nios2-*-*)
-+ skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'`
-+ noconfigdirs="$noconfigdirs"
-+ ;;
- romp-*-*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
- ;;
---- binutils-2.15/gas/Makefile.in 2004-05-17 21:36:07.000000000 +0200
-+++ binutils-2.15-nios2/gas/Makefile.in 2005-05-17 12:20:13.000000000 +0200
-@@ -299,6 +299,7 @@ CPU_TYPES = \
- mn10200 \
- mn10300 \
- msp430 \
-+ nios2 \
- ns32k \
- openrisc \
- or32 \
-@@ -493,6 +494,7 @@ TARGET_CPU_CFILES = \
- config/tc-mn10200.c \
- config/tc-mn10300.c \
- config/tc-msp430.c \
-+ config/tc-nios2.c \
- config/tc-ns32k.c \
- config/tc-openrisc.c \
- config/tc-or32.c \
-@@ -545,6 +547,7 @@ TARGET_CPU_HFILES = \
- config/tc-mn10200.h \
- config/tc-mn10300.h \
- config/tc-msp430.h \
-+ config/tc-nios2.h \
- config/tc-ns32k.h \
- config/tc-openrisc.h \
- config/tc-or32.h \
-@@ -1171,6 +1174,13 @@ DEPTC_msp430_elf = $(INCDIR)/symcat.h $(
- subsegs.h $(INCDIR)/obstack.h $(INCDIR)/opcode/msp430.h \
- $(INCDIR)/safe-ctype.h
-
-+DEPTC_nios2_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
-+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-nios2.h \
-+ subsegs.h $(INCDIR)/obstack.h $(INCDIR)/safe-ctype.h \
-+ $(INCDIR)/opcode/nios2.h itbl-ops.h dwarf2dbg.h $(INCDIR)/elf/nios2.h \
-+ $(INCDIR)/elf/reloc-macros.h
-+
- DEPTC_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \
- $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \
- $(INCDIR)/opcode/ns32k.h $(INCDIR)/obstack.h
-@@ -1824,6 +1834,12 @@ DEPOBJ_msp430_elf = $(INCDIR)/symcat.h $
- $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
- struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h
-
-+DEPOBJ_nios2_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
-+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-nios2.h \
-+ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
-+ $(INCDIR)/elf/nios2.h $(INCDIR)/elf/reloc-macros.h
-+
- DEPOBJ_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \
- $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \
- $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h
-@@ -2349,6 +2365,10 @@ DEP_msp430_elf = $(srcdir)/config/obj-el
- $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
- $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h
-
-+DEP_nios2_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \
-+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-nios2.h
-+
- DEP_ns32k_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-ns32k.h \
- $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
-
---- binutils-2.15/gas/config/obj-elf.c 2004-05-17 21:36:08.000000000 +0200
-+++ binutils-2.15-nios2/gas/config/obj-elf.c 2005-05-17 12:20:13.000000000 +0200
-@@ -53,6 +53,10 @@
- #include "elf/i370.h"
- #endif
-
-+#ifdef TC_NIOS2
-+#include "elf/nios2.h"
-+#endif
-+
- static void obj_elf_line (int);
- static void obj_elf_size (int);
- static void obj_elf_type (int);
---- binutils-2.15/gas/config/tc-nios2.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/config/tc-nios2.c 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,2996 @@
-+/* tc-nios2.c -- assemble code for a New Jersey processor.
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+
-+ This file is part of GAS.
-+
-+ GAS 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, or (at your option)
-+ any later version.
-+
-+ GAS 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 GAS; see the file COPYING. If not, write to the Free
-+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-+ 02111-1307, USA. */
-+
-+
-+#include <stdio.h>
-+#include <limits.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include "as.h"
-+#include "opcode/nios2.h"
-+#include "elf/nios2.h"
-+#include "tc-nios2.h"
-+#include "bfd.h"
-+#include "dwarf2dbg.h"
-+#include "subsegs.h"
-+#include "safe-ctype.h"
-+
-+#ifndef OBJ_ELF
-+ /* we are not supporting any other target
-+ so we throw a compile time error */
-+OBJ_ELF not defined
-+#endif
-+ typedef enum
-+{
-+ relax_section = 0,
-+ relax_none,
-+ relax_all
-+}
-+relax_optionT;
-+
-+
-+/* struct contains all assembler options set with .set */
-+struct
-+{
-+ /*
-+ .set noat -> noat = 1 allows assembly code to use at without warning
-+ and macro expansions will generate a warning.
-+ .set at -> noat = 0, assembly code using at will warn
-+ macro expansions will not generate warnings
-+ */
-+ bfd_boolean noat;
-+
-+ /*
-+ .set nobreak -> nobreak = 1 allows assembly code to use ba,bt without warning
-+ .set break -> nobreak = 0, assembly code using ba,bt will warn
-+ */
-+ bfd_boolean nobreak;
-+
-+ /*
-+ .cmd line option -relax-all allows all branches and calls to be replaced
-+ with longer versions
-+ -no-relax inhibits branch/call conversion
-+ default value is relax_section, which relaxes branches within a section
-+ */
-+ relax_optionT relax;
-+
-+}
-+nios2_as_options =
-+{
-+FALSE, FALSE, relax_section};
-+
-+
-+typedef struct nios2_insn_reloc
-+{
-+ /* any expression in the instruction is parsed into
-+ this field which is passed to fix_new_exp() to
-+ generate a fixup */
-+ expressionS reloc_expression;
-+
-+ /* the type of the relocation to be applied */
-+ bfd_reloc_code_real_type reloc_type;
-+
-+ /* pc relative */
-+ unsigned int reloc_pcrel;
-+
-+ /* the next relocation to be applied to the instruction */
-+ struct nios2_insn_reloc *reloc_next;
-+}
-+nios2_insn_relocS;
-+
-+
-+/* ------------------------------------------------------------------
-+ This struct is used by the functions in tc-nios2.c to assemble an
-+ instruction
-+ ------------------------------------------------------------------*/
-+
-+typedef struct nios2_insn_info
-+{
-+ /* assembled instruction */
-+ unsigned long insn_code;
-+ /* ptr to the relevant bit of the opcode table */
-+ const struct nios2_opcode *insn_nios2_opcode;
-+ /* after parsing ptrs to the tokens in the instruction fill this array
-+ it is terminated with a null pointer ( hence the first +1
-+ The second +1 is because in some parts of the code the opcode
-+ is not counted as a token, but still placed in this array*/
-+ const char *insn_tokens[NIOS2_MAX_INSN_TOKENS + 1 + 1];
-+
-+ /* this holds information used to generate fixups
-+ and eventually relocations if it is not null */
-+ nios2_insn_relocS *insn_reloc;
-+}
-+nios2_insn_infoS;
-+
-+
-+/*
-+ This struct associates an argument assemble function with
-+ an argument syntax string. Used by the assembler to find out
-+ how to parse and assemble a set of instruction operands and return the instruction
-+ field values
-+*/
-+
-+typedef struct nios2_arg_info
-+{
-+ const char *args;
-+ void (*assemble_args_func) (nios2_insn_infoS * insn_info);
-+}
-+nios2_arg_infoS;
-+
-+/*
-+ This struct is used to convert New Jersey pseudo-ops into the
-+ corresponding real op
-+ */
-+typedef struct nios2_ps_insn_info
-+{
-+ const char *pseudo_insn;
-+ const char *insn;
-+ const char *arg_modifier;
-+ void (*arg_modifer_func) (const char *arg, char **parsedArgs, int numArg,
-+ int startIndex);
-+ int num;
-+ int index;
-+}
-+nios2_ps_insn_infoS;
-+
-+
-+
-+/* function prototypes */
-+static void NIOS2_CHECK_ASSEMBLY (unsigned int opcode,
-+ const char *exp_opcode);
-+static void s_nios2_sdata (int);
-+void nios2_assemble_args_dst (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_tsi (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_tsu (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_o (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_m (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_s (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_tis (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_dc (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_cs (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_ldst (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_none (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_dsj (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_is (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_sto (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_d (nios2_insn_infoS * insn_info);
-+void nios2_assemble_args_b (nios2_insn_infoS * insn_info);
-+
-+nios2_insn_relocS *nios2_insn_reloc_new (bfd_reloc_code_real_type reloc_type,
-+ unsigned int pcrel);
-+void nios2_insn_reloc_destroy (nios2_insn_relocS * reloc);
-+unsigned long nios2_assemble_expression (const char *exprstr,
-+ nios2_insn_infoS * insn,
-+ nios2_insn_relocS * prev_reloc,
-+ bfd_reloc_code_real_type reloc_type,
-+ unsigned int pcrel);
-+char *nios2_consume_separator (char *argStr, const char *separator);
-+char *nios2_consume_arg (char *argStr, const char *argType);
-+void nios2_parse_args (char *argStr, const char *parseStr, char **parsedArgs);
-+
-+void nios2_modify_arg (const char *modifier, char **parsedArgs, int unused,
-+ int index);
-+void nios2_append_arg (const char *append, char **parsedArgs, int numAppend,
-+ int startIndex);
-+void nios2_insert_arg (const char *insert, char **parsedArgs, int numInsert,
-+ int startIndex);
-+void nios2_swap_args (const char *unused, char **parsedArgs, int index_1,
-+ int index_2);
-+void nios2_negate_arg (const char *modifier ATTRIBUTE_UNUSED,
-+ char **parsedArgs, int unused ATTRIBUTE_UNUSED,
-+ int index);
-+void nios2_translate_pseudo_insn (nios2_insn_infoS * insn);
-+valueT md_chars_to_number (char *buf, int n);
-+void md_number_to_imm (char *buf, valueT val, int n);
-+void md_number_to_disp (char *buf, valueT val, int n);
-+void md_number_to_field (char *buf, valueT val, int n);
-+static void nios2_align (int log_size, const char *pfill, symbolS * sym);
-+static void s_nios2_ucons (int nbytes);
-+static void s_nios2_set (int equiv);
-+static void s_nios2_align (int ignore);
-+static void s_nios2_text (int);
-+static void s_nios2_data (int);
-+static void s_nios2_section (int);
-+static bfd_boolean nios2_coproc_reg (const char *reg_name);
-+static void output_insn (void);
-+static void output_ubranch (void);
-+static void output_cbranch (void);
-+static void output_call (void);
-+static void output_movia (void);
-+
-+
-+bfd_boolean nios2_check_overflow (valueT fixup, reloc_howto_type * howto);
-+
-+/* The known current alignment of the current section. */
-+static int nios2_current_align;
-+static segT nios2_current_align_seg;
-+
-+/* The last seen label in the current section. This is used to auto-align
-+ labels preceeding instructions. */
-+static symbolS *nios2_last_label;
-+
-+
-+static int nios2_auto_align_on = 1;
-+
-+/* This array holds the chars that always start a comment. If the
-+ pre-processor is disabled, these aren't very useful */
-+const char comment_chars[] = "#";
-+
-+/* This array holds the chars that only start a comment at the beginning of
-+ a line. If the line seems to have the form '# 123 filename'
-+ .line and .file directives will appear in the pre-processed output */
-+/* Note that input_file.c hand checks for '#' at the beginning of the
-+ first line of the input file. This is because the compiler outputs
-+ #NO_APP at the beginning of its output. */
-+/* Also note that C style comments are always supported. */
-+const char line_comment_chars[] = "#";
-+
-+/* This array holds machine specific line separator characters. */
-+const char line_separator_chars[] = ";";
-+
-+/* Chars that can be used to separate mant from exp in floating point nums */
-+const char EXP_CHARS[] = "eE";
-+
-+/* Chars that mean this number is a floating point constant */
-+/* As in 0f12.456 */
-+/* or 0d1.2345e12 */
-+const char FLT_CHARS[] = "rRsSfFdDxXpP";
-+
-+/* Also be aware that MAXIMUM_NUMBER_OF_CHARS_FOR_FLOAT may have to be
-+ changed in read.c . Ideally it shouldn't have to know about it at all,
-+ but nothing is ideal around here.
-+ */
-+
-+/* handle of the OPCODE hash table */
-+static struct hash_control *nios2_opcode_hash = NULL;
-+
-+/* handle of the Register hash table */
-+static struct hash_control *nios2_reg_hash = NULL;
-+
-+/* handle of the parse args hash table */
-+static struct hash_control *nios2_arg_hash = NULL;
-+
-+/* pseudo-op hash table */
-+static struct hash_control *nios2_ps_hash = NULL;
-+
-+/* mode of the assembler */
-+typedef enum
-+{
-+ NIOS2_MODE_ASSEMBLE, // ordinary operation
-+ NIOS2_MODE_TEST // hidden mode used for self testing
-+}
-+NIOS2_MODE;
-+
-+static NIOS2_MODE nios2_mode = NIOS2_MODE_ASSEMBLE;
-+
-+/* this function is used to in self-checking mode
-+ to check the assembled instruction
-+ opcode should be the assembled opcode, and exp_opcode
-+ the parsed string representing the expected opcode */
-+void
-+NIOS2_CHECK_ASSEMBLY (unsigned int opcode, const char *exp_opcode)
-+{
-+ if (nios2_mode == NIOS2_MODE_TEST)
-+ {
-+ if ((exp_opcode) == NULL)
-+ {
-+ as_bad (_("expecting opcode string in self test mode"));
-+ }
-+ else if ((opcode) != strtoul ((exp_opcode), NULL, 16))
-+ {
-+ as_bad (_("assembly 0x%08x, expected %s"), (opcode), (exp_opcode));
-+ }
-+ }
-+}
-+
-+/* Machine-dependent command-line options */
-+
-+const char *md_shortopts = "r";
-+
-+struct option md_longopts[] = {
-+#define OPTION_RELAX_ALL (OPTION_MD_BASE + 0)
-+ {"relax-all", no_argument, NULL, OPTION_RELAX_ALL},
-+#define OPTION_NORELAX (OPTION_MD_BASE + 1)
-+ {"no-relax", no_argument, NULL, OPTION_NORELAX},
-+#define OPTION_RELAX_SECTION (OPTION_MD_BASE + 2)
-+ {"relax-section", no_argument, NULL, OPTION_RELAX_SECTION}
-+};
-+
-+size_t md_longopts_size = sizeof (md_longopts);
-+
-+/* Machine dependent pseudo-ops
-+ These are actually assembler directives
-+ format of each entry is
-+
-+ { "directive", handler_func, param }
-+*/
-+const pseudo_typeS md_pseudo_table[] = {
-+ {"align", s_nios2_align, 0},
-+ {"text", s_nios2_text, 0},
-+ {"data", s_nios2_data, 0},
-+ {"section", s_nios2_section, 0},
-+ {"section.s", s_nios2_section, 0},
-+ {"sect", s_nios2_section, 0},
-+ {"sect.s", s_nios2_section, 0},
-+ /* .dword and .half are included for
-+ compatibility with MIPS */
-+ {"dword", cons, 8},
-+ {"half", cons, 2},
-+ /* NIOS2 native word size is 4 bytes, so we override
-+ the GAS default of 2 */
-+ {"word", cons, 4},
-+ /* explicitly unaligned directives */
-+ {"2byte", s_nios2_ucons, 2},
-+ {"4byte", s_nios2_ucons, 4},
-+ {"8byte", s_nios2_ucons, 8},
-+ {"16byte", s_nios2_ucons, 16},
-+#ifdef OBJ_ELF
-+ {"sdata", s_nios2_sdata, 0},
-+#endif
-+ {"set", s_nios2_set, 0},
-+ {NULL, NULL, 0}
-+};
-+
-+#define BYTE_F 32764
-+#define BYTE_B -32768
-+#define ABS (long)0xffffffff /* special value to indicate non-pc relative jmp */
-+
-+#define UBRANCH 1
-+#define UJMP 2
-+#define CBRANCH 3
-+#define CJMP 4
-+
-+
-+#define RELAX_MAX_SIZE(type) nios2_relax_table[nios2_relax_table[type].rlx_more].rlx_length
-+#define RELAX_SIZE(type) nios2_relax_table[type].rlx_length
-+#define RELAX_SUBSTATE(type) type
-+
-+/* machine dependent relaxations */
-+struct relax_type nios2_relax_table[] = {
-+ /* first entry unused (ends relaxation sequence) */
-+ {1, 1, 0, 0},
-+ /* unconditional branch */
-+ {BYTE_F, BYTE_B, 4, 2}, /* br label (label is in range) */
-+ /* unconditional jmp */
-+ {ABS, ABS, 12, 0}, /* movhi at, %hi(label) ; ori at, %lo(label) ; jmp at */
-+ /* conditional branch */
-+ {BYTE_F, BYTE_B, 4, 4}, /* br{cond} label (label is in range) */
-+ /* conditional jmp */
-+ {ABS, ABS, 16, 0}, /* br{opp_cond} skip ; movhi at, %hi(label) ; ori at, %lo(label) ; jmp at ; skip: } */
-+};
-+
-+
-+/* this is just the generic relax_frag function but
-+ amended to include absolute jmps in the relax table
-+ */
-+
-+long
-+nios2_relax_frag (segT segment, fragS * fragP, long stretch)
-+{
-+ const relax_typeS *this_type;
-+ const relax_typeS *start_type;
-+ relax_substateT next_state;
-+ relax_substateT this_state;
-+ long growth;
-+ offsetT aim;
-+ addressT target;
-+ addressT address;
-+ symbolS *symbolP;
-+ const relax_typeS *table;
-+
-+ target = fragP->fr_offset;
-+ address = fragP->fr_address;
-+ table = nios2_relax_table;
-+ this_state = fragP->fr_subtype;
-+ start_type = this_type = table + this_state;
-+ symbolP = fragP->fr_symbol;
-+
-+ if (symbolP)
-+ {
-+ fragS *sym_frag;
-+
-+ sym_frag = symbol_get_frag (symbolP);
-+
-+#ifndef DIFF_EXPR_OK
-+#if !defined (MANY_SEGMENTS) && !defined (BFD_ASSEMBLER)
-+ know ((S_GET_SEGMENT (symbolP) == SEG_ABSOLUTE)
-+ || (S_GET_SEGMENT (symbolP) == SEG_DATA)
-+ || (S_GET_SEGMENT (symbolP) == SEG_BSS)
-+ || (S_GET_SEGMENT (symbolP) == SEG_TEXT));
-+#endif
-+ know (sym_frag != NULL);
-+#endif
-+ know (!(S_GET_SEGMENT (symbolP) == absolute_section)
-+ || sym_frag == &zero_address_frag);
-+ target += S_GET_VALUE (symbolP);
-+
-+ /* If frag has yet to be reached on this pass,
-+ assume it will move by STRETCH just as we did.
-+ If this is not so, it will be because some frag
-+ between grows, and that will force another pass. */
-+
-+ if (stretch != 0
-+ && sym_frag->relax_marker != fragP->relax_marker
-+ && S_GET_SEGMENT (symbolP) == segment)
-+ {
-+ target += stretch;
-+ }
-+ }
-+
-+
-+ /* NG we subtract 4 because all pc relative branches are
-+ from the next instruction */
-+ aim = target - address - fragP->fr_fix - 4;
-+
-+ if (aim < 0)
-+ {
-+ /* Look backwards. */
-+ for (next_state = this_type->rlx_more; next_state;)
-+ {
-+ if (aim >= this_type->rlx_backward
-+ || this_type->rlx_backward == ABS)
-+ next_state = 0;
-+ else
-+ {
-+ /* Grow to next state. */
-+ this_state = next_state;
-+ this_type = table + this_state;
-+ next_state = this_type->rlx_more;
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* Look forwards. */
-+
-+ for (next_state = this_type->rlx_more; next_state;)
-+ {
-+ if (aim <= this_type->rlx_forward || this_type->rlx_forward == ABS)
-+ next_state = 0;
-+ else
-+ {
-+ /* Grow to next state. */
-+ this_state = next_state;
-+ this_type = table + this_state;
-+ next_state = this_type->rlx_more;
-+ }
-+ }
-+ }
-+
-+
-+ growth = this_type->rlx_length - start_type->rlx_length;
-+
-+ if (growth != 0)
-+ fragP->fr_subtype = this_state;
-+
-+ return growth;
-+}
-+
-+/*--------------------------------------------------------------------------------
-+ The next table associates pointers to functions which parse the arguments to an
-+ instruction and fill in the relevant fields of the instruction
-+ --------------------------------------------------------------------------------*/
-+
-+const nios2_arg_infoS nios2_arg_info_structs[] = {
-+ /* args assemble_args_func */
-+ {"d,s,t", nios2_assemble_args_dst},
-+ {"d,s,t,E", nios2_assemble_args_dst},
-+ {"t,s,i", nios2_assemble_args_tsi},
-+ {"t,s,i,E", nios2_assemble_args_tsi},
-+ {"t,s,u", nios2_assemble_args_tsu},
-+ {"t,s,u,E", nios2_assemble_args_tsu},
-+ {"s,t,o", nios2_assemble_args_sto},
-+ {"s,t,o,E", nios2_assemble_args_sto},
-+ {"o", nios2_assemble_args_o},
-+ {"o,E", nios2_assemble_args_o},
-+ {"s", nios2_assemble_args_s},
-+ {"s,E", nios2_assemble_args_s},
-+ {"", nios2_assemble_args_none},
-+ {"E", nios2_assemble_args_none},
-+ {"i(s)", nios2_assemble_args_is},
-+ {"i(s)E", nios2_assemble_args_is},
-+ {"m", nios2_assemble_args_m},
-+ {"m,E", nios2_assemble_args_m},
-+ {"t,i(s)", nios2_assemble_args_tis},
-+ {"t,i(s)E", nios2_assemble_args_tis},
-+ {"d,c", nios2_assemble_args_dc},
-+ {"d,c,E", nios2_assemble_args_dc},
-+ {"c,s", nios2_assemble_args_cs},
-+ {"c,s,E", nios2_assemble_args_cs},
-+ {"l,d,s,t", nios2_assemble_args_ldst},
-+ {"l,d,s,t,E", nios2_assemble_args_ldst},
-+ {"d,s,j", nios2_assemble_args_dsj},
-+ {"d,s,j,E", nios2_assemble_args_dsj},
-+ {"d", nios2_assemble_args_d},
-+ {"d,E", nios2_assemble_args_d},
-+ {"b", nios2_assemble_args_b},
-+ {"b,E", nios2_assemble_args_b}
-+};
-+
-+#define NIOS2_NUM_ARGS \
-+ ((sizeof(nios2_arg_info_structs)/sizeof(nios2_arg_info_structs[0])))
-+const int nios2_num_arg_info_structs = NIOS2_NUM_ARGS;
-+
-+
-+const nios2_ps_insn_infoS nios2_ps_insn_info_structs[] = {
-+ /* pseudo-op real-op arg arg_modifier_func num index */
-+ {"mov", "add", "zero", nios2_append_arg, 1, 3},
-+ {"movi", "addi", "zero", nios2_insert_arg, 1, 2},
-+ {"movhi", "orhi", "zero", nios2_insert_arg, 1, 2},
-+ {"movui", "ori", "zero", nios2_insert_arg, 1, 2},
-+ {"movia", "orhi", "zero", nios2_insert_arg, 1, 2},
-+ {"nop", "add", "zero", nios2_append_arg, 3, 1},
-+ {"bgt", "blt", "", nios2_swap_args, 1, 2},
-+ {"bgtu", "bltu", "", nios2_swap_args, 1, 2},
-+ {"ble", "bge", "", nios2_swap_args, 1, 2},
-+ {"bleu", "bgeu", "", nios2_swap_args, 1, 2},
-+ {"cmpgt", "cmplt", "", nios2_swap_args, 2, 3},
-+ {"cmpgtu", "cmpltu", "", nios2_swap_args, 2, 3},
-+ {"cmple", "cmpge", "", nios2_swap_args, 2, 3},
-+ {"cmpleu", "cmpgeu", "", nios2_swap_args, 2, 3},
-+ {"cmpgti", "cmpgei", "+1", nios2_modify_arg, 0, 3},
-+ {"cmpgtui", "cmpgeui", "+1", nios2_modify_arg, 0, 3},
-+ {"cmplei", "cmplti", "+1", nios2_modify_arg, 0, 3},
-+ {"cmpleui", "cmpltui", "+1", nios2_modify_arg, 0, 3},
-+ {"subi", "addi", "", nios2_negate_arg, 0, 3}
-+ /* add further pseudo-ops here */
-+};
-+
-+#define NIOS2_NUM_PSEUDO_INSNS \
-+ ((sizeof(nios2_ps_insn_info_structs)/sizeof(nios2_ps_insn_info_structs[0])))
-+const int nios2_num_ps_insn_info_structs = NIOS2_NUM_PSEUDO_INSNS;
-+
-+/* special relocation directive strings */
-+
-+struct nios2_special_relocS
-+{
-+ const char *string;
-+ bfd_reloc_code_real_type reloc_type;
-+};
-+
-+struct nios2_special_relocS nios2_special_reloc[] = {
-+ {"%hiadj", BFD_RELOC_NIOS2_HIADJ16},
-+ {"%hi", BFD_RELOC_NIOS2_HI16},
-+ {"%lo", BFD_RELOC_NIOS2_LO16},
-+ {"%gprel", BFD_RELOC_NIOS2_GPREL}
-+};
-+
-+#define NIOS2_NUM_SPECIAL_RELOCS \
-+ (sizeof(nios2_special_reloc)/sizeof(nios2_special_reloc[0]))
-+const int nios2_num_special_relocs = NIOS2_NUM_SPECIAL_RELOCS;
-+
-+/*
-+ The function nios2_modify_arg appends the string modifier to the string contained
-+ in the argument at index in the array parsedArgs[]
-+*/
-+void
-+nios2_modify_arg (const char *modifier,
-+ char **parsedArgs, int unused ATTRIBUTE_UNUSED, int index)
-+{
-+ assert (index < NIOS2_MAX_INSN_TOKENS);
-+
-+/*
-+ we can't just strcat here because strcat will free the memory pointed to by the first
-+ argument and allocate new memory - but at this stage, parsedArgs[index] may point into
-+ the middle of a block of allocated memory, so trying to free it will cause a seg fault.
-+
-+ */
-+ char *tmp = parsedArgs[index];
-+ parsedArgs[index] =
-+ (char *) malloc (strlen (parsedArgs[index]) + strlen (modifier) + 1);
-+ strcpy (parsedArgs[index], tmp);
-+ strcat (parsedArgs[index], modifier);
-+}
-+
-+
-+void
-+nios2_negate_arg (const char *modifier ATTRIBUTE_UNUSED,
-+ char **parsedArgs, int unused ATTRIBUTE_UNUSED, int index)
-+{
-+ char *tmp = parsedArgs[index];
-+ parsedArgs[index] =
-+ (char *) malloc (strlen ("~(") + strlen (parsedArgs[index]) +
-+ strlen (")+1") + 1);
-+
-+ strcpy (parsedArgs[index], "~(");
-+ strcat (parsedArgs[index], tmp);
-+ strcat (parsedArgs[index], ")+1");
-+}
-+
-+/*
-+ The function nios2_swap_args swaps the pointers at indices index_1 and
-+ index_2 in the array parsedArgs[] - this is used for operand swapping
-+ for comparison operations
-+ */
-+void
-+nios2_swap_args (const char *unused ATTRIBUTE_UNUSED,
-+ char **parsedArgs, int index_1, int index_2)
-+{
-+ char *tmp;
-+ assert (index_1 < NIOS2_MAX_INSN_TOKENS && index_2 < NIOS2_MAX_INSN_TOKENS);
-+ tmp = parsedArgs[index_1];
-+ parsedArgs[index_1] = parsedArgs[index_2];
-+ parsedArgs[index_2] = tmp;
-+}
-+
-+/*
-+ This function appends the string append to the array of strings in
-+ parsedArgs numAppend times starting at index startIndex in the array
-+*/
-+void
-+nios2_append_arg (const char *append, char **parsedArgs, int numAppend,
-+ int startIndex)
-+{
-+ int i, count;
-+ char *tmp;
-+
-+ assert ((startIndex + numAppend) < NIOS2_MAX_INSN_TOKENS);
-+ i = startIndex;
-+ count = numAppend;
-+
-+ if (nios2_mode == NIOS2_MODE_TEST)
-+ tmp = parsedArgs[startIndex];
-+ else
-+ tmp = NULL;
-+
-+ while (count > 0)
-+ {
-+ parsedArgs[i] = (char *) append;
-+ ++i;
-+ --count;
-+ }
-+
-+ assert (i == (startIndex + numAppend));
-+ parsedArgs[i] = tmp;
-+ parsedArgs[i + 1] = NULL;
-+}
-+
-+/* This function inserts the string insert numInsert times in the array parsedArgs,
-+ starting at the index startIndex
-+ */
-+void
-+nios2_insert_arg (const char *insert, char **parsedArgs, int numInsert,
-+ int startIndex)
-+{
-+ int i, count, from, to;
-+
-+ assert ((startIndex + numInsert) < NIOS2_MAX_INSN_TOKENS);
-+
-+ to = startIndex + numInsert;
-+ from = startIndex;
-+
-+ /* move the existing arguments up to create space */
-+ i = NIOS2_MAX_INSN_TOKENS;
-+ while ((i - numInsert) >= startIndex)
-+ {
-+ parsedArgs[i] = parsedArgs[i - numInsert];
-+ --i;
-+ }
-+
-+ i = startIndex;
-+ count = numInsert;
-+ while (count > 0)
-+ {
-+ parsedArgs[i] = (char *) insert;
-+ ++i;
-+ --count;
-+ }
-+}
-+
-+/*
-+ This function swaps the pseudo-op for a real op
-+ FIXME - only works for 1-to-1 correspondence
-+ */
-+void
-+nios2_translate_pseudo_insn (nios2_insn_infoS * insn)
-+{
-+
-+ nios2_ps_insn_infoS *ps_insn;
-+
-+ /* find which real insn the pseudo-op transates to and
-+ switch the insn_info ptr to point to it */
-+ ps_insn =
-+ (nios2_ps_insn_infoS *) hash_find (nios2_ps_hash,
-+ insn->insn_nios2_opcode->name);
-+
-+ if (ps_insn != NULL)
-+ {
-+ insn->insn_nios2_opcode =
-+ (struct nios2_opcode *) hash_find (nios2_opcode_hash, ps_insn->insn);
-+ insn->insn_tokens[0] = insn->insn_nios2_opcode->name;
-+ // modify the args so they work with the real insn
-+ ps_insn->arg_modifer_func (ps_insn->arg_modifier,
-+ (char **) insn->insn_tokens, ps_insn->num,
-+ ps_insn->index);
-+ }
-+ else
-+ {
-+ // we cannot recover from this
-+ as_fatal (_("unrecognized pseudo-instruction %s"),
-+ ps_insn->pseudo_insn);
-+ }
-+}
-+
-+/********************************************************************
-+ The following functions are called by machine-independent parts of
-+ the assembler
-+ ********************************************************************/
-+
-+/*
-+ Function : void md_parse_option
-+ (char** option_ptr, int* argc_ptr, char*** argv_ptr)
-+
-+ Description :
-+
-+ */
-+int
-+md_parse_option (int c, char *arg ATTRIBUTE_UNUSED)
-+{
-+ switch (c)
-+ {
-+ case 'r':
-+ /* hidden option for self-test mode */
-+ nios2_mode = NIOS2_MODE_TEST;
-+ break;
-+ case OPTION_RELAX_ALL:
-+ nios2_as_options.relax = relax_all;
-+ break;
-+ case OPTION_NORELAX:
-+ nios2_as_options.relax = relax_none;
-+ break;
-+ case OPTION_RELAX_SECTION:
-+ nios2_as_options.relax = relax_section;
-+ break;
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ return 1;
-+}
-+
-+/*
-+ Function : md_show_usage(FILE* stream)
-+
-+ Description : machine-dependent usage message
-+*/
-+void
-+md_show_usage (FILE * stream)
-+{
-+ fprintf (stream, "\
-+ NIOS2 options:\n\
-+ -relax-all replace all branch and call instructions with jmp and callr sequences\n\
-+ -relax-section replace identified out of range branches with jmp sequences (default)\n\
-+ -no-relax do not replace any branches or calls\n");
-+}
-+
-+/*
-+ Function : void md_begin()
-+
-+ Description :
-+ This function is called once, at assembler startup time.
-+ It should set up all the tables, etc. that the MD part of the
-+ assembler will need.
-+*/
-+void
-+md_begin ()
-+{
-+ int i;
-+ const char *inserted;
-+
-+ /* create and fill a hashtable for the New Jersey opcodes, registers and arguments */
-+ nios2_opcode_hash = hash_new ();
-+ nios2_reg_hash = hash_new ();
-+ nios2_arg_hash = hash_new ();
-+ nios2_ps_hash = hash_new ();
-+
-+ for (i = 0; i < NUMOPCODES; ++i)
-+ {
-+ inserted =
-+ hash_insert (nios2_opcode_hash, nios2_opcodes[i].name,
-+ (PTR) & nios2_opcodes[i]);
-+ if (inserted != NULL)
-+ {
-+ fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
-+ nios2_opcodes[i].name, inserted);
-+ /* Probably a memory allocation problem? Give up now. */
-+ as_fatal (_("Broken assembler. No assembly attempted."));
-+ }
-+ }
-+
-+ for (i = 0; i < nios2_num_regs; ++i)
-+ {
-+ inserted =
-+ hash_insert (nios2_reg_hash, nios2_regs[i].name,
-+ (PTR) & nios2_regs[i]);
-+ if (inserted != NULL)
-+ {
-+ fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
-+ nios2_regs[i].name, inserted);
-+ /* Probably a memory allocation problem? Give up now. */
-+ as_fatal (_("Broken assembler. No assembly attempted."));
-+ }
-+
-+ }
-+
-+ for (i = 0; i < nios2_num_arg_info_structs; ++i)
-+ {
-+ inserted =
-+ hash_insert (nios2_arg_hash, nios2_arg_info_structs[i].args,
-+ (PTR) & nios2_arg_info_structs[i]);
-+ if (inserted != NULL)
-+ {
-+ fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
-+ nios2_arg_info_structs[i].args, inserted);
-+ /* Probably a memory allocation problem? Give up now. */
-+ as_fatal (_("Broken assembler. No assembly attempted."));
-+ }
-+ }
-+
-+ for (i = 0; i < nios2_num_ps_insn_info_structs; ++i)
-+ {
-+ inserted =
-+ hash_insert (nios2_ps_hash, nios2_ps_insn_info_structs[i].pseudo_insn,
-+ (PTR) & nios2_ps_insn_info_structs[i]);
-+ if (inserted != NULL)
-+ {
-+ fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
-+ nios2_ps_insn_info_structs[i].pseudo_insn, inserted);
-+ /* Probably a memory allocation problem? Give up now. */
-+ as_fatal (_("Broken assembler. No assembly attempted."));
-+ }
-+ }
-+
-+ /* assembler option defaults */
-+ nios2_as_options.noat = FALSE;
-+ nios2_as_options.nobreak = FALSE;
-+
-+ /* debug information is incompatible with relaxation */
-+ if (debug_type != DEBUG_UNSPECIFIED)
-+ {
-+ nios2_as_options.relax = relax_none;
-+ }
-+
-+ /* initialize the alignment data */
-+ nios2_current_align_seg = now_seg;
-+ nios2_last_label = NULL;
-+ nios2_current_align = 0;
-+}
-+
-+
-+
-+
-+/* made this global to avoid changing one function prototype */
-+nios2_insn_infoS insn;
-+
-+/*
-+ Function: void md_assemble(char* op_str)
-+
-+ Description: assembles a single line of Nios II assembly
-+ language
-+ */
-+void
-+md_assemble (char *op_str)
-+{
-+ char *argstr;
-+ char *op_strdup;
-+ nios2_arg_infoS *arg_info;
-+ unsigned long saved_pinfo = 0;
-+
-+ /* make sure we are aligned on a 4-byte boundary */
-+ if (nios2_current_align < 2)
-+ nios2_align (2, NULL, nios2_last_label);
-+ else if (nios2_current_align > 2)
-+ nios2_current_align = 2;
-+ nios2_last_label = NULL;
-+
-+
-+ /* we don't want to clobber to op_str
-+ because we want to be able to use it in messages */
-+ op_strdup = strdup (op_str);
-+
-+ insn.insn_tokens[0] = strtok (op_strdup, " ");
-+ argstr = strtok (NULL, "");
-+
-+ /* assemble the opcode */
-+ insn.insn_nios2_opcode =
-+ (struct nios2_opcode *) hash_find (nios2_opcode_hash,
-+ insn.insn_tokens[0]);
-+ insn.insn_reloc = NULL;
-+
-+ if (insn.insn_nios2_opcode != NULL)
-+ {
-+ /* set the opcode for the instruction */
-+ insn.insn_code = insn.insn_nios2_opcode->match;
-+
-+ /* parse the arguments pointed to by argstr */
-+ if (nios2_mode == NIOS2_MODE_ASSEMBLE)
-+ {
-+ nios2_parse_args (argstr, insn.insn_nios2_opcode->args,
-+ (char **) &insn.insn_tokens[1]);
-+ }
-+ else
-+ {
-+ nios2_parse_args (argstr, insn.insn_nios2_opcode->args_test,
-+ (char **) &insn.insn_tokens[1]);
-+ }
-+
-+ /* we need to preserve the MOVIA macro as this is clobbered by translate_pseudo_insn */
-+ if (insn.insn_nios2_opcode->pinfo == NIOS2_INSN_MACRO_MOVIA)
-+ {
-+ saved_pinfo = NIOS2_INSN_MACRO_MOVIA;
-+ }
-+ /* if the instruction is an pseudo-instruction, we want to replace it with its
-+ real equivalent, and then continue */
-+ if ((insn.insn_nios2_opcode->pinfo & NIOS2_INSN_MACRO) ==
-+ NIOS2_INSN_MACRO)
-+ {
-+ nios2_translate_pseudo_insn (&insn);
-+ }
-+
-+ /* find the assemble function, and call it */
-+ arg_info =
-+ (nios2_arg_infoS *) hash_find (nios2_arg_hash,
-+ insn.insn_nios2_opcode->args);
-+ if (arg_info != NULL)
-+ {
-+ arg_info->assemble_args_func (&insn);
-+
-+ if (nios2_as_options.relax != relax_none
-+ && insn.insn_nios2_opcode->pinfo & NIOS2_INSN_UBRANCH)
-+ output_ubranch ();
-+ else if (nios2_as_options.relax != relax_none
-+ && insn.insn_nios2_opcode->pinfo & NIOS2_INSN_CBRANCH)
-+ output_cbranch ();
-+ else if (nios2_as_options.relax == relax_all
-+ && insn.insn_nios2_opcode->pinfo & NIOS2_INSN_CALL)
-+ output_call ();
-+ else if (saved_pinfo == NIOS2_INSN_MACRO_MOVIA)
-+ output_movia ();
-+ else
-+ output_insn ();
-+ }
-+ else
-+ {
-+ /* the assembler is broken */
-+ fprintf (stderr,
-+ _("internal error: %s is not a valid argument syntax\n"),
-+ insn.insn_nios2_opcode->args);
-+ /* Probably a memory allocation problem? Give up now. */
-+ as_fatal (_("Broken assembler. No assembly attempted."));
-+ }
-+ }
-+ else
-+ {
-+ /* unrecognised instruction - error */
-+ as_bad (_("unrecognised instruction %s"), insn.insn_tokens[0]);
-+ }
-+}
-+
-+/* output a normal instruction */
-+static void
-+output_insn ()
-+{
-+ char *f;
-+ nios2_insn_relocS *reloc;
-+
-+ f = frag_more (4);
-+ /* this allocates enough space for the instruction
-+ and puts it in the current frag */
-+ md_number_to_chars (f, insn.insn_code, 4);
-+ /* emit debug info */
-+ dwarf2_emit_insn (4);
-+ /* create any fixups */
-+ reloc = insn.insn_reloc;
-+ while (reloc != NULL)
-+ {
-+ /* this creates any fixups to be acted on later */
-+ fix_new_exp (frag_now, f - frag_now->fr_literal, 4,
-+ &reloc->reloc_expression, reloc->reloc_pcrel,
-+ reloc->reloc_type);
-+ reloc = reloc->reloc_next;
-+ }
-+}
-+
-+/* output an unconditional branch */
-+static void
-+output_ubranch ()
-+{
-+ char *f;
-+ nios2_insn_relocS *reloc;
-+ symbolS *symp;
-+ offsetT offset;
-+
-+ reloc = insn.insn_reloc;
-+
-+ /* if the reloc is NULL, there was an error assembling the branch */
-+ if (reloc != NULL)
-+ {
-+
-+ symp = reloc->reloc_expression.X_add_symbol;
-+ offset = reloc->reloc_expression.X_add_number;
-+
-+ /* we must tag debug info here since we can't do it after
-+ calling frag_var */
-+ dwarf2_emit_insn (4);
-+
-+ /* we create a machine dependent frag which can grow
-+ to accommodate the largest possible instruction sequence
-+ this may generate */
-+ f = frag_var (rs_machine_dependent,
-+ RELAX_MAX_SIZE (UBRANCH),
-+ RELAX_SIZE (UBRANCH),
-+ RELAX_SUBSTATE (UBRANCH), symp, offset, NULL);
-+
-+ md_number_to_chars (f, insn.insn_code, 4);
-+
-+ /* we leave fixup generation to md_convert_frag */
-+ }
-+}
-+
-+/* output a conditional branch */
-+static void
-+output_cbranch ()
-+{
-+ char *f;
-+ nios2_insn_relocS *reloc;
-+ symbolS *symp;
-+ offsetT offset;
-+
-+ reloc = insn.insn_reloc;
-+
-+ /* if the reloc is NULL, there was an error assembling the branch */
-+ if (reloc != NULL)
-+ {
-+
-+ symp = reloc->reloc_expression.X_add_symbol;
-+ offset = reloc->reloc_expression.X_add_number;
-+
-+ /* we must tag debug info here since we can't do it after
-+ calling frag_var */
-+ dwarf2_emit_insn (4);
-+
-+ /* we create a machine dependent frag which can grow
-+ to accommodate the largest possible instruction sequence
-+ this may generate */
-+ f = frag_var (rs_machine_dependent,
-+ RELAX_MAX_SIZE (CBRANCH),
-+ RELAX_SIZE (CBRANCH),
-+ RELAX_SUBSTATE (CBRANCH), symp, offset, NULL);
-+
-+ md_number_to_chars (f, insn.insn_code, 4);
-+
-+
-+ /* we leave fixup generation to md_convert_frag */
-+ }
-+}
-+
-+/* Output a call sequence. Since calls are not pc-relative for NIOS2,
-+ but are page-relative, we cannot tell at any stage in assembly
-+ whether a call will be out of range since a section may be linked
-+ at any address. So if we are relaxing, we convert all call instructions
-+ to long call sequences, and rely on the linker to relax them back to
-+ short calls */
-+static void
-+output_call ()
-+{
-+ char *f;
-+ nios2_insn_relocS *reloc;
-+ f = frag_more (12);
-+ /* this allocates enough space for the instruction
-+ and puts it in the current frag */
-+ reloc = insn.insn_reloc;
-+
-+ /* if the reloc is NULL, there was an error assembling the branch */
-+ if (reloc != NULL)
-+ {
-+ md_number_to_chars (f, OP_MATCH_ORHI | 0x00400000, 4);
-+ dwarf2_emit_insn (4);
-+ md_number_to_chars (f + 4, OP_MATCH_ORI | 0x08400000, 4);
-+ dwarf2_emit_insn (4);
-+ md_number_to_chars (f + 8, OP_MATCH_CALLR | 0x08000000, 4);
-+ dwarf2_emit_insn (4);
-+ fix_new (frag_now, f - frag_now->fr_literal, 4,
-+ reloc->reloc_expression.X_add_symbol,
-+ reloc->reloc_expression.X_add_number, 0,
-+ BFD_RELOC_NIOS2_CALLR);
-+
-+
-+ }
-+}
-+
-+/* output a movhi/addi pair for the movia pseudo-op */
-+static void
-+output_movia ()
-+{
-+ char *f;
-+ nios2_insn_relocS *reloc;
-+ f = frag_more (8);
-+ unsigned long reg_index = GET_INSN_FIELD (IRT, insn.insn_code);
-+
-+ /* this allocates enough space for the instruction
-+ and puts it in the current frag */
-+ reloc = insn.insn_reloc;
-+
-+ /* if the reloc is NULL, there was an error assembling the movia */
-+ if (reloc != NULL)
-+ {
-+ md_number_to_chars (f, insn.insn_code, 4);
-+ dwarf2_emit_insn (4);
-+ md_number_to_chars (f + 4,
-+ OP_MATCH_ADDI | (reg_index << OP_SH_IRT) |
-+ (reg_index << OP_SH_IRS), 4);
-+ dwarf2_emit_insn (4);
-+ fix_new (frag_now, f - frag_now->fr_literal, 4,
-+ reloc->reloc_expression.X_add_symbol,
-+ reloc->reloc_expression.X_add_number, 0,
-+ BFD_RELOC_NIOS2_HIADJ16);
-+ fix_new (frag_now, f + 4 - frag_now->fr_literal, 4,
-+ reloc->reloc_expression.X_add_symbol,
-+ reloc->reloc_expression.X_add_number, 0, BFD_RELOC_NIOS2_LO16);
-+
-+ }
-+}
-+
-+/*
-+ Function md_chars_to_number takes the sequence of
-+ bytes in bug and returns the corresponding value
-+ in an int. n must be 1, 2 or 4.
-+ */
-+valueT
-+md_chars_to_number (char *buf, int n)
-+{
-+ // this assumes little endian format
-+ int i;
-+ valueT val;
-+
-+ assert (n == 1 || n == 2 || n == 4);
-+
-+ val = 0;
-+ for (i = 0; i < n; ++i)
-+ {
-+ val = val | ((buf[i] & 0xff) << 8 * i);
-+ }
-+ return val;
-+}
-+
-+
-+/*
-+ Function : void md_number_to_chars(char *buf, valueT val, int n)
-+
-+ Description : this function turns a C long int, short int or char
-+ into the series of bytes that represent the number
-+ on the target machine
-+ */
-+void
-+md_number_to_chars (char *buf, valueT val, int n)
-+{
-+ /* this assumes little endian format */
-+ int i;
-+ assert (n == 1 || n == 2 || n == 4);
-+ for (i = 0; i < n; ++i)
-+ {
-+ buf[i] = val & 0xFF;
-+ val >>= 8;
-+ }
-+}
-+
-+/*
-+ Function : void md_number_to_imm(char *buf, valueT val, int n)
-+
-+ Description : this function is identical to md_number_to_chars
-+ */
-+void
-+md_number_to_imm (char *buf, valueT val, int n)
-+{
-+ md_number_to_chars (buf, val, n);
-+}
-+
-+/*
-+ Function : void md_number_to_disp(char *buf, valueT val, int n)
-+
-+ Description : this function is identical to md_number_to_chars
-+ */
-+void
-+md_number_to_disp (char *buf, valueT val, int n)
-+{
-+ md_number_to_chars (buf, val, n);
-+}
-+
-+/*
-+ Function : void md_number_to_field(char *buf, valueT val, int n)
-+
-+ Description : this function is identical to md_number_to_chars
-+ */
-+void
-+md_number_to_field (char *buf, valueT val, int n)
-+{
-+ md_number_to_chars (buf, val, n);
-+}
-+
-+/*
-+
-+ Function : char * md_atof(int type, char *litP,int *sizeP)
-+
-+ Description :
-+ Turn a string in input_line_pointer into a floating point constant
-+ of type TYPE, and store the appropriate bytes in *LITP. The number
-+ of LITTLENUMS emitted is stored in *SIZEP. An error message is
-+ returned, or NULL on OK.
-+
-+ */
-+
-+char *
-+md_atof (int type, char *litP, int *sizeP)
-+{
-+ int prec;
-+ LITTLENUM_TYPE words[4];
-+ char *t;
-+ int i;
-+
-+ switch (type)
-+ {
-+ case 'f':
-+ prec = 2;
-+ break;
-+ case 'd':
-+ prec = 4;
-+ break;
-+ default:
-+ *sizeP = 0;
-+ return _("bad call to md_atof");
-+ }
-+
-+ t = atof_ieee (input_line_pointer, type, words);
-+ if (t)
-+ input_line_pointer = t;
-+
-+ *sizeP = prec * 2;
-+
-+ /* little endian target */
-+ for (i = prec - 1; i >= 0; i--)
-+ {
-+ md_number_to_chars (litP, (valueT) words[i], 2);
-+ litP += 2;
-+ }
-+
-+ return NULL;
-+}
-+
-+
-+
-+int md_short_jump_size;
-+int md_long_jump_size;
-+
-+void
-+md_create_short_jump (char *result_ptr ATTRIBUTE_UNUSED,
-+ addressT from_addr ATTRIBUTE_UNUSED,
-+ addressT to_addr ATTRIBUTE_UNUSED,
-+ fragS * frag ATTRIBUTE_UNUSED,
-+ symbolS * to_symbol ATTRIBUTE_UNUSED)
-+{
-+ abort ();
-+}
-+
-+void
-+md_create_long_jump (char *ptr ATTRIBUTE_UNUSED,
-+ addressT from_addr ATTRIBUTE_UNUSED,
-+ addressT to_addr ATTRIBUTE_UNUSED,
-+ fragS * frag ATTRIBUTE_UNUSED,
-+ symbolS * to_symbol ATTRIBUTE_UNUSED)
-+{
-+ abort ();
-+}
-+
-+int
-+md_estimate_size_before_relax (fragS * fragp, segT segment ATTRIBUTE_UNUSED)
-+{
-+ /* we only support ELF targets */
-+
-+ switch (nios2_as_options.relax)
-+ {
-+ case relax_none:
-+ case relax_section:
-+ break;
-+ case relax_all:
-+ /* The NIOS2 linker performs relaxation so the assembler
-+ always assumes the worst case, so that the linker can
-+ replace with a better case if possible - this way, linker
-+ relaxation can never cause a short branch to be out of range
-+ */
-+ while (nios2_relax_table[fragp->fr_subtype].rlx_more != 0)
-+ fragp->fr_subtype = nios2_relax_table[fragp->fr_subtype].rlx_more;
-+ break;
-+ default:
-+ abort ();
-+ break;
-+ }
-+
-+ /* return the estimated size of the frag */
-+ return nios2_relax_table[fragp->fr_subtype].rlx_length;
-+}
-+
-+
-+void
-+md_convert_frag (bfd * headers ATTRIBUTE_UNUSED, segT seg ATTRIBUTE_UNUSED,
-+ fragS * fragp)
-+{
-+ unsigned char *buffer = fragp->fr_literal + fragp->fr_fix;
-+ relax_substateT subtype = fragp->fr_subtype;
-+ unsigned int growth = RELAX_SIZE (subtype);
-+ unsigned int br_opcode, br_op_a, br_op_b;
-+
-+ switch (subtype)
-+ {
-+ case UBRANCH:
-+ /* we just need to generate the fixup for the symbol and offset */
-+ fix_new (fragp, fragp->fr_fix, 4, fragp->fr_symbol, fragp->fr_offset, 1,
-+ BFD_RELOC_16_PCREL);
-+ break;
-+ case UJMP:
-+ /* replace ubranch at fr_fix with :
-+ movhi at, %hi(symbol+offset)
-+ ori at, %lo(symbol+offset)
-+ jmp at
-+ */
-+ md_number_to_chars (buffer, OP_MATCH_ORHI | 0x00400000, 4);
-+ md_number_to_chars (buffer + 4, OP_MATCH_ORI | 0x08400000, 4);
-+ md_number_to_chars (buffer + 8, OP_MATCH_JMP | 0x08000000, 4);
-+ fix_new (fragp, fragp->fr_fix, 4, fragp->fr_symbol, fragp->fr_offset, 0,
-+ BFD_RELOC_NIOS2_UJMP);
-+ break;
-+ case CBRANCH:
-+ /* we just need to generate the fixup for the symbol and offset */
-+ fix_new (fragp, fragp->fr_fix, 4, fragp->fr_symbol, fragp->fr_offset, 1,
-+ BFD_RELOC_16_PCREL);
-+ break;
-+ case CJMP:
-+ /* replace cbranch at fr_fix with :
-+ b(opposite condition) r, s, skip
-+ movhi at, %hi(symbol+offset)
-+ ori at, %lo(symbol+offset)
-+ jmp at
-+ skip:
-+ ...
-+ */
-+ br_opcode = md_chars_to_number (buffer, 4);
-+
-+ switch (br_opcode & OP_MASK_OP)
-+ {
-+ case OP_MATCH_BEQ:
-+ br_opcode =
-+ (br_opcode & ~OP_MASK_OP) | OP_MATCH_BNE | (12 << OP_SH_IMM16);
-+ break;
-+ case OP_MATCH_BNE:
-+ br_opcode =
-+ (br_opcode & ~OP_MASK_OP) | OP_MATCH_BEQ | (12 << OP_SH_IMM16);
-+ break;
-+ case OP_MATCH_BGE:
-+ case OP_MATCH_BGEU:
-+ case OP_MATCH_BLT:
-+ case OP_MATCH_BLTU:
-+ /* swap the operands */
-+ br_op_a = (br_opcode & OP_MASK_RRT) << 5;
-+ br_op_b = (br_opcode & OP_MASK_RRS) >> 5;
-+ br_opcode =
-+ (br_opcode & ~(OP_MASK_RRS | OP_MASK_RRT)) | br_op_a | br_op_b |
-+ (12 << OP_SH_IMM16);
-+ break;
-+ default:
-+ as_bad_where (fragp->fr_file, fragp->fr_line,
-+ _("expecting conditional branch for relaxation\n"));
-+ abort ();
-+ }
-+
-+ md_number_to_chars (buffer, br_opcode, 4);
-+ md_number_to_chars (buffer + 4, OP_MATCH_ORHI | 0x00400000, 4);
-+ md_number_to_chars (buffer + 8, OP_MATCH_ORI | 0x08400000, 4);
-+ md_number_to_chars (buffer + 12, OP_MATCH_JMP | 0x08000000, 4);
-+ fix_new (fragp, fragp->fr_fix + 4, 4, fragp->fr_symbol,
-+ fragp->fr_offset, 0, BFD_RELOC_NIOS2_CJMP);
-+ break;
-+ default:
-+ as_bad_where (fragp->fr_file, fragp->fr_line,
-+ _("can't relax instruction\n"));
-+ abort ();
-+ break;
-+ }
-+
-+ fragp->fr_fix += growth;
-+}
-+
-+
-+/* round up section size */
-+valueT
-+md_section_align (asection * seg ATTRIBUTE_UNUSED, valueT size)
-+{
-+ /* I think byte alignment is fine here */
-+ return size;
-+}
-+
-+
-+int
-+nios2_force_relocation (fixS * fixp)
-+{
-+ if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-+ || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY
-+ || fixp->fx_r_type == BFD_RELOC_NIOS2_ALIGN)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+/* nios2_fix_adjustable is called to see whether a reloc against a defined symbol
-+ should be converted into a reloc against a section. */
-+
-+int
-+nios2_fix_adjustable (fixS * fixp)
-+{
-+#ifdef OBJ_ELF
-+ /* Prevent all adjustments to global symbols. */
-+ if (OUTPUT_FLAVOR == bfd_target_elf_flavour
-+ && (S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)))
-+ return 0;
-+#endif
-+ if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-+ || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
-+ return 0;
-+
-+ return 1;
-+}
-+
-+/*
-+ nios2_frob_symbol is called in adjust_reloc_syms through the macro
-+ tc_frob_symbol - it is used to remove *ABS* references from the
-+ symbol table
-+ */
-+int
-+nios2_frob_symbol (symbolS * symp)
-+{
-+ if ((OUTPUT_FLAVOR == bfd_target_elf_flavour
-+ && (symp) == section_symbol (absolute_section))
-+ || !S_IS_DEFINED (symp))
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+/*
-+ The function tc_gen_reloc creates a relocation structure for the
-+ fixup fixp, and returns a pointer to it. This structure is passed
-+ to bfd_install_relocation so that it can be written to the object
-+ file for linking
-+*/
-+arelent *
-+tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp)
-+{
-+ arelent *reloc;
-+ reloc = (arelent *) xmalloc (sizeof (arelent));
-+ reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
-+ *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-+
-+ reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
-+ reloc->addend = fixp->fx_addnumber;
-+ reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
-+ if (reloc->howto == NULL)
-+ {
-+ as_bad_where (fixp->fx_file, fixp->fx_line,
-+ _("can't represent relocation type %s"),
-+ bfd_get_reloc_code_name (fixp->fx_r_type));
-+
-+ /* Set howto to a garbage value so that we can keep going. */
-+ reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_32);
-+ assert (reloc->howto != NULL);
-+ }
-+ return reloc;
-+}
-+
-+long
-+md_pcrel_from (fixS * fixP ATTRIBUTE_UNUSED)
-+{
-+ return 0;
-+}
-+
-+
-+/* Apply a fixup to the object file. */
-+void
-+md_apply_fix3 (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
-+{
-+ const struct nios2_opcode *opcode;
-+ enum overflow_type overflow_msg_type;
-+ bfd_boolean overflowed = FALSE;
-+ valueT fixup = 0;
-+
-+ /* assert that the fixup is one we can handle */
-+ assert (fixP != NULL && valP != NULL &&
-+ (fixP->fx_r_type == BFD_RELOC_8 ||
-+ fixP->fx_r_type == BFD_RELOC_16 ||
-+ fixP->fx_r_type == BFD_RELOC_32 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_S16 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_U16 ||
-+ fixP->fx_r_type == BFD_RELOC_16_PCREL ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_CALL26 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_IMM5 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_CACHE_OPX ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_IMM6 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_IMM8 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_HI16 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_LO16 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_HIADJ16 ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_GPREL ||
-+ fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT ||
-+ fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_UJMP ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_CJMP ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_CALLR ||
-+ fixP->fx_r_type == BFD_RELOC_NIOS2_ALIGN
-+ // add other relocs here as we generate them
-+ ));
-+
-+
-+ /* The value passed in valP can be the value of a fully
-+ resolved expression, or it can be the value of a partially
-+ resolved expression. In the former case, both fixP->fx_addsy
-+ and fixP->fx_subsy are NULL, and fixP->fx_offset == *valP, and
-+ we can fix up the instruction that fixP relates to.
-+ In the latter case, one or both of fixP->fx_addsy and
-+ fixP->fx_subsy are not NULL, and fixP->fx_offset may or may not
-+ equal *valP. We don't need to check for fixP->fx_subsy being null
-+ because the generic part of the assembler generates an error if
-+ it is not an absolute symbol */
-+
-+ if (fixP->fx_addsy != NULL)
-+ {
-+ fixP->fx_addnumber = fixP->fx_offset;
-+ fixP->fx_done = 0;
-+ }
-+ else
-+ {
-+ valueT value;
-+
-+ char *buf;
-+ reloc_howto_type *howto;
-+ howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
-+
-+ if (howto == NULL)
-+ {
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _("relocation is not supported"));
-+ }
-+ else
-+ {
-+ fixup += *valP;
-+
-+ /* If this is a pc-relative relocation, we need to
-+ subtract the current offset within the object file
-+ FIXME : for some reason fixP->fx_pcrel isn't 1 when it should be
-+ so I'm using the howto structure instead to determine this */
-+ if (howto->pc_relative == 1)
-+ fixup = fixup - (fixP->fx_frag->fr_address + fixP->fx_where + 4);
-+
-+
-+
-+ /* Get the instruction to be fixed up */
-+ buf = fixP->fx_frag->fr_literal + fixP->fx_where;
-+ value = md_chars_to_number (buf, 4);
-+
-+ /* What opcode is the instruction? This will determine
-+ whether we check for overflow in immediate values
-+ and what error message we get */
-+ opcode = nios2_find_opcode_hash (value);
-+ overflow_msg_type = opcode->overflow_msg;
-+
-+ overflowed = nios2_check_overflow (fixup, howto);
-+
-+
-+ if (overflowed)
-+ {
-+ unsigned int range_min;
-+ unsigned int range_max;
-+ unsigned int address;
-+ switch (overflow_msg_type)
-+ {
-+ case call_target_overflow:
-+ range_min =
-+ ((fixP->fx_frag->fr_address +
-+ fixP->fx_where) & 0xf0000000);
-+ range_max = range_min + 0x0fffffff;
-+ address = fixup | range_min;
-+
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[call_target_overflow]),
-+ address, range_min, range_max);
-+ break;
-+ case branch_target_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[branch_target_overflow]),
-+ fixup, BYTE_B, BYTE_F);
-+ break;
-+ case address_offset_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[address_offset_overflow]),
-+ opcode->name, fixup, -32768, 32767);
-+ break;
-+ case signed_immed16_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[signed_immed16_overflow]),
-+ fixup, -32768, 32767);
-+ break;
-+ case unsigned_immed16_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[unsigned_immed16_overflow]),
-+ fixup, 0, 65535);
-+ break;
-+ case unsigned_immed5_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[unsigned_immed5_overflow]),
-+ fixup, 0, 31);
-+ break;
-+ case custom_opcode_overflow:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _(overflow_msgs[custom_opcode_overflow]),
-+ fixup, 0, 255);
-+ break;
-+ default:
-+ as_bad_where (fixP->fx_file, fixP->fx_line,
-+ _
-+ ("unspecified overflow in immediate argument"));
-+ break;
-+ }
-+ }
-+
-+
-+ /* apply the rightshift */
-+ (signed) fixup >>= howto->rightshift;
-+
-+ /* truncate the fixup to right size */
-+ switch (fixP->fx_r_type)
-+ {
-+ case BFD_RELOC_NIOS2_HI16:
-+ fixup = (fixup >> 16) & 0xFFFF;
-+ break;
-+ case BFD_RELOC_NIOS2_LO16:
-+ fixup = fixup & 0xFFFF;
-+ break;
-+ case BFD_RELOC_NIOS2_HIADJ16:
-+ fixup = ((fixup >> 16) & 0xFFFF) + ((fixup >> 15) & 0x01);
-+ break;
-+ default:
-+ fixup =
-+ (fixup << (32 - howto->bitsize)) >> (32 - howto->bitsize);
-+ break;
-+ }
-+
-+ /* fixup the instruction */
-+ value = (value & ~howto->dst_mask) | (fixup << howto->bitpos);
-+ md_number_to_chars (buf, value, 4);
-+ }
-+
-+ fixP->fx_done = 1;
-+ }
-+
-+ if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT)
-+ {
-+ fixP->fx_done = 0;
-+ if (fixP->fx_addsy
-+ && !S_IS_DEFINED (fixP->fx_addsy) && !S_IS_WEAK (fixP->fx_addsy))
-+ S_SET_WEAK (fixP->fx_addsy);
-+ }
-+ else if (fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
-+ {
-+ fixP->fx_done = 0;
-+ }
-+}
-+
-+bfd_boolean
-+nios2_check_overflow (valueT fixup, reloc_howto_type * howto)
-+{
-+ /* apply the rightshift before checking for overflow */
-+ (signed) fixup >>= howto->rightshift;
-+
-+ /* check for overflow - return TRUE if overflow, FALSE if not */
-+ switch (howto->complain_on_overflow)
-+ {
-+ case complain_overflow_dont:
-+ break;
-+ case complain_overflow_bitfield:
-+ if ((fixup >> howto->bitsize) != 0)
-+ return TRUE;
-+ break;
-+ case complain_overflow_signed:
-+ if ((fixup & 0x80000000) > 0)
-+ {
-+ /* check for negative overflow */
-+ if ((signed) fixup < ((signed) 0x80000000 >> howto->bitsize))
-+ return TRUE;
-+ }
-+ else
-+ {
-+ /* check for positive overflow */
-+ if (fixup >= ((unsigned) 1 << (howto->bitsize - 1)))
-+ return TRUE;
-+ }
-+ break;
-+ case complain_overflow_unsigned:
-+ if ((fixup >> howto->bitsize) != 0)
-+ return TRUE;
-+ break;
-+ default:
-+ as_bad (_("error checking for overflow - broken assembler"));
-+ break;
-+ }
-+
-+ return FALSE;
-+}
-+
-+/*
-+ Function : void md_end()
-+ Description : Called just before the assembler exits
-+ */
-+void
-+md_end ()
-+{
-+ /* FIXME - not yet implemented */
-+}
-+
-+
-+/*
-+ Creates a new nios2_insn_relocS and returns a pointer to it
-+*/
-+nios2_insn_relocS *
-+nios2_insn_reloc_new (bfd_reloc_code_real_type reloc_type, unsigned int pcrel)
-+{
-+ nios2_insn_relocS *retval;
-+ retval = (nios2_insn_relocS *) malloc (sizeof (nios2_insn_relocS));
-+ if (retval == NULL)
-+ {
-+ as_bad (_("can't create relocation"));
-+ abort ();
-+ }
-+
-+ /* fill out the fields with default values */
-+ retval->reloc_next = NULL;
-+ retval->reloc_type = reloc_type;
-+ retval->reloc_pcrel = pcrel;
-+ return retval;
-+}
-+
-+/*
-+ Frees up memory previously allocated by nios2_insn_reloc_new()
-+ */
-+void
-+nios2_insn_reloc_destroy (nios2_insn_relocS * reloc)
-+{
-+ assert (reloc != NULL);
-+ free (reloc);
-+}
-+
-+/*
-+ Function : nios2_assemble_expression(char* exprstr)
-+
-+ Description : The various nios2_assemble_* functions call this
-+ function to generate an expression from a
-+ string representing an expression
-+ It then tries to evaluate the expression, and
-+ if it can, returns its value.
-+ If not, it creates a new nios2_insn_relocS
-+ and stores the expression and reloc_type
-+ for future use
-+ */
-+unsigned long
-+nios2_assemble_expression (const char *exprstr,
-+ nios2_insn_infoS * insn,
-+ nios2_insn_relocS * prev_reloc,
-+ bfd_reloc_code_real_type reloc_type,
-+ unsigned int pcrel)
-+{
-+ nios2_insn_relocS *reloc;
-+ char *saved_line_ptr;
-+ unsigned short value;
-+ int i;
-+
-+ assert (exprstr != NULL);
-+ assert (insn != NULL);
-+
-+ /* check for %gprel, %hi, %lo or %hiadj
-+ change the relocation type
-+ and advance the ptr to the start of
-+ the expression proper */
-+ for (i = 0; i < nios2_num_special_relocs; i++)
-+ {
-+ if (strstr (exprstr, nios2_special_reloc[i].string) != NULL)
-+ {
-+ reloc_type = nios2_special_reloc[i].reloc_type;
-+ exprstr += strlen (nios2_special_reloc[i].string) + 1;
-+ break;
-+ }
-+ }
-+
-+ /* we potentially have a relocation */
-+ reloc = nios2_insn_reloc_new (reloc_type, pcrel);
-+ if (prev_reloc != NULL)
-+ prev_reloc->reloc_next = reloc;
-+ else
-+ insn->insn_reloc = reloc;
-+
-+ /* parse the expression string */
-+ saved_line_ptr = input_line_pointer;
-+ input_line_pointer = (char *) exprstr;
-+ expression (&reloc->reloc_expression);
-+ input_line_pointer = saved_line_ptr;
-+
-+ /* this is redundant as the fixup will put this into
-+ the instruction, but it is included here so that
-+ self-test mode (-r) works */
-+ value = 0;
-+ if (nios2_mode == NIOS2_MODE_TEST)
-+ {
-+ if (reloc->reloc_expression.X_op == O_constant)
-+ value = reloc->reloc_expression.X_add_number;
-+ }
-+
-+ return (unsigned long) value;
-+}
-+
-+/*
-+ The function consume_separate takes a pointer into a string
-+ of instruction tokens (args) and a pointer into a string representing
-+ the expected sequence of tokens and separators. It finds the first
-+ instance of the character pointed to by separator in argStr, and
-+ returns a pointer to the next element of argStr, which is the
-+ following token in the sequence.
-+ */
-+char *
-+nios2_consume_separator (char *argStr, const char *separator)
-+{
-+ char *argPtr;
-+
-+ /* if we have a opcode reg, expr(reg) type instruction, and
-+ * we are separating the expr from the (reg), we find the last
-+ * (, just in case the expression has brackets */
-+
-+ if (*separator == '(')
-+ argPtr = strrchr (argStr, *separator);
-+ else
-+ argPtr = strchr (argStr, *separator);
-+
-+ if (argPtr != NULL)
-+ *argPtr++ = 0;
-+ else
-+ as_bad (_("expecting %c near %s"), *separator, argStr);
-+ return argPtr;
-+}
-+
-+/*
-+ The function consume_arg takes a pointer into a string
-+ of instruction tokens (args) and a pointer into a string
-+ representing the expected sequence of tokens and separators.
-+ It checks whether the first argument in argStr is of the
-+ expected type, throwing an error if it is not, and returns
-+ the pointer argStr.
-+ */
-+char *
-+nios2_consume_arg (char *argStr, const char *argType)
-+{
-+ char *temp;
-+ int regno = -1;
-+
-+ switch (*argType)
-+ {
-+ case 'c':
-+ if (strncmp (argStr, "ctl", strlen ("ctl")) != 0
-+ && strncmp (argStr, "status", strlen ("status")) != 0
-+ && strncmp (argStr, "estatus", strlen ("estatus")) != 0
-+ && strncmp (argStr, "bstatus", strlen ("bstatus")) != 0
-+ && strncmp (argStr, "ienable", strlen ("ienable")) != 0
-+ && strncmp (argStr, "ipending", strlen ("ipending")) != 0)
-+ {
-+ as_bad (_("expecting control register"));
-+ }
-+ break;
-+ case 'd':
-+ case 's':
-+ case 't':
-+
-+ /* we check to make sure we don't have a control register */
-+ if (strncmp (argStr, "ctl", strlen ("ctl")) == 0
-+ || strncmp (argStr, "status", strlen ("status")) == 0
-+ || strncmp (argStr, "estatus", strlen ("estatus")) == 0
-+ || strncmp (argStr, "bstatus", strlen ("bstatus")) == 0
-+ || strncmp (argStr, "ienable", strlen ("ienable")) == 0
-+ || strncmp (argStr, "ipending", strlen ("ipending")) == 0)
-+ {
-+ as_bad (_("illegal use of control register"));
-+ }
-+
-+ /* and whether coprocessor registers are valid here */
-+ if (nios2_coproc_reg (argStr)
-+ && insn.insn_nios2_opcode->match != OP_MATCH_CUSTOM)
-+ {
-+ as_bad (_("illegal use of coprocessor register\n"));
-+ }
-+
-+
-+ /* extract a register number if the register is of the
-+ form r[0-9]+, if it is a normal register, set
-+ regno to its number (0-31), else set regno to -1 */
-+ if (argStr[0] == 'r' && ISDIGIT (argStr[1]))
-+ {
-+ char *p = argStr;
-+
-+ ++p;
-+ regno = 0;
-+ do
-+ {
-+ regno *= 10;
-+ regno += *p - '0';
-+ ++p;
-+ }
-+ while (ISDIGIT (*p));
-+ }
-+ else
-+ {
-+ regno = -1;
-+ }
-+
-+ /* and whether we are using at */
-+ if (!nios2_as_options.noat
-+ && (regno == 1
-+ || strncmp (argStr, "at", strlen ("at")) == 0))
-+ {
-+ as_warn (_("Register at (r1) can sometimes be corrupted by assembler optimizations.\n"
-+ "Use .set noat to turn off those optimizations (and this warning)."));
-+ }
-+
-+ /* and whether we are using oci registers */
-+ if (!nios2_as_options.nobreak
-+ && (regno == 25
-+ || strncmp (argStr, "bt", strlen ("bt")) == 0))
-+ {
-+ as_warn (_("The debugger will corrupt bt (r25). If you don't need to debug this\n"
-+ "code then use .set nobreak to turn off this warning."));
-+ }
-+
-+ if (!nios2_as_options.nobreak
-+ && (regno == 30
-+ || strncmp (argStr, "ba", strlen ("ba")) == 0))
-+ {
-+ as_warn (_("The debugger will corrupt ba (r30). If you don't need to debug this\n"
-+ "code then use .set nobreak to turn off this warning."));
-+ }
-+ break;
-+ case 'i':
-+ case 'u':
-+ if (*argStr == '%')
-+ {
-+ if (strstr (argStr, "%hi(") || strstr (argStr, "%lo(")
-+ || strstr (argStr, "%hiadj(") || strstr (argStr, "%gprel("))
-+ {
-+ // we zap the brackets because we don't want them confused with separators
-+ temp = strchr (argStr, '(');
-+ if (temp != NULL)
-+ *temp = ' ';
-+ temp = strchr (argStr, ')');
-+ if (temp != NULL)
-+ *temp = ' ';
-+ }
-+ else
-+ {
-+ as_bad (_("badly formed expression near %s"), argStr);
-+ }
-+ }
-+ break;
-+ case 'm':
-+ case 'j':
-+ case 'k':
-+ case 'l':
-+ case 'b':
-+ /* we can't have %hi, %lo or %hiadj here */
-+ if (*argStr == '%')
-+ as_bad (_("badly formed expression near %s"), argStr);
-+ break;
-+ default:
-+ break;
-+ }
-+ return argStr;
-+}
-+
-+/*
-+ The principal argument parsing function which takes a string
-+ representing the instruction arguments, and extracts the argument
-+ tokens
-+ */
-+void
-+nios2_parse_args (char *argStr, const char *parseStr, char **parsedArgs)
-+{
-+ char *p;
-+ char *end = NULL;
-+ int i;
-+ p = argStr;
-+ i = 0;
-+ bfd_boolean terminate = FALSE;
-+
-+ /* This rest of this function is it too fragile and it mostly works,
-+ therefore special case this one */
-+ if (*parseStr == 0 && argStr != 0)
-+ {
-+ as_bad (_("too many arguments"));
-+ parsedArgs[0] = NULL;
-+ return;
-+ }
-+
-+
-+ while (p != NULL && !terminate && i < NIOS2_MAX_INSN_TOKENS)
-+ {
-+ parsedArgs[i] = nios2_consume_arg (p, parseStr);
-+ ++parseStr;
-+ if (*parseStr != '\0')
-+ {
-+ p = nios2_consume_separator (p, parseStr);
-+ ++parseStr;
-+ }
-+ else
-+ {
-+ /* check that the argument string has no trailing arguments */
-+ /* if we've got a %lo etc relocation, we've zapped the brackets with spaces */
-+ if (strstr (p, "%lo") == p || strstr (p, "%hi") == p
-+ || strstr (p, "%hiadj") == p || strstr (p, "%gprel") == p)
-+ end = strpbrk (p, ",");
-+ else
-+ end = strpbrk (p, " ,");
-+
-+ if (end != NULL)
-+ as_bad (_("too many arguments"));
-+ }
-+
-+ if (*parseStr == '\0' || (p != NULL && *p == '\0'))
-+ {
-+ terminate = TRUE;
-+ }
-+ ++i;
-+ }
-+
-+ parsedArgs[i] = NULL;
-+
-+ if (*parseStr != '\0' && insn.insn_nios2_opcode->match != OP_MATCH_BREAK)
-+ as_bad (_("missing argument"));
-+
-+}
-+
-+
-+/* checks whether the register name is a coprocessor
-+ register - returns TRUE if it is, FALSE otherwise */
-+
-+static bfd_boolean
-+nios2_coproc_reg (const char *reg_name)
-+{
-+ assert (reg_name != NULL);
-+
-+/* check that we do have a valid register name and that it is a
-+ * coprocessor register
-+ * it must begin with c, not be a control register, and be a valid
-+ * register name */
-+
-+ if (strncmp (reg_name, "c", 1) == 0 &&
-+ strncmp (reg_name, "ctl", strlen ("ctl")) != 0 &&
-+ hash_find (nios2_reg_hash, reg_name) != NULL)
-+ return TRUE;
-+ else
-+ return FALSE;
-+}
-+
-+
-+/*********************************************************************
-+ Argument assemble functions
-+
-+ Description : All take an instruction argument string, and a pointer
-+ to an instruction opcode. Upon return the insn_opcode
-+ has the relevant fields filled in to represent the arg
-+ string. The return value is NULL if successful, or
-+ an error message if an error was detected
-+ *********************************************************************/
-+
-+/* assembles register arguments "dst, src1, src2" */
-+void
-+nios2_assemble_args_dst (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1, *src2;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ src2 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[3]);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index);
-+
-+ if (src2 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[3]);
-+ else
-+ SET_INSN_FIELD (RRT, insn_info->insn_code, src2->index);
-+
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+ }
-+}
-+
-+
-+/* assembles arguments successfully parsed by nios2_parse_args_tsi */
-+void
-+nios2_assemble_args_tsi (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1;
-+ unsigned int src2;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ src2 =
-+ nios2_assemble_expression (insn_info->insn_tokens[3], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_NIOS2_S16,
-+ 0);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (IRT, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (IRS, insn_info->insn_code, src1->index);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, src2);
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+/* assembles args successfully parsed by nios2_parse_args_tsu */
-+void
-+nios2_assemble_args_tsu (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1;
-+ unsigned int src2;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ src2 =
-+ nios2_assemble_expression (insn_info->insn_tokens[3], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_NIOS2_U16,
-+ 0);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (IRT, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (IRS, insn_info->insn_code, src1->index);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, src2);
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+/* assembles args successfully parsed by nios2_parse_args_sti */
-+void
-+nios2_assemble_args_sto (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1;
-+ unsigned int src2;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ src2 =
-+ nios2_assemble_expression (insn_info->insn_tokens[3], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_16_PCREL,
-+ 1);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (IRS, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (IRT, insn_info->insn_code, src1->index);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, src2);
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_o (nios2_insn_infoS * insn_info)
-+{
-+ unsigned long immed;
-+
-+ if (insn_info->insn_tokens[1] != NULL)
-+ {
-+ immed =
-+ nios2_assemble_expression (insn_info->insn_tokens[1], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_16_PCREL,
-+ 1);
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, immed);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_is (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *addr_src;
-+ unsigned long immed;
-+
-+ if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL)
-+ {
-+ addr_src =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+
-+ immed =
-+ nios2_assemble_expression (insn_info->insn_tokens[1], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_NIOS2_S16,
-+ 0);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, immed);
-+
-+ if (addr_src == NULL)
-+ as_bad (_("unknown base register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, addr_src->index);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[3]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_m (nios2_insn_infoS * insn_info)
-+{
-+ unsigned long immed;
-+ if (insn_info->insn_tokens[1] != NULL)
-+ {
-+ immed =
-+ nios2_assemble_expression (insn_info->insn_tokens[1], insn_info,
-+ insn_info->insn_reloc,
-+ BFD_RELOC_NIOS2_CALL26, 0);
-+
-+ SET_INSN_FIELD (IMM26, insn_info->insn_code, immed);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+
-+ SET_INSN_FIELD (IMM26, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_s (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *src;
-+
-+ if (insn_info->insn_tokens[1] != NULL)
-+ {
-+ src =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+
-+ if (src == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, src->index);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_tis (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *addr_src, *dst;
-+ unsigned long immed;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ addr_src =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[3]);
-+ immed =
-+ nios2_assemble_expression (insn_info->insn_tokens[2], insn_info,
-+ insn_info->insn_reloc, BFD_RELOC_NIOS2_S16,
-+ 0);
-+
-+
-+ if (addr_src == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[3]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, addr_src->index);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RRT, insn_info->insn_code, dst->index);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, immed);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (IMM16, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+/* assemble rdctl dst, ctl */
-+void
-+nios2_assemble_args_dc (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *ctl;
-+
-+ if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL)
-+ {
-+ ctl =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+
-+ if (ctl == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RCTL, insn_info->insn_code, ctl->index);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[3]);
-+ }
-+}
-+
-+
-+/* assemble wrctl ctl, src */
-+void
-+nios2_assemble_args_cs (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *src, *ctl;
-+
-+ if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL)
-+ {
-+ ctl =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+
-+ if (ctl == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else if (ctl->index == 4)
-+ as_bad (_("ipending control register (ctl4) is read-only\n"));
-+ else
-+ SET_INSN_FIELD (RCTL, insn_info->insn_code, ctl->index);
-+
-+ if (src == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, src->index);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[3]);
-+ }
-+}
-+
-+
-+
-+void
-+nios2_assemble_args_ldst (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1, *src2;
-+ unsigned long custom_n;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL &&
-+ insn_info->insn_tokens[3] != NULL && insn_info->insn_tokens[4] != NULL)
-+ {
-+#if 0 /* ??? Unused/half commented out code */
-+ char *end_p;
-+ /* custom_n = nios2_strtoul(insn_info->insn_tokens[1], &end_p); */
-+#endif
-+ custom_n =
-+ nios2_assemble_expression (insn_info->insn_tokens[1], insn_info,
-+ insn_info->insn_reloc,
-+ BFD_RELOC_NIOS2_IMM8, 0);
-+
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[3]);
-+ src2 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (CUSTOM_N, insn_info->insn_code, custom_n);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[3]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index);
-+
-+ if (src2 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[4]);
-+ else
-+ SET_INSN_FIELD (RRT, insn_info->insn_code, src2->index);
-+
-+ /* set or clear the bits to indicate whether coprocessor registers are used */
-+ if (nios2_coproc_reg (insn_info->insn_tokens[2]))
-+ SET_INSN_FIELD (CUSTOM_C, insn_info->insn_code, 0);
-+ else
-+ SET_INSN_FIELD (CUSTOM_C, insn_info->insn_code, 1);
-+
-+ if (nios2_coproc_reg (insn_info->insn_tokens[3]))
-+ SET_INSN_FIELD (CUSTOM_A, insn_info->insn_code, 0);
-+ else
-+ SET_INSN_FIELD (CUSTOM_A, insn_info->insn_code, 1);
-+
-+ if (nios2_coproc_reg (insn_info->insn_tokens[4]))
-+ SET_INSN_FIELD (CUSTOM_B, insn_info->insn_code, 0);
-+ else
-+ SET_INSN_FIELD (CUSTOM_B, insn_info->insn_code, 1);
-+
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[5]);
-+ }
-+}
-+
-+
-+void
-+nios2_assemble_args_none (nios2_insn_infoS * insn_info ATTRIBUTE_UNUSED)
-+{
-+ // nothing to do
-+}
-+
-+
-+void
-+nios2_assemble_args_dsj (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst, *src1;
-+ unsigned int src2;
-+
-+ if (insn_info->insn_tokens[1] != NULL &&
-+ insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+ src1 =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[2]);
-+
-+ // a 5-bit constant expression
-+ src2 =
-+ nios2_assemble_expression (insn_info->insn_tokens[3], insn_info,
-+ insn_info->insn_reloc,
-+ BFD_RELOC_NIOS2_IMM5, 0);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index);
-+
-+ if (src1 == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[2]);
-+ else
-+ SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index);
-+
-+ SET_INSN_FIELD (IMM5, insn_info->insn_code, src2);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[4]);
-+
-+ SET_INSN_FIELD (IMM5, insn_info->insn_code, 0);
-+ }
-+}
-+
-+
-+/* assembles register arguments "dst" */
-+void
-+nios2_assemble_args_d (nios2_insn_infoS * insn_info)
-+{
-+ struct nios2_reg *dst;
-+
-+ if (insn_info->insn_tokens[1] != NULL)
-+ {
-+ dst =
-+ (struct nios2_reg *) hash_find (nios2_reg_hash,
-+ insn_info->insn_tokens[1]);
-+
-+ if (dst == NULL)
-+ as_bad (_("unknown register %s"), insn_info->insn_tokens[1]);
-+ else
-+ SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+ }
-+}
-+
-+/* assemble break op */
-+void
-+nios2_assemble_args_b (nios2_insn_infoS * insn_info)
-+{
-+ unsigned int imm5 = 0;
-+
-+ if (insn_info->insn_tokens[1] != NULL)
-+ {
-+ // a 5-bit constant expression
-+ imm5 =
-+ nios2_assemble_expression (insn_info->insn_tokens[1], insn_info,
-+ insn_info->insn_reloc,
-+ BFD_RELOC_NIOS2_IMM5, 0);
-+
-+ SET_INSN_FIELD (TRAP_IMM5, insn_info->insn_code, imm5);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+ }
-+
-+ SET_INSN_FIELD (TRAP_IMM5, insn_info->insn_code, imm5);
-+
-+ NIOS2_CHECK_ASSEMBLY (insn_info->insn_code, insn_info->insn_tokens[2]);
-+}
-+
-+/* Machine-dependent assembler directive handling follows */
-+
-+/*
-+ .set sets assembler options eg noat/at and is also used
-+ to set symbol values (.equ, .equiv )
-+*/
-+void
-+s_nios2_set (int equiv)
-+{
-+ char *directive = input_line_pointer;
-+ char delim = get_symbol_end ();
-+ char *endline;
-+ endline = input_line_pointer;
-+ *endline = delim;
-+
-+ /* we only want to handle ".set XXX" if the
-+ user has tried ".set XXX, YYY" they are not
-+ trying a directive. This prevents
-+ us from polluting the name space */
-+
-+ SKIP_WHITESPACE ();
-+
-+ if (is_end_of_line[(unsigned char) *input_line_pointer])
-+ {
-+ bfd_boolean done = FALSE;
-+ *endline = 0;
-+
-+ if (!strcmp (directive, "noat"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.noat = TRUE;
-+ }
-+
-+ if (!strcmp (directive, "at"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.noat = FALSE;
-+ }
-+
-+ if (!strcmp (directive, "nobreak"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.nobreak = TRUE;
-+ }
-+
-+ if (!strcmp (directive, "break"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.nobreak = FALSE;
-+ }
-+
-+ if (!strcmp (directive, "norelax"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.relax = relax_none;
-+ }
-+ else if (!strcmp (directive, "relaxsection"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.relax = relax_section;
-+ }
-+ else if (!strcmp (directive, "relaxall"))
-+ {
-+ done = TRUE;
-+ nios2_as_options.relax = relax_all;
-+ }
-+
-+
-+ if (done)
-+ {
-+ *endline = delim;
-+ demand_empty_rest_of_line ();
-+ return;
-+ }
-+ }
-+
-+
-+ /* If we fall through to here, either we have ".set XXX, YYY"
-+ or we have ".set XXX" where XXX is unknown or we have
-+ a syntax error */
-+ input_line_pointer = directive;
-+ *endline = delim;
-+ s_set (equiv);
-+}
-+
-+/* nop fill pattern for text section */
-+static char const nop[4] = { 0x3a, 0x88, 0x01, 0x00 };
-+
-+/* nios2_frob_label() is called when after a label is recognized. */
-+
-+void
-+nios2_frob_label (symbolS * lab)
-+{
-+ /* Update the label's address with the current output pointer. */
-+ symbol_set_frag (lab, frag_now);
-+ S_SET_VALUE (lab, (valueT) frag_now_fix ());
-+
-+ /* Record this label for future adjustment after we find out what
-+ kind of data it references, and the required alignment therewith. */
-+ nios2_last_label = lab;
-+}
-+
-+
-+
-+/* Hook into cons for auto-alignment. */
-+
-+void
-+nios2_cons_align (int size)
-+{
-+ int log_size;
-+ const char *pfill = NULL;
-+
-+ log_size = 0;
-+ while ((size >>= 1) != 0)
-+ ++log_size;
-+
-+ if (subseg_text_p (now_seg))
-+ {
-+ pfill = (const char *) &nop;
-+ }
-+ else
-+ pfill = NULL;
-+
-+ if (nios2_auto_align_on)
-+ nios2_align (log_size, pfill, NULL);
-+
-+ nios2_last_label = NULL;
-+}
-+
-+static void
-+s_nios2_sdata (int ignore ATTRIBUTE_UNUSED)
-+{
-+ int temp;
-+
-+ temp = get_absolute_expression ();
-+ subseg_new (".sdata", 0);
-+ demand_empty_rest_of_line ();
-+}
-+
-+/* Map 's' to SHF_NIOS2_GPREL. */
-+/* this is from the Alpha code tc-alpha.c */
-+int
-+nios2_elf_section_letter (int letter, char **ptr_msg)
-+{
-+ if (letter == 's')
-+ return SHF_NIOS2_GPREL;
-+
-+ *ptr_msg = _("Bad .section directive: want a,s,w,x,M,S,G,T in string");
-+ return 0;
-+}
-+
-+/* Map SHF_ALPHA_GPREL to SEC_SMALL_DATA. */
-+/* this is from the Alpha code tc-alpha.c */
-+flagword
-+nios2_elf_section_flags (flagword flags, int attr, int type ATTRIBUTE_UNUSED)
-+{
-+ if (attr & SHF_NIOS2_GPREL)
-+ flags |= SEC_SMALL_DATA;
-+ return flags;
-+}
-+
-+/* explicitly unaligned cons */
-+
-+static void
-+s_nios2_ucons (int nbytes)
-+{
-+ int hold;
-+ hold = nios2_auto_align_on;
-+ nios2_auto_align_on = 0;
-+ cons (nbytes);
-+ nios2_auto_align_on = hold;
-+}
-+
-+/* Handles all machine-dependent alignment needs */
-+static void
-+nios2_align (int log_size, const char *pfill, symbolS * label)
-+{
-+ int align;
-+ long max_alignment = 15;
-+
-+ /* The front end is prone to changing segments out from under us
-+ temporarily when -g is in effect. */
-+ int switched_seg_p = (nios2_current_align_seg != now_seg);
-+
-+ align = log_size;
-+ if (align > max_alignment)
-+ {
-+ align = max_alignment;
-+ as_bad (_("Alignment too large: %d. assumed"), align);
-+ }
-+ else if (align < 0)
-+ {
-+ as_warn (_("Alignment negative: 0 assumed"));
-+ align = 0;
-+ }
-+
-+ if (align != 0)
-+ {
-+ if (subseg_text_p (now_seg) && align >= 2)
-+ {
-+ /* First, make sure we're on a four-byte boundary, in case
-+ someone has been putting .byte values the text section. */
-+ if (nios2_current_align < 2 || switched_seg_p)
-+ frag_align (2, 0, 0);
-+
-+ /* now fill in the alignment pattern */
-+ if (pfill != NULL)
-+ frag_align_pattern (align, pfill, sizeof nop, 0);
-+ else
-+ frag_align (align, 0, 0);
-+ }
-+ else
-+ {
-+ frag_align (align, 0, 0);
-+ }
-+
-+ if (!switched_seg_p)
-+ nios2_current_align = align;
-+
-+ /* If the last label was in a different section we can't align it */
-+ if (label != NULL && !switched_seg_p)
-+ {
-+ symbolS *sym;
-+ int label_seen = FALSE;
-+ struct frag *old_frag;
-+ valueT old_value;
-+ valueT new_value;
-+
-+ assert (S_GET_SEGMENT (label) == now_seg);
-+
-+ old_frag = symbol_get_frag (label);
-+ old_value = S_GET_VALUE (label);
-+ new_value = (valueT) frag_now_fix ();
-+
-+ /* It is possible to have more than one label at a particular
-+ address, especially if debugging is enabled, so we must
-+ take care to adjust all the labels at this address in this
-+ fragment. To save time we search from the end of the symbol
-+ list, backwards, since the symbols we are interested in are
-+ almost certainly the ones that were most recently added.
-+ Also to save time we stop searching once we have seen at least
-+ one matching label, and we encounter a label that is no longer
-+ in the target fragment. Note, this search is guaranteed to
-+ find at least one match when sym == label, so no special case
-+ code is necessary. */
-+ for (sym = symbol_lastP; sym != NULL; sym = symbol_previous (sym))
-+ {
-+ if (symbol_get_frag (sym) == old_frag
-+ && S_GET_VALUE (sym) == old_value)
-+ {
-+ label_seen = TRUE;
-+ symbol_set_frag (sym, frag_now);
-+ S_SET_VALUE (sym, new_value);
-+ }
-+ else if (label_seen && symbol_get_frag (sym) != old_frag)
-+ break;
-+ }
-+ }
-+ record_alignment (now_seg, align);
-+ }
-+}
-+
-+/* This is called from HANDLE_ALIGN in tc-nios2.h. */
-+
-+void
-+nios2_handle_align (fragS * fragp)
-+{
-+ /* If we are expecting to relax in the linker, then we must output a relocation
-+ * to tell the linker we are aligning code */
-+ if (nios2_as_options.relax == relax_all
-+ && (fragp->fr_type == rs_align
-+ || fragp->fr_type == rs_align_code)
-+ && fragp->fr_address + fragp->fr_fix > 0
-+ && fragp->fr_offset > 1 && now_seg != bss_section)
-+ fix_new (fragp, fragp->fr_fix, 4, &abs_symbol, fragp->fr_offset, 0,
-+ BFD_RELOC_NIOS2_ALIGN);
-+
-+}
-+
-+/* Handle the .align pseudo-op. This aligns to a power of two. It
-+ also adjusts any current instruction label. We treat this the same
-+ way the MIPS port does: .align 0 turns off auto alignment. */
-+
-+static void
-+s_nios2_align (int ignore ATTRIBUTE_UNUSED)
-+{
-+ int align;
-+ char fill;
-+ const char *pfill = NULL;
-+ long max_alignment = 15;
-+
-+
-+ align = get_absolute_expression ();
-+ if (align > max_alignment)
-+ {
-+ align = max_alignment;
-+ as_bad (_("Alignment too large: %d. assumed"), align);
-+ }
-+ else if (align < 0)
-+ {
-+ as_warn (_("Alignment negative: 0 assumed"));
-+ align = 0;
-+ }
-+
-+ if (*input_line_pointer == ',')
-+ {
-+ input_line_pointer++;
-+ fill = get_absolute_expression ();
-+ pfill = (const char *) &fill;
-+ }
-+ else if (subseg_text_p (now_seg))
-+ {
-+ pfill = (const char *) &nop;
-+ }
-+ else
-+ {
-+ pfill = NULL;
-+ nios2_last_label = NULL;
-+ }
-+
-+ if (align != 0)
-+ {
-+ nios2_auto_align_on = 1;
-+ nios2_align (align, pfill, nios2_last_label);
-+ nios2_last_label = NULL;
-+ }
-+ else
-+ {
-+ nios2_auto_align_on = 0;
-+ }
-+
-+ demand_empty_rest_of_line ();
-+}
-+
-+
-+/* Handle the .text pseudo-op. This is like the usual one, but it
-+ clears the saved last label and resets known alignment. */
-+
-+static void
-+s_nios2_text (int i)
-+{
-+ s_text (i);
-+ nios2_last_label = NULL;
-+ nios2_current_align = 0;
-+ nios2_current_align_seg = now_seg;
-+}
-+
-+/* Handle the .data pseudo-op. This is like the usual one, but it
-+ clears the saved last label and resets known alignment. */
-+
-+static void
-+s_nios2_data (int i)
-+{
-+ s_data (i);
-+ nios2_last_label = NULL;
-+ nios2_current_align = 0;
-+ nios2_current_align_seg = now_seg;
-+}
-+
-+/* Handle the .section pseudo-op. This is like the usual one, but it
-+ clears the saved last label and resets known alignment. */
-+
-+static void
-+s_nios2_section (int ignore)
-+{
-+ obj_elf_section (ignore);
-+ nios2_last_label = NULL;
-+ nios2_current_align = 0;
-+ nios2_current_align_seg = now_seg;
-+}
---- binutils-2.15/gas/config/tc-nios2.h 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/config/tc-nios2.h 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,98 @@
-+/* tc-nios2.h -- header file for tc-nios2.c.
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+ This file is part of GAS.
-+
-+ GAS 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, or (at your option)
-+ any later version.
-+
-+ GAS 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 GAS; see the file COPYING. If not, write to the Free
-+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-+ 02111-1307, USA. */
-+
-+#ifndef TC_NIOS2
-+#define TC_NIOS2
-+
-+
-+#define TARGET_BYTES_BIG_ENDIAN 0
-+
-+#ifdef OBJ_ELF
-+#define TARGET_FORMAT "elf32-littlenios2"
-+#define TARGET_ARCH bfd_arch_nios2
-+#endif
-+
-+/* An NIOS2 instruction consists of tokens and separator characters
-+// the tokens are things like the instruction name (add, or jmp etc),
-+// the register indices ($5, $7 etc), and constant expressions. The
-+// separator characters are commas, brackets and space.
-+// The instruction name is always separated from other tokens by a space
-+// The maximum number of tokens in an instruction is 5 (the instruction name,
-+// 3 arguments, and a 4th string representing the expected instructin opcode
-+// after assembly. The latter is only used when the assemble is running in
-+// self test mode, otherwise its presence will generate an error. */
-+#define NIOS2_MAX_INSN_TOKENS 6
-+
-+/* There are no machine-specific operands so we #define this to nothing */
-+#define md_operand(x)
-+
-+/* NG this may need to change when we look at implementing symbols */
-+#define md_undefined_symbol(name) (0)
-+
-+/* function prototypes exported to rest of GAS */
-+extern void md_assemble (char *op_str);
-+extern void md_end (void);
-+extern void md_begin (void);
-+
-+#define TC_FORCE_RELOCATION(fixp) nios2_force_relocation (fixp)
-+extern int nios2_force_relocation (struct fix *);
-+
-+#define tc_fix_adjustable(fixp) nios2_fix_adjustable (fixp)
-+extern int nios2_fix_adjustable (struct fix *);
-+
-+#define tc_frob_label(lab) nios2_frob_label(lab)
-+extern void nios2_frob_label (symbolS *);
-+
-+#define tc_frob_symbol(symp, punt) punt = nios2_frob_symbol(symp) ? 1 : punt
-+extern int nios2_frob_symbol (symbolS * symp);
-+
-+#define md_cons_align(nbytes) nios2_cons_align (nbytes)
-+extern void nios2_cons_align (int);
-+
-+extern void md_convert_frag (bfd * headers, segT sec, fragS * fragP);
-+
-+/* When relaxing, we need to generate relocations for alignment
-+ directives. */
-+#define HANDLE_ALIGN(frag) nios2_handle_align (frag)
-+extern void nios2_handle_align (fragS *);
-+
-+
-+#define md_relax_frag nios2_relax_frag
-+extern long nios2_relax_frag
-+ (segT segment, fragS * fragP, long stretch);
-+
-+#ifdef OBJ_ELF
-+#define ELF_TC_SPECIAL_SECTIONS \
-+ { ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
-+ { ".sbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
-+ { ".lit4", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
-+ { ".lit8", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL },
-+
-+/* Processor specific section directives */
-+#define md_elf_section_letter nios2_elf_section_letter
-+extern int nios2_elf_section_letter (int, char **);
-+#define md_elf_section_flags nios2_elf_section_flags
-+extern flagword nios2_elf_section_flags (flagword, int, int);
-+#endif
-+
-+
-+#endif // TC_NIOS2
---- binutils-2.15/gas/configure 2004-05-17 21:36:07.000000000 +0200
-+++ binutils-2.15-nios2/gas/configure 2005-05-17 12:20:13.000000000 +0200
-@@ -4173,6 +4173,7 @@ for this_target in $target $canon_target
- m8*) cpu_type=m88k ;;
- mips*el) cpu_type=mips endian=little ;;
- mips*) cpu_type=mips endian=big ;;
-+ nios2*|nios2*) cpu_type=nios2 ;;
- or32*) cpu_type=or32 endian=big ;;
- pjl*) cpu_type=pj endian=little ;;
- pj*) cpu_type=pj endian=big ;;
-@@ -4439,6 +4440,7 @@ echo "$as_me: error: Unknown vendor for
- mn10200-*-*) fmt=elf ;;
- mn10300-*-*) fmt=elf ;;
- msp430-*-*) fmt=elf ;;
-+ nios2-*-*) fmt=elf ;;
- openrisc-*-*) fmt=elf ;;
- or32-*-rtems*) fmt=elf ;;
- or32-*-coff) fmt=coff ;;
-@@ -4589,7 +4591,7 @@ _ACEOF
- fi
-
- case ${cpu_type}-${fmt} in
-- alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
-+ alpha*-* | arm-* | i386-* | ia64*-* | mips-* | nios2-* | ns32k-* \
- | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
- | *-elf | *-ecoff | *-som)
- bfd_gas=yes ;;
---- binutils-2.15/gas/configure.in 2004-05-17 21:36:07.000000000 +0200
-+++ binutils-2.15-nios2/gas/configure.in 2005-05-17 12:20:13.000000000 +0200
-@@ -143,6 +143,7 @@ changequote([,])dnl
- m8*) cpu_type=m88k ;;
- mips*el) cpu_type=mips endian=little ;;
- mips*) cpu_type=mips endian=big ;;
-+ nios2*|nios2*) cpu_type=nios2 ;;
- or32*) cpu_type=or32 endian=big ;;
- pjl*) cpu_type=pj endian=little ;;
- pj*) cpu_type=pj endian=big ;;
-@@ -400,6 +401,7 @@ changequote([,])dnl
- mn10200-*-*) fmt=elf ;;
- mn10300-*-*) fmt=elf ;;
- msp430-*-*) fmt=elf ;;
-+ nios2-*-*) fmt=elf ;;
- openrisc-*-*) fmt=elf ;;
- or32-*-rtems*) fmt=elf ;;
- or32-*-coff) fmt=coff ;;
-@@ -539,7 +541,7 @@ changequote([,])dnl
- fi
-
- case ${cpu_type}-${fmt} in
-- alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
-+ alpha*-* | arm-* | i386-* | ia64*-* | mips-* | nios2-* | ns32k-* \
- | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
- | *-elf | *-ecoff | *-som)
- bfd_gas=yes ;;
---- binutils-2.15/gas/doc/Makefile.am 2004-01-05 23:16:05.000000000 +0100
-+++ binutils-2.15-nios2/gas/doc/Makefile.am 2005-05-17 12:20:13.000000000 +0200
-@@ -24,6 +24,7 @@ asconfig.texi: $(CONFIG).texi
- || cp $(srcdir)/$(CONFIG).texi ./asconfig.texi
-
- CPU_DOCS = \
-+ c-nios2.texi \
- c-a29k.texi \
- c-alpha.texi \
- c-arc.texi \
---- binutils-2.15/gas/doc/Makefile.in 2004-05-17 21:36:11.000000000 +0200
-+++ binutils-2.15-nios2/gas/doc/Makefile.in 2005-05-17 12:20:13.000000000 +0200
-@@ -213,6 +213,7 @@ POD2MAN = pod2man --center="GNU Developm
- man_MANS = as.1
- info_TEXINFOS = as.texinfo
- CPU_DOCS = \
-+ c-nios2.texi \
- c-a29k.texi \
- c-alpha.texi \
- c-arc.texi \
---- binutils-2.15/gas/doc/all.texi 2003-04-01 17:50:30.000000000 +0200
-+++ binutils-2.15-nios2/gas/doc/all.texi 2005-05-17 12:20:13.000000000 +0200
-@@ -26,6 +26,7 @@
-
- @c CPUs of interest
- @c ================
-+@set NIOSII
- @set A29K
- @set ALPHA
- @set ARC
---- binutils-2.15/gas/doc/as.texinfo 2004-01-09 03:34:04.000000000 +0100
-+++ binutils-2.15-nios2/gas/doc/as.texinfo 2005-05-17 12:20:13.000000000 +0200
-@@ -238,6 +238,15 @@ gcc(1), ld(1), and the Info entries for
- @c
- @c Target dependent options are listed below. Keep the list sorted.
- @c Add an empty line for separation.
-+
-+
-+@ifset NIOSII
-+@emph{Target Altera Nios II options:}
-+ [@b{-relax-all}]
-+ [@b{-relax-section}]
-+ [@b{-no-relax}]
-+@end ifset
-+
- @ifset A29K
- @c am29k has no machine-dependent assembler options
- @end ifset
-@@ -577,6 +586,21 @@ Standard input, or source files to assem
-
- @end table
-
-+@ifset NIOSII
-+The following options are available when @value{AS} is configured for
-+an Altera Nios II processor.
-+
-+@table @gcctabopt
-+@item -relax-all
-+Replace all branch and call instructions with @code{jmp} and @code{callr} sequences
-+@item -relax-section
-+Replace identified out of range branches with @code{jmp} sequences (default)
-+@item -no-relax
-+Do not replace any branches or calls
-+@end table
-+@end ifset
-+
-+
- @ifset ARC
- The following options are available when @value{AS} is configured for
- an ARC processor.
-@@ -2035,6 +2059,9 @@ This means you may not nest these commen
- @cindex line comment character
- Anything from the @dfn{line comment} character to the next newline
- is considered a comment and is ignored. The line comment character is
-+@ifset NIOSII
-+@samp{#} for the Altera Nios II family;
-+@end ifset
- @ifset A29K
- @samp{;} for the AMD 29K family;
- @end ifset
-@@ -3876,7 +3903,7 @@ is already a multiple of 8, no change is
- first expression is the alignment request in words.
-
- For other systems, including the i386 using a.out format, and the arm and
--strongarm, it is the
-+strongarm, and the Altera Nios II, it is the
- number of low-order zero bits the location counter must have after
- advancement. For example @samp{.align 3} advances the location
- counter until it a multiple of 8. If the location counter is already a
-@@ -5864,6 +5891,9 @@ include details on any machine's instruc
- subject, see the hardware manufacturer's manual.
-
- @menu
-+@ifset NIOSII
-+* NiosII-Dependent:: Altera Nios II Dependent Features
-+@end ifset
- @ifset A29K
- * AMD29K-Dependent:: AMD 29K Dependent Features
- @end ifset
-@@ -5974,6 +6004,11 @@ subject, see the hardware manufacturer's
- @c node and sectioning commands; hence the repetition of @chapter BLAH
- @c in both conditional blocks.
-
-+
-+@ifset NIOSII
-+@include c-nios2.texi
-+@end ifset
-+
- @ifset A29K
- @include c-a29k.texi
- @end ifset
---- binutils-2.15/gas/doc/c-nios2.texi 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/doc/c-nios2.texi 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,214 @@
-+@c Copyright 2004
-+@c This is part of the GAS manual.
-+@c For copying conditions, see the file as.texinfo.
-+@ifset GENERIC
-+@page
-+@node NiosII-Dependent
-+@chapter Altera Nios II Dependent Features
-+@end ifset
-+@ifclear GENERIC
-+@node Machine Dependencies
-+@chapter ltera Nios II Dependent Features
-+@end ifclear
-+
-+@cindex Altera Nios II support
-+@cindex Nios support
-+@cindex Nios II support
-+@menu
-+* Nios II Options:: Options
-+* Nios II Syntax:: Syntax
-+* Nios II Relocations:: Relocations
-+* Nios II Directives:: Nios II Machine Directives
-+* Nios II Opcodes:: Opcodes
-+@end menu
-+
-+@node Nios II Options
-+@section Options
-+@cindex Nios II options
-+@cindex options for Nios II
-+
-+@table @code
-+
-+@cindex @code{relax-all} command line option, Nios II
-+@item -relax-all
-+Replace all branch and call instructions with @code{jmp} and @code{callr} sequences
-+
-+@cindex @code{relax-section} command line option, Nios II
-+@item -relax-section
-+Replace identified out of range branches with @code{jmp} sequences (default)
-+
-+@cindex @code{no-relax} command line option, Nios II
-+@item -no-relax
-+Do not replace any branches or calls
-+
-+@end table
-+
-+
-+@node Nios II Syntax
-+@section Syntax
-+@menu
-+* Nios II Chars:: Special Characters
-+@end menu
-+
-+
-+@node Nios II Chars
-+@subsection Special Characters
-+
-+@cindex line comment character, Nios II
-+@cindex Nios II line comment character
-+@samp{#} is the line comment character.
-+
-+@cindex line separator character, Nios II
-+@cindex Nios II line separator character
-+@samp{;} is the line separator character.
-+
-+
-+@node Nios II Relocations
-+@section Nios II Machine Relocations
-+
-+@cindex machine relocations, Nios II
-+@cindex Nios II machine relocations
-+
-+@table @code
-+@cindex @code{hiadj} directive, Nios II
-+@item %hiadj(@var{expression})
-+Extract the upper 16-bits of @var{expression} and add
-+one if the 15th bit is set.
-+
-+The value of %hiadj is:
-+((@var{expression} >> 16) & 0xffff) + ((@var{expression} >> 15) & 0x01).
-+
-+The intention of the @code{%hiadj} relocation is to be used with
-+an @code{addi}, @code{ld} or @code{st} instructions
-+along with a @code{%lo}.
-+
-+@smallexample
-+movhi r2, %hiadj(symbol)
-+addi r2, r2, %lo(symbol)
-+@end smallexample
-+
-+@cindex @code{hi} directive, Nios II
-+@item %hi(@var{expression})
-+Extract the upper 16-bits of @var{expression}.
-+
-+
-+@cindex @code{lo} directive, Nios II
-+@item %lo(@var{expression})
-+Extract the lower 16-bits of @var{expression}.
-+
-+
-+@cindex @code{gprel} directive, Nios II
-+@item %gprel(@var{expression})
-+Subtract the value of the symbol @code{_gp} from
-+@var{expression}.
-+
-+The intention of the @code{%gprel} relocation is
-+to have a fast small area of memory which only
-+takes a 16-bit immediate to access.
-+
-+@smallexample
-+ .section .sdata
-+fastint:
-+ .int 123
-+ .section .text
-+ ldw r4, %gprel(fastint)(gp)
-+@end smallexample
-+
-+
-+@end table
-+
-+
-+@node Nios II Directives
-+@section Nios II Machine Directives
-+
-+@cindex machine directives, Nios II
-+@cindex Nios II machine directives
-+
-+@table @code
-+
-+@cindex @code{align} directive, Nios II
-+@item .align @var{expression} [, @var{expression}]
-+This is the generic @var{.align} directive, however
-+this aligns to a power of two.
-+
-+@cindex @code{half} directive, Nios II
-+@item .half @var{expression}
-+Create an aligned constant 2-bytes in size
-+
-+@cindex @code{word} directive, Nios II
-+@item .word @var{expression}
-+Create an aligned constant 4-bytes in size
-+
-+@cindex @code{dword} directive, Nios II
-+@item .dword @var{expression}
-+Create an aligned constant 8-bytes in size
-+
-+@cindex @code{2byte} directive, Nios II
-+@item .2byte @var{expression}
-+Create an un-aligned constant 2-bytes in size
-+
-+@cindex @code{4byte} directive, Nios II
-+@item .4byte @var{expression}
-+Create an un-aligned constant 4-bytes in size
-+
-+@cindex @code{8byte} directive, Nios II
-+@item .8byte @var{expression}
-+Create an un-aligned constant 8-bytes in size
-+
-+@cindex @code{16byte} directive, Nios II
-+@item .16byte @var{expression}
-+Create an un-aligned constant 16-bytes in size
-+
-+@cindex @code{set noat} directive, Nios II
-+@item .set noat
-+Allows assembly code to use @code{at} register without
-+warning and macro or relaxation expansions will
-+generate a warning.
-+
-+@cindex @code{set at} directive, Nios II
-+@item .set at
-+Assembly code using @code{at} register will generate
-+warnings, and macro expansion and relaxation will be
-+enabled.
-+
-+@cindex @code{set nobreak} directive, Nios II
-+@item .set nobreak
-+Allows assembly code to use @code{ba}, @code{bt},
-+registers without warning.
-+
-+@cindex @code{set break} directive, Nios II
-+@item .set break
-+Turns warnings back on for using @code{ba}, @code{bt}
-+registers.
-+
-+@cindex @code{set norelax} directive, Nios II
-+@item .set norelax
-+Do not replace any branches or calls.
-+
-+@cindex @code{set relaxsection} directive, Nios II
-+@item .set relaxsection
-+Replace identified out of range branches with
-+@code{jmp} sequences (default).
-+
-+@cindex @code{set relaxall} directive, Nios II
-+@item .set relaxsection
-+Replace all branch and call instructions with
-+@code{jmp} and @code{callr} sequences.
-+
-+@cindex @code{set} directive, Nios II
-+@item .set @dots{}
-+All other @code{.set} are the normal use.
-+
-+@end table
-+
-+@node Nios II Opcodes
-+@section Opcodes
-+
-+@cindex Nios II opcodes
-+@cindex opcodes for Nios II
-+@code{@value{AS}} implements all the standard Nios II opcodes. No
-+additional pseudo-instructions are needed on this family.
-+
-+For information on the Nios II machine instruction set, see the @cite{Nios II
-+User's Manual}
-+
---- binutils-2.15/gas/testsuite/gas/macros/irp.s 1999-06-10 15:48:35.000000000 +0200
-+++ binutils-2.15-nios2/gas/testsuite/gas/macros/irp.s 2005-05-17 12:20:13.000000000 +0200
-@@ -1,3 +1,4 @@
-+ .set norelax
- .irp param,1,2,3
- .long foo\param
- .endr
---- binutils-2.15/gas/testsuite/gas/macros/rept.s 1999-06-10 15:48:39.000000000 +0200
-+++ binutils-2.15-nios2/gas/testsuite/gas/macros/rept.s 2005-05-17 12:20:13.000000000 +0200
-@@ -1,3 +1,4 @@
-+ .set norelax
- .rept 3
- .long foo1
- .endr
---- binutils-2.15/gas/testsuite/gas/macros/test2.s 2004-02-06 17:00:21.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/macros/test2.s 2005-05-17 12:20:13.000000000 +0200
-@@ -1,3 +1,4 @@
-+ .set norelax
- .macro m arg1 arg2 arg3
- .long \arg1
- .ifc ,\arg2\arg3
---- binutils-2.15/gas/testsuite/gas/macros/test3.s 1999-06-10 15:48:44.000000000 +0200
-+++ binutils-2.15-nios2/gas/testsuite/gas/macros/test3.s 2005-05-17 12:20:13.000000000 +0200
-@@ -1,3 +1,4 @@
-+ .set norelax
- .macro m arg1 arg2
- \arg1
- .exitm
---- binutils-2.15/gas/testsuite/gas/nios2/add.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/add.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,16 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 add
-+
-+# Test the add instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> add r4,r4,r4
-+0+0004 <[^>]*> addi r4,r4,32767
-+0+0008 <[^>]*> addi r4,r4,-32768
-+0+000c <[^>]*> addi r4,r4,0
-+0+0010 <[^>]*> addi r4,r4,-1
-+0+0014 <[^>]*> addi r4,r4,-1
-+0+0018 <[^>]*> addi r4,r4,13398
-+0+001c <[^>]*> nop
---- binutils-2.15/gas/testsuite/gas/nios2/add.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/add.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,13 @@
-+# Source file used to test the add and addi instructions.
-+
-+foo:
-+ add r4,r4,r4
-+ addi r4,r4,0x7fff
-+ addi r4,r4,-0x8000
-+ addi r4,r4,0x0
-+ addi r4,r4,-0x01
-+ subi r4,r4,0x01
-+ addi r4,r4,0x3456
-+
-+# should disassemble to add r0,0,r0
-+ nop
---- binutils-2.15/gas/testsuite/gas/nios2/align_fill.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/align_fill.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,23 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 align_fill
-+
-+# Test the and macro.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> addi sp,sp,-8
-+0+0004 <[^>]*> stw fp,4\(sp\)
-+0+0008 <[^>]*> mov fp,sp
-+0+000c <[^>]*> mov r3,zero
-+0+0010 <[^>]*> nop
-+0+0014 <[^>]*> nop
-+0+0018 <[^>]*> nop
-+0+001c <[^>]*> nop
-+0+0020 <[^>]*> addi r3,r3,1
-+0+0024 <[^>]*> cmplti r2,r3,100
-+0+0028 <[^>]*> bne r2,zero,0+0020 <[^>*]*>
-+0+002c <[^>]*> ldw fp,4\(sp\)
-+0+0030 <[^>]*> addi sp,sp,8
-+0+0034 <[^>]*> ret
-+ ...
---- binutils-2.15/gas/testsuite/gas/nios2/align_fill.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/align_fill.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,20 @@
-+ .file "a.c"
-+ .section .text
-+ .align 3
-+ .global x
-+ .type x, @function
-+x:
-+ addi sp, sp, -8
-+ stw fp, 4(sp)
-+ mov fp, sp
-+ mov r3, zero
-+ .align 5
-+.L6:
-+ addi r3, r3, 1
-+ cmplti r2, r3, 100
-+ bne r2, zero, .L6
-+ ldw fp, 4(sp)
-+ addi sp, sp, 8
-+ ret
-+ .size x, .-x
-+ .ident "GCC: (GNU) 3.3.3 (Altera Nios II 1.0 b302)"
---- binutils-2.15/gas/testsuite/gas/nios2/align_text.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/align_text.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,22 @@
-+#objdump: -dr
-+#name: NIOS2 align_test
-+
-+# Test alignment in text sections.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+00000000 <label-0x20>:
-+ 0: 00000000 call 0 <label-0x20>
-+ 4: 0001883a nop
-+ 8: 0001883a nop
-+ c: 0001883a nop
-+ 10: 0001883a nop
-+ 14: 0001883a nop
-+ 18: 0001883a nop
-+ 1c: 0001883a nop
-+
-+00000020 <label>:
-+ 20: 0001883a nop
-+00000024 <label2>:
-+ ...
-\ No newline at end of file
---- binutils-2.15/gas/testsuite/gas/nios2/align_text.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/align_text.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,15 @@
-+ .asciz "" # empty string
-+ .align 2
-+
-+ nop
-+ nop
-+ label:
-+ .align 5
-+ nop
-+ label2:
-+ .section mysection
-+ .align 2
-+
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/and.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/and.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,17 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 and
-+
-+# Test the and macro.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> and r4,r4,r4
-+0+0004 <[^>]*> andi r4,r4,32767
-+0+0008 <[^>]*> andi r4,r4,32768
-+0+000c <[^>]*> andi r4,r4,65535
-+0+0010 <[^>]*> andi r4,r4,0
-+0+0014 <[^>]*> andhi r4,r4,32767
-+0+0018 <[^>]*> andhi r4,r4,32768
-+0+001c <[^>]*> andhi r4,r4,65535
-+0+0020 <[^>]*> andhi r4,r4,0
---- binutils-2.15/gas/testsuite/gas/nios2/and.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/and.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,13 @@
-+# Source file used to test the and, andhi and andi instructions
-+
-+foo:
-+ and r4,r4,r4
-+ andi r4,r4,0x7fff
-+ andi r4,r4,0x8000
-+ andi r4,r4,0xffff
-+ andi r4,r4,0x0
-+ andhi r4,r4,0x7fff
-+ andhi r4,r4,0x8000
-+ andhi r4,r4,0xffff
-+ andhi r4,r4,0x0
-+
-\ No newline at end of file
---- binutils-2.15/gas/testsuite/gas/nios2/blt.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/blt.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1 @@
-+This file is obsolete
-\ No newline at end of file
---- binutils-2.15/gas/testsuite/gas/nios2/blt.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/blt.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1 @@
-+This file is obsolete
-\ No newline at end of file
---- binutils-2.15/gas/testsuite/gas/nios2/branch.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/branch.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,16 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 branch
-+
-+# Test the branch instructions.
-+dump.o: file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> beq r4,r5,00000000 <text_label>
-+0+0004 <[^>]*> bge r4,r5,00000000 <text_label>
-+0+0008 <[^>]*> bgeu r4,r5,00000000 <text_label>
-+0+000c <[^>]*> blt r4,r5,00000000 <text_label>
-+0+0010 <[^>]*> bltu r4,r5,00000000 <text_label>
-+0+0014 <[^>]*> bne r4,r5,00000000 <text_label>
-+0+0018 <[^>]*> br 0000001c <text_label\+0x1c>
-+[ ]*18: R_NIOS2_PCREL16 external_label
-+
---- binutils-2.15/gas/testsuite/gas/nios2/branch.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/branch.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,15 @@
-+# Source file used to test the beq macro.
-+ .globl text_label
-+ .text
-+.set norelax
-+text_label:
-+ beq r4,r5,text_label
-+ bge r4,r5,text_label
-+ bgeu r4,r5,text_label
-+ blt r4,r5,text_label
-+ bltu r4,r5,text_label
-+ bne r4,r5,text_label
-+
-+# Branch to an external label.
-+ br external_label
-+
---- binutils-2.15/gas/testsuite/gas/nios2/break.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/break.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,12 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 break
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> break 0
-+0+0004 <[^>]*> break 0
-+0+0008 <[^>]*> break 31
-+0+000c <[^>]*> break 14
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/break.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/break.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,8 @@
-+# Source file used to test the 20-bit break instructions
-+foo:
-+ break
-+ break 0
-+ break 31
-+ break 14
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/bret.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/bret.d 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,8 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 bret
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> bret
-+
---- binutils-2.15/gas/testsuite/gas/nios2/bret.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/bret.s 2005-05-17 12:20:13.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the bret instructions
-+foo:
-+ bret
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/cache.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/cache.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,17 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 cache
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> flushd -32768\(r6\)
-+0+0004 <[^>]*> flushd 32767\(r6\)
-+0+0008 <[^>]*> flushd 0\(r6\)
-+0+000c <[^>]*> flushd -1\(r6\)
-+0+0010 <[^>]*> flushd 0\(r6\)
-+[ ]*10: R_NIOS2_S16 .text
-+0+0014 <[^>]*> flushd 0\(r6\)
-+[ ]*14: R_NIOS2_S16 external
-+0+0018 <[^>]*> flushi r2
-+0+001c <[^>]*> flushp
-+
---- binutils-2.15/gas/testsuite/gas/nios2/cache.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/cache.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,21 @@
-+# Source file used to test the cache instruction
-+foo:
-+ flushd -0x8000(r6)
-+ flushd 0x7fff(r6)
-+ flushd 0x0(r6)
-+ flushd -0x0001(r6)
-+
-+# use symbol for offset
-+ flushd foo(r6)
-+
-+# use external symbol
-+ .global external
-+ flushd external(r6)
-+
-+# flushi
-+ flushi r2
-+
-+#flushp
-+ flushp
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/call.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/call.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+# objdump: -dr --prefix-addresses
-+#name: NIOS2 call
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> call 00000000 <foo>
-+[ ]*0: R_NIOS2_CALL26 .text\+0xc
-+0+0004 <[^>]*> callr r10
-+0+0008 <[^>]*> call 00000000 <foo>
-+[ ]*8: R_NIOS2_CALL26 external
---- binutils-2.15/gas/testsuite/gas/nios2/call.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/call.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+# Source file used to test the call and callr instructions
-+.text
-+.set norelax
-+foo:
-+ call func1
-+ callr r10
-+# use external symbol
-+ .global external
-+ call external
-+func1:
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/cmp.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/cmp.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,24 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 cmp
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> cmpeq r11,r2,r3
-+0+0004 <[^>]*> cmpge r11,r2,r3
-+0+0008 <[^>]*> cmpgeu r11,r2,r3
-+0+000c <[^>]*> cmplt r11,r2,r3
-+0+0010 <[^>]*> cmpltu r11,r2,r3
-+0+0014 <[^>]*> cmpne r11,r2,r3
-+0+0018 <[^>]*> cmpgei r11,r2,0
-+[ ]*18: R_NIOS2_S16 value
-+0+001c <[^>]*> cmpgeui r11,r2,0
-+[ ]*1c: R_NIOS2_U16 value\+0x200
-+0+0020 <[^>]*> cmplti r11,r2,0
-+[ ]*20: R_NIOS2_S16 value
-+0+0024 <[^>]*> cmpltui r11,r2,0
-+[ ]*24: R_NIOS2_U16 value\+0x200
-+0+0028 <[^>]*> cmpgei r11,r2,32767
-+0+002c <[^>]*> cmpgeui r11,r2,32768
-+0+0030 <[^>]*> cmplti r11,r2,-32768
-+0+0034 <[^>]*> cmpltui r11,r2,65535
-\ No newline at end of file
---- binutils-2.15/gas/testsuite/gas/nios2/cmp.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/cmp.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,22 @@
-+# Source file used to test the compare instructions
-+foo:
-+ cmpeq r11,r2,r3
-+ cmpge r11,r2,r3
-+ cmpgeu r11,r2,r3
-+ cmplt r11,r2,r3
-+ cmpltu r11,r2,r3
-+ cmpne r11,r2,r3
-+# test that cmp generates relocations correctly
-+ cmpgei r11,r2,value
-+ cmpgeui r11,r2,value+0x200
-+ cmplti r11,r2,value
-+ cmpltui r11,r2,value+0x200
-+
-+ cmpgei r11,r2,0x7fff
-+ cmpgeui r11,r2,0x8000
-+ cmplti r11,r2,-0x8000
-+ cmpltui r11,r2,0xFFFF
-+.global value
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/comments.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/comments.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,26 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 comments
-+
-+# Test the add instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> br 0000001c <start>
-+0+0004 <[^>]*> br 00000008 <abort>
-+0+0008 <[^>]*> movui r3,0
-+0+000c <[^>]*> movui r2,1
-+0+0010 <[^>]*> movui r3,0
-+0+0014 <[^>]*> movui r2,0
-+0+0018 <[^>]*> br 00000044 <exit>
-+0+001c <[^>]*> addi r2,r2,-4
-+0+0020 <[^>]*> movui r11,1
-+0+0024 <[^>]*> movui r5,0
-+0+0028 <[^>]*> movui r6,0
-+0+002c <[^>]*> br 00000030 <ldst>
-+0+0030 <[^>]*> movui r2,61452
-+0+0034 <[^>]*> movui r20,64206
-+0+0038 <[^>]*> stw r20,0\(r2\)
-+0+003c <[^>]*> ldw r21,0\(r2\)
-+0+0040 <[^>]*> br 00000010 <end>
-+0+0044 <[^>]*> br 00000044 <exit>
---- binutils-2.15/gas/testsuite/gas/nios2/comments.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/comments.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,28 @@
-+.set norelax
-+_main: br start
-+trap:
-+ br abort
-+.globl _main
-+abort: movui r3, 0x0
-+ movui r2, 0x1
-+
-+end: movui r3, 0x0
-+ movui r2, 0x0
-+ br exit
-+
-+start:
-+ addi r2, r2, -4 # test for ve numbers
-+ movui r11, 0x1
-+ ori r5, r0, %lo(0x0) # r5 = 0x0
-+ ori r6, r0, %lo(0x0) # r6 = 0x0
-+ br ldst
-+
-+ldst:
-+ movui r2, 0xF00C
-+ movui r20, 0xFACE
-+ stw r20,(r2)
-+ ldw r21, (r2)
-+ br end
-+
-+
-+exit: br exit
---- binutils-2.15/gas/testsuite/gas/nios2/complex.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/complex.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,12 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 complex
-+
-+# Test complex expression parsing
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> ldw r2,-1\(r3\)
-+0+0004 <[^>]*> ldw r2,1\(r3\)
-+0+0008 <[^>]*> ldw r2,0\(r3\)
-+ 8: R_NIOS2_S16 stack_top\+0xffffffff
---- binutils-2.15/gas/testsuite/gas/nios2/complex.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/complex.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+foo:
-+ ldw r2, (2-3)(r3)
-+ ldw r2, 2 + (2-3)(r3)
-+ ldw r2, 2 + (stack_top-3)(r3)
-+
---- binutils-2.15/gas/testsuite/gas/nios2/ctl.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ctl.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,20 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 ctl
-+
-+# Test the ctl instructions
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> rdctl r8,ctl31
-+0+0004 <[^>]*> rdctl r8,ctl30
-+0+0008 <[^>]*> rdctl r8,ctl29
-+0+000c <[^>]*> rdctl r8,status
-+0+0010 <[^>]*> rdctl r8,bstatus
-+0+0014 <[^>]*> rdctl r8,estatus
-+0+0018 <[^>]*> wrctl ctl31,r8
-+0+001c <[^>]*> wrctl ctl30,r8
-+0+0020 <[^>]*> wrctl ctl29,r8
-+0+0024 <[^>]*> wrctl status,r8
-+0+0028 <[^>]*> wrctl bstatus,r8
-+0+002c <[^>]*> wrctl estatus,r8
---- binutils-2.15/gas/testsuite/gas/nios2/ctl.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ctl.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,18 @@
-+# Source file used to test the nor instruction
-+
-+foo:
-+ rdctl r8,ctl31
-+ rdctl r8,ctl30
-+ rdctl r8,ctl29
-+ rdctl r8,status
-+ rdctl r8,bstatus
-+ rdctl r8,estatus
-+ wrctl ctl31,r8
-+ wrctl ctl30,r8
-+ wrctl ctl29,r8
-+ wrctl status,r8
-+ wrctl bstatus,r8
-+ wrctl estatus,r8
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/custom.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/custom.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 custom
-+
-+# Test the custom instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> custom 0,r11,r2,r3
-+0+0004 <[^>]*> custom 255,r11,r2,r3
-+0+0008 <[^>]*> custom 150,c1,r2,r3
-+0+000c <[^>]*> custom 24,c1,c2,r3
-+0+0010 <[^>]*> custom 56,c1,c2,c3
---- binutils-2.15/gas/testsuite/gas/nios2/custom.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/custom.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+# test progam for assembling user instructions
-+
-+foo:
-+ custom 0, r11, r2, r3
-+ custom 255, r11, r2, r3
-+ custom 150, c1, r2, r3
-+ custom 0x18, c1, c2, r3
-+ custom 070, c1, c2, c3
---- binutils-2.15/gas/testsuite/gas/nios2/etbt.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/etbt.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 etbt
-+
-+# Test the et, bt registers
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> add et,bt,r6
-+0+0004 <[^>]*> add et,bt,r6
---- binutils-2.15/gas/testsuite/gas/nios2/etbt.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/etbt.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,4 @@
-+.set nobreak
-+foo:
-+ add r24, r25, r6
-+ add et, bt, r6
---- binutils-2.15/gas/testsuite/gas/nios2/hilo_symbol.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/hilo_symbol.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,3 @@
-+.global long_symbol
-+.set long_symbol, 0xDEADBEEF
-+
---- binutils-2.15/gas/testsuite/gas/nios2/illegal.l 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/illegal.l 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,14 @@
-+.*illegal.s: Assembler messages:
-+.*illegal.s:5: Error: unknown register r56
-+.*illegal.s:8: Error: expecting \( near 0x1000
-+.*illegal.s:8: Error: missing argument
-+.*illegal.s:9: Error: expecting \) near r5
-+.*illegal.s:10: Error: expecting \( near 0x1000r5\)
-+.*illegal.s:10: Error: missing argument
-+.*illegal.s:11: Error: expecting \( near 0x1000,r5
-+.*illegal.s:11: Error: missing argument
-+.*illegal.s:12: Error: unknown register 0x1000
-+.*illegal.s:14: Error: unrecognised instruction fop
-+.*illegal.s:16: Error: too many arguments
-+.*illegal.s:17: Error: too many arguments
-+.*illegal.s:17: Error: unknown register r2,r4
---- binutils-2.15/gas/testsuite/gas/nios2/illegal.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/illegal.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,17 @@
-+# Source file used to test illegal operands.
-+
-+foo:
-+# Illegal registers
-+ add r3,r4,r56
-+ add r4,r0,r2
-+# Illegal syntax
-+ ldw r4,0x1000
-+ ldw r4,0x1000(r5
-+ ldw r4,0x1000r5)
-+ ldw r4,0x1000,r5
-+ ldw r4,(0x1000)r5
-+# Illegal opcodes
-+ fop r3,r4,r5
-+# Extra operands
-+ nop Crapola
-+ add r2, r2, r2, r4
---- binutils-2.15/gas/testsuite/gas/nios2/imm5_symbol.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/imm5_symbol.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,4 @@
-+.global imm5
-+.text
-+.byte imm5
-+.set imm5, 31
---- binutils-2.15/gas/testsuite/gas/nios2/jmp.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/jmp.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 jmp
-+
-+# Test the jmp instruction.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> jmp bt
-+
---- binutils-2.15/gas/testsuite/gas/nios2/jmp.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/jmp.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Source file used to test the jmp instruction.
-+.text
-+.set nobreak
-+foo:
-+ jmp r25
-+
---- binutils-2.15/gas/testsuite/gas/nios2/ldb.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldb.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 ldb
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> ldb r4,0\(zero\)
-+0+0004 <[^>]*> ldb r4,4\(zero\)
-+0+0008 <[^>]*> ldb r4,32764\(zero\)
-+0+000c <[^>]*> ldb r4,-32768\(zero\)
-+0+0010 <[^>]*> ldb r4,0\(r5\)
-+0+0014 <[^>]*> ldb r4,4\(r5\)
-+0+0018 <[^>]*> ldb r4,32764\(r5\)
-+0+001c <[^>]*> ldb r4,-32768\(r5\)
-+0+0020 <[^>]*> ldb r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> ldb r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> ldb r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> ldb r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> ldb r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> ldb r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> ldb r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> ldb r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> ldb r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> ldb r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> ldb r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> ldb r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> ldb r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> ldb r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> ldb r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> ldb r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> ldb r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> ldb r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> ldb r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> ldb r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> ldb r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> ldb r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> ldb r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> ldb r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> ldb r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> ldb r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> ldb r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> ldb r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> ldb r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> ldb r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> ldb r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> ldb r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> ldb r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> ldb r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> ldb r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> ldb r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> ldb r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> ldb r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> ldb r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> ldb r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> ldb r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> ldb r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> ldb r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> ldbio r4,0\(zero\)
-+0+00d0 <[^>]*> ldbio r4,4\(zero\)
-+0+00d4 <[^>]*> ldbio r4,32764\(zero\)
-+0+00d8 <[^>]*> ldbio r4,-32768\(zero\)
-+0+00dc <[^>]*> ldbio r4,0\(r5\)
-+0+00e0 <[^>]*> ldbio r4,4\(r5\)
-+0+00e4 <[^>]*> ldbio r4,32764\(r5\)
-+0+00e8 <[^>]*> ldbio r4,-32768\(r5\)
-+0+00ec <[^>]*> ldbio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> ldbio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> ldbio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> ldbio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> ldbio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> ldbio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> ldbio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> ldbio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> ldbio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> ldbio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> ldbio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> ldbio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> ldbio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/ldb.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldb.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ ldb r4,0(r0)
-+ ldb r4,4(r0)
-+ ldb r4,0x7ffc(r0)
-+ ldb r4,-0x8000(r0)
-+ ldb r4,0(r5)
-+ ldb r4,4(r5)
-+ ldb r4,0x7ffc(r5)
-+ ldb r4,-0x8000(r5)
-+ ldb r4,data_label(r0)
-+ ldb r4,big_external_data_label(r0)
-+ ldb r4,small_external_data_label(r0)
-+ ldb r4,big_external_common(r0)
-+ ldb r4,small_external_common(r0)
-+ ldb r4,big_local_common(r0)
-+ ldb r4,small_local_common(r0)
-+ ldb r4,data_label+4(r0)
-+ ldb r4,big_external_data_label+4(r0)
-+ ldb r4,small_external_data_label+4(r0)
-+ ldb r4,big_external_common+4(r0)
-+ ldb r4,small_external_common+4(r0)
-+ ldb r4,big_local_common+4(r0)
-+ ldb r4,small_local_common+4(r0)
-+ ldb r4,data_label-0x8000(r0)
-+ ldb r4,big_external_data_label-0x8000(r0)
-+ ldb r4,small_external_data_label-0x8000(r0)
-+ ldb r4,big_external_common-0x8000(r0)
-+ ldb r4,small_external_common-0x8000(r0)
-+ ldb r4,big_local_common-0x8000(r0)
-+ ldb r4,small_local_common-0x8000(r0)
-+ ldb r4,data_label+0x10000(r0)
-+ ldb r4,data_label(r5)
-+ ldb r4,big_external_data_label(r5)
-+ ldb r4,small_external_data_label(r5)
-+ ldb r4,big_external_common(r5)
-+ ldb r4,small_external_common(r5)
-+ ldb r4,big_local_common(r5)
-+ ldb r4,small_local_common(r5)
-+ ldb r4,data_label+4(r5)
-+ ldb r4,big_external_data_label+4(r5)
-+ ldb r4,small_external_data_label+4(r5)
-+ ldb r4,big_external_common+4(r5)
-+ ldb r4,small_external_common+4(r5)
-+ ldb r4,big_local_common+4(r5)
-+ ldb r4,small_local_common+4(r5)
-+ ldb r4,data_label-0x8000(r5)
-+ ldb r4,big_external_data_label-0x8000(r5)
-+ ldb r4,small_external_data_label-0x8000(r5)
-+ ldb r4,big_external_common-0x8000(r5)
-+ ldb r4,small_external_common-0x8000(r5)
-+ ldb r4,big_local_common-0x8000(r5)
-+ ldb r4,small_local_common-0x8000(r5)
-+
-+ ldbio r4,0(r0)
-+ ldbio r4,4(r0)
-+ ldbio r4,0x7ffc(r0)
-+ ldbio r4,-0x8000(r0)
-+ ldbio r4,0(r5)
-+ ldbio r4,4(r5)
-+ ldbio r4,0x7ffc(r5)
-+ ldbio r4,-0x8000(r5)
-+ ldbio r4,data_label(r0)
-+ ldbio r4,big_external_data_label(r0)
-+ ldbio r4,small_external_data_label(r0)
-+ ldbio r4,big_external_common(r0)
-+ ldbio r4,small_external_common(r0)
-+ ldbio r4,big_local_common(r0)
-+ ldbio r4,small_local_common(r0)
-+ ldbio r4,data_label+4(r0)
-+ ldbio r4,big_external_data_label+4(r0)
-+ ldbio r4,small_external_data_label+4(r0)
-+ ldbio r4,big_external_common+4(r0)
-+ ldbio r4,small_external_common+4(r0)
-+ ldbio r4,big_local_common+4(r0)
-+ ldbio r4,small_local_common+4(r0)
-+ ldbio r4,data_label-0x8000(r0)
-+ ldbio r4,big_external_data_label-0x8000(r0)
-+ ldbio r4,small_external_data_label-0x8000(r0)
-+ ldbio r4,big_external_common-0x8000(r0)
-+ ldbio r4,small_external_common-0x8000(r0)
-+ ldbio r4,big_local_common-0x8000(r0)
-+ ldbio r4,small_local_common-0x8000(r0)
-+ ldbio r4,data_label+0x10000(r0)
-+ ldbio r4,data_label(r5)
-+ ldbio r4,big_external_data_label(r5)
-+ ldbio r4,small_external_data_label(r5)
-+ ldbio r4,big_external_common(r5)
-+ ldbio r4,small_external_common(r5)
-+ ldbio r4,big_local_common(r5)
-+ ldbio r4,small_local_common(r5)
-+ ldbio r4,data_label+4(r5)
-+ ldbio r4,big_external_data_label+4(r5)
-+ ldbio r4,small_external_data_label+4(r5)
-+ ldbio r4,big_external_common+4(r5)
-+ ldbio r4,small_external_common+4(r5)
-+ ldbio r4,big_local_common+4(r5)
-+ ldbio r4,small_local_common+4(r5)
-+ ldbio r4,data_label-0x8000(r5)
-+ ldbio r4,big_external_data_label-0x8000(r5)
-+ ldbio r4,small_external_data_label-0x8000(r5)
-+ ldbio r4,big_external_common-0x8000(r5)
-+ ldbio r4,small_external_common-0x8000(r5)
-+ ldbio r4,big_local_common-0x8000(r5)
-+ ldbio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/ldh.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldh.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 ldh
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> ldh r4,0\(zero\)
-+0+0004 <[^>]*> ldh r4,4\(zero\)
-+0+0008 <[^>]*> ldh r4,32764\(zero\)
-+0+000c <[^>]*> ldh r4,-32768\(zero\)
-+0+0010 <[^>]*> ldh r4,0\(r5\)
-+0+0014 <[^>]*> ldh r4,4\(r5\)
-+0+0018 <[^>]*> ldh r4,32764\(r5\)
-+0+001c <[^>]*> ldh r4,-32768\(r5\)
-+0+0020 <[^>]*> ldh r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> ldh r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> ldh r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> ldh r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> ldh r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> ldh r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> ldh r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> ldh r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> ldh r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> ldh r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> ldh r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> ldh r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> ldh r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> ldh r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> ldh r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> ldh r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> ldh r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> ldh r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> ldh r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> ldh r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> ldh r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> ldh r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> ldh r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> ldh r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> ldh r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> ldh r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> ldh r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> ldh r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> ldh r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> ldh r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> ldh r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> ldh r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> ldh r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> ldh r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> ldh r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> ldh r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> ldh r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> ldh r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> ldh r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> ldh r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> ldh r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> ldh r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> ldh r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> ldhio r4,0\(zero\)
-+0+00d0 <[^>]*> ldhio r4,4\(zero\)
-+0+00d4 <[^>]*> ldhio r4,32764\(zero\)
-+0+00d8 <[^>]*> ldhio r4,-32768\(zero\)
-+0+00dc <[^>]*> ldhio r4,0\(r5\)
-+0+00e0 <[^>]*> ldhio r4,4\(r5\)
-+0+00e4 <[^>]*> ldhio r4,32764\(r5\)
-+0+00e8 <[^>]*> ldhio r4,-32768\(r5\)
-+0+00ec <[^>]*> ldhio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> ldhio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> ldhio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> ldhio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> ldhio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> ldhio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> ldhio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> ldhio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> ldhio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> ldhio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> ldhio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> ldhio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> ldhio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/ldh.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldh.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ ldh r4,0(r0)
-+ ldh r4,4(r0)
-+ ldh r4,0x7ffc(r0)
-+ ldh r4,-0x8000(r0)
-+ ldh r4,0(r5)
-+ ldh r4,4(r5)
-+ ldh r4,0x7ffc(r5)
-+ ldh r4,-0x8000(r5)
-+ ldh r4,data_label(r0)
-+ ldh r4,big_external_data_label(r0)
-+ ldh r4,small_external_data_label(r0)
-+ ldh r4,big_external_common(r0)
-+ ldh r4,small_external_common(r0)
-+ ldh r4,big_local_common(r0)
-+ ldh r4,small_local_common(r0)
-+ ldh r4,data_label+4(r0)
-+ ldh r4,big_external_data_label+4(r0)
-+ ldh r4,small_external_data_label+4(r0)
-+ ldh r4,big_external_common+4(r0)
-+ ldh r4,small_external_common+4(r0)
-+ ldh r4,big_local_common+4(r0)
-+ ldh r4,small_local_common+4(r0)
-+ ldh r4,data_label-0x8000(r0)
-+ ldh r4,big_external_data_label-0x8000(r0)
-+ ldh r4,small_external_data_label-0x8000(r0)
-+ ldh r4,big_external_common-0x8000(r0)
-+ ldh r4,small_external_common-0x8000(r0)
-+ ldh r4,big_local_common-0x8000(r0)
-+ ldh r4,small_local_common-0x8000(r0)
-+ ldh r4,data_label+0x10000(r0)
-+ ldh r4,data_label(r5)
-+ ldh r4,big_external_data_label(r5)
-+ ldh r4,small_external_data_label(r5)
-+ ldh r4,big_external_common(r5)
-+ ldh r4,small_external_common(r5)
-+ ldh r4,big_local_common(r5)
-+ ldh r4,small_local_common(r5)
-+ ldh r4,data_label+4(r5)
-+ ldh r4,big_external_data_label+4(r5)
-+ ldh r4,small_external_data_label+4(r5)
-+ ldh r4,big_external_common+4(r5)
-+ ldh r4,small_external_common+4(r5)
-+ ldh r4,big_local_common+4(r5)
-+ ldh r4,small_local_common+4(r5)
-+ ldh r4,data_label-0x8000(r5)
-+ ldh r4,big_external_data_label-0x8000(r5)
-+ ldh r4,small_external_data_label-0x8000(r5)
-+ ldh r4,big_external_common-0x8000(r5)
-+ ldh r4,small_external_common-0x8000(r5)
-+ ldh r4,big_local_common-0x8000(r5)
-+ ldh r4,small_local_common-0x8000(r5)
-+
-+ ldhio r4,0(r0)
-+ ldhio r4,4(r0)
-+ ldhio r4,0x7ffc(r0)
-+ ldhio r4,-0x8000(r0)
-+ ldhio r4,0(r5)
-+ ldhio r4,4(r5)
-+ ldhio r4,0x7ffc(r5)
-+ ldhio r4,-0x8000(r5)
-+ ldhio r4,data_label(r0)
-+ ldhio r4,big_external_data_label(r0)
-+ ldhio r4,small_external_data_label(r0)
-+ ldhio r4,big_external_common(r0)
-+ ldhio r4,small_external_common(r0)
-+ ldhio r4,big_local_common(r0)
-+ ldhio r4,small_local_common(r0)
-+ ldhio r4,data_label+4(r0)
-+ ldhio r4,big_external_data_label+4(r0)
-+ ldhio r4,small_external_data_label+4(r0)
-+ ldhio r4,big_external_common+4(r0)
-+ ldhio r4,small_external_common+4(r0)
-+ ldhio r4,big_local_common+4(r0)
-+ ldhio r4,small_local_common+4(r0)
-+ ldhio r4,data_label-0x8000(r0)
-+ ldhio r4,big_external_data_label-0x8000(r0)
-+ ldhio r4,small_external_data_label-0x8000(r0)
-+ ldhio r4,big_external_common-0x8000(r0)
-+ ldhio r4,small_external_common-0x8000(r0)
-+ ldhio r4,big_local_common-0x8000(r0)
-+ ldhio r4,small_local_common-0x8000(r0)
-+ ldhio r4,data_label+0x10000(r0)
-+ ldhio r4,data_label(r5)
-+ ldhio r4,big_external_data_label(r5)
-+ ldhio r4,small_external_data_label(r5)
-+ ldhio r4,big_external_common(r5)
-+ ldhio r4,small_external_common(r5)
-+ ldhio r4,big_local_common(r5)
-+ ldhio r4,small_local_common(r5)
-+ ldhio r4,data_label+4(r5)
-+ ldhio r4,big_external_data_label+4(r5)
-+ ldhio r4,small_external_data_label+4(r5)
-+ ldhio r4,big_external_common+4(r5)
-+ ldhio r4,small_external_common+4(r5)
-+ ldhio r4,big_local_common+4(r5)
-+ ldhio r4,small_local_common+4(r5)
-+ ldhio r4,data_label-0x8000(r5)
-+ ldhio r4,big_external_data_label-0x8000(r5)
-+ ldhio r4,small_external_data_label-0x8000(r5)
-+ ldhio r4,big_external_common-0x8000(r5)
-+ ldhio r4,small_external_common-0x8000(r5)
-+ ldhio r4,big_local_common-0x8000(r5)
-+ ldhio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/ldw.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldw.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 ldw
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> ldw r4,0\(zero\)
-+0+0004 <[^>]*> ldw r4,4\(zero\)
-+0+0008 <[^>]*> ldw r4,32764\(zero\)
-+0+000c <[^>]*> ldw r4,-32768\(zero\)
-+0+0010 <[^>]*> ldw r4,0\(r5\)
-+0+0014 <[^>]*> ldw r4,4\(r5\)
-+0+0018 <[^>]*> ldw r4,32764\(r5\)
-+0+001c <[^>]*> ldw r4,-32768\(r5\)
-+0+0020 <[^>]*> ldw r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> ldw r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> ldw r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> ldw r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> ldw r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> ldw r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> ldw r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> ldw r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> ldw r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> ldw r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> ldw r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> ldw r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> ldw r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> ldw r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> ldw r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> ldw r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> ldw r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> ldw r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> ldw r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> ldw r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> ldw r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> ldw r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> ldw r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> ldw r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> ldw r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> ldw r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> ldw r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> ldw r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> ldw r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> ldw r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> ldw r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> ldw r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> ldw r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> ldw r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> ldw r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> ldw r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> ldw r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> ldw r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> ldw r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> ldw r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> ldw r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> ldw r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> ldw r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> ldwio r4,0\(zero\)
-+0+00d0 <[^>]*> ldwio r4,4\(zero\)
-+0+00d4 <[^>]*> ldwio r4,32764\(zero\)
-+0+00d8 <[^>]*> ldwio r4,-32768\(zero\)
-+0+00dc <[^>]*> ldwio r4,0\(r5\)
-+0+00e0 <[^>]*> ldwio r4,4\(r5\)
-+0+00e4 <[^>]*> ldwio r4,32764\(r5\)
-+0+00e8 <[^>]*> ldwio r4,-32768\(r5\)
-+0+00ec <[^>]*> ldwio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> ldwio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> ldwio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> ldwio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> ldwio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> ldwio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> ldwio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> ldwio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> ldwio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> ldwio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> ldwio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> ldwio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> ldwio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/ldw.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ldw.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ ldw r4,0(r0)
-+ ldw r4,4(r0)
-+ ldw r4,0x7ffc(r0)
-+ ldw r4,-0x8000(r0)
-+ ldw r4,0(r5)
-+ ldw r4,4(r5)
-+ ldw r4,0x7ffc(r5)
-+ ldw r4,-0x8000(r5)
-+ ldw r4,data_label(r0)
-+ ldw r4,big_external_data_label(r0)
-+ ldw r4,small_external_data_label(r0)
-+ ldw r4,big_external_common(r0)
-+ ldw r4,small_external_common(r0)
-+ ldw r4,big_local_common(r0)
-+ ldw r4,small_local_common(r0)
-+ ldw r4,data_label+4(r0)
-+ ldw r4,big_external_data_label+4(r0)
-+ ldw r4,small_external_data_label+4(r0)
-+ ldw r4,big_external_common+4(r0)
-+ ldw r4,small_external_common+4(r0)
-+ ldw r4,big_local_common+4(r0)
-+ ldw r4,small_local_common+4(r0)
-+ ldw r4,data_label-0x8000(r0)
-+ ldw r4,big_external_data_label-0x8000(r0)
-+ ldw r4,small_external_data_label-0x8000(r0)
-+ ldw r4,big_external_common-0x8000(r0)
-+ ldw r4,small_external_common-0x8000(r0)
-+ ldw r4,big_local_common-0x8000(r0)
-+ ldw r4,small_local_common-0x8000(r0)
-+ ldw r4,data_label+0x10000(r0)
-+ ldw r4,data_label(r5)
-+ ldw r4,big_external_data_label(r5)
-+ ldw r4,small_external_data_label(r5)
-+ ldw r4,big_external_common(r5)
-+ ldw r4,small_external_common(r5)
-+ ldw r4,big_local_common(r5)
-+ ldw r4,small_local_common(r5)
-+ ldw r4,data_label+4(r5)
-+ ldw r4,big_external_data_label+4(r5)
-+ ldw r4,small_external_data_label+4(r5)
-+ ldw r4,big_external_common+4(r5)
-+ ldw r4,small_external_common+4(r5)
-+ ldw r4,big_local_common+4(r5)
-+ ldw r4,small_local_common+4(r5)
-+ ldw r4,data_label-0x8000(r5)
-+ ldw r4,big_external_data_label-0x8000(r5)
-+ ldw r4,small_external_data_label-0x8000(r5)
-+ ldw r4,big_external_common-0x8000(r5)
-+ ldw r4,small_external_common-0x8000(r5)
-+ ldw r4,big_local_common-0x8000(r5)
-+ ldw r4,small_local_common-0x8000(r5)
-+
-+ ldwio r4,0(r0)
-+ ldwio r4,4(r0)
-+ ldwio r4,0x7ffc(r0)
-+ ldwio r4,-0x8000(r0)
-+ ldwio r4,0(r5)
-+ ldwio r4,4(r5)
-+ ldwio r4,0x7ffc(r5)
-+ ldwio r4,-0x8000(r5)
-+ ldwio r4,data_label(r0)
-+ ldwio r4,big_external_data_label(r0)
-+ ldwio r4,small_external_data_label(r0)
-+ ldwio r4,big_external_common(r0)
-+ ldwio r4,small_external_common(r0)
-+ ldwio r4,big_local_common(r0)
-+ ldwio r4,small_local_common(r0)
-+ ldwio r4,data_label+4(r0)
-+ ldwio r4,big_external_data_label+4(r0)
-+ ldwio r4,small_external_data_label+4(r0)
-+ ldwio r4,big_external_common+4(r0)
-+ ldwio r4,small_external_common+4(r0)
-+ ldwio r4,big_local_common+4(r0)
-+ ldwio r4,small_local_common+4(r0)
-+ ldwio r4,data_label-0x8000(r0)
-+ ldwio r4,big_external_data_label-0x8000(r0)
-+ ldwio r4,small_external_data_label-0x8000(r0)
-+ ldwio r4,big_external_common-0x8000(r0)
-+ ldwio r4,small_external_common-0x8000(r0)
-+ ldwio r4,big_local_common-0x8000(r0)
-+ ldwio r4,small_local_common-0x8000(r0)
-+ ldwio r4,data_label+0x10000(r0)
-+ ldwio r4,data_label(r5)
-+ ldwio r4,big_external_data_label(r5)
-+ ldwio r4,small_external_data_label(r5)
-+ ldwio r4,big_external_common(r5)
-+ ldwio r4,small_external_common(r5)
-+ ldwio r4,big_local_common(r5)
-+ ldwio r4,small_local_common(r5)
-+ ldwio r4,data_label+4(r5)
-+ ldwio r4,big_external_data_label+4(r5)
-+ ldwio r4,small_external_data_label+4(r5)
-+ ldwio r4,big_external_common+4(r5)
-+ ldwio r4,small_external_common+4(r5)
-+ ldwio r4,big_local_common+4(r5)
-+ ldwio r4,small_local_common+4(r5)
-+ ldwio r4,data_label-0x8000(r5)
-+ ldwio r4,big_external_data_label-0x8000(r5)
-+ ldwio r4,small_external_data_label-0x8000(r5)
-+ ldwio r4,big_external_common-0x8000(r5)
-+ ldwio r4,small_external_common-0x8000(r5)
-+ ldwio r4,big_local_common-0x8000(r5)
-+ ldwio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/lineseparator.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/lineseparator.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 lineseparator
-+
-+# Test the add instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0x0+0000 mov r5,r4
-+0x0+0004 mov r4,r5
---- binutils-2.15/gas/testsuite/gas/nios2/lineseparator.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/lineseparator.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,4 @@
-+mov r5, r4 ; mov r4, r5
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/link1.lds 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/link1.lds 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+/* Simple script for testing relaxation */
-+
-+OUTPUT_FORMAT("elf32-littlenios2", "elf32-littlenios2", "elf32-littlenios2")
-+OUTPUT_ARCH(nios2)
-+ENTRY(_start)
-+SECTIONS
-+{
-+ _start = .;
-+ text2 0 : { *(text2) }
-+ text1 0x8000 : { *(text1) }
-+}
---- binutils-2.15/gas/testsuite/gas/nios2/link2.lds 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/link2.lds 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+/* Simple script for testing relaxation */
-+
-+OUTPUT_FORMAT("elf32-littlenios2", "elf32-littlenios2", "elf32-littlenios2")
-+OUTPUT_ARCH(nios2)
-+ENTRY(_start)
-+SECTIONS
-+{
-+ _start = .;
-+ text1 0 : { *(text1) }
-+ text2 0x80000000 : { *(text2) }
-+}
---- binutils-2.15/gas/testsuite/gas/nios2/link3.lds 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/link3.lds 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+/* Simple script for testing relaxation */
-+
-+OUTPUT_FORMAT("elf32-littlenios2", "elf32-littlenios2", "elf32-littlenios2")
-+OUTPUT_ARCH(nios2)
-+ENTRY(_start)
-+SECTIONS
-+{
-+ _start = .;
-+ text1 0 : { *(text1) }
-+ text2 0x08000000 : { *(text2) }
-+}
---- binutils-2.15/gas/testsuite/gas/nios2/mov.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/mov.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 mov
-+
-+# Test the mov instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> movz \$4,\$5,\$6
-+0+0004 <[^>]*> movnz \$4,\$5,\$6
-+
---- binutils-2.15/gas/testsuite/gas/nios2/mov.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/mov.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the movz and movnz instructions
-+
-+foo:
-+ movz $4,$5,$6
-+ movnz $4,$5,$6
---- binutils-2.15/gas/testsuite/gas/nios2/movi.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/movi.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 movi
-+
-+# Test implicit conversion of movi/movhi etc
-+.*: file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> movi r2,32
-+0+0004 <[^>]*> movhi r2,8192
-+0+0008 <[^>]*> movhi r2,65535
-+0+000c <[^>]*> orhi r2,r5,65535
-+0+0010 <[^>]*> xorhi r2,r10,65535
-+0+0014 <[^>]*> andhi r2,r15,65535
---- binutils-2.15/gas/testsuite/gas/nios2/movi.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/movi.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,21 @@
-+# Source file used to test silent conversion of
-+# movi to orhi etc
-+
-+foo:
-+# this doesn't get converted
-+movi r2, 0x20
-+
-+# this does
-+movi r2, 0x20000000
-+
-+# addi should convert only if the source register is r0
-+addi r2, r0, 0xffff0000
-+# but we can't test for non-conversion because the value would
-+# be out of range
-+
-+# logical ops should convert for any register
-+ori r2, r5, 0xffff0000
-+xori r2, r10, 0xffff0000
-+andi r2, r15, 0xffff0000
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/movia.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/movia.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,18 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 movia
-+
-+# Test the movia instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> movhi r2,32897
-+0+0004 <[^>]*> addi r2,r2,-32640
-+0+0008 <[^>]*> movhi r3,0
-+ 8: R_NIOS2_HIADJ16 sym\+0x80000000
-+0+000c <[^>]*> addi r3,r3,0
-+ c: R_NIOS2_LO16 sym\+0x80000000
-+0+0010 <[^>]*> movhi r4,0
-+ 10: R_NIOS2_HIADJ16 sym\+0x80000001
-+0+0014 <[^>]*> addi r4,r4,0
-+ 14: R_NIOS2_LO16 sym\+0x80000001
---- binutils-2.15/gas/testsuite/gas/nios2/movia.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/movia.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Test program for movia reg, immed32 macro
-+
-+foo:
-+ movia r2, 0x80808080
-+ movia r3, sym + 0x80000000
-+ movia r4, sym - 0x7fffffff
---- binutils-2.15/gas/testsuite/gas/nios2/mul.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/mul.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,19 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 mul
-+
-+# Test the mul macro.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> mul r4,r5,r6
-+0+0004 <[^>]*> muli r4,r5,0
-+0+0008 <[^>]*> muli r4,r5,1
-+0+000c <[^>]*> muli r4,r5,-32768
-+0+0010 <[^>]*> muli r4,r5,32767
-+0+0014 <[^>]*> muli r4,r5,0
-+[ ]*14: R_NIOS2_S16 undefined_symbol
-+0+0018 <[^>]*> muli r4,r5,16448
-+0+001c <[^>]*> mulxss r4,r5,r6
-+0+0020 <[^>]*> mulxsu r4,r5,r6
-+0+0024 <[^>]*> mulxuu r4,r5,r6
---- binutils-2.15/gas/testsuite/gas/nios2/mul.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/mul.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,15 @@
-+# Source file used to test the mul macro.
-+
-+foo:
-+ mul r4,r5,r6
-+ muli r4,r5,0
-+ muli r4,r5,1
-+ muli r4,r5,-0x8000
-+ muli r4,r5,0x7fff
-+ muli r4,r5,undefined_symbol
-+ muli r4,r5,defined_symbol
-+ mulxss r4,r5,r6
-+ mulxsu r4,r5,r6
-+ mulxuu r4,r5,r6
-+.data
-+.set defined_symbol, 0x4040
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-merged_strings.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-merged_strings.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,17 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 reloc against merged strings
-+
-+# Test the merged duplicate strings
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> addi r2,r2,32
-+0+0004 <[^>]*> addi r3,r3,63
-+0+0008 <[^>]*> addi r4,r4,70
-+0+000c <[^>]*> call 00000000 <func1>
-+0+0010 <[^>]*> addi r2,r2,101
-+0+0014 <[^>]*> addi r3,r3,63
-+0+0018 <[^>]*> addi r4,r4,132
-+0+001c <[^>]*> call 00000000 <func1>
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-merged_strings.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-merged_strings.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,21 @@
-+ .section .rodata.str1.1,"aMS",@progbits,1
-+.LC0:
-+ .string "DHRYSTONE PROGRAM, 1'ST STRING"
-+.LC1:
-+ .string "COMMON"
-+.LC2:
-+ .string "DHRYSTONE PROGRAM, 2'ND STRING"
-+
-+ .section .text
-+ .align 3
-+ .global func1
-+ .type func1, @function
-+func1:
-+ #movhi $2, %hiadj(.LC0)
-+ addi r2, r2, .LC0
-+ #movhi $3, %hiadj(.LC1)
-+ addi r3, r3, .LC1
-+ #movhi $4, %hiadj(.LC2)
-+ addi r4, r4, .LC2
-+ .size func1, .-func1
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-bfd-reloc-xx.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-bfd-reloc-xx.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+#objdump: -s
-+#name: NIOS2 R_NIOS2_BFD_RELOC_XX
-+
-+# Test the branch instructions.
-+.*: +file format elf32-littlenios2
-+
-+Contents of section .text:
-+ 0000 fa00cefa efbeadde facefaef beadde00 ................
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-bfd-reloc-xx.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-bfd-reloc-xx.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+# Test for New Jersey 32-bit, 16 and 8-bit relocations
-+
-+.global byte_sym
-+.global short_sym
-+.global long_sym
-+
-+.set byte_sym, 0xFA
-+.set short_sym, 0xFACE
-+.set long_sym, 0xDEADBEEF
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-cache-opx.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-cache-opx.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 R_NIOS2_CACHE_OPX
-+
-+# Test the cache opx relocation
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> cache 0x1f,0x1000\(\$1\)
-+0+0004 <[^>]*> Address 0x4 is out of bounds.
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-cache-opx.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-cache-opx.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Test the imm5 relocation
-+
-+.text
-+ cache imm5, 0x1000($1)
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-call26.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-call26.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,76 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 nios2-reloc-r-nios2-call26
-+
-+# Test the branch instructions.
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+[ ]*\.\.\.
-+[ ]*0: R_NIOS2_CALL26 .text\+0x100
-+[ ]*4: R_NIOS2_CALL26 globalfunc
-+0+0008 <[^>]*> nop
-+0+000c <[^>]*> nop
-+0+0010 <[^>]*> nop
-+0+0014 <[^>]*> nop
-+0+0018 <[^>]*> nop
-+0+001c <[^>]*> nop
-+0+0020 <[^>]*> nop
-+0+0024 <[^>]*> nop
-+0+0028 <[^>]*> nop
-+0+002c <[^>]*> nop
-+0+0030 <[^>]*> nop
-+0+0034 <[^>]*> nop
-+0+0038 <[^>]*> nop
-+0+003c <[^>]*> nop
-+0+0040 <[^>]*> nop
-+0+0044 <[^>]*> nop
-+0+0048 <[^>]*> nop
-+0+004c <[^>]*> nop
-+0+0050 <[^>]*> nop
-+0+0054 <[^>]*> nop
-+0+0058 <[^>]*> nop
-+0+005c <[^>]*> nop
-+0+0060 <[^>]*> nop
-+0+0064 <[^>]*> nop
-+0+0068 <[^>]*> nop
-+0+006c <[^>]*> nop
-+0+0070 <[^>]*> nop
-+0+0074 <[^>]*> nop
-+0+0078 <[^>]*> nop
-+0+007c <[^>]*> nop
-+0+0080 <[^>]*> nop
-+0+0084 <[^>]*> nop
-+0+0088 <[^>]*> nop
-+0+008c <[^>]*> nop
-+0+0090 <[^>]*> nop
-+0+0094 <[^>]*> nop
-+0+0098 <[^>]*> nop
-+0+009c <[^>]*> nop
-+0+00a0 <[^>]*> nop
-+0+00a4 <[^>]*> nop
-+0+00a8 <[^>]*> nop
-+0+00ac <[^>]*> nop
-+0+00b0 <[^>]*> nop
-+0+00b4 <[^>]*> nop
-+0+00b8 <[^>]*> nop
-+0+00bc <[^>]*> nop
-+0+00c0 <[^>]*> nop
-+0+00c4 <[^>]*> nop
-+0+00c8 <[^>]*> nop
-+0+00cc <[^>]*> nop
-+0+00d0 <[^>]*> nop
-+0+00d4 <[^>]*> nop
-+0+00d8 <[^>]*> nop
-+0+00dc <[^>]*> nop
-+0+00e0 <[^>]*> nop
-+0+00e4 <[^>]*> nop
-+0+00e8 <[^>]*> nop
-+0+00ec <[^>]*> nop
-+0+00f0 <[^>]*> nop
-+0+00f4 <[^>]*> nop
-+0+00f8 <[^>]*> nop
-+0+00fc <[^>]*> nop
-+0+0100 <[^>]*> nop
-+ ...
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-call26.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-call26.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,12 @@
-+# Test for New Jersey 32-bit relocations
-+
-+.global globalfunc
-+.text
-+.set norelax
-+start:
-+ call localfunc
-+ call globalfunc
-+
-+.align 8
-+localfunc:
-+ nop
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-gprel.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-gprel.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,15 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 gp-relative relocations
-+
-+# Test the %gprel macro.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> movui gp,32784
-+0+0004 <[^>]*> ldw at,-32756\(gp\)
-+0+0008 <[^>]*> ldw r2,-32752\(gp\)
-+0+000c <[^>]*> ldb r3,-32748\(gp\)
-+0+0010 <[^>]*> ldw at,-32744\(gp\)
-+0+0014 <[^>]*> ldw r2,-32740\(gp\)
-+0+0018 <[^>]*> ldb r3,-32736\(gp\)
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-gprel.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-gprel.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,24 @@
-+.sdata
-+sym1:
-+.long 0xdead
-+sym2:
-+.long 0xbeef
-+sym3:
-+.byte 0x7f
-+
-+.section sdata1, "s"
-+sym4:
-+.long 0xdead
-+sym5:
-+.long 0xbeef
-+sym6:
-+.byte 0x7f
-+
-+.text
-+ movui gp, _gp
-+ ldw r1, %gprel(sym1)(gp)
-+ ldw r2, %gprel(sym2)(gp)
-+ ldb r3, %gprel(sym3)(gp)
-+ ldw r1, %gprel(sym4)(gp)
-+ ldw r2, %gprel(sym5)(gp)
-+ ldb r3, %gprel(sym6)(gp)
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-hilo16.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-hilo16.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 R_NIOS2_HI16,LO16,HIADJ16
-+
-+# Test the %hi, %lo and %hiadi relocations
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> addi at,at,-8531
-+0+0004 <[^>]*> addi at,at,-16657
-+0+0008 <[^>]*> addi at,at,-8530
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-hilo16.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-hilo16.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Test the %hi, lo and %hiadj relocations
-+
-+.text
-+ addi r1, r1, %hi(long_symbol)
-+ addi r1, r1, %lo(long_symbol)
-+ addi r1, r1, %hiadj(long_symbol)
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-imm5.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-imm5.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 R_NIOS2_IMM5
-+
-+# Test the branch instructions.
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> roli at,at,31
-+0+0004 <.[^>]*> Address 0x4 is out of bounds.
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-imm5.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-imm5.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Test the imm5 relocation
-+
-+.text
-+ roli r1, r1, imm5
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-pcrel16.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-pcrel16.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,12 @@
-+#objdump: -s
-+#name: NIOS2 R_NIOS2_PCREL16
-+
-+# Test the relative branch relocations.
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+
-+0+0000 <[^>]*> br 00000008 <ext_label>
-+0+0004 <[^>]*> br 00000018 <__bss_start\+0x8>
-+0+0008 <[^>]*> nop
-+0+000c <[^>]*> nop
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-pcrel16.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-pcrel16.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,6 @@
-+# Test for pc-relative relocations
-+.set norelax
-+.text
-+ br ext_label
-+ br ext_label + 16
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+
-+a.exe: file format elf32-littlenios2
-+
-+Contents of section .text:
-+ 0000 04004408 04006008 c4ff5f08 44004808 ..D...`..._.D.H.
-+ 0010 44004008 D.@.
-+Contents of section .data:
-+Contents of section .sbss:
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s16.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s16.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+#objdump: -s
-+#name: NIOS2 R_NIOS2_S16
-+
-+# Test the signed 16-bit relocations.
-+.*: +file format elf32-littlenios2
-+
-+Contents of section .text:
-+ 0000 04004408 04006008 c4ff5f08 44004808 ..D...`..._.D.H.
-+ 0010 44004008 D.@.
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s16.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-s16.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+# Test for New Jersey 32-bit, 16 and 8-bit relocations
-+
-+.set some_other_sym, 0x1000
-+.text
-+# signed 16-bit relocation
-+ addi r1, r1, some_sym
-+ addi r1, r1, min
-+ addi r1, r1, max
-+ addi r1, r1, some_sym + some_other_sym + 1
-+ addi r1, r1, some_sym - some_other_sym + 1
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-u16.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-u16.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+#objdump: -s
-+#name: NIOS2 R_NIOS2_U16
-+
-+# Test the unsigned 16-bit relocations.
-+.*: +file format elf32-littlenios2
-+
-+Contents of section .text:
-+ 0000 0c004408 0c004008 ccff7f08 4c004808 ..D...@.....L.H.
-+ 0010 4c004008 L.@.
---- binutils-2.15/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-u16.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2-reloc-r-nios2-u16.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+# Test for New Jersey 32-bit, 16 and 8-bit relocations
-+
-+.set some_other_sym, 0x1000
-+.text
-+# signed 16-bit relocation
-+ andi r1, r1, some_sym
-+ andi r1, r1, min
-+ andi r1, r1, max
-+ andi r1, r1, some_sym + some_other_sym + 1
-+ andi r1, r1, some_sym - some_other_sym + 1
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/nios2.exp 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nios2.exp 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,200 @@
-+#
-+# Some generic New Jersey tests
-+#
-+
-+# "LOSE" marks information about tests which fail at a particular point
-+# in time, but which are not XFAILed. Either they used to pass
-+# and indicate either regressions or the need to tweak the tests to keep
-+# up the with code, or they are new tests and it is unknown whether or not
-+# they should pass as-is for the given object formats.
-+
-+if ![info exists LD] then {
-+ set LD [findfile $base_dir/../../ld/ld-new]
-+}
-+
-+proc run_list_test { name } {
-+ global srcdir subdir
-+ set testname "NIOS2 $name"
-+ set file $srcdir/$subdir/$name
-+ gas_run ${name}.s "" ">&dump.out"
-+ if { [regexp_diff "dump.out" "${file}.l"] } then {
-+ fail $testname
-+ verbose "output is [file_contents "dump.out"]" 2
-+ return
-+ }
-+ pass $testname
-+}
-+
-+proc ld_run { obj0 obj1 opts } {
-+ global LD
-+ global comp_output
-+ global srcdir
-+ global subdir
-+ global host_triplet
-+
-+ verbose "Executing $srcdir/lib/run $LD $obj0 $obj1 $opts"
-+ catch "exec $srcdir/lib/run $LD $obj0 $obj1 $opts" comp_output
-+ set comp_output [prune_warnings $comp_output]
-+ verbose "output was $comp_output"
-+ return [list $comp_output ""];
-+}
-+
-+proc objdump_run { prog opts redir } {
-+ global OBJDUMP
-+ global comp_output
-+ global srcdir
-+ global subdir
-+ global host_triplet
-+
-+ verbose "Executing $srcdir/lib/run $OBJDUMP -s $prog"
-+ catch "exec $srcdir/lib/run $OBJDUMP $opts $prog $redir" comp_output
-+ set comp_output [prune_warnings $comp_output]
-+ verbose "output was $comp_output"
-+ return [list $comp_output ""];
-+}
-+
-+proc run_reloc_test { name other objdump_opts} {
-+ global LD OBJDUMP AS
-+ global srcdir subdir
-+ set testname "NIOS2 $name"
-+ set file $srcdir/$subdir/$name
-+ set file1 $srcdir/$subdir/$other
-+ gas_run ${name}.s "-o ${name}.o" ""
-+ gas_run ${other}.s "-o ${other}.o" ""
-+ ld_run ${name}.o ${other}.o "-o ${name}.exe"
-+ objdump_run ${name}.exe ${objdump_opts} ">&dump.out"
-+ if { [regexp_diff "dump.out" "${file}.d"] } then {
-+ fail $testname
-+ verbose "output is [file_contents "dump.out"]" 2
-+ return
-+ }
-+ pass $testname
-+}
-+
-+proc run_gpreloc_test { name objdump_opts} {
-+ global LD OBJDUMP AS
-+ global srcdir subdir
-+ set testname "NIOS2 $name"
-+ set file $srcdir/$subdir/$name
-+ gas_run ${name}.s "-o ${name}.o" ""
-+ ld_run ${name}.o "" "-o ${name}.exe"
-+ objdump_run ${name}.exe ${objdump_opts} ">&dump.out"
-+ if { [regexp_diff "dump.out" "${file}.d"] } then {
-+ fail $testname
-+ verbose "output is [file_contents "dump.out"]" 2
-+ return
-+ }
-+ pass $testname
-+}
-+
-+proc run_relax_test { name asm_opts link_opts objdump_opts} {
-+ global LD OBJDUMP AS
-+ global srcdir subdir
-+ set testname "NIOS2 $name"
-+ set file $srcdir/$subdir/$name
-+ gas_run ${name}.s "-o ${name}.o" ${asm_opts}
-+ ld_run ${name}.o "" "-o ${name}.exe -T${srcdir}/${subdir}/${link_opts} --relax"
-+ objdump_run ${name}.exe ${objdump_opts} ">&dump.out"
-+ if { [regexp_diff "dump.out" "${file}.d"] } then {
-+ fail $testname
-+ verbose "output is [file_contents "dump.out"]" 2
-+ return
-+ }
-+ pass $testname
-+}
-+
-+proc run_relax_section_test { name asm_opts objdump_opts} {
-+ global LD OBJDUMP AS
-+ global srcdir subdir
-+ set testname "NIOS2 $name"
-+ set file $srcdir/$subdir/$name
-+ gas_run ${name}.s "-o ${name}.o" ${asm_opts}
-+ ld_run ${name}.o "" "-o ${name}.exe"
-+ objdump_run ${name}.exe ${objdump_opts} ">&dump.out"
-+ if { [regexp_diff "dump.out" "${file}.d"] } then {
-+ fail $testname
-+ verbose "output is [file_contents "dump.out"]" 2
-+ return
-+ }
-+ pass $testname
-+}
-+
-+if { [istarget nios2-*-elf] } then {
-+ set elf 1
-+
-+ run_dump_test "add"
-+ run_dump_test "and"
-+ run_dump_test "align_fill"
-+ run_dump_test "align_text"
-+
-+ run_dump_test "branch"
-+
-+
-+ run_dump_test "break"
-+ run_dump_test "bret"
-+ run_dump_test "cache"
-+
-+ run_dump_test "call"
-+
-+
-+ run_dump_test "cmp"
-+
-+
-+ run_dump_test "jmp"
-+ run_dump_test "ldw"
-+ run_dump_test "ldh"
-+ run_dump_test "ldb"
-+
-+
-+ run_dump_test "mul"
-+
-+ run_dump_test "nor"
-+ run_dump_test "or"
-+
-+ run_dump_test "ctl"
-+ run_dump_test "ret"
-+ run_dump_test "rotate"
-+
-+ run_dump_test "stw"
-+ run_dump_test "sth"
-+ run_dump_test "stb"
-+
-+ run_dump_test "sub"
-+ run_dump_test "sync"
-+ run_dump_test "trap"
-+ run_dump_test "tret"
-+
-+ run_dump_test "custom"
-+ run_dump_test "xor"
-+ run_dump_test "movia"
-+
-+ run_dump_test "complex"
-+ run_dump_test "comments"
-+ run_dump_test "etbt"
-+ run_dump_test "lineseparator"
-+ run_dump_test "movi"
-+
-+ run_list_test "illegal"
-+ run_list_test "warn_nobreak"
-+ run_list_test "warn_noat"
-+
-+
-+# now lets make sure that the assembler generates all the relocations
-+# that it should correctly, and that the linker links them correctly
-+
-+ run_reloc_test "nios2-reloc-r-nios2-bfd-reloc-xx" "reloc_symbols" "-s"
-+ run_reloc_test "nios2-reloc-r-nios2-s16" "s16_symbol" "-s"
-+ run_reloc_test "nios2-reloc-r-nios2-u16" "u16_symbol" "-s"
-+ run_reloc_test "nios2-reloc-r-nios2-pcrel16" "pcrel_label" "-dr --prefix-addresses"
-+ run_reloc_test "nios2-reloc-r-nios2-hilo16" "hilo_symbol" "-dr --prefix-addresses"
-+ run_dump_test "nios2-reloc-r-nios2-call26"
-+ run_reloc_test "nios2-reloc-r-nios2-imm5" "imm5_symbol" "-dr --prefix-addresses"
-+ run_reloc_test "nios2-reloc-merged_strings" "str2" "-dr --prefix-addresses"
-+ run_gpreloc_test "nios2-reloc-r-nios2-gprel" "-dr --prefix-addresses"
-+
-+# relaxation tests
-+ run_relax_test "relax_ujmp" "-relax-all" "link1.lds" "-dr --prefix-addresses"
-+ run_relax_test "relax_cjmp" "-relax-all" "link1.lds" "-dr --prefix-addresses"
-+ run_relax_test "relax_callr" "-relax-all" "link3.lds" "-dr --prefix-addresses"
-+ run_relax_section_test "relax_section" "-relax-section" "-dr --prefix-addresses"
-+}
---- binutils-2.15/gas/testsuite/gas/nios2/nor.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nor.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 nor
-+
-+# Test the nor instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> nor r6,r8,r10
---- binutils-2.15/gas/testsuite/gas/nios2/nor.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/nor.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the nor instruction
-+
-+foo:
-+ nor r6,r8,r10
-+
---- binutils-2.15/gas/testsuite/gas/nios2/or.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/or.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 or
-+
-+# Test the nor instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> or r6,r8,r10
-+0+0004 <[^>]*> orhi r6,r7,65535
-+0+0008 <[^>]*> ori r6,r7,65535
---- binutils-2.15/gas/testsuite/gas/nios2/or.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/or.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,7 @@
-+# Source file used to test the nor instruction
-+
-+foo:
-+ or r6,r8,r10
-+ orhi r6,r7,0xffff
-+ ori r6,r7,0xffff
-+
---- binutils-2.15/gas/testsuite/gas/nios2/pcrel_label.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/pcrel_label.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+.text
-+ext_label:
-+ nop
-+ nop
-+.global ext_label
---- binutils-2.15/gas/testsuite/gas/nios2/relax_callr.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_callr.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,22 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 relax_callr
-+# Test relaxation of callr
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section text1:
-+00000000 <[^>]*> call 08000000 <func>
-+00000004 <[^>]*> nop
-+00000008 <[^>]*> nop
-+0000000c <[^>]*> call 0800001c <func1>
-+00000010 <[^>]*> nop
-+00000014 <[^>]*> nop
-+Disassembly of section text2:
-+08000000 <[^>]*> nop
-+08000004 <[^>]*> br 0800001c <func1>
-+08000008 <[^>]*> nop
-+0800000c <[^>]*> nop
-+08000010 <[^>]*> nop
-+08000014 <[^>]*> nop
-+08000018 <[^>]*> nop
-+0800001c <[^>]*> nop
---- binutils-2.15/gas/testsuite/gas/nios2/relax_callr.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_callr.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,17 @@
-+# relaxation test for callr
-+
-+.globl text1
-+.section text1, "ax", @progbits
-+
-+ call func
-+ call func1
-+
-+.section text2, "ax", @progbits
-+func:
-+ nop
-+ br func1
-+ nop
-+ nop
-+ nop
-+func1:
-+ nop
---- binutils-2.15/gas/testsuite/gas/nios2/relax_cjmp.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_cjmp.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8227 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 relax_cjmp
-+
-+# Test relaxation of conditional jumps
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section text2:
-+00000000 <[^>]*> bge r2,r3,00008000 <[^>]*>
-+00000004 <[^>]*> nop
-+00000008 <[^>]*> nop
-+0000000c <[^>]*> nop
-+00000010 <[^>]*> blt r3,r2,00000020 <[^>]*>
-+00000014 <[^>]*> movhi at,1
-+00000018 <[^>]*> ori at,at,36
-+0000001c <[^>]*> jmp at
-+00000020 <[^>]*> bge r3,r2,00000038 <[^>]*>
-+00000024 <[^>]*> nop
-+00000028 <[^>]*> nop
-+0000002c <[^>]*> nop
-+00000030 <[^>]*> nop
-+00000034 <[^>]*> nop
-+00000038 <[^>]*> nop
-+Disassembly of section text1:
-+00008000 <[^>]*> beq r2,r3,00010000 <[^>]*>
-+00008004 <[^>]*> nop
-+00008008 <[^>]*> nop
-+0000800c <[^>]*> nop
-+00008010 <[^>]*> bne r2,r3,00008020 <[^>]*>
-+00008014 <[^>]*> movhi at,1
-+00008018 <[^>]*> ori at,at,36
-+0000801c <[^>]*> jmp at
-+00008020 <[^>]*> nop
-+00008024 <[^>]*> nop
-+00008028 <[^>]*> nop
-+0000802c <[^>]*> nop
-+00008030 <[^>]*> nop
-+00008034 <[^>]*> nop
-+00008038 <[^>]*> nop
-+0000803c <[^>]*> nop
-+00008040 <[^>]*> nop
-+00008044 <[^>]*> nop
-+00008048 <[^>]*> nop
-+0000804c <[^>]*> nop
-+00008050 <[^>]*> nop
-+00008054 <[^>]*> nop
-+00008058 <[^>]*> nop
-+0000805c <[^>]*> nop
-+00008060 <[^>]*> nop
-+00008064 <[^>]*> nop
-+00008068 <[^>]*> nop
-+0000806c <[^>]*> nop
-+00008070 <[^>]*> nop
-+00008074 <[^>]*> nop
-+00008078 <[^>]*> nop
-+0000807c <[^>]*> nop
-+00008080 <[^>]*> nop
-+00008084 <[^>]*> nop
-+00008088 <[^>]*> nop
-+0000808c <[^>]*> nop
-+00008090 <[^>]*> nop
-+00008094 <[^>]*> nop
-+00008098 <[^>]*> nop
-+0000809c <[^>]*> nop
-+000080a0 <[^>]*> nop
-+000080a4 <[^>]*> nop
-+000080a8 <[^>]*> nop
-+000080ac <[^>]*> nop
-+000080b0 <[^>]*> nop
-+000080b4 <[^>]*> nop
-+000080b8 <[^>]*> nop
-+000080bc <[^>]*> nop
-+000080c0 <[^>]*> nop
-+000080c4 <[^>]*> nop
-+000080c8 <[^>]*> nop
-+000080cc <[^>]*> nop
-+000080d0 <[^>]*> nop
-+000080d4 <[^>]*> nop
-+000080d8 <[^>]*> nop
-+000080dc <[^>]*> nop
-+000080e0 <[^>]*> nop
-+000080e4 <[^>]*> nop
-+000080e8 <[^>]*> nop
-+000080ec <[^>]*> nop
-+000080f0 <[^>]*> nop
-+000080f4 <[^>]*> nop
-+000080f8 <[^>]*> nop
-+000080fc <[^>]*> nop
-+00008100 <[^>]*> nop
-+00008104 <[^>]*> nop
-+00008108 <[^>]*> nop
-+0000810c <[^>]*> nop
-+00008110 <[^>]*> nop
-+00008114 <[^>]*> nop
-+00008118 <[^>]*> nop
-+0000811c <[^>]*> nop
-+00008120 <[^>]*> nop
-+00008124 <[^>]*> nop
-+00008128 <[^>]*> nop
-+0000812c <[^>]*> nop
-+00008130 <[^>]*> nop
-+00008134 <[^>]*> nop
-+00008138 <[^>]*> nop
-+0000813c <[^>]*> nop
-+00008140 <[^>]*> nop
-+00008144 <[^>]*> nop
-+00008148 <[^>]*> nop
-+0000814c <[^>]*> nop
-+00008150 <[^>]*> nop
-+00008154 <[^>]*> nop
-+00008158 <[^>]*> nop
-+0000815c <[^>]*> nop
-+00008160 <[^>]*> nop
-+00008164 <[^>]*> nop
-+00008168 <[^>]*> nop
-+0000816c <[^>]*> nop
-+00008170 <[^>]*> nop
-+00008174 <[^>]*> nop
-+00008178 <[^>]*> nop
-+0000817c <[^>]*> nop
-+00008180 <[^>]*> nop
-+00008184 <[^>]*> nop
-+00008188 <[^>]*> nop
-+0000818c <[^>]*> nop
-+00008190 <[^>]*> nop
-+00008194 <[^>]*> nop
-+00008198 <[^>]*> nop
-+0000819c <[^>]*> nop
-+000081a0 <[^>]*> nop
-+000081a4 <[^>]*> nop
-+000081a8 <[^>]*> nop
-+000081ac <[^>]*> nop
-+000081b0 <[^>]*> nop
-+000081b4 <[^>]*> nop
-+000081b8 <[^>]*> nop
-+000081bc <[^>]*> nop
-+000081c0 <[^>]*> nop
-+000081c4 <[^>]*> nop
-+000081c8 <[^>]*> nop
-+000081cc <[^>]*> nop
-+000081d0 <[^>]*> nop
-+000081d4 <[^>]*> nop
-+000081d8 <[^>]*> nop
-+000081dc <[^>]*> nop
-+000081e0 <[^>]*> nop
-+000081e4 <[^>]*> nop
-+000081e8 <[^>]*> nop
-+000081ec <[^>]*> nop
-+000081f0 <[^>]*> nop
-+000081f4 <[^>]*> nop
-+000081f8 <[^>]*> nop
-+000081fc <[^>]*> nop
-+00008200 <[^>]*> nop
-+00008204 <[^>]*> nop
-+00008208 <[^>]*> nop
-+0000820c <[^>]*> nop
-+00008210 <[^>]*> nop
-+00008214 <[^>]*> nop
-+00008218 <[^>]*> nop
-+0000821c <[^>]*> nop
-+00008220 <[^>]*> nop
-+00008224 <[^>]*> nop
-+00008228 <[^>]*> nop
-+0000822c <[^>]*> nop
-+00008230 <[^>]*> nop
-+00008234 <[^>]*> nop
-+00008238 <[^>]*> nop
-+0000823c <[^>]*> nop
-+00008240 <[^>]*> nop
-+00008244 <[^>]*> nop
-+00008248 <[^>]*> nop
-+0000824c <[^>]*> nop
-+00008250 <[^>]*> nop
-+00008254 <[^>]*> nop
-+00008258 <[^>]*> nop
-+0000825c <[^>]*> nop
-+00008260 <[^>]*> nop
-+00008264 <[^>]*> nop
-+00008268 <[^>]*> nop
-+0000826c <[^>]*> nop
-+00008270 <[^>]*> nop
-+00008274 <[^>]*> nop
-+00008278 <[^>]*> nop
-+0000827c <[^>]*> nop
-+00008280 <[^>]*> nop
-+00008284 <[^>]*> nop
-+00008288 <[^>]*> nop
-+0000828c <[^>]*> nop
-+00008290 <[^>]*> nop
-+00008294 <[^>]*> nop
-+00008298 <[^>]*> nop
-+0000829c <[^>]*> nop
-+000082a0 <[^>]*> nop
-+000082a4 <[^>]*> nop
-+000082a8 <[^>]*> nop
-+000082ac <[^>]*> nop
-+000082b0 <[^>]*> nop
-+000082b4 <[^>]*> nop
-+000082b8 <[^>]*> nop
-+000082bc <[^>]*> nop
-+000082c0 <[^>]*> nop
-+000082c4 <[^>]*> nop
-+000082c8 <[^>]*> nop
-+000082cc <[^>]*> nop
-+000082d0 <[^>]*> nop
-+000082d4 <[^>]*> nop
-+000082d8 <[^>]*> nop
-+000082dc <[^>]*> nop
-+000082e0 <[^>]*> nop
-+000082e4 <[^>]*> nop
-+000082e8 <[^>]*> nop
-+000082ec <[^>]*> nop
-+000082f0 <[^>]*> nop
-+000082f4 <[^>]*> nop
-+000082f8 <[^>]*> nop
-+000082fc <[^>]*> nop
-+00008300 <[^>]*> nop
-+00008304 <[^>]*> nop
-+00008308 <[^>]*> nop
-+0000830c <[^>]*> nop
-+00008310 <[^>]*> nop
-+00008314 <[^>]*> nop
-+00008318 <[^>]*> nop
-+0000831c <[^>]*> nop
-+00008320 <[^>]*> nop
-+00008324 <[^>]*> nop
-+00008328 <[^>]*> nop
-+0000832c <[^>]*> nop
-+00008330 <[^>]*> nop
-+00008334 <[^>]*> nop
-+00008338 <[^>]*> nop
-+0000833c <[^>]*> nop
-+00008340 <[^>]*> nop
-+00008344 <[^>]*> nop
-+00008348 <[^>]*> nop
-+0000834c <[^>]*> nop
-+00008350 <[^>]*> nop
-+00008354 <[^>]*> nop
-+00008358 <[^>]*> nop
-+0000835c <[^>]*> nop
-+00008360 <[^>]*> nop
-+00008364 <[^>]*> nop
-+00008368 <[^>]*> nop
-+0000836c <[^>]*> nop
-+00008370 <[^>]*> nop
-+00008374 <[^>]*> nop
-+00008378 <[^>]*> nop
-+0000837c <[^>]*> nop
-+00008380 <[^>]*> nop
-+00008384 <[^>]*> nop
-+00008388 <[^>]*> nop
-+0000838c <[^>]*> nop
-+00008390 <[^>]*> nop
-+00008394 <[^>]*> nop
-+00008398 <[^>]*> nop
-+0000839c <[^>]*> nop
-+000083a0 <[^>]*> nop
-+000083a4 <[^>]*> nop
-+000083a8 <[^>]*> nop
-+000083ac <[^>]*> nop
-+000083b0 <[^>]*> nop
-+000083b4 <[^>]*> nop
-+000083b8 <[^>]*> nop
-+000083bc <[^>]*> nop
-+000083c0 <[^>]*> nop
-+000083c4 <[^>]*> nop
-+000083c8 <[^>]*> nop
-+000083cc <[^>]*> nop
-+000083d0 <[^>]*> nop
-+000083d4 <[^>]*> nop
-+000083d8 <[^>]*> nop
-+000083dc <[^>]*> nop
-+000083e0 <[^>]*> nop
-+000083e4 <[^>]*> nop
-+000083e8 <[^>]*> nop
-+000083ec <[^>]*> nop
-+000083f0 <[^>]*> nop
-+000083f4 <[^>]*> nop
-+000083f8 <[^>]*> nop
-+000083fc <[^>]*> nop
-+00008400 <[^>]*> nop
-+00008404 <[^>]*> nop
-+00008408 <[^>]*> nop
-+0000840c <[^>]*> nop
-+00008410 <[^>]*> nop
-+00008414 <[^>]*> nop
-+00008418 <[^>]*> nop
-+0000841c <[^>]*> nop
-+00008420 <[^>]*> nop
-+00008424 <[^>]*> nop
-+00008428 <[^>]*> nop
-+0000842c <[^>]*> nop
-+00008430 <[^>]*> nop
-+00008434 <[^>]*> nop
-+00008438 <[^>]*> nop
-+0000843c <[^>]*> nop
-+00008440 <[^>]*> nop
-+00008444 <[^>]*> nop
-+00008448 <[^>]*> nop
-+0000844c <[^>]*> nop
-+00008450 <[^>]*> nop
-+00008454 <[^>]*> nop
-+00008458 <[^>]*> nop
-+0000845c <[^>]*> nop
-+00008460 <[^>]*> nop
-+00008464 <[^>]*> nop
-+00008468 <[^>]*> nop
-+0000846c <[^>]*> nop
-+00008470 <[^>]*> nop
-+00008474 <[^>]*> nop
-+00008478 <[^>]*> nop
-+0000847c <[^>]*> nop
-+00008480 <[^>]*> nop
-+00008484 <[^>]*> nop
-+00008488 <[^>]*> nop
-+0000848c <[^>]*> nop
-+00008490 <[^>]*> nop
-+00008494 <[^>]*> nop
-+00008498 <[^>]*> nop
-+0000849c <[^>]*> nop
-+000084a0 <[^>]*> nop
-+000084a4 <[^>]*> nop
-+000084a8 <[^>]*> nop
-+000084ac <[^>]*> nop
-+000084b0 <[^>]*> nop
-+000084b4 <[^>]*> nop
-+000084b8 <[^>]*> nop
-+000084bc <[^>]*> nop
-+000084c0 <[^>]*> nop
-+000084c4 <[^>]*> nop
-+000084c8 <[^>]*> nop
-+000084cc <[^>]*> nop
-+000084d0 <[^>]*> nop
-+000084d4 <[^>]*> nop
-+000084d8 <[^>]*> nop
-+000084dc <[^>]*> nop
-+000084e0 <[^>]*> nop
-+000084e4 <[^>]*> nop
-+000084e8 <[^>]*> nop
-+000084ec <[^>]*> nop
-+000084f0 <[^>]*> nop
-+000084f4 <[^>]*> nop
-+000084f8 <[^>]*> nop
-+000084fc <[^>]*> nop
-+00008500 <[^>]*> nop
-+00008504 <[^>]*> nop
-+00008508 <[^>]*> nop
-+0000850c <[^>]*> nop
-+00008510 <[^>]*> nop
-+00008514 <[^>]*> nop
-+00008518 <[^>]*> nop
-+0000851c <[^>]*> nop
-+00008520 <[^>]*> nop
-+00008524 <[^>]*> nop
-+00008528 <[^>]*> nop
-+0000852c <[^>]*> nop
-+00008530 <[^>]*> nop
-+00008534 <[^>]*> nop
-+00008538 <[^>]*> nop
-+0000853c <[^>]*> nop
-+00008540 <[^>]*> nop
-+00008544 <[^>]*> nop
-+00008548 <[^>]*> nop
-+0000854c <[^>]*> nop
-+00008550 <[^>]*> nop
-+00008554 <[^>]*> nop
-+00008558 <[^>]*> nop
-+0000855c <[^>]*> nop
-+00008560 <[^>]*> nop
-+00008564 <[^>]*> nop
-+00008568 <[^>]*> nop
-+0000856c <[^>]*> nop
-+00008570 <[^>]*> nop
-+00008574 <[^>]*> nop
-+00008578 <[^>]*> nop
-+0000857c <[^>]*> nop
-+00008580 <[^>]*> nop
-+00008584 <[^>]*> nop
-+00008588 <[^>]*> nop
-+0000858c <[^>]*> nop
-+00008590 <[^>]*> nop
-+00008594 <[^>]*> nop
-+00008598 <[^>]*> nop
-+0000859c <[^>]*> nop
-+000085a0 <[^>]*> nop
-+000085a4 <[^>]*> nop
-+000085a8 <[^>]*> nop
-+000085ac <[^>]*> nop
-+000085b0 <[^>]*> nop
-+000085b4 <[^>]*> nop
-+000085b8 <[^>]*> nop
-+000085bc <[^>]*> nop
-+000085c0 <[^>]*> nop
-+000085c4 <[^>]*> nop
-+000085c8 <[^>]*> nop
-+000085cc <[^>]*> nop
-+000085d0 <[^>]*> nop
-+000085d4 <[^>]*> nop
-+000085d8 <[^>]*> nop
-+000085dc <[^>]*> nop
-+000085e0 <[^>]*> nop
-+000085e4 <[^>]*> nop
-+000085e8 <[^>]*> nop
-+000085ec <[^>]*> nop
-+000085f0 <[^>]*> nop
-+000085f4 <[^>]*> nop
-+000085f8 <[^>]*> nop
-+000085fc <[^>]*> nop
-+00008600 <[^>]*> nop
-+00008604 <[^>]*> nop
-+00008608 <[^>]*> nop
-+0000860c <[^>]*> nop
-+00008610 <[^>]*> nop
-+00008614 <[^>]*> nop
-+00008618 <[^>]*> nop
-+0000861c <[^>]*> nop
-+00008620 <[^>]*> nop
-+00008624 <[^>]*> nop
-+00008628 <[^>]*> nop
-+0000862c <[^>]*> nop
-+00008630 <[^>]*> nop
-+00008634 <[^>]*> nop
-+00008638 <[^>]*> nop
-+0000863c <[^>]*> nop
-+00008640 <[^>]*> nop
-+00008644 <[^>]*> nop
-+00008648 <[^>]*> nop
-+0000864c <[^>]*> nop
-+00008650 <[^>]*> nop
-+00008654 <[^>]*> nop
-+00008658 <[^>]*> nop
-+0000865c <[^>]*> nop
-+00008660 <[^>]*> nop
-+00008664 <[^>]*> nop
-+00008668 <[^>]*> nop
-+0000866c <[^>]*> nop
-+00008670 <[^>]*> nop
-+00008674 <[^>]*> nop
-+00008678 <[^>]*> nop
-+0000867c <[^>]*> nop
-+00008680 <[^>]*> nop
-+00008684 <[^>]*> nop
-+00008688 <[^>]*> nop
-+0000868c <[^>]*> nop
-+00008690 <[^>]*> nop
-+00008694 <[^>]*> nop
-+00008698 <[^>]*> nop
-+0000869c <[^>]*> nop
-+000086a0 <[^>]*> nop
-+000086a4 <[^>]*> nop
-+000086a8 <[^>]*> nop
-+000086ac <[^>]*> nop
-+000086b0 <[^>]*> nop
-+000086b4 <[^>]*> nop
-+000086b8 <[^>]*> nop
-+000086bc <[^>]*> nop
-+000086c0 <[^>]*> nop
-+000086c4 <[^>]*> nop
-+000086c8 <[^>]*> nop
-+000086cc <[^>]*> nop
-+000086d0 <[^>]*> nop
-+000086d4 <[^>]*> nop
-+000086d8 <[^>]*> nop
-+000086dc <[^>]*> nop
-+000086e0 <[^>]*> nop
-+000086e4 <[^>]*> nop
-+000086e8 <[^>]*> nop
-+000086ec <[^>]*> nop
-+000086f0 <[^>]*> nop
-+000086f4 <[^>]*> nop
-+000086f8 <[^>]*> nop
-+000086fc <[^>]*> nop
-+00008700 <[^>]*> nop
-+00008704 <[^>]*> nop
-+00008708 <[^>]*> nop
-+0000870c <[^>]*> nop
-+00008710 <[^>]*> nop
-+00008714 <[^>]*> nop
-+00008718 <[^>]*> nop
-+0000871c <[^>]*> nop
-+00008720 <[^>]*> nop
-+00008724 <[^>]*> nop
-+00008728 <[^>]*> nop
-+0000872c <[^>]*> nop
-+00008730 <[^>]*> nop
-+00008734 <[^>]*> nop
-+00008738 <[^>]*> nop
-+0000873c <[^>]*> nop
-+00008740 <[^>]*> nop
-+00008744 <[^>]*> nop
-+00008748 <[^>]*> nop
-+0000874c <[^>]*> nop
-+00008750 <[^>]*> nop
-+00008754 <[^>]*> nop
-+00008758 <[^>]*> nop
-+0000875c <[^>]*> nop
-+00008760 <[^>]*> nop
-+00008764 <[^>]*> nop
-+00008768 <[^>]*> nop
-+0000876c <[^>]*> nop
-+00008770 <[^>]*> nop
-+00008774 <[^>]*> nop
-+00008778 <[^>]*> nop
-+0000877c <[^>]*> nop
-+00008780 <[^>]*> nop
-+00008784 <[^>]*> nop
-+00008788 <[^>]*> nop
-+0000878c <[^>]*> nop
-+00008790 <[^>]*> nop
-+00008794 <[^>]*> nop
-+00008798 <[^>]*> nop
-+0000879c <[^>]*> nop
-+000087a0 <[^>]*> nop
-+000087a4 <[^>]*> nop
-+000087a8 <[^>]*> nop
-+000087ac <[^>]*> nop
-+000087b0 <[^>]*> nop
-+000087b4 <[^>]*> nop
-+000087b8 <[^>]*> nop
-+000087bc <[^>]*> nop
-+000087c0 <[^>]*> nop
-+000087c4 <[^>]*> nop
-+000087c8 <[^>]*> nop
-+000087cc <[^>]*> nop
-+000087d0 <[^>]*> nop
-+000087d4 <[^>]*> nop
-+000087d8 <[^>]*> nop
-+000087dc <[^>]*> nop
-+000087e0 <[^>]*> nop
-+000087e4 <[^>]*> nop
-+000087e8 <[^>]*> nop
-+000087ec <[^>]*> nop
-+000087f0 <[^>]*> nop
-+000087f4 <[^>]*> nop
-+000087f8 <[^>]*> nop
-+000087fc <[^>]*> nop
-+00008800 <[^>]*> nop
-+00008804 <[^>]*> nop
-+00008808 <[^>]*> nop
-+0000880c <[^>]*> nop
-+00008810 <[^>]*> nop
-+00008814 <[^>]*> nop
-+00008818 <[^>]*> nop
-+0000881c <[^>]*> nop
-+00008820 <[^>]*> nop
-+00008824 <[^>]*> nop
-+00008828 <[^>]*> nop
-+0000882c <[^>]*> nop
-+00008830 <[^>]*> nop
-+00008834 <[^>]*> nop
-+00008838 <[^>]*> nop
-+0000883c <[^>]*> nop
-+00008840 <[^>]*> nop
-+00008844 <[^>]*> nop
-+00008848 <[^>]*> nop
-+0000884c <[^>]*> nop
-+00008850 <[^>]*> nop
-+00008854 <[^>]*> nop
-+00008858 <[^>]*> nop
-+0000885c <[^>]*> nop
-+00008860 <[^>]*> nop
-+00008864 <[^>]*> nop
-+00008868 <[^>]*> nop
-+0000886c <[^>]*> nop
-+00008870 <[^>]*> nop
-+00008874 <[^>]*> nop
-+00008878 <[^>]*> nop
-+0000887c <[^>]*> nop
-+00008880 <[^>]*> nop
-+00008884 <[^>]*> nop
-+00008888 <[^>]*> nop
-+0000888c <[^>]*> nop
-+00008890 <[^>]*> nop
-+00008894 <[^>]*> nop
-+00008898 <[^>]*> nop
-+0000889c <[^>]*> nop
-+000088a0 <[^>]*> nop
-+000088a4 <[^>]*> nop
-+000088a8 <[^>]*> nop
-+000088ac <[^>]*> nop
-+000088b0 <[^>]*> nop
-+000088b4 <[^>]*> nop
-+000088b8 <[^>]*> nop
-+000088bc <[^>]*> nop
-+000088c0 <[^>]*> nop
-+000088c4 <[^>]*> nop
-+000088c8 <[^>]*> nop
-+000088cc <[^>]*> nop
-+000088d0 <[^>]*> nop
-+000088d4 <[^>]*> nop
-+000088d8 <[^>]*> nop
-+000088dc <[^>]*> nop
-+000088e0 <[^>]*> nop
-+000088e4 <[^>]*> nop
-+000088e8 <[^>]*> nop
-+000088ec <[^>]*> nop
-+000088f0 <[^>]*> nop
-+000088f4 <[^>]*> nop
-+000088f8 <[^>]*> nop
-+000088fc <[^>]*> nop
-+00008900 <[^>]*> nop
-+00008904 <[^>]*> nop
-+00008908 <[^>]*> nop
-+0000890c <[^>]*> nop
-+00008910 <[^>]*> nop
-+00008914 <[^>]*> nop
-+00008918 <[^>]*> nop
-+0000891c <[^>]*> nop
-+00008920 <[^>]*> nop
-+00008924 <[^>]*> nop
-+00008928 <[^>]*> nop
-+0000892c <[^>]*> nop
-+00008930 <[^>]*> nop
-+00008934 <[^>]*> nop
-+00008938 <[^>]*> nop
-+0000893c <[^>]*> nop
-+00008940 <[^>]*> nop
-+00008944 <[^>]*> nop
-+00008948 <[^>]*> nop
-+0000894c <[^>]*> nop
-+00008950 <[^>]*> nop
-+00008954 <[^>]*> nop
-+00008958 <[^>]*> nop
-+0000895c <[^>]*> nop
-+00008960 <[^>]*> nop
-+00008964 <[^>]*> nop
-+00008968 <[^>]*> nop
-+0000896c <[^>]*> nop
-+00008970 <[^>]*> nop
-+00008974 <[^>]*> nop
-+00008978 <[^>]*> nop
-+0000897c <[^>]*> nop
-+00008980 <[^>]*> nop
-+00008984 <[^>]*> nop
-+00008988 <[^>]*> nop
-+0000898c <[^>]*> nop
-+00008990 <[^>]*> nop
-+00008994 <[^>]*> nop
-+00008998 <[^>]*> nop
-+0000899c <[^>]*> nop
-+000089a0 <[^>]*> nop
-+000089a4 <[^>]*> nop
-+000089a8 <[^>]*> nop
-+000089ac <[^>]*> nop
-+000089b0 <[^>]*> nop
-+000089b4 <[^>]*> nop
-+000089b8 <[^>]*> nop
-+000089bc <[^>]*> nop
-+000089c0 <[^>]*> nop
-+000089c4 <[^>]*> nop
-+000089c8 <[^>]*> nop
-+000089cc <[^>]*> nop
-+000089d0 <[^>]*> nop
-+000089d4 <[^>]*> nop
-+000089d8 <[^>]*> nop
-+000089dc <[^>]*> nop
-+000089e0 <[^>]*> nop
-+000089e4 <[^>]*> nop
-+000089e8 <[^>]*> nop
-+000089ec <[^>]*> nop
-+000089f0 <[^>]*> nop
-+000089f4 <[^>]*> nop
-+000089f8 <[^>]*> nop
-+000089fc <[^>]*> nop
-+00008a00 <[^>]*> nop
-+00008a04 <[^>]*> nop
-+00008a08 <[^>]*> nop
-+00008a0c <[^>]*> nop
-+00008a10 <[^>]*> nop
-+00008a14 <[^>]*> nop
-+00008a18 <[^>]*> nop
-+00008a1c <[^>]*> nop
-+00008a20 <[^>]*> nop
-+00008a24 <[^>]*> nop
-+00008a28 <[^>]*> nop
-+00008a2c <[^>]*> nop
-+00008a30 <[^>]*> nop
-+00008a34 <[^>]*> nop
-+00008a38 <[^>]*> nop
-+00008a3c <[^>]*> nop
-+00008a40 <[^>]*> nop
-+00008a44 <[^>]*> nop
-+00008a48 <[^>]*> nop
-+00008a4c <[^>]*> nop
-+00008a50 <[^>]*> nop
-+00008a54 <[^>]*> nop
-+00008a58 <[^>]*> nop
-+00008a5c <[^>]*> nop
-+00008a60 <[^>]*> nop
-+00008a64 <[^>]*> nop
-+00008a68 <[^>]*> nop
-+00008a6c <[^>]*> nop
-+00008a70 <[^>]*> nop
-+00008a74 <[^>]*> nop
-+00008a78 <[^>]*> nop
-+00008a7c <[^>]*> nop
-+00008a80 <[^>]*> nop
-+00008a84 <[^>]*> nop
-+00008a88 <[^>]*> nop
-+00008a8c <[^>]*> nop
-+00008a90 <[^>]*> nop
-+00008a94 <[^>]*> nop
-+00008a98 <[^>]*> nop
-+00008a9c <[^>]*> nop
-+00008aa0 <[^>]*> nop
-+00008aa4 <[^>]*> nop
-+00008aa8 <[^>]*> nop
-+00008aac <[^>]*> nop
-+00008ab0 <[^>]*> nop
-+00008ab4 <[^>]*> nop
-+00008ab8 <[^>]*> nop
-+00008abc <[^>]*> nop
-+00008ac0 <[^>]*> nop
-+00008ac4 <[^>]*> nop
-+00008ac8 <[^>]*> nop
-+00008acc <[^>]*> nop
-+00008ad0 <[^>]*> nop
-+00008ad4 <[^>]*> nop
-+00008ad8 <[^>]*> nop
-+00008adc <[^>]*> nop
-+00008ae0 <[^>]*> nop
-+00008ae4 <[^>]*> nop
-+00008ae8 <[^>]*> nop
-+00008aec <[^>]*> nop
-+00008af0 <[^>]*> nop
-+00008af4 <[^>]*> nop
-+00008af8 <[^>]*> nop
-+00008afc <[^>]*> nop
-+00008b00 <[^>]*> nop
-+00008b04 <[^>]*> nop
-+00008b08 <[^>]*> nop
-+00008b0c <[^>]*> nop
-+00008b10 <[^>]*> nop
-+00008b14 <[^>]*> nop
-+00008b18 <[^>]*> nop
-+00008b1c <[^>]*> nop
-+00008b20 <[^>]*> nop
-+00008b24 <[^>]*> nop
-+00008b28 <[^>]*> nop
-+00008b2c <[^>]*> nop
-+00008b30 <[^>]*> nop
-+00008b34 <[^>]*> nop
-+00008b38 <[^>]*> nop
-+00008b3c <[^>]*> nop
-+00008b40 <[^>]*> nop
-+00008b44 <[^>]*> nop
-+00008b48 <[^>]*> nop
-+00008b4c <[^>]*> nop
-+00008b50 <[^>]*> nop
-+00008b54 <[^>]*> nop
-+00008b58 <[^>]*> nop
-+00008b5c <[^>]*> nop
-+00008b60 <[^>]*> nop
-+00008b64 <[^>]*> nop
-+00008b68 <[^>]*> nop
-+00008b6c <[^>]*> nop
-+00008b70 <[^>]*> nop
-+00008b74 <[^>]*> nop
-+00008b78 <[^>]*> nop
-+00008b7c <[^>]*> nop
-+00008b80 <[^>]*> nop
-+00008b84 <[^>]*> nop
-+00008b88 <[^>]*> nop
-+00008b8c <[^>]*> nop
-+00008b90 <[^>]*> nop
-+00008b94 <[^>]*> nop
-+00008b98 <[^>]*> nop
-+00008b9c <[^>]*> nop
-+00008ba0 <[^>]*> nop
-+00008ba4 <[^>]*> nop
-+00008ba8 <[^>]*> nop
-+00008bac <[^>]*> nop
-+00008bb0 <[^>]*> nop
-+00008bb4 <[^>]*> nop
-+00008bb8 <[^>]*> nop
-+00008bbc <[^>]*> nop
-+00008bc0 <[^>]*> nop
-+00008bc4 <[^>]*> nop
-+00008bc8 <[^>]*> nop
-+00008bcc <[^>]*> nop
-+00008bd0 <[^>]*> nop
-+00008bd4 <[^>]*> nop
-+00008bd8 <[^>]*> nop
-+00008bdc <[^>]*> nop
-+00008be0 <[^>]*> nop
-+00008be4 <[^>]*> nop
-+00008be8 <[^>]*> nop
-+00008bec <[^>]*> nop
-+00008bf0 <[^>]*> nop
-+00008bf4 <[^>]*> nop
-+00008bf8 <[^>]*> nop
-+00008bfc <[^>]*> nop
-+00008c00 <[^>]*> nop
-+00008c04 <[^>]*> nop
-+00008c08 <[^>]*> nop
-+00008c0c <[^>]*> nop
-+00008c10 <[^>]*> nop
-+00008c14 <[^>]*> nop
-+00008c18 <[^>]*> nop
-+00008c1c <[^>]*> nop
-+00008c20 <[^>]*> nop
-+00008c24 <[^>]*> nop
-+00008c28 <[^>]*> nop
-+00008c2c <[^>]*> nop
-+00008c30 <[^>]*> nop
-+00008c34 <[^>]*> nop
-+00008c38 <[^>]*> nop
-+00008c3c <[^>]*> nop
-+00008c40 <[^>]*> nop
-+00008c44 <[^>]*> nop
-+00008c48 <[^>]*> nop
-+00008c4c <[^>]*> nop
-+00008c50 <[^>]*> nop
-+00008c54 <[^>]*> nop
-+00008c58 <[^>]*> nop
-+00008c5c <[^>]*> nop
-+00008c60 <[^>]*> nop
-+00008c64 <[^>]*> nop
-+00008c68 <[^>]*> nop
-+00008c6c <[^>]*> nop
-+00008c70 <[^>]*> nop
-+00008c74 <[^>]*> nop
-+00008c78 <[^>]*> nop
-+00008c7c <[^>]*> nop
-+00008c80 <[^>]*> nop
-+00008c84 <[^>]*> nop
-+00008c88 <[^>]*> nop
-+00008c8c <[^>]*> nop
-+00008c90 <[^>]*> nop
-+00008c94 <[^>]*> nop
-+00008c98 <[^>]*> nop
-+00008c9c <[^>]*> nop
-+00008ca0 <[^>]*> nop
-+00008ca4 <[^>]*> nop
-+00008ca8 <[^>]*> nop
-+00008cac <[^>]*> nop
-+00008cb0 <[^>]*> nop
-+00008cb4 <[^>]*> nop
-+00008cb8 <[^>]*> nop
-+00008cbc <[^>]*> nop
-+00008cc0 <[^>]*> nop
-+00008cc4 <[^>]*> nop
-+00008cc8 <[^>]*> nop
-+00008ccc <[^>]*> nop
-+00008cd0 <[^>]*> nop
-+00008cd4 <[^>]*> nop
-+00008cd8 <[^>]*> nop
-+00008cdc <[^>]*> nop
-+00008ce0 <[^>]*> nop
-+00008ce4 <[^>]*> nop
-+00008ce8 <[^>]*> nop
-+00008cec <[^>]*> nop
-+00008cf0 <[^>]*> nop
-+00008cf4 <[^>]*> nop
-+00008cf8 <[^>]*> nop
-+00008cfc <[^>]*> nop
-+00008d00 <[^>]*> nop
-+00008d04 <[^>]*> nop
-+00008d08 <[^>]*> nop
-+00008d0c <[^>]*> nop
-+00008d10 <[^>]*> nop
-+00008d14 <[^>]*> nop
-+00008d18 <[^>]*> nop
-+00008d1c <[^>]*> nop
-+00008d20 <[^>]*> nop
-+00008d24 <[^>]*> nop
-+00008d28 <[^>]*> nop
-+00008d2c <[^>]*> nop
-+00008d30 <[^>]*> nop
-+00008d34 <[^>]*> nop
-+00008d38 <[^>]*> nop
-+00008d3c <[^>]*> nop
-+00008d40 <[^>]*> nop
-+00008d44 <[^>]*> nop
-+00008d48 <[^>]*> nop
-+00008d4c <[^>]*> nop
-+00008d50 <[^>]*> nop
-+00008d54 <[^>]*> nop
-+00008d58 <[^>]*> nop
-+00008d5c <[^>]*> nop
-+00008d60 <[^>]*> nop
-+00008d64 <[^>]*> nop
-+00008d68 <[^>]*> nop
-+00008d6c <[^>]*> nop
-+00008d70 <[^>]*> nop
-+00008d74 <[^>]*> nop
-+00008d78 <[^>]*> nop
-+00008d7c <[^>]*> nop
-+00008d80 <[^>]*> nop
-+00008d84 <[^>]*> nop
-+00008d88 <[^>]*> nop
-+00008d8c <[^>]*> nop
-+00008d90 <[^>]*> nop
-+00008d94 <[^>]*> nop
-+00008d98 <[^>]*> nop
-+00008d9c <[^>]*> nop
-+00008da0 <[^>]*> nop
-+00008da4 <[^>]*> nop
-+00008da8 <[^>]*> nop
-+00008dac <[^>]*> nop
-+00008db0 <[^>]*> nop
-+00008db4 <[^>]*> nop
-+00008db8 <[^>]*> nop
-+00008dbc <[^>]*> nop
-+00008dc0 <[^>]*> nop
-+00008dc4 <[^>]*> nop
-+00008dc8 <[^>]*> nop
-+00008dcc <[^>]*> nop
-+00008dd0 <[^>]*> nop
-+00008dd4 <[^>]*> nop
-+00008dd8 <[^>]*> nop
-+00008ddc <[^>]*> nop
-+00008de0 <[^>]*> nop
-+00008de4 <[^>]*> nop
-+00008de8 <[^>]*> nop
-+00008dec <[^>]*> nop
-+00008df0 <[^>]*> nop
-+00008df4 <[^>]*> nop
-+00008df8 <[^>]*> nop
-+00008dfc <[^>]*> nop
-+00008e00 <[^>]*> nop
-+00008e04 <[^>]*> nop
-+00008e08 <[^>]*> nop
-+00008e0c <[^>]*> nop
-+00008e10 <[^>]*> nop
-+00008e14 <[^>]*> nop
-+00008e18 <[^>]*> nop
-+00008e1c <[^>]*> nop
-+00008e20 <[^>]*> nop
-+00008e24 <[^>]*> nop
-+00008e28 <[^>]*> nop
-+00008e2c <[^>]*> nop
-+00008e30 <[^>]*> nop
-+00008e34 <[^>]*> nop
-+00008e38 <[^>]*> nop
-+00008e3c <[^>]*> nop
-+00008e40 <[^>]*> nop
-+00008e44 <[^>]*> nop
-+00008e48 <[^>]*> nop
-+00008e4c <[^>]*> nop
-+00008e50 <[^>]*> nop
-+00008e54 <[^>]*> nop
-+00008e58 <[^>]*> nop
-+00008e5c <[^>]*> nop
-+00008e60 <[^>]*> nop
-+00008e64 <[^>]*> nop
-+00008e68 <[^>]*> nop
-+00008e6c <[^>]*> nop
-+00008e70 <[^>]*> nop
-+00008e74 <[^>]*> nop
-+00008e78 <[^>]*> nop
-+00008e7c <[^>]*> nop
-+00008e80 <[^>]*> nop
-+00008e84 <[^>]*> nop
-+00008e88 <[^>]*> nop
-+00008e8c <[^>]*> nop
-+00008e90 <[^>]*> nop
-+00008e94 <[^>]*> nop
-+00008e98 <[^>]*> nop
-+00008e9c <[^>]*> nop
-+00008ea0 <[^>]*> nop
-+00008ea4 <[^>]*> nop
-+00008ea8 <[^>]*> nop
-+00008eac <[^>]*> nop
-+00008eb0 <[^>]*> nop
-+00008eb4 <[^>]*> nop
-+00008eb8 <[^>]*> nop
-+00008ebc <[^>]*> nop
-+00008ec0 <[^>]*> nop
-+00008ec4 <[^>]*> nop
-+00008ec8 <[^>]*> nop
-+00008ecc <[^>]*> nop
-+00008ed0 <[^>]*> nop
-+00008ed4 <[^>]*> nop
-+00008ed8 <[^>]*> nop
-+00008edc <[^>]*> nop
-+00008ee0 <[^>]*> nop
-+00008ee4 <[^>]*> nop
-+00008ee8 <[^>]*> nop
-+00008eec <[^>]*> nop
-+00008ef0 <[^>]*> nop
-+00008ef4 <[^>]*> nop
-+00008ef8 <[^>]*> nop
-+00008efc <[^>]*> nop
-+00008f00 <[^>]*> nop
-+00008f04 <[^>]*> nop
-+00008f08 <[^>]*> nop
-+00008f0c <[^>]*> nop
-+00008f10 <[^>]*> nop
-+00008f14 <[^>]*> nop
-+00008f18 <[^>]*> nop
-+00008f1c <[^>]*> nop
-+00008f20 <[^>]*> nop
-+00008f24 <[^>]*> nop
-+00008f28 <[^>]*> nop
-+00008f2c <[^>]*> nop
-+00008f30 <[^>]*> nop
-+00008f34 <[^>]*> nop
-+00008f38 <[^>]*> nop
-+00008f3c <[^>]*> nop
-+00008f40 <[^>]*> nop
-+00008f44 <[^>]*> nop
-+00008f48 <[^>]*> nop
-+00008f4c <[^>]*> nop
-+00008f50 <[^>]*> nop
-+00008f54 <[^>]*> nop
-+00008f58 <[^>]*> nop
-+00008f5c <[^>]*> nop
-+00008f60 <[^>]*> nop
-+00008f64 <[^>]*> nop
-+00008f68 <[^>]*> nop
-+00008f6c <[^>]*> nop
-+00008f70 <[^>]*> nop
-+00008f74 <[^>]*> nop
-+00008f78 <[^>]*> nop
-+00008f7c <[^>]*> nop
-+00008f80 <[^>]*> nop
-+00008f84 <[^>]*> nop
-+00008f88 <[^>]*> nop
-+00008f8c <[^>]*> nop
-+00008f90 <[^>]*> nop
-+00008f94 <[^>]*> nop
-+00008f98 <[^>]*> nop
-+00008f9c <[^>]*> nop
-+00008fa0 <[^>]*> nop
-+00008fa4 <[^>]*> nop
-+00008fa8 <[^>]*> nop
-+00008fac <[^>]*> nop
-+00008fb0 <[^>]*> nop
-+00008fb4 <[^>]*> nop
-+00008fb8 <[^>]*> nop
-+00008fbc <[^>]*> nop
-+00008fc0 <[^>]*> nop
-+00008fc4 <[^>]*> nop
-+00008fc8 <[^>]*> nop
-+00008fcc <[^>]*> nop
-+00008fd0 <[^>]*> nop
-+00008fd4 <[^>]*> nop
-+00008fd8 <[^>]*> nop
-+00008fdc <[^>]*> nop
-+00008fe0 <[^>]*> nop
-+00008fe4 <[^>]*> nop
-+00008fe8 <[^>]*> nop
-+00008fec <[^>]*> nop
-+00008ff0 <[^>]*> nop
-+00008ff4 <[^>]*> nop
-+00008ff8 <[^>]*> nop
-+00008ffc <[^>]*> nop
-+00009000 <[^>]*> nop
-+00009004 <[^>]*> nop
-+00009008 <[^>]*> nop
-+0000900c <[^>]*> nop
-+00009010 <[^>]*> nop
-+00009014 <[^>]*> nop
-+00009018 <[^>]*> nop
-+0000901c <[^>]*> nop
-+00009020 <[^>]*> nop
-+00009024 <[^>]*> nop
-+00009028 <[^>]*> nop
-+0000902c <[^>]*> nop
-+00009030 <[^>]*> nop
-+00009034 <[^>]*> nop
-+00009038 <[^>]*> nop
-+0000903c <[^>]*> nop
-+00009040 <[^>]*> nop
-+00009044 <[^>]*> nop
-+00009048 <[^>]*> nop
-+0000904c <[^>]*> nop
-+00009050 <[^>]*> nop
-+00009054 <[^>]*> nop
-+00009058 <[^>]*> nop
-+0000905c <[^>]*> nop
-+00009060 <[^>]*> nop
-+00009064 <[^>]*> nop
-+00009068 <[^>]*> nop
-+0000906c <[^>]*> nop
-+00009070 <[^>]*> nop
-+00009074 <[^>]*> nop
-+00009078 <[^>]*> nop
-+0000907c <[^>]*> nop
-+00009080 <[^>]*> nop
-+00009084 <[^>]*> nop
-+00009088 <[^>]*> nop
-+0000908c <[^>]*> nop
-+00009090 <[^>]*> nop
-+00009094 <[^>]*> nop
-+00009098 <[^>]*> nop
-+0000909c <[^>]*> nop
-+000090a0 <[^>]*> nop
-+000090a4 <[^>]*> nop
-+000090a8 <[^>]*> nop
-+000090ac <[^>]*> nop
-+000090b0 <[^>]*> nop
-+000090b4 <[^>]*> nop
-+000090b8 <[^>]*> nop
-+000090bc <[^>]*> nop
-+000090c0 <[^>]*> nop
-+000090c4 <[^>]*> nop
-+000090c8 <[^>]*> nop
-+000090cc <[^>]*> nop
-+000090d0 <[^>]*> nop
-+000090d4 <[^>]*> nop
-+000090d8 <[^>]*> nop
-+000090dc <[^>]*> nop
-+000090e0 <[^>]*> nop
-+000090e4 <[^>]*> nop
-+000090e8 <[^>]*> nop
-+000090ec <[^>]*> nop
-+000090f0 <[^>]*> nop
-+000090f4 <[^>]*> nop
-+000090f8 <[^>]*> nop
-+000090fc <[^>]*> nop
-+00009100 <[^>]*> nop
-+00009104 <[^>]*> nop
-+00009108 <[^>]*> nop
-+0000910c <[^>]*> nop
-+00009110 <[^>]*> nop
-+00009114 <[^>]*> nop
-+00009118 <[^>]*> nop
-+0000911c <[^>]*> nop
-+00009120 <[^>]*> nop
-+00009124 <[^>]*> nop
-+00009128 <[^>]*> nop
-+0000912c <[^>]*> nop
-+00009130 <[^>]*> nop
-+00009134 <[^>]*> nop
-+00009138 <[^>]*> nop
-+0000913c <[^>]*> nop
-+00009140 <[^>]*> nop
-+00009144 <[^>]*> nop
-+00009148 <[^>]*> nop
-+0000914c <[^>]*> nop
-+00009150 <[^>]*> nop
-+00009154 <[^>]*> nop
-+00009158 <[^>]*> nop
-+0000915c <[^>]*> nop
-+00009160 <[^>]*> nop
-+00009164 <[^>]*> nop
-+00009168 <[^>]*> nop
-+0000916c <[^>]*> nop
-+00009170 <[^>]*> nop
-+00009174 <[^>]*> nop
-+00009178 <[^>]*> nop
-+0000917c <[^>]*> nop
-+00009180 <[^>]*> nop
-+00009184 <[^>]*> nop
-+00009188 <[^>]*> nop
-+0000918c <[^>]*> nop
-+00009190 <[^>]*> nop
-+00009194 <[^>]*> nop
-+00009198 <[^>]*> nop
-+0000919c <[^>]*> nop
-+000091a0 <[^>]*> nop
-+000091a4 <[^>]*> nop
-+000091a8 <[^>]*> nop
-+000091ac <[^>]*> nop
-+000091b0 <[^>]*> nop
-+000091b4 <[^>]*> nop
-+000091b8 <[^>]*> nop
-+000091bc <[^>]*> nop
-+000091c0 <[^>]*> nop
-+000091c4 <[^>]*> nop
-+000091c8 <[^>]*> nop
-+000091cc <[^>]*> nop
-+000091d0 <[^>]*> nop
-+000091d4 <[^>]*> nop
-+000091d8 <[^>]*> nop
-+000091dc <[^>]*> nop
-+000091e0 <[^>]*> nop
-+000091e4 <[^>]*> nop
-+000091e8 <[^>]*> nop
-+000091ec <[^>]*> nop
-+000091f0 <[^>]*> nop
-+000091f4 <[^>]*> nop
-+000091f8 <[^>]*> nop
-+000091fc <[^>]*> nop
-+00009200 <[^>]*> nop
-+00009204 <[^>]*> nop
-+00009208 <[^>]*> nop
-+0000920c <[^>]*> nop
-+00009210 <[^>]*> nop
-+00009214 <[^>]*> nop
-+00009218 <[^>]*> nop
-+0000921c <[^>]*> nop
-+00009220 <[^>]*> nop
-+00009224 <[^>]*> nop
-+00009228 <[^>]*> nop
-+0000922c <[^>]*> nop
-+00009230 <[^>]*> nop
-+00009234 <[^>]*> nop
-+00009238 <[^>]*> nop
-+0000923c <[^>]*> nop
-+00009240 <[^>]*> nop
-+00009244 <[^>]*> nop
-+00009248 <[^>]*> nop
-+0000924c <[^>]*> nop
-+00009250 <[^>]*> nop
-+00009254 <[^>]*> nop
-+00009258 <[^>]*> nop
-+0000925c <[^>]*> nop
-+00009260 <[^>]*> nop
-+00009264 <[^>]*> nop
-+00009268 <[^>]*> nop
-+0000926c <[^>]*> nop
-+00009270 <[^>]*> nop
-+00009274 <[^>]*> nop
-+00009278 <[^>]*> nop
-+0000927c <[^>]*> nop
-+00009280 <[^>]*> nop
-+00009284 <[^>]*> nop
-+00009288 <[^>]*> nop
-+0000928c <[^>]*> nop
-+00009290 <[^>]*> nop
-+00009294 <[^>]*> nop
-+00009298 <[^>]*> nop
-+0000929c <[^>]*> nop
-+000092a0 <[^>]*> nop
-+000092a4 <[^>]*> nop
-+000092a8 <[^>]*> nop
-+000092ac <[^>]*> nop
-+000092b0 <[^>]*> nop
-+000092b4 <[^>]*> nop
-+000092b8 <[^>]*> nop
-+000092bc <[^>]*> nop
-+000092c0 <[^>]*> nop
-+000092c4 <[^>]*> nop
-+000092c8 <[^>]*> nop
-+000092cc <[^>]*> nop
-+000092d0 <[^>]*> nop
-+000092d4 <[^>]*> nop
-+000092d8 <[^>]*> nop
-+000092dc <[^>]*> nop
-+000092e0 <[^>]*> nop
-+000092e4 <[^>]*> nop
-+000092e8 <[^>]*> nop
-+000092ec <[^>]*> nop
-+000092f0 <[^>]*> nop
-+000092f4 <[^>]*> nop
-+000092f8 <[^>]*> nop
-+000092fc <[^>]*> nop
-+00009300 <[^>]*> nop
-+00009304 <[^>]*> nop
-+00009308 <[^>]*> nop
-+0000930c <[^>]*> nop
-+00009310 <[^>]*> nop
-+00009314 <[^>]*> nop
-+00009318 <[^>]*> nop
-+0000931c <[^>]*> nop
-+00009320 <[^>]*> nop
-+00009324 <[^>]*> nop
-+00009328 <[^>]*> nop
-+0000932c <[^>]*> nop
-+00009330 <[^>]*> nop
-+00009334 <[^>]*> nop
-+00009338 <[^>]*> nop
-+0000933c <[^>]*> nop
-+00009340 <[^>]*> nop
-+00009344 <[^>]*> nop
-+00009348 <[^>]*> nop
-+0000934c <[^>]*> nop
-+00009350 <[^>]*> nop
-+00009354 <[^>]*> nop
-+00009358 <[^>]*> nop
-+0000935c <[^>]*> nop
-+00009360 <[^>]*> nop
-+00009364 <[^>]*> nop
-+00009368 <[^>]*> nop
-+0000936c <[^>]*> nop
-+00009370 <[^>]*> nop
-+00009374 <[^>]*> nop
-+00009378 <[^>]*> nop
-+0000937c <[^>]*> nop
-+00009380 <[^>]*> nop
-+00009384 <[^>]*> nop
-+00009388 <[^>]*> nop
-+0000938c <[^>]*> nop
-+00009390 <[^>]*> nop
-+00009394 <[^>]*> nop
-+00009398 <[^>]*> nop
-+0000939c <[^>]*> nop
-+000093a0 <[^>]*> nop
-+000093a4 <[^>]*> nop
-+000093a8 <[^>]*> nop
-+000093ac <[^>]*> nop
-+000093b0 <[^>]*> nop
-+000093b4 <[^>]*> nop
-+000093b8 <[^>]*> nop
-+000093bc <[^>]*> nop
-+000093c0 <[^>]*> nop
-+000093c4 <[^>]*> nop
-+000093c8 <[^>]*> nop
-+000093cc <[^>]*> nop
-+000093d0 <[^>]*> nop
-+000093d4 <[^>]*> nop
-+000093d8 <[^>]*> nop
-+000093dc <[^>]*> nop
-+000093e0 <[^>]*> nop
-+000093e4 <[^>]*> nop
-+000093e8 <[^>]*> nop
-+000093ec <[^>]*> nop
-+000093f0 <[^>]*> nop
-+000093f4 <[^>]*> nop
-+000093f8 <[^>]*> nop
-+000093fc <[^>]*> nop
-+00009400 <[^>]*> nop
-+00009404 <[^>]*> nop
-+00009408 <[^>]*> nop
-+0000940c <[^>]*> nop
-+00009410 <[^>]*> nop
-+00009414 <[^>]*> nop
-+00009418 <[^>]*> nop
-+0000941c <[^>]*> nop
-+00009420 <[^>]*> nop
-+00009424 <[^>]*> nop
-+00009428 <[^>]*> nop
-+0000942c <[^>]*> nop
-+00009430 <[^>]*> nop
-+00009434 <[^>]*> nop
-+00009438 <[^>]*> nop
-+0000943c <[^>]*> nop
-+00009440 <[^>]*> nop
-+00009444 <[^>]*> nop
-+00009448 <[^>]*> nop
-+0000944c <[^>]*> nop
-+00009450 <[^>]*> nop
-+00009454 <[^>]*> nop
-+00009458 <[^>]*> nop
-+0000945c <[^>]*> nop
-+00009460 <[^>]*> nop
-+00009464 <[^>]*> nop
-+00009468 <[^>]*> nop
-+0000946c <[^>]*> nop
-+00009470 <[^>]*> nop
-+00009474 <[^>]*> nop
-+00009478 <[^>]*> nop
-+0000947c <[^>]*> nop
-+00009480 <[^>]*> nop
-+00009484 <[^>]*> nop
-+00009488 <[^>]*> nop
-+0000948c <[^>]*> nop
-+00009490 <[^>]*> nop
-+00009494 <[^>]*> nop
-+00009498 <[^>]*> nop
-+0000949c <[^>]*> nop
-+000094a0 <[^>]*> nop
-+000094a4 <[^>]*> nop
-+000094a8 <[^>]*> nop
-+000094ac <[^>]*> nop
-+000094b0 <[^>]*> nop
-+000094b4 <[^>]*> nop
-+000094b8 <[^>]*> nop
-+000094bc <[^>]*> nop
-+000094c0 <[^>]*> nop
-+000094c4 <[^>]*> nop
-+000094c8 <[^>]*> nop
-+000094cc <[^>]*> nop
-+000094d0 <[^>]*> nop
-+000094d4 <[^>]*> nop
-+000094d8 <[^>]*> nop
-+000094dc <[^>]*> nop
-+000094e0 <[^>]*> nop
-+000094e4 <[^>]*> nop
-+000094e8 <[^>]*> nop
-+000094ec <[^>]*> nop
-+000094f0 <[^>]*> nop
-+000094f4 <[^>]*> nop
-+000094f8 <[^>]*> nop
-+000094fc <[^>]*> nop
-+00009500 <[^>]*> nop
-+00009504 <[^>]*> nop
-+00009508 <[^>]*> nop
-+0000950c <[^>]*> nop
-+00009510 <[^>]*> nop
-+00009514 <[^>]*> nop
-+00009518 <[^>]*> nop
-+0000951c <[^>]*> nop
-+00009520 <[^>]*> nop
-+00009524 <[^>]*> nop
-+00009528 <[^>]*> nop
-+0000952c <[^>]*> nop
-+00009530 <[^>]*> nop
-+00009534 <[^>]*> nop
-+00009538 <[^>]*> nop
-+0000953c <[^>]*> nop
-+00009540 <[^>]*> nop
-+00009544 <[^>]*> nop
-+00009548 <[^>]*> nop
-+0000954c <[^>]*> nop
-+00009550 <[^>]*> nop
-+00009554 <[^>]*> nop
-+00009558 <[^>]*> nop
-+0000955c <[^>]*> nop
-+00009560 <[^>]*> nop
-+00009564 <[^>]*> nop
-+00009568 <[^>]*> nop
-+0000956c <[^>]*> nop
-+00009570 <[^>]*> nop
-+00009574 <[^>]*> nop
-+00009578 <[^>]*> nop
-+0000957c <[^>]*> nop
-+00009580 <[^>]*> nop
-+00009584 <[^>]*> nop
-+00009588 <[^>]*> nop
-+0000958c <[^>]*> nop
-+00009590 <[^>]*> nop
-+00009594 <[^>]*> nop
-+00009598 <[^>]*> nop
-+0000959c <[^>]*> nop
-+000095a0 <[^>]*> nop
-+000095a4 <[^>]*> nop
-+000095a8 <[^>]*> nop
-+000095ac <[^>]*> nop
-+000095b0 <[^>]*> nop
-+000095b4 <[^>]*> nop
-+000095b8 <[^>]*> nop
-+000095bc <[^>]*> nop
-+000095c0 <[^>]*> nop
-+000095c4 <[^>]*> nop
-+000095c8 <[^>]*> nop
-+000095cc <[^>]*> nop
-+000095d0 <[^>]*> nop
-+000095d4 <[^>]*> nop
-+000095d8 <[^>]*> nop
-+000095dc <[^>]*> nop
-+000095e0 <[^>]*> nop
-+000095e4 <[^>]*> nop
-+000095e8 <[^>]*> nop
-+000095ec <[^>]*> nop
-+000095f0 <[^>]*> nop
-+000095f4 <[^>]*> nop
-+000095f8 <[^>]*> nop
-+000095fc <[^>]*> nop
-+00009600 <[^>]*> nop
-+00009604 <[^>]*> nop
-+00009608 <[^>]*> nop
-+0000960c <[^>]*> nop
-+00009610 <[^>]*> nop
-+00009614 <[^>]*> nop
-+00009618 <[^>]*> nop
-+0000961c <[^>]*> nop
-+00009620 <[^>]*> nop
-+00009624 <[^>]*> nop
-+00009628 <[^>]*> nop
-+0000962c <[^>]*> nop
-+00009630 <[^>]*> nop
-+00009634 <[^>]*> nop
-+00009638 <[^>]*> nop
-+0000963c <[^>]*> nop
-+00009640 <[^>]*> nop
-+00009644 <[^>]*> nop
-+00009648 <[^>]*> nop
-+0000964c <[^>]*> nop
-+00009650 <[^>]*> nop
-+00009654 <[^>]*> nop
-+00009658 <[^>]*> nop
-+0000965c <[^>]*> nop
-+00009660 <[^>]*> nop
-+00009664 <[^>]*> nop
-+00009668 <[^>]*> nop
-+0000966c <[^>]*> nop
-+00009670 <[^>]*> nop
-+00009674 <[^>]*> nop
-+00009678 <[^>]*> nop
-+0000967c <[^>]*> nop
-+00009680 <[^>]*> nop
-+00009684 <[^>]*> nop
-+00009688 <[^>]*> nop
-+0000968c <[^>]*> nop
-+00009690 <[^>]*> nop
-+00009694 <[^>]*> nop
-+00009698 <[^>]*> nop
-+0000969c <[^>]*> nop
-+000096a0 <[^>]*> nop
-+000096a4 <[^>]*> nop
-+000096a8 <[^>]*> nop
-+000096ac <[^>]*> nop
-+000096b0 <[^>]*> nop
-+000096b4 <[^>]*> nop
-+000096b8 <[^>]*> nop
-+000096bc <[^>]*> nop
-+000096c0 <[^>]*> nop
-+000096c4 <[^>]*> nop
-+000096c8 <[^>]*> nop
-+000096cc <[^>]*> nop
-+000096d0 <[^>]*> nop
-+000096d4 <[^>]*> nop
-+000096d8 <[^>]*> nop
-+000096dc <[^>]*> nop
-+000096e0 <[^>]*> nop
-+000096e4 <[^>]*> nop
-+000096e8 <[^>]*> nop
-+000096ec <[^>]*> nop
-+000096f0 <[^>]*> nop
-+000096f4 <[^>]*> nop
-+000096f8 <[^>]*> nop
-+000096fc <[^>]*> nop
-+00009700 <[^>]*> nop
-+00009704 <[^>]*> nop
-+00009708 <[^>]*> nop
-+0000970c <[^>]*> nop
-+00009710 <[^>]*> nop
-+00009714 <[^>]*> nop
-+00009718 <[^>]*> nop
-+0000971c <[^>]*> nop
-+00009720 <[^>]*> nop
-+00009724 <[^>]*> nop
-+00009728 <[^>]*> nop
-+0000972c <[^>]*> nop
-+00009730 <[^>]*> nop
-+00009734 <[^>]*> nop
-+00009738 <[^>]*> nop
-+0000973c <[^>]*> nop
-+00009740 <[^>]*> nop
-+00009744 <[^>]*> nop
-+00009748 <[^>]*> nop
-+0000974c <[^>]*> nop
-+00009750 <[^>]*> nop
-+00009754 <[^>]*> nop
-+00009758 <[^>]*> nop
-+0000975c <[^>]*> nop
-+00009760 <[^>]*> nop
-+00009764 <[^>]*> nop
-+00009768 <[^>]*> nop
-+0000976c <[^>]*> nop
-+00009770 <[^>]*> nop
-+00009774 <[^>]*> nop
-+00009778 <[^>]*> nop
-+0000977c <[^>]*> nop
-+00009780 <[^>]*> nop
-+00009784 <[^>]*> nop
-+00009788 <[^>]*> nop
-+0000978c <[^>]*> nop
-+00009790 <[^>]*> nop
-+00009794 <[^>]*> nop
-+00009798 <[^>]*> nop
-+0000979c <[^>]*> nop
-+000097a0 <[^>]*> nop
-+000097a4 <[^>]*> nop
-+000097a8 <[^>]*> nop
-+000097ac <[^>]*> nop
-+000097b0 <[^>]*> nop
-+000097b4 <[^>]*> nop
-+000097b8 <[^>]*> nop
-+000097bc <[^>]*> nop
-+000097c0 <[^>]*> nop
-+000097c4 <[^>]*> nop
-+000097c8 <[^>]*> nop
-+000097cc <[^>]*> nop
-+000097d0 <[^>]*> nop
-+000097d4 <[^>]*> nop
-+000097d8 <[^>]*> nop
-+000097dc <[^>]*> nop
-+000097e0 <[^>]*> nop
-+000097e4 <[^>]*> nop
-+000097e8 <[^>]*> nop
-+000097ec <[^>]*> nop
-+000097f0 <[^>]*> nop
-+000097f4 <[^>]*> nop
-+000097f8 <[^>]*> nop
-+000097fc <[^>]*> nop
-+00009800 <[^>]*> nop
-+00009804 <[^>]*> nop
-+00009808 <[^>]*> nop
-+0000980c <[^>]*> nop
-+00009810 <[^>]*> nop
-+00009814 <[^>]*> nop
-+00009818 <[^>]*> nop
-+0000981c <[^>]*> nop
-+00009820 <[^>]*> nop
-+00009824 <[^>]*> nop
-+00009828 <[^>]*> nop
-+0000982c <[^>]*> nop
-+00009830 <[^>]*> nop
-+00009834 <[^>]*> nop
-+00009838 <[^>]*> nop
-+0000983c <[^>]*> nop
-+00009840 <[^>]*> nop
-+00009844 <[^>]*> nop
-+00009848 <[^>]*> nop
-+0000984c <[^>]*> nop
-+00009850 <[^>]*> nop
-+00009854 <[^>]*> nop
-+00009858 <[^>]*> nop
-+0000985c <[^>]*> nop
-+00009860 <[^>]*> nop
-+00009864 <[^>]*> nop
-+00009868 <[^>]*> nop
-+0000986c <[^>]*> nop
-+00009870 <[^>]*> nop
-+00009874 <[^>]*> nop
-+00009878 <[^>]*> nop
-+0000987c <[^>]*> nop
-+00009880 <[^>]*> nop
-+00009884 <[^>]*> nop
-+00009888 <[^>]*> nop
-+0000988c <[^>]*> nop
-+00009890 <[^>]*> nop
-+00009894 <[^>]*> nop
-+00009898 <[^>]*> nop
-+0000989c <[^>]*> nop
-+000098a0 <[^>]*> nop
-+000098a4 <[^>]*> nop
-+000098a8 <[^>]*> nop
-+000098ac <[^>]*> nop
-+000098b0 <[^>]*> nop
-+000098b4 <[^>]*> nop
-+000098b8 <[^>]*> nop
-+000098bc <[^>]*> nop
-+000098c0 <[^>]*> nop
-+000098c4 <[^>]*> nop
-+000098c8 <[^>]*> nop
-+000098cc <[^>]*> nop
-+000098d0 <[^>]*> nop
-+000098d4 <[^>]*> nop
-+000098d8 <[^>]*> nop
-+000098dc <[^>]*> nop
-+000098e0 <[^>]*> nop
-+000098e4 <[^>]*> nop
-+000098e8 <[^>]*> nop
-+000098ec <[^>]*> nop
-+000098f0 <[^>]*> nop
-+000098f4 <[^>]*> nop
-+000098f8 <[^>]*> nop
-+000098fc <[^>]*> nop
-+00009900 <[^>]*> nop
-+00009904 <[^>]*> nop
-+00009908 <[^>]*> nop
-+0000990c <[^>]*> nop
-+00009910 <[^>]*> nop
-+00009914 <[^>]*> nop
-+00009918 <[^>]*> nop
-+0000991c <[^>]*> nop
-+00009920 <[^>]*> nop
-+00009924 <[^>]*> nop
-+00009928 <[^>]*> nop
-+0000992c <[^>]*> nop
-+00009930 <[^>]*> nop
-+00009934 <[^>]*> nop
-+00009938 <[^>]*> nop
-+0000993c <[^>]*> nop
-+00009940 <[^>]*> nop
-+00009944 <[^>]*> nop
-+00009948 <[^>]*> nop
-+0000994c <[^>]*> nop
-+00009950 <[^>]*> nop
-+00009954 <[^>]*> nop
-+00009958 <[^>]*> nop
-+0000995c <[^>]*> nop
-+00009960 <[^>]*> nop
-+00009964 <[^>]*> nop
-+00009968 <[^>]*> nop
-+0000996c <[^>]*> nop
-+00009970 <[^>]*> nop
-+00009974 <[^>]*> nop
-+00009978 <[^>]*> nop
-+0000997c <[^>]*> nop
-+00009980 <[^>]*> nop
-+00009984 <[^>]*> nop
-+00009988 <[^>]*> nop
-+0000998c <[^>]*> nop
-+00009990 <[^>]*> nop
-+00009994 <[^>]*> nop
-+00009998 <[^>]*> nop
-+0000999c <[^>]*> nop
-+000099a0 <[^>]*> nop
-+000099a4 <[^>]*> nop
-+000099a8 <[^>]*> nop
-+000099ac <[^>]*> nop
-+000099b0 <[^>]*> nop
-+000099b4 <[^>]*> nop
-+000099b8 <[^>]*> nop
-+000099bc <[^>]*> nop
-+000099c0 <[^>]*> nop
-+000099c4 <[^>]*> nop
-+000099c8 <[^>]*> nop
-+000099cc <[^>]*> nop
-+000099d0 <[^>]*> nop
-+000099d4 <[^>]*> nop
-+000099d8 <[^>]*> nop
-+000099dc <[^>]*> nop
-+000099e0 <[^>]*> nop
-+000099e4 <[^>]*> nop
-+000099e8 <[^>]*> nop
-+000099ec <[^>]*> nop
-+000099f0 <[^>]*> nop
-+000099f4 <[^>]*> nop
-+000099f8 <[^>]*> nop
-+000099fc <[^>]*> nop
-+00009a00 <[^>]*> nop
-+00009a04 <[^>]*> nop
-+00009a08 <[^>]*> nop
-+00009a0c <[^>]*> nop
-+00009a10 <[^>]*> nop
-+00009a14 <[^>]*> nop
-+00009a18 <[^>]*> nop
-+00009a1c <[^>]*> nop
-+00009a20 <[^>]*> nop
-+00009a24 <[^>]*> nop
-+00009a28 <[^>]*> nop
-+00009a2c <[^>]*> nop
-+00009a30 <[^>]*> nop
-+00009a34 <[^>]*> nop
-+00009a38 <[^>]*> nop
-+00009a3c <[^>]*> nop
-+00009a40 <[^>]*> nop
-+00009a44 <[^>]*> nop
-+00009a48 <[^>]*> nop
-+00009a4c <[^>]*> nop
-+00009a50 <[^>]*> nop
-+00009a54 <[^>]*> nop
-+00009a58 <[^>]*> nop
-+00009a5c <[^>]*> nop
-+00009a60 <[^>]*> nop
-+00009a64 <[^>]*> nop
-+00009a68 <[^>]*> nop
-+00009a6c <[^>]*> nop
-+00009a70 <[^>]*> nop
-+00009a74 <[^>]*> nop
-+00009a78 <[^>]*> nop
-+00009a7c <[^>]*> nop
-+00009a80 <[^>]*> nop
-+00009a84 <[^>]*> nop
-+00009a88 <[^>]*> nop
-+00009a8c <[^>]*> nop
-+00009a90 <[^>]*> nop
-+00009a94 <[^>]*> nop
-+00009a98 <[^>]*> nop
-+00009a9c <[^>]*> nop
-+00009aa0 <[^>]*> nop
-+00009aa4 <[^>]*> nop
-+00009aa8 <[^>]*> nop
-+00009aac <[^>]*> nop
-+00009ab0 <[^>]*> nop
-+00009ab4 <[^>]*> nop
-+00009ab8 <[^>]*> nop
-+00009abc <[^>]*> nop
-+00009ac0 <[^>]*> nop
-+00009ac4 <[^>]*> nop
-+00009ac8 <[^>]*> nop
-+00009acc <[^>]*> nop
-+00009ad0 <[^>]*> nop
-+00009ad4 <[^>]*> nop
-+00009ad8 <[^>]*> nop
-+00009adc <[^>]*> nop
-+00009ae0 <[^>]*> nop
-+00009ae4 <[^>]*> nop
-+00009ae8 <[^>]*> nop
-+00009aec <[^>]*> nop
-+00009af0 <[^>]*> nop
-+00009af4 <[^>]*> nop
-+00009af8 <[^>]*> nop
-+00009afc <[^>]*> nop
-+00009b00 <[^>]*> nop
-+00009b04 <[^>]*> nop
-+00009b08 <[^>]*> nop
-+00009b0c <[^>]*> nop
-+00009b10 <[^>]*> nop
-+00009b14 <[^>]*> nop
-+00009b18 <[^>]*> nop
-+00009b1c <[^>]*> nop
-+00009b20 <[^>]*> nop
-+00009b24 <[^>]*> nop
-+00009b28 <[^>]*> nop
-+00009b2c <[^>]*> nop
-+00009b30 <[^>]*> nop
-+00009b34 <[^>]*> nop
-+00009b38 <[^>]*> nop
-+00009b3c <[^>]*> nop
-+00009b40 <[^>]*> nop
-+00009b44 <[^>]*> nop
-+00009b48 <[^>]*> nop
-+00009b4c <[^>]*> nop
-+00009b50 <[^>]*> nop
-+00009b54 <[^>]*> nop
-+00009b58 <[^>]*> nop
-+00009b5c <[^>]*> nop
-+00009b60 <[^>]*> nop
-+00009b64 <[^>]*> nop
-+00009b68 <[^>]*> nop
-+00009b6c <[^>]*> nop
-+00009b70 <[^>]*> nop
-+00009b74 <[^>]*> nop
-+00009b78 <[^>]*> nop
-+00009b7c <[^>]*> nop
-+00009b80 <[^>]*> nop
-+00009b84 <[^>]*> nop
-+00009b88 <[^>]*> nop
-+00009b8c <[^>]*> nop
-+00009b90 <[^>]*> nop
-+00009b94 <[^>]*> nop
-+00009b98 <[^>]*> nop
-+00009b9c <[^>]*> nop
-+00009ba0 <[^>]*> nop
-+00009ba4 <[^>]*> nop
-+00009ba8 <[^>]*> nop
-+00009bac <[^>]*> nop
-+00009bb0 <[^>]*> nop
-+00009bb4 <[^>]*> nop
-+00009bb8 <[^>]*> nop
-+00009bbc <[^>]*> nop
-+00009bc0 <[^>]*> nop
-+00009bc4 <[^>]*> nop
-+00009bc8 <[^>]*> nop
-+00009bcc <[^>]*> nop
-+00009bd0 <[^>]*> nop
-+00009bd4 <[^>]*> nop
-+00009bd8 <[^>]*> nop
-+00009bdc <[^>]*> nop
-+00009be0 <[^>]*> nop
-+00009be4 <[^>]*> nop
-+00009be8 <[^>]*> nop
-+00009bec <[^>]*> nop
-+00009bf0 <[^>]*> nop
-+00009bf4 <[^>]*> nop
-+00009bf8 <[^>]*> nop
-+00009bfc <[^>]*> nop
-+00009c00 <[^>]*> nop
-+00009c04 <[^>]*> nop
-+00009c08 <[^>]*> nop
-+00009c0c <[^>]*> nop
-+00009c10 <[^>]*> nop
-+00009c14 <[^>]*> nop
-+00009c18 <[^>]*> nop
-+00009c1c <[^>]*> nop
-+00009c20 <[^>]*> nop
-+00009c24 <[^>]*> nop
-+00009c28 <[^>]*> nop
-+00009c2c <[^>]*> nop
-+00009c30 <[^>]*> nop
-+00009c34 <[^>]*> nop
-+00009c38 <[^>]*> nop
-+00009c3c <[^>]*> nop
-+00009c40 <[^>]*> nop
-+00009c44 <[^>]*> nop
-+00009c48 <[^>]*> nop
-+00009c4c <[^>]*> nop
-+00009c50 <[^>]*> nop
-+00009c54 <[^>]*> nop
-+00009c58 <[^>]*> nop
-+00009c5c <[^>]*> nop
-+00009c60 <[^>]*> nop
-+00009c64 <[^>]*> nop
-+00009c68 <[^>]*> nop
-+00009c6c <[^>]*> nop
-+00009c70 <[^>]*> nop
-+00009c74 <[^>]*> nop
-+00009c78 <[^>]*> nop
-+00009c7c <[^>]*> nop
-+00009c80 <[^>]*> nop
-+00009c84 <[^>]*> nop
-+00009c88 <[^>]*> nop
-+00009c8c <[^>]*> nop
-+00009c90 <[^>]*> nop
-+00009c94 <[^>]*> nop
-+00009c98 <[^>]*> nop
-+00009c9c <[^>]*> nop
-+00009ca0 <[^>]*> nop
-+00009ca4 <[^>]*> nop
-+00009ca8 <[^>]*> nop
-+00009cac <[^>]*> nop
-+00009cb0 <[^>]*> nop
-+00009cb4 <[^>]*> nop
-+00009cb8 <[^>]*> nop
-+00009cbc <[^>]*> nop
-+00009cc0 <[^>]*> nop
-+00009cc4 <[^>]*> nop
-+00009cc8 <[^>]*> nop
-+00009ccc <[^>]*> nop
-+00009cd0 <[^>]*> nop
-+00009cd4 <[^>]*> nop
-+00009cd8 <[^>]*> nop
-+00009cdc <[^>]*> nop
-+00009ce0 <[^>]*> nop
-+00009ce4 <[^>]*> nop
-+00009ce8 <[^>]*> nop
-+00009cec <[^>]*> nop
-+00009cf0 <[^>]*> nop
-+00009cf4 <[^>]*> nop
-+00009cf8 <[^>]*> nop
-+00009cfc <[^>]*> nop
-+00009d00 <[^>]*> nop
-+00009d04 <[^>]*> nop
-+00009d08 <[^>]*> nop
-+00009d0c <[^>]*> nop
-+00009d10 <[^>]*> nop
-+00009d14 <[^>]*> nop
-+00009d18 <[^>]*> nop
-+00009d1c <[^>]*> nop
-+00009d20 <[^>]*> nop
-+00009d24 <[^>]*> nop
-+00009d28 <[^>]*> nop
-+00009d2c <[^>]*> nop
-+00009d30 <[^>]*> nop
-+00009d34 <[^>]*> nop
-+00009d38 <[^>]*> nop
-+00009d3c <[^>]*> nop
-+00009d40 <[^>]*> nop
-+00009d44 <[^>]*> nop
-+00009d48 <[^>]*> nop
-+00009d4c <[^>]*> nop
-+00009d50 <[^>]*> nop
-+00009d54 <[^>]*> nop
-+00009d58 <[^>]*> nop
-+00009d5c <[^>]*> nop
-+00009d60 <[^>]*> nop
-+00009d64 <[^>]*> nop
-+00009d68 <[^>]*> nop
-+00009d6c <[^>]*> nop
-+00009d70 <[^>]*> nop
-+00009d74 <[^>]*> nop
-+00009d78 <[^>]*> nop
-+00009d7c <[^>]*> nop
-+00009d80 <[^>]*> nop
-+00009d84 <[^>]*> nop
-+00009d88 <[^>]*> nop
-+00009d8c <[^>]*> nop
-+00009d90 <[^>]*> nop
-+00009d94 <[^>]*> nop
-+00009d98 <[^>]*> nop
-+00009d9c <[^>]*> nop
-+00009da0 <[^>]*> nop
-+00009da4 <[^>]*> nop
-+00009da8 <[^>]*> nop
-+00009dac <[^>]*> nop
-+00009db0 <[^>]*> nop
-+00009db4 <[^>]*> nop
-+00009db8 <[^>]*> nop
-+00009dbc <[^>]*> nop
-+00009dc0 <[^>]*> nop
-+00009dc4 <[^>]*> nop
-+00009dc8 <[^>]*> nop
-+00009dcc <[^>]*> nop
-+00009dd0 <[^>]*> nop
-+00009dd4 <[^>]*> nop
-+00009dd8 <[^>]*> nop
-+00009ddc <[^>]*> nop
-+00009de0 <[^>]*> nop
-+00009de4 <[^>]*> nop
-+00009de8 <[^>]*> nop
-+00009dec <[^>]*> nop
-+00009df0 <[^>]*> nop
-+00009df4 <[^>]*> nop
-+00009df8 <[^>]*> nop
-+00009dfc <[^>]*> nop
-+00009e00 <[^>]*> nop
-+00009e04 <[^>]*> nop
-+00009e08 <[^>]*> nop
-+00009e0c <[^>]*> nop
-+00009e10 <[^>]*> nop
-+00009e14 <[^>]*> nop
-+00009e18 <[^>]*> nop
-+00009e1c <[^>]*> nop
-+00009e20 <[^>]*> nop
-+00009e24 <[^>]*> nop
-+00009e28 <[^>]*> nop
-+00009e2c <[^>]*> nop
-+00009e30 <[^>]*> nop
-+00009e34 <[^>]*> nop
-+00009e38 <[^>]*> nop
-+00009e3c <[^>]*> nop
-+00009e40 <[^>]*> nop
-+00009e44 <[^>]*> nop
-+00009e48 <[^>]*> nop
-+00009e4c <[^>]*> nop
-+00009e50 <[^>]*> nop
-+00009e54 <[^>]*> nop
-+00009e58 <[^>]*> nop
-+00009e5c <[^>]*> nop
-+00009e60 <[^>]*> nop
-+00009e64 <[^>]*> nop
-+00009e68 <[^>]*> nop
-+00009e6c <[^>]*> nop
-+00009e70 <[^>]*> nop
-+00009e74 <[^>]*> nop
-+00009e78 <[^>]*> nop
-+00009e7c <[^>]*> nop
-+00009e80 <[^>]*> nop
-+00009e84 <[^>]*> nop
-+00009e88 <[^>]*> nop
-+00009e8c <[^>]*> nop
-+00009e90 <[^>]*> nop
-+00009e94 <[^>]*> nop
-+00009e98 <[^>]*> nop
-+00009e9c <[^>]*> nop
-+00009ea0 <[^>]*> nop
-+00009ea4 <[^>]*> nop
-+00009ea8 <[^>]*> nop
-+00009eac <[^>]*> nop
-+00009eb0 <[^>]*> nop
-+00009eb4 <[^>]*> nop
-+00009eb8 <[^>]*> nop
-+00009ebc <[^>]*> nop
-+00009ec0 <[^>]*> nop
-+00009ec4 <[^>]*> nop
-+00009ec8 <[^>]*> nop
-+00009ecc <[^>]*> nop
-+00009ed0 <[^>]*> nop
-+00009ed4 <[^>]*> nop
-+00009ed8 <[^>]*> nop
-+00009edc <[^>]*> nop
-+00009ee0 <[^>]*> nop
-+00009ee4 <[^>]*> nop
-+00009ee8 <[^>]*> nop
-+00009eec <[^>]*> nop
-+00009ef0 <[^>]*> nop
-+00009ef4 <[^>]*> nop
-+00009ef8 <[^>]*> nop
-+00009efc <[^>]*> nop
-+00009f00 <[^>]*> nop
-+00009f04 <[^>]*> nop
-+00009f08 <[^>]*> nop
-+00009f0c <[^>]*> nop
-+00009f10 <[^>]*> nop
-+00009f14 <[^>]*> nop
-+00009f18 <[^>]*> nop
-+00009f1c <[^>]*> nop
-+00009f20 <[^>]*> nop
-+00009f24 <[^>]*> nop
-+00009f28 <[^>]*> nop
-+00009f2c <[^>]*> nop
-+00009f30 <[^>]*> nop
-+00009f34 <[^>]*> nop
-+00009f38 <[^>]*> nop
-+00009f3c <[^>]*> nop
-+00009f40 <[^>]*> nop
-+00009f44 <[^>]*> nop
-+00009f48 <[^>]*> nop
-+00009f4c <[^>]*> nop
-+00009f50 <[^>]*> nop
-+00009f54 <[^>]*> nop
-+00009f58 <[^>]*> nop
-+00009f5c <[^>]*> nop
-+00009f60 <[^>]*> nop
-+00009f64 <[^>]*> nop
-+00009f68 <[^>]*> nop
-+00009f6c <[^>]*> nop
-+00009f70 <[^>]*> nop
-+00009f74 <[^>]*> nop
-+00009f78 <[^>]*> nop
-+00009f7c <[^>]*> nop
-+00009f80 <[^>]*> nop
-+00009f84 <[^>]*> nop
-+00009f88 <[^>]*> nop
-+00009f8c <[^>]*> nop
-+00009f90 <[^>]*> nop
-+00009f94 <[^>]*> nop
-+00009f98 <[^>]*> nop
-+00009f9c <[^>]*> nop
-+00009fa0 <[^>]*> nop
-+00009fa4 <[^>]*> nop
-+00009fa8 <[^>]*> nop
-+00009fac <[^>]*> nop
-+00009fb0 <[^>]*> nop
-+00009fb4 <[^>]*> nop
-+00009fb8 <[^>]*> nop
-+00009fbc <[^>]*> nop
-+00009fc0 <[^>]*> nop
-+00009fc4 <[^>]*> nop
-+00009fc8 <[^>]*> nop
-+00009fcc <[^>]*> nop
-+00009fd0 <[^>]*> nop
-+00009fd4 <[^>]*> nop
-+00009fd8 <[^>]*> nop
-+00009fdc <[^>]*> nop
-+00009fe0 <[^>]*> nop
-+00009fe4 <[^>]*> nop
-+00009fe8 <[^>]*> nop
-+00009fec <[^>]*> nop
-+00009ff0 <[^>]*> nop
-+00009ff4 <[^>]*> nop
-+00009ff8 <[^>]*> nop
-+00009ffc <[^>]*> nop
-+0000a000 <[^>]*> nop
-+0000a004 <[^>]*> nop
-+0000a008 <[^>]*> nop
-+0000a00c <[^>]*> nop
-+0000a010 <[^>]*> nop
-+0000a014 <[^>]*> nop
-+0000a018 <[^>]*> nop
-+0000a01c <[^>]*> nop
-+0000a020 <[^>]*> nop
-+0000a024 <[^>]*> nop
-+0000a028 <[^>]*> nop
-+0000a02c <[^>]*> nop
-+0000a030 <[^>]*> nop
-+0000a034 <[^>]*> nop
-+0000a038 <[^>]*> nop
-+0000a03c <[^>]*> nop
-+0000a040 <[^>]*> nop
-+0000a044 <[^>]*> nop
-+0000a048 <[^>]*> nop
-+0000a04c <[^>]*> nop
-+0000a050 <[^>]*> nop
-+0000a054 <[^>]*> nop
-+0000a058 <[^>]*> nop
-+0000a05c <[^>]*> nop
-+0000a060 <[^>]*> nop
-+0000a064 <[^>]*> nop
-+0000a068 <[^>]*> nop
-+0000a06c <[^>]*> nop
-+0000a070 <[^>]*> nop
-+0000a074 <[^>]*> nop
-+0000a078 <[^>]*> nop
-+0000a07c <[^>]*> nop
-+0000a080 <[^>]*> nop
-+0000a084 <[^>]*> nop
-+0000a088 <[^>]*> nop
-+0000a08c <[^>]*> nop
-+0000a090 <[^>]*> nop
-+0000a094 <[^>]*> nop
-+0000a098 <[^>]*> nop
-+0000a09c <[^>]*> nop
-+0000a0a0 <[^>]*> nop
-+0000a0a4 <[^>]*> nop
-+0000a0a8 <[^>]*> nop
-+0000a0ac <[^>]*> nop
-+0000a0b0 <[^>]*> nop
-+0000a0b4 <[^>]*> nop
-+0000a0b8 <[^>]*> nop
-+0000a0bc <[^>]*> nop
-+0000a0c0 <[^>]*> nop
-+0000a0c4 <[^>]*> nop
-+0000a0c8 <[^>]*> nop
-+0000a0cc <[^>]*> nop
-+0000a0d0 <[^>]*> nop
-+0000a0d4 <[^>]*> nop
-+0000a0d8 <[^>]*> nop
-+0000a0dc <[^>]*> nop
-+0000a0e0 <[^>]*> nop
-+0000a0e4 <[^>]*> nop
-+0000a0e8 <[^>]*> nop
-+0000a0ec <[^>]*> nop
-+0000a0f0 <[^>]*> nop
-+0000a0f4 <[^>]*> nop
-+0000a0f8 <[^>]*> nop
-+0000a0fc <[^>]*> nop
-+0000a100 <[^>]*> nop
-+0000a104 <[^>]*> nop
-+0000a108 <[^>]*> nop
-+0000a10c <[^>]*> nop
-+0000a110 <[^>]*> nop
-+0000a114 <[^>]*> nop
-+0000a118 <[^>]*> nop
-+0000a11c <[^>]*> nop
-+0000a120 <[^>]*> nop
-+0000a124 <[^>]*> nop
-+0000a128 <[^>]*> nop
-+0000a12c <[^>]*> nop
-+0000a130 <[^>]*> nop
-+0000a134 <[^>]*> nop
-+0000a138 <[^>]*> nop
-+0000a13c <[^>]*> nop
-+0000a140 <[^>]*> nop
-+0000a144 <[^>]*> nop
-+0000a148 <[^>]*> nop
-+0000a14c <[^>]*> nop
-+0000a150 <[^>]*> nop
-+0000a154 <[^>]*> nop
-+0000a158 <[^>]*> nop
-+0000a15c <[^>]*> nop
-+0000a160 <[^>]*> nop
-+0000a164 <[^>]*> nop
-+0000a168 <[^>]*> nop
-+0000a16c <[^>]*> nop
-+0000a170 <[^>]*> nop
-+0000a174 <[^>]*> nop
-+0000a178 <[^>]*> nop
-+0000a17c <[^>]*> nop
-+0000a180 <[^>]*> nop
-+0000a184 <[^>]*> nop
-+0000a188 <[^>]*> nop
-+0000a18c <[^>]*> nop
-+0000a190 <[^>]*> nop
-+0000a194 <[^>]*> nop
-+0000a198 <[^>]*> nop
-+0000a19c <[^>]*> nop
-+0000a1a0 <[^>]*> nop
-+0000a1a4 <[^>]*> nop
-+0000a1a8 <[^>]*> nop
-+0000a1ac <[^>]*> nop
-+0000a1b0 <[^>]*> nop
-+0000a1b4 <[^>]*> nop
-+0000a1b8 <[^>]*> nop
-+0000a1bc <[^>]*> nop
-+0000a1c0 <[^>]*> nop
-+0000a1c4 <[^>]*> nop
-+0000a1c8 <[^>]*> nop
-+0000a1cc <[^>]*> nop
-+0000a1d0 <[^>]*> nop
-+0000a1d4 <[^>]*> nop
-+0000a1d8 <[^>]*> nop
-+0000a1dc <[^>]*> nop
-+0000a1e0 <[^>]*> nop
-+0000a1e4 <[^>]*> nop
-+0000a1e8 <[^>]*> nop
-+0000a1ec <[^>]*> nop
-+0000a1f0 <[^>]*> nop
-+0000a1f4 <[^>]*> nop
-+0000a1f8 <[^>]*> nop
-+0000a1fc <[^>]*> nop
-+0000a200 <[^>]*> nop
-+0000a204 <[^>]*> nop
-+0000a208 <[^>]*> nop
-+0000a20c <[^>]*> nop
-+0000a210 <[^>]*> nop
-+0000a214 <[^>]*> nop
-+0000a218 <[^>]*> nop
-+0000a21c <[^>]*> nop
-+0000a220 <[^>]*> nop
-+0000a224 <[^>]*> nop
-+0000a228 <[^>]*> nop
-+0000a22c <[^>]*> nop
-+0000a230 <[^>]*> nop
-+0000a234 <[^>]*> nop
-+0000a238 <[^>]*> nop
-+0000a23c <[^>]*> nop
-+0000a240 <[^>]*> nop
-+0000a244 <[^>]*> nop
-+0000a248 <[^>]*> nop
-+0000a24c <[^>]*> nop
-+0000a250 <[^>]*> nop
-+0000a254 <[^>]*> nop
-+0000a258 <[^>]*> nop
-+0000a25c <[^>]*> nop
-+0000a260 <[^>]*> nop
-+0000a264 <[^>]*> nop
-+0000a268 <[^>]*> nop
-+0000a26c <[^>]*> nop
-+0000a270 <[^>]*> nop
-+0000a274 <[^>]*> nop
-+0000a278 <[^>]*> nop
-+0000a27c <[^>]*> nop
-+0000a280 <[^>]*> nop
-+0000a284 <[^>]*> nop
-+0000a288 <[^>]*> nop
-+0000a28c <[^>]*> nop
-+0000a290 <[^>]*> nop
-+0000a294 <[^>]*> nop
-+0000a298 <[^>]*> nop
-+0000a29c <[^>]*> nop
-+0000a2a0 <[^>]*> nop
-+0000a2a4 <[^>]*> nop
-+0000a2a8 <[^>]*> nop
-+0000a2ac <[^>]*> nop
-+0000a2b0 <[^>]*> nop
-+0000a2b4 <[^>]*> nop
-+0000a2b8 <[^>]*> nop
-+0000a2bc <[^>]*> nop
-+0000a2c0 <[^>]*> nop
-+0000a2c4 <[^>]*> nop
-+0000a2c8 <[^>]*> nop
-+0000a2cc <[^>]*> nop
-+0000a2d0 <[^>]*> nop
-+0000a2d4 <[^>]*> nop
-+0000a2d8 <[^>]*> nop
-+0000a2dc <[^>]*> nop
-+0000a2e0 <[^>]*> nop
-+0000a2e4 <[^>]*> nop
-+0000a2e8 <[^>]*> nop
-+0000a2ec <[^>]*> nop
-+0000a2f0 <[^>]*> nop
-+0000a2f4 <[^>]*> nop
-+0000a2f8 <[^>]*> nop
-+0000a2fc <[^>]*> nop
-+0000a300 <[^>]*> nop
-+0000a304 <[^>]*> nop
-+0000a308 <[^>]*> nop
-+0000a30c <[^>]*> nop
-+0000a310 <[^>]*> nop
-+0000a314 <[^>]*> nop
-+0000a318 <[^>]*> nop
-+0000a31c <[^>]*> nop
-+0000a320 <[^>]*> nop
-+0000a324 <[^>]*> nop
-+0000a328 <[^>]*> nop
-+0000a32c <[^>]*> nop
-+0000a330 <[^>]*> nop
-+0000a334 <[^>]*> nop
-+0000a338 <[^>]*> nop
-+0000a33c <[^>]*> nop
-+0000a340 <[^>]*> nop
-+0000a344 <[^>]*> nop
-+0000a348 <[^>]*> nop
-+0000a34c <[^>]*> nop
-+0000a350 <[^>]*> nop
-+0000a354 <[^>]*> nop
-+0000a358 <[^>]*> nop
-+0000a35c <[^>]*> nop
-+0000a360 <[^>]*> nop
-+0000a364 <[^>]*> nop
-+0000a368 <[^>]*> nop
-+0000a36c <[^>]*> nop
-+0000a370 <[^>]*> nop
-+0000a374 <[^>]*> nop
-+0000a378 <[^>]*> nop
-+0000a37c <[^>]*> nop
-+0000a380 <[^>]*> nop
-+0000a384 <[^>]*> nop
-+0000a388 <[^>]*> nop
-+0000a38c <[^>]*> nop
-+0000a390 <[^>]*> nop
-+0000a394 <[^>]*> nop
-+0000a398 <[^>]*> nop
-+0000a39c <[^>]*> nop
-+0000a3a0 <[^>]*> nop
-+0000a3a4 <[^>]*> nop
-+0000a3a8 <[^>]*> nop
-+0000a3ac <[^>]*> nop
-+0000a3b0 <[^>]*> nop
-+0000a3b4 <[^>]*> nop
-+0000a3b8 <[^>]*> nop
-+0000a3bc <[^>]*> nop
-+0000a3c0 <[^>]*> nop
-+0000a3c4 <[^>]*> nop
-+0000a3c8 <[^>]*> nop
-+0000a3cc <[^>]*> nop
-+0000a3d0 <[^>]*> nop
-+0000a3d4 <[^>]*> nop
-+0000a3d8 <[^>]*> nop
-+0000a3dc <[^>]*> nop
-+0000a3e0 <[^>]*> nop
-+0000a3e4 <[^>]*> nop
-+0000a3e8 <[^>]*> nop
-+0000a3ec <[^>]*> nop
-+0000a3f0 <[^>]*> nop
-+0000a3f4 <[^>]*> nop
-+0000a3f8 <[^>]*> nop
-+0000a3fc <[^>]*> nop
-+0000a400 <[^>]*> nop
-+0000a404 <[^>]*> nop
-+0000a408 <[^>]*> nop
-+0000a40c <[^>]*> nop
-+0000a410 <[^>]*> nop
-+0000a414 <[^>]*> nop
-+0000a418 <[^>]*> nop
-+0000a41c <[^>]*> nop
-+0000a420 <[^>]*> nop
-+0000a424 <[^>]*> nop
-+0000a428 <[^>]*> nop
-+0000a42c <[^>]*> nop
-+0000a430 <[^>]*> nop
-+0000a434 <[^>]*> nop
-+0000a438 <[^>]*> nop
-+0000a43c <[^>]*> nop
-+0000a440 <[^>]*> nop
-+0000a444 <[^>]*> nop
-+0000a448 <[^>]*> nop
-+0000a44c <[^>]*> nop
-+0000a450 <[^>]*> nop
-+0000a454 <[^>]*> nop
-+0000a458 <[^>]*> nop
-+0000a45c <[^>]*> nop
-+0000a460 <[^>]*> nop
-+0000a464 <[^>]*> nop
-+0000a468 <[^>]*> nop
-+0000a46c <[^>]*> nop
-+0000a470 <[^>]*> nop
-+0000a474 <[^>]*> nop
-+0000a478 <[^>]*> nop
-+0000a47c <[^>]*> nop
-+0000a480 <[^>]*> nop
-+0000a484 <[^>]*> nop
-+0000a488 <[^>]*> nop
-+0000a48c <[^>]*> nop
-+0000a490 <[^>]*> nop
-+0000a494 <[^>]*> nop
-+0000a498 <[^>]*> nop
-+0000a49c <[^>]*> nop
-+0000a4a0 <[^>]*> nop
-+0000a4a4 <[^>]*> nop
-+0000a4a8 <[^>]*> nop
-+0000a4ac <[^>]*> nop
-+0000a4b0 <[^>]*> nop
-+0000a4b4 <[^>]*> nop
-+0000a4b8 <[^>]*> nop
-+0000a4bc <[^>]*> nop
-+0000a4c0 <[^>]*> nop
-+0000a4c4 <[^>]*> nop
-+0000a4c8 <[^>]*> nop
-+0000a4cc <[^>]*> nop
-+0000a4d0 <[^>]*> nop
-+0000a4d4 <[^>]*> nop
-+0000a4d8 <[^>]*> nop
-+0000a4dc <[^>]*> nop
-+0000a4e0 <[^>]*> nop
-+0000a4e4 <[^>]*> nop
-+0000a4e8 <[^>]*> nop
-+0000a4ec <[^>]*> nop
-+0000a4f0 <[^>]*> nop
-+0000a4f4 <[^>]*> nop
-+0000a4f8 <[^>]*> nop
-+0000a4fc <[^>]*> nop
-+0000a500 <[^>]*> nop
-+0000a504 <[^>]*> nop
-+0000a508 <[^>]*> nop
-+0000a50c <[^>]*> nop
-+0000a510 <[^>]*> nop
-+0000a514 <[^>]*> nop
-+0000a518 <[^>]*> nop
-+0000a51c <[^>]*> nop
-+0000a520 <[^>]*> nop
-+0000a524 <[^>]*> nop
-+0000a528 <[^>]*> nop
-+0000a52c <[^>]*> nop
-+0000a530 <[^>]*> nop
-+0000a534 <[^>]*> nop
-+0000a538 <[^>]*> nop
-+0000a53c <[^>]*> nop
-+0000a540 <[^>]*> nop
-+0000a544 <[^>]*> nop
-+0000a548 <[^>]*> nop
-+0000a54c <[^>]*> nop
-+0000a550 <[^>]*> nop
-+0000a554 <[^>]*> nop
-+0000a558 <[^>]*> nop
-+0000a55c <[^>]*> nop
-+0000a560 <[^>]*> nop
-+0000a564 <[^>]*> nop
-+0000a568 <[^>]*> nop
-+0000a56c <[^>]*> nop
-+0000a570 <[^>]*> nop
-+0000a574 <[^>]*> nop
-+0000a578 <[^>]*> nop
-+0000a57c <[^>]*> nop
-+0000a580 <[^>]*> nop
-+0000a584 <[^>]*> nop
-+0000a588 <[^>]*> nop
-+0000a58c <[^>]*> nop
-+0000a590 <[^>]*> nop
-+0000a594 <[^>]*> nop
-+0000a598 <[^>]*> nop
-+0000a59c <[^>]*> nop
-+0000a5a0 <[^>]*> nop
-+0000a5a4 <[^>]*> nop
-+0000a5a8 <[^>]*> nop
-+0000a5ac <[^>]*> nop
-+0000a5b0 <[^>]*> nop
-+0000a5b4 <[^>]*> nop
-+0000a5b8 <[^>]*> nop
-+0000a5bc <[^>]*> nop
-+0000a5c0 <[^>]*> nop
-+0000a5c4 <[^>]*> nop
-+0000a5c8 <[^>]*> nop
-+0000a5cc <[^>]*> nop
-+0000a5d0 <[^>]*> nop
-+0000a5d4 <[^>]*> nop
-+0000a5d8 <[^>]*> nop
-+0000a5dc <[^>]*> nop
-+0000a5e0 <[^>]*> nop
-+0000a5e4 <[^>]*> nop
-+0000a5e8 <[^>]*> nop
-+0000a5ec <[^>]*> nop
-+0000a5f0 <[^>]*> nop
-+0000a5f4 <[^>]*> nop
-+0000a5f8 <[^>]*> nop
-+0000a5fc <[^>]*> nop
-+0000a600 <[^>]*> nop
-+0000a604 <[^>]*> nop
-+0000a608 <[^>]*> nop
-+0000a60c <[^>]*> nop
-+0000a610 <[^>]*> nop
-+0000a614 <[^>]*> nop
-+0000a618 <[^>]*> nop
-+0000a61c <[^>]*> nop
-+0000a620 <[^>]*> nop
-+0000a624 <[^>]*> nop
-+0000a628 <[^>]*> nop
-+0000a62c <[^>]*> nop
-+0000a630 <[^>]*> nop
-+0000a634 <[^>]*> nop
-+0000a638 <[^>]*> nop
-+0000a63c <[^>]*> nop
-+0000a640 <[^>]*> nop
-+0000a644 <[^>]*> nop
-+0000a648 <[^>]*> nop
-+0000a64c <[^>]*> nop
-+0000a650 <[^>]*> nop
-+0000a654 <[^>]*> nop
-+0000a658 <[^>]*> nop
-+0000a65c <[^>]*> nop
-+0000a660 <[^>]*> nop
-+0000a664 <[^>]*> nop
-+0000a668 <[^>]*> nop
-+0000a66c <[^>]*> nop
-+0000a670 <[^>]*> nop
-+0000a674 <[^>]*> nop
-+0000a678 <[^>]*> nop
-+0000a67c <[^>]*> nop
-+0000a680 <[^>]*> nop
-+0000a684 <[^>]*> nop
-+0000a688 <[^>]*> nop
-+0000a68c <[^>]*> nop
-+0000a690 <[^>]*> nop
-+0000a694 <[^>]*> nop
-+0000a698 <[^>]*> nop
-+0000a69c <[^>]*> nop
-+0000a6a0 <[^>]*> nop
-+0000a6a4 <[^>]*> nop
-+0000a6a8 <[^>]*> nop
-+0000a6ac <[^>]*> nop
-+0000a6b0 <[^>]*> nop
-+0000a6b4 <[^>]*> nop
-+0000a6b8 <[^>]*> nop
-+0000a6bc <[^>]*> nop
-+0000a6c0 <[^>]*> nop
-+0000a6c4 <[^>]*> nop
-+0000a6c8 <[^>]*> nop
-+0000a6cc <[^>]*> nop
-+0000a6d0 <[^>]*> nop
-+0000a6d4 <[^>]*> nop
-+0000a6d8 <[^>]*> nop
-+0000a6dc <[^>]*> nop
-+0000a6e0 <[^>]*> nop
-+0000a6e4 <[^>]*> nop
-+0000a6e8 <[^>]*> nop
-+0000a6ec <[^>]*> nop
-+0000a6f0 <[^>]*> nop
-+0000a6f4 <[^>]*> nop
-+0000a6f8 <[^>]*> nop
-+0000a6fc <[^>]*> nop
-+0000a700 <[^>]*> nop
-+0000a704 <[^>]*> nop
-+0000a708 <[^>]*> nop
-+0000a70c <[^>]*> nop
-+0000a710 <[^>]*> nop
-+0000a714 <[^>]*> nop
-+0000a718 <[^>]*> nop
-+0000a71c <[^>]*> nop
-+0000a720 <[^>]*> nop
-+0000a724 <[^>]*> nop
-+0000a728 <[^>]*> nop
-+0000a72c <[^>]*> nop
-+0000a730 <[^>]*> nop
-+0000a734 <[^>]*> nop
-+0000a738 <[^>]*> nop
-+0000a73c <[^>]*> nop
-+0000a740 <[^>]*> nop
-+0000a744 <[^>]*> nop
-+0000a748 <[^>]*> nop
-+0000a74c <[^>]*> nop
-+0000a750 <[^>]*> nop
-+0000a754 <[^>]*> nop
-+0000a758 <[^>]*> nop
-+0000a75c <[^>]*> nop
-+0000a760 <[^>]*> nop
-+0000a764 <[^>]*> nop
-+0000a768 <[^>]*> nop
-+0000a76c <[^>]*> nop
-+0000a770 <[^>]*> nop
-+0000a774 <[^>]*> nop
-+0000a778 <[^>]*> nop
-+0000a77c <[^>]*> nop
-+0000a780 <[^>]*> nop
-+0000a784 <[^>]*> nop
-+0000a788 <[^>]*> nop
-+0000a78c <[^>]*> nop
-+0000a790 <[^>]*> nop
-+0000a794 <[^>]*> nop
-+0000a798 <[^>]*> nop
-+0000a79c <[^>]*> nop
-+0000a7a0 <[^>]*> nop
-+0000a7a4 <[^>]*> nop
-+0000a7a8 <[^>]*> nop
-+0000a7ac <[^>]*> nop
-+0000a7b0 <[^>]*> nop
-+0000a7b4 <[^>]*> nop
-+0000a7b8 <[^>]*> nop
-+0000a7bc <[^>]*> nop
-+0000a7c0 <[^>]*> nop
-+0000a7c4 <[^>]*> nop
-+0000a7c8 <[^>]*> nop
-+0000a7cc <[^>]*> nop
-+0000a7d0 <[^>]*> nop
-+0000a7d4 <[^>]*> nop
-+0000a7d8 <[^>]*> nop
-+0000a7dc <[^>]*> nop
-+0000a7e0 <[^>]*> nop
-+0000a7e4 <[^>]*> nop
-+0000a7e8 <[^>]*> nop
-+0000a7ec <[^>]*> nop
-+0000a7f0 <[^>]*> nop
-+0000a7f4 <[^>]*> nop
-+0000a7f8 <[^>]*> nop
-+0000a7fc <[^>]*> nop
-+0000a800 <[^>]*> nop
-+0000a804 <[^>]*> nop
-+0000a808 <[^>]*> nop
-+0000a80c <[^>]*> nop
-+0000a810 <[^>]*> nop
-+0000a814 <[^>]*> nop
-+0000a818 <[^>]*> nop
-+0000a81c <[^>]*> nop
-+0000a820 <[^>]*> nop
-+0000a824 <[^>]*> nop
-+0000a828 <[^>]*> nop
-+0000a82c <[^>]*> nop
-+0000a830 <[^>]*> nop
-+0000a834 <[^>]*> nop
-+0000a838 <[^>]*> nop
-+0000a83c <[^>]*> nop
-+0000a840 <[^>]*> nop
-+0000a844 <[^>]*> nop
-+0000a848 <[^>]*> nop
-+0000a84c <[^>]*> nop
-+0000a850 <[^>]*> nop
-+0000a854 <[^>]*> nop
-+0000a858 <[^>]*> nop
-+0000a85c <[^>]*> nop
-+0000a860 <[^>]*> nop
-+0000a864 <[^>]*> nop
-+0000a868 <[^>]*> nop
-+0000a86c <[^>]*> nop
-+0000a870 <[^>]*> nop
-+0000a874 <[^>]*> nop
-+0000a878 <[^>]*> nop
-+0000a87c <[^>]*> nop
-+0000a880 <[^>]*> nop
-+0000a884 <[^>]*> nop
-+0000a888 <[^>]*> nop
-+0000a88c <[^>]*> nop
-+0000a890 <[^>]*> nop
-+0000a894 <[^>]*> nop
-+0000a898 <[^>]*> nop
-+0000a89c <[^>]*> nop
-+0000a8a0 <[^>]*> nop
-+0000a8a4 <[^>]*> nop
-+0000a8a8 <[^>]*> nop
-+0000a8ac <[^>]*> nop
-+0000a8b0 <[^>]*> nop
-+0000a8b4 <[^>]*> nop
-+0000a8b8 <[^>]*> nop
-+0000a8bc <[^>]*> nop
-+0000a8c0 <[^>]*> nop
-+0000a8c4 <[^>]*> nop
-+0000a8c8 <[^>]*> nop
-+0000a8cc <[^>]*> nop
-+0000a8d0 <[^>]*> nop
-+0000a8d4 <[^>]*> nop
-+0000a8d8 <[^>]*> nop
-+0000a8dc <[^>]*> nop
-+0000a8e0 <[^>]*> nop
-+0000a8e4 <[^>]*> nop
-+0000a8e8 <[^>]*> nop
-+0000a8ec <[^>]*> nop
-+0000a8f0 <[^>]*> nop
-+0000a8f4 <[^>]*> nop
-+0000a8f8 <[^>]*> nop
-+0000a8fc <[^>]*> nop
-+0000a900 <[^>]*> nop
-+0000a904 <[^>]*> nop
-+0000a908 <[^>]*> nop
-+0000a90c <[^>]*> nop
-+0000a910 <[^>]*> nop
-+0000a914 <[^>]*> nop
-+0000a918 <[^>]*> nop
-+0000a91c <[^>]*> nop
-+0000a920 <[^>]*> nop
-+0000a924 <[^>]*> nop
-+0000a928 <[^>]*> nop
-+0000a92c <[^>]*> nop
-+0000a930 <[^>]*> nop
-+0000a934 <[^>]*> nop
-+0000a938 <[^>]*> nop
-+0000a93c <[^>]*> nop
-+0000a940 <[^>]*> nop
-+0000a944 <[^>]*> nop
-+0000a948 <[^>]*> nop
-+0000a94c <[^>]*> nop
-+0000a950 <[^>]*> nop
-+0000a954 <[^>]*> nop
-+0000a958 <[^>]*> nop
-+0000a95c <[^>]*> nop
-+0000a960 <[^>]*> nop
-+0000a964 <[^>]*> nop
-+0000a968 <[^>]*> nop
-+0000a96c <[^>]*> nop
-+0000a970 <[^>]*> nop
-+0000a974 <[^>]*> nop
-+0000a978 <[^>]*> nop
-+0000a97c <[^>]*> nop
-+0000a980 <[^>]*> nop
-+0000a984 <[^>]*> nop
-+0000a988 <[^>]*> nop
-+0000a98c <[^>]*> nop
-+0000a990 <[^>]*> nop
-+0000a994 <[^>]*> nop
-+0000a998 <[^>]*> nop
-+0000a99c <[^>]*> nop
-+0000a9a0 <[^>]*> nop
-+0000a9a4 <[^>]*> nop
-+0000a9a8 <[^>]*> nop
-+0000a9ac <[^>]*> nop
-+0000a9b0 <[^>]*> nop
-+0000a9b4 <[^>]*> nop
-+0000a9b8 <[^>]*> nop
-+0000a9bc <[^>]*> nop
-+0000a9c0 <[^>]*> nop
-+0000a9c4 <[^>]*> nop
-+0000a9c8 <[^>]*> nop
-+0000a9cc <[^>]*> nop
-+0000a9d0 <[^>]*> nop
-+0000a9d4 <[^>]*> nop
-+0000a9d8 <[^>]*> nop
-+0000a9dc <[^>]*> nop
-+0000a9e0 <[^>]*> nop
-+0000a9e4 <[^>]*> nop
-+0000a9e8 <[^>]*> nop
-+0000a9ec <[^>]*> nop
-+0000a9f0 <[^>]*> nop
-+0000a9f4 <[^>]*> nop
-+0000a9f8 <[^>]*> nop
-+0000a9fc <[^>]*> nop
-+0000aa00 <[^>]*> nop
-+0000aa04 <[^>]*> nop
-+0000aa08 <[^>]*> nop
-+0000aa0c <[^>]*> nop
-+0000aa10 <[^>]*> nop
-+0000aa14 <[^>]*> nop
-+0000aa18 <[^>]*> nop
-+0000aa1c <[^>]*> nop
-+0000aa20 <[^>]*> nop
-+0000aa24 <[^>]*> nop
-+0000aa28 <[^>]*> nop
-+0000aa2c <[^>]*> nop
-+0000aa30 <[^>]*> nop
-+0000aa34 <[^>]*> nop
-+0000aa38 <[^>]*> nop
-+0000aa3c <[^>]*> nop
-+0000aa40 <[^>]*> nop
-+0000aa44 <[^>]*> nop
-+0000aa48 <[^>]*> nop
-+0000aa4c <[^>]*> nop
-+0000aa50 <[^>]*> nop
-+0000aa54 <[^>]*> nop
-+0000aa58 <[^>]*> nop
-+0000aa5c <[^>]*> nop
-+0000aa60 <[^>]*> nop
-+0000aa64 <[^>]*> nop
-+0000aa68 <[^>]*> nop
-+0000aa6c <[^>]*> nop
-+0000aa70 <[^>]*> nop
-+0000aa74 <[^>]*> nop
-+0000aa78 <[^>]*> nop
-+0000aa7c <[^>]*> nop
-+0000aa80 <[^>]*> nop
-+0000aa84 <[^>]*> nop
-+0000aa88 <[^>]*> nop
-+0000aa8c <[^>]*> nop
-+0000aa90 <[^>]*> nop
-+0000aa94 <[^>]*> nop
-+0000aa98 <[^>]*> nop
-+0000aa9c <[^>]*> nop
-+0000aaa0 <[^>]*> nop
-+0000aaa4 <[^>]*> nop
-+0000aaa8 <[^>]*> nop
-+0000aaac <[^>]*> nop
-+0000aab0 <[^>]*> nop
-+0000aab4 <[^>]*> nop
-+0000aab8 <[^>]*> nop
-+0000aabc <[^>]*> nop
-+0000aac0 <[^>]*> nop
-+0000aac4 <[^>]*> nop
-+0000aac8 <[^>]*> nop
-+0000aacc <[^>]*> nop
-+0000aad0 <[^>]*> nop
-+0000aad4 <[^>]*> nop
-+0000aad8 <[^>]*> nop
-+0000aadc <[^>]*> nop
-+0000aae0 <[^>]*> nop
-+0000aae4 <[^>]*> nop
-+0000aae8 <[^>]*> nop
-+0000aaec <[^>]*> nop
-+0000aaf0 <[^>]*> nop
-+0000aaf4 <[^>]*> nop
-+0000aaf8 <[^>]*> nop
-+0000aafc <[^>]*> nop
-+0000ab00 <[^>]*> nop
-+0000ab04 <[^>]*> nop
-+0000ab08 <[^>]*> nop
-+0000ab0c <[^>]*> nop
-+0000ab10 <[^>]*> nop
-+0000ab14 <[^>]*> nop
-+0000ab18 <[^>]*> nop
-+0000ab1c <[^>]*> nop
-+0000ab20 <[^>]*> nop
-+0000ab24 <[^>]*> nop
-+0000ab28 <[^>]*> nop
-+0000ab2c <[^>]*> nop
-+0000ab30 <[^>]*> nop
-+0000ab34 <[^>]*> nop
-+0000ab38 <[^>]*> nop
-+0000ab3c <[^>]*> nop
-+0000ab40 <[^>]*> nop
-+0000ab44 <[^>]*> nop
-+0000ab48 <[^>]*> nop
-+0000ab4c <[^>]*> nop
-+0000ab50 <[^>]*> nop
-+0000ab54 <[^>]*> nop
-+0000ab58 <[^>]*> nop
-+0000ab5c <[^>]*> nop
-+0000ab60 <[^>]*> nop
-+0000ab64 <[^>]*> nop
-+0000ab68 <[^>]*> nop
-+0000ab6c <[^>]*> nop
-+0000ab70 <[^>]*> nop
-+0000ab74 <[^>]*> nop
-+0000ab78 <[^>]*> nop
-+0000ab7c <[^>]*> nop
-+0000ab80 <[^>]*> nop
-+0000ab84 <[^>]*> nop
-+0000ab88 <[^>]*> nop
-+0000ab8c <[^>]*> nop
-+0000ab90 <[^>]*> nop
-+0000ab94 <[^>]*> nop
-+0000ab98 <[^>]*> nop
-+0000ab9c <[^>]*> nop
-+0000aba0 <[^>]*> nop
-+0000aba4 <[^>]*> nop
-+0000aba8 <[^>]*> nop
-+0000abac <[^>]*> nop
-+0000abb0 <[^>]*> nop
-+0000abb4 <[^>]*> nop
-+0000abb8 <[^>]*> nop
-+0000abbc <[^>]*> nop
-+0000abc0 <[^>]*> nop
-+0000abc4 <[^>]*> nop
-+0000abc8 <[^>]*> nop
-+0000abcc <[^>]*> nop
-+0000abd0 <[^>]*> nop
-+0000abd4 <[^>]*> nop
-+0000abd8 <[^>]*> nop
-+0000abdc <[^>]*> nop
-+0000abe0 <[^>]*> nop
-+0000abe4 <[^>]*> nop
-+0000abe8 <[^>]*> nop
-+0000abec <[^>]*> nop
-+0000abf0 <[^>]*> nop
-+0000abf4 <[^>]*> nop
-+0000abf8 <[^>]*> nop
-+0000abfc <[^>]*> nop
-+0000ac00 <[^>]*> nop
-+0000ac04 <[^>]*> nop
-+0000ac08 <[^>]*> nop
-+0000ac0c <[^>]*> nop
-+0000ac10 <[^>]*> nop
-+0000ac14 <[^>]*> nop
-+0000ac18 <[^>]*> nop
-+0000ac1c <[^>]*> nop
-+0000ac20 <[^>]*> nop
-+0000ac24 <[^>]*> nop
-+0000ac28 <[^>]*> nop
-+0000ac2c <[^>]*> nop
-+0000ac30 <[^>]*> nop
-+0000ac34 <[^>]*> nop
-+0000ac38 <[^>]*> nop
-+0000ac3c <[^>]*> nop
-+0000ac40 <[^>]*> nop
-+0000ac44 <[^>]*> nop
-+0000ac48 <[^>]*> nop
-+0000ac4c <[^>]*> nop
-+0000ac50 <[^>]*> nop
-+0000ac54 <[^>]*> nop
-+0000ac58 <[^>]*> nop
-+0000ac5c <[^>]*> nop
-+0000ac60 <[^>]*> nop
-+0000ac64 <[^>]*> nop
-+0000ac68 <[^>]*> nop
-+0000ac6c <[^>]*> nop
-+0000ac70 <[^>]*> nop
-+0000ac74 <[^>]*> nop
-+0000ac78 <[^>]*> nop
-+0000ac7c <[^>]*> nop
-+0000ac80 <[^>]*> nop
-+0000ac84 <[^>]*> nop
-+0000ac88 <[^>]*> nop
-+0000ac8c <[^>]*> nop
-+0000ac90 <[^>]*> nop
-+0000ac94 <[^>]*> nop
-+0000ac98 <[^>]*> nop
-+0000ac9c <[^>]*> nop
-+0000aca0 <[^>]*> nop
-+0000aca4 <[^>]*> nop
-+0000aca8 <[^>]*> nop
-+0000acac <[^>]*> nop
-+0000acb0 <[^>]*> nop
-+0000acb4 <[^>]*> nop
-+0000acb8 <[^>]*> nop
-+0000acbc <[^>]*> nop
-+0000acc0 <[^>]*> nop
-+0000acc4 <[^>]*> nop
-+0000acc8 <[^>]*> nop
-+0000accc <[^>]*> nop
-+0000acd0 <[^>]*> nop
-+0000acd4 <[^>]*> nop
-+0000acd8 <[^>]*> nop
-+0000acdc <[^>]*> nop
-+0000ace0 <[^>]*> nop
-+0000ace4 <[^>]*> nop
-+0000ace8 <[^>]*> nop
-+0000acec <[^>]*> nop
-+0000acf0 <[^>]*> nop
-+0000acf4 <[^>]*> nop
-+0000acf8 <[^>]*> nop
-+0000acfc <[^>]*> nop
-+0000ad00 <[^>]*> nop
-+0000ad04 <[^>]*> nop
-+0000ad08 <[^>]*> nop
-+0000ad0c <[^>]*> nop
-+0000ad10 <[^>]*> nop
-+0000ad14 <[^>]*> nop
-+0000ad18 <[^>]*> nop
-+0000ad1c <[^>]*> nop
-+0000ad20 <[^>]*> nop
-+0000ad24 <[^>]*> nop
-+0000ad28 <[^>]*> nop
-+0000ad2c <[^>]*> nop
-+0000ad30 <[^>]*> nop
-+0000ad34 <[^>]*> nop
-+0000ad38 <[^>]*> nop
-+0000ad3c <[^>]*> nop
-+0000ad40 <[^>]*> nop
-+0000ad44 <[^>]*> nop
-+0000ad48 <[^>]*> nop
-+0000ad4c <[^>]*> nop
-+0000ad50 <[^>]*> nop
-+0000ad54 <[^>]*> nop
-+0000ad58 <[^>]*> nop
-+0000ad5c <[^>]*> nop
-+0000ad60 <[^>]*> nop
-+0000ad64 <[^>]*> nop
-+0000ad68 <[^>]*> nop
-+0000ad6c <[^>]*> nop
-+0000ad70 <[^>]*> nop
-+0000ad74 <[^>]*> nop
-+0000ad78 <[^>]*> nop
-+0000ad7c <[^>]*> nop
-+0000ad80 <[^>]*> nop
-+0000ad84 <[^>]*> nop
-+0000ad88 <[^>]*> nop
-+0000ad8c <[^>]*> nop
-+0000ad90 <[^>]*> nop
-+0000ad94 <[^>]*> nop
-+0000ad98 <[^>]*> nop
-+0000ad9c <[^>]*> nop
-+0000ada0 <[^>]*> nop
-+0000ada4 <[^>]*> nop
-+0000ada8 <[^>]*> nop
-+0000adac <[^>]*> nop
-+0000adb0 <[^>]*> nop
-+0000adb4 <[^>]*> nop
-+0000adb8 <[^>]*> nop
-+0000adbc <[^>]*> nop
-+0000adc0 <[^>]*> nop
-+0000adc4 <[^>]*> nop
-+0000adc8 <[^>]*> nop
-+0000adcc <[^>]*> nop
-+0000add0 <[^>]*> nop
-+0000add4 <[^>]*> nop
-+0000add8 <[^>]*> nop
-+0000addc <[^>]*> nop
-+0000ade0 <[^>]*> nop
-+0000ade4 <[^>]*> nop
-+0000ade8 <[^>]*> nop
-+0000adec <[^>]*> nop
-+0000adf0 <[^>]*> nop
-+0000adf4 <[^>]*> nop
-+0000adf8 <[^>]*> nop
-+0000adfc <[^>]*> nop
-+0000ae00 <[^>]*> nop
-+0000ae04 <[^>]*> nop
-+0000ae08 <[^>]*> nop
-+0000ae0c <[^>]*> nop
-+0000ae10 <[^>]*> nop
-+0000ae14 <[^>]*> nop
-+0000ae18 <[^>]*> nop
-+0000ae1c <[^>]*> nop
-+0000ae20 <[^>]*> nop
-+0000ae24 <[^>]*> nop
-+0000ae28 <[^>]*> nop
-+0000ae2c <[^>]*> nop
-+0000ae30 <[^>]*> nop
-+0000ae34 <[^>]*> nop
-+0000ae38 <[^>]*> nop
-+0000ae3c <[^>]*> nop
-+0000ae40 <[^>]*> nop
-+0000ae44 <[^>]*> nop
-+0000ae48 <[^>]*> nop
-+0000ae4c <[^>]*> nop
-+0000ae50 <[^>]*> nop
-+0000ae54 <[^>]*> nop
-+0000ae58 <[^>]*> nop
-+0000ae5c <[^>]*> nop
-+0000ae60 <[^>]*> nop
-+0000ae64 <[^>]*> nop
-+0000ae68 <[^>]*> nop
-+0000ae6c <[^>]*> nop
-+0000ae70 <[^>]*> nop
-+0000ae74 <[^>]*> nop
-+0000ae78 <[^>]*> nop
-+0000ae7c <[^>]*> nop
-+0000ae80 <[^>]*> nop
-+0000ae84 <[^>]*> nop
-+0000ae88 <[^>]*> nop
-+0000ae8c <[^>]*> nop
-+0000ae90 <[^>]*> nop
-+0000ae94 <[^>]*> nop
-+0000ae98 <[^>]*> nop
-+0000ae9c <[^>]*> nop
-+0000aea0 <[^>]*> nop
-+0000aea4 <[^>]*> nop
-+0000aea8 <[^>]*> nop
-+0000aeac <[^>]*> nop
-+0000aeb0 <[^>]*> nop
-+0000aeb4 <[^>]*> nop
-+0000aeb8 <[^>]*> nop
-+0000aebc <[^>]*> nop
-+0000aec0 <[^>]*> nop
-+0000aec4 <[^>]*> nop
-+0000aec8 <[^>]*> nop
-+0000aecc <[^>]*> nop
-+0000aed0 <[^>]*> nop
-+0000aed4 <[^>]*> nop
-+0000aed8 <[^>]*> nop
-+0000aedc <[^>]*> nop
-+0000aee0 <[^>]*> nop
-+0000aee4 <[^>]*> nop
-+0000aee8 <[^>]*> nop
-+0000aeec <[^>]*> nop
-+0000aef0 <[^>]*> nop
-+0000aef4 <[^>]*> nop
-+0000aef8 <[^>]*> nop
-+0000aefc <[^>]*> nop
-+0000af00 <[^>]*> nop
-+0000af04 <[^>]*> nop
-+0000af08 <[^>]*> nop
-+0000af0c <[^>]*> nop
-+0000af10 <[^>]*> nop
-+0000af14 <[^>]*> nop
-+0000af18 <[^>]*> nop
-+0000af1c <[^>]*> nop
-+0000af20 <[^>]*> nop
-+0000af24 <[^>]*> nop
-+0000af28 <[^>]*> nop
-+0000af2c <[^>]*> nop
-+0000af30 <[^>]*> nop
-+0000af34 <[^>]*> nop
-+0000af38 <[^>]*> nop
-+0000af3c <[^>]*> nop
-+0000af40 <[^>]*> nop
-+0000af44 <[^>]*> nop
-+0000af48 <[^>]*> nop
-+0000af4c <[^>]*> nop
-+0000af50 <[^>]*> nop
-+0000af54 <[^>]*> nop
-+0000af58 <[^>]*> nop
-+0000af5c <[^>]*> nop
-+0000af60 <[^>]*> nop
-+0000af64 <[^>]*> nop
-+0000af68 <[^>]*> nop
-+0000af6c <[^>]*> nop
-+0000af70 <[^>]*> nop
-+0000af74 <[^>]*> nop
-+0000af78 <[^>]*> nop
-+0000af7c <[^>]*> nop
-+0000af80 <[^>]*> nop
-+0000af84 <[^>]*> nop
-+0000af88 <[^>]*> nop
-+0000af8c <[^>]*> nop
-+0000af90 <[^>]*> nop
-+0000af94 <[^>]*> nop
-+0000af98 <[^>]*> nop
-+0000af9c <[^>]*> nop
-+0000afa0 <[^>]*> nop
-+0000afa4 <[^>]*> nop
-+0000afa8 <[^>]*> nop
-+0000afac <[^>]*> nop
-+0000afb0 <[^>]*> nop
-+0000afb4 <[^>]*> nop
-+0000afb8 <[^>]*> nop
-+0000afbc <[^>]*> nop
-+0000afc0 <[^>]*> nop
-+0000afc4 <[^>]*> nop
-+0000afc8 <[^>]*> nop
-+0000afcc <[^>]*> nop
-+0000afd0 <[^>]*> nop
-+0000afd4 <[^>]*> nop
-+0000afd8 <[^>]*> nop
-+0000afdc <[^>]*> nop
-+0000afe0 <[^>]*> nop
-+0000afe4 <[^>]*> nop
-+0000afe8 <[^>]*> nop
-+0000afec <[^>]*> nop
-+0000aff0 <[^>]*> nop
-+0000aff4 <[^>]*> nop
-+0000aff8 <[^>]*> nop
-+0000affc <[^>]*> nop
-+0000b000 <[^>]*> nop
-+0000b004 <[^>]*> nop
-+0000b008 <[^>]*> nop
-+0000b00c <[^>]*> nop
-+0000b010 <[^>]*> nop
-+0000b014 <[^>]*> nop
-+0000b018 <[^>]*> nop
-+0000b01c <[^>]*> nop
-+0000b020 <[^>]*> nop
-+0000b024 <[^>]*> nop
-+0000b028 <[^>]*> nop
-+0000b02c <[^>]*> nop
-+0000b030 <[^>]*> nop
-+0000b034 <[^>]*> nop
-+0000b038 <[^>]*> nop
-+0000b03c <[^>]*> nop
-+0000b040 <[^>]*> nop
-+0000b044 <[^>]*> nop
-+0000b048 <[^>]*> nop
-+0000b04c <[^>]*> nop
-+0000b050 <[^>]*> nop
-+0000b054 <[^>]*> nop
-+0000b058 <[^>]*> nop
-+0000b05c <[^>]*> nop
-+0000b060 <[^>]*> nop
-+0000b064 <[^>]*> nop
-+0000b068 <[^>]*> nop
-+0000b06c <[^>]*> nop
-+0000b070 <[^>]*> nop
-+0000b074 <[^>]*> nop
-+0000b078 <[^>]*> nop
-+0000b07c <[^>]*> nop
-+0000b080 <[^>]*> nop
-+0000b084 <[^>]*> nop
-+0000b088 <[^>]*> nop
-+0000b08c <[^>]*> nop
-+0000b090 <[^>]*> nop
-+0000b094 <[^>]*> nop
-+0000b098 <[^>]*> nop
-+0000b09c <[^>]*> nop
-+0000b0a0 <[^>]*> nop
-+0000b0a4 <[^>]*> nop
-+0000b0a8 <[^>]*> nop
-+0000b0ac <[^>]*> nop
-+0000b0b0 <[^>]*> nop
-+0000b0b4 <[^>]*> nop
-+0000b0b8 <[^>]*> nop
-+0000b0bc <[^>]*> nop
-+0000b0c0 <[^>]*> nop
-+0000b0c4 <[^>]*> nop
-+0000b0c8 <[^>]*> nop
-+0000b0cc <[^>]*> nop
-+0000b0d0 <[^>]*> nop
-+0000b0d4 <[^>]*> nop
-+0000b0d8 <[^>]*> nop
-+0000b0dc <[^>]*> nop
-+0000b0e0 <[^>]*> nop
-+0000b0e4 <[^>]*> nop
-+0000b0e8 <[^>]*> nop
-+0000b0ec <[^>]*> nop
-+0000b0f0 <[^>]*> nop
-+0000b0f4 <[^>]*> nop
-+0000b0f8 <[^>]*> nop
-+0000b0fc <[^>]*> nop
-+0000b100 <[^>]*> nop
-+0000b104 <[^>]*> nop
-+0000b108 <[^>]*> nop
-+0000b10c <[^>]*> nop
-+0000b110 <[^>]*> nop
-+0000b114 <[^>]*> nop
-+0000b118 <[^>]*> nop
-+0000b11c <[^>]*> nop
-+0000b120 <[^>]*> nop
-+0000b124 <[^>]*> nop
-+0000b128 <[^>]*> nop
-+0000b12c <[^>]*> nop
-+0000b130 <[^>]*> nop
-+0000b134 <[^>]*> nop
-+0000b138 <[^>]*> nop
-+0000b13c <[^>]*> nop
-+0000b140 <[^>]*> nop
-+0000b144 <[^>]*> nop
-+0000b148 <[^>]*> nop
-+0000b14c <[^>]*> nop
-+0000b150 <[^>]*> nop
-+0000b154 <[^>]*> nop
-+0000b158 <[^>]*> nop
-+0000b15c <[^>]*> nop
-+0000b160 <[^>]*> nop
-+0000b164 <[^>]*> nop
-+0000b168 <[^>]*> nop
-+0000b16c <[^>]*> nop
-+0000b170 <[^>]*> nop
-+0000b174 <[^>]*> nop
-+0000b178 <[^>]*> nop
-+0000b17c <[^>]*> nop
-+0000b180 <[^>]*> nop
-+0000b184 <[^>]*> nop
-+0000b188 <[^>]*> nop
-+0000b18c <[^>]*> nop
-+0000b190 <[^>]*> nop
-+0000b194 <[^>]*> nop
-+0000b198 <[^>]*> nop
-+0000b19c <[^>]*> nop
-+0000b1a0 <[^>]*> nop
-+0000b1a4 <[^>]*> nop
-+0000b1a8 <[^>]*> nop
-+0000b1ac <[^>]*> nop
-+0000b1b0 <[^>]*> nop
-+0000b1b4 <[^>]*> nop
-+0000b1b8 <[^>]*> nop
-+0000b1bc <[^>]*> nop
-+0000b1c0 <[^>]*> nop
-+0000b1c4 <[^>]*> nop
-+0000b1c8 <[^>]*> nop
-+0000b1cc <[^>]*> nop
-+0000b1d0 <[^>]*> nop
-+0000b1d4 <[^>]*> nop
-+0000b1d8 <[^>]*> nop
-+0000b1dc <[^>]*> nop
-+0000b1e0 <[^>]*> nop
-+0000b1e4 <[^>]*> nop
-+0000b1e8 <[^>]*> nop
-+0000b1ec <[^>]*> nop
-+0000b1f0 <[^>]*> nop
-+0000b1f4 <[^>]*> nop
-+0000b1f8 <[^>]*> nop
-+0000b1fc <[^>]*> nop
-+0000b200 <[^>]*> nop
-+0000b204 <[^>]*> nop
-+0000b208 <[^>]*> nop
-+0000b20c <[^>]*> nop
-+0000b210 <[^>]*> nop
-+0000b214 <[^>]*> nop
-+0000b218 <[^>]*> nop
-+0000b21c <[^>]*> nop
-+0000b220 <[^>]*> nop
-+0000b224 <[^>]*> nop
-+0000b228 <[^>]*> nop
-+0000b22c <[^>]*> nop
-+0000b230 <[^>]*> nop
-+0000b234 <[^>]*> nop
-+0000b238 <[^>]*> nop
-+0000b23c <[^>]*> nop
-+0000b240 <[^>]*> nop
-+0000b244 <[^>]*> nop
-+0000b248 <[^>]*> nop
-+0000b24c <[^>]*> nop
-+0000b250 <[^>]*> nop
-+0000b254 <[^>]*> nop
-+0000b258 <[^>]*> nop
-+0000b25c <[^>]*> nop
-+0000b260 <[^>]*> nop
-+0000b264 <[^>]*> nop
-+0000b268 <[^>]*> nop
-+0000b26c <[^>]*> nop
-+0000b270 <[^>]*> nop
-+0000b274 <[^>]*> nop
-+0000b278 <[^>]*> nop
-+0000b27c <[^>]*> nop
-+0000b280 <[^>]*> nop
-+0000b284 <[^>]*> nop
-+0000b288 <[^>]*> nop
-+0000b28c <[^>]*> nop
-+0000b290 <[^>]*> nop
-+0000b294 <[^>]*> nop
-+0000b298 <[^>]*> nop
-+0000b29c <[^>]*> nop
-+0000b2a0 <[^>]*> nop
-+0000b2a4 <[^>]*> nop
-+0000b2a8 <[^>]*> nop
-+0000b2ac <[^>]*> nop
-+0000b2b0 <[^>]*> nop
-+0000b2b4 <[^>]*> nop
-+0000b2b8 <[^>]*> nop
-+0000b2bc <[^>]*> nop
-+0000b2c0 <[^>]*> nop
-+0000b2c4 <[^>]*> nop
-+0000b2c8 <[^>]*> nop
-+0000b2cc <[^>]*> nop
-+0000b2d0 <[^>]*> nop
-+0000b2d4 <[^>]*> nop
-+0000b2d8 <[^>]*> nop
-+0000b2dc <[^>]*> nop
-+0000b2e0 <[^>]*> nop
-+0000b2e4 <[^>]*> nop
-+0000b2e8 <[^>]*> nop
-+0000b2ec <[^>]*> nop
-+0000b2f0 <[^>]*> nop
-+0000b2f4 <[^>]*> nop
-+0000b2f8 <[^>]*> nop
-+0000b2fc <[^>]*> nop
-+0000b300 <[^>]*> nop
-+0000b304 <[^>]*> nop
-+0000b308 <[^>]*> nop
-+0000b30c <[^>]*> nop
-+0000b310 <[^>]*> nop
-+0000b314 <[^>]*> nop
-+0000b318 <[^>]*> nop
-+0000b31c <[^>]*> nop
-+0000b320 <[^>]*> nop
-+0000b324 <[^>]*> nop
-+0000b328 <[^>]*> nop
-+0000b32c <[^>]*> nop
-+0000b330 <[^>]*> nop
-+0000b334 <[^>]*> nop
-+0000b338 <[^>]*> nop
-+0000b33c <[^>]*> nop
-+0000b340 <[^>]*> nop
-+0000b344 <[^>]*> nop
-+0000b348 <[^>]*> nop
-+0000b34c <[^>]*> nop
-+0000b350 <[^>]*> nop
-+0000b354 <[^>]*> nop
-+0000b358 <[^>]*> nop
-+0000b35c <[^>]*> nop
-+0000b360 <[^>]*> nop
-+0000b364 <[^>]*> nop
-+0000b368 <[^>]*> nop
-+0000b36c <[^>]*> nop
-+0000b370 <[^>]*> nop
-+0000b374 <[^>]*> nop
-+0000b378 <[^>]*> nop
-+0000b37c <[^>]*> nop
-+0000b380 <[^>]*> nop
-+0000b384 <[^>]*> nop
-+0000b388 <[^>]*> nop
-+0000b38c <[^>]*> nop
-+0000b390 <[^>]*> nop
-+0000b394 <[^>]*> nop
-+0000b398 <[^>]*> nop
-+0000b39c <[^>]*> nop
-+0000b3a0 <[^>]*> nop
-+0000b3a4 <[^>]*> nop
-+0000b3a8 <[^>]*> nop
-+0000b3ac <[^>]*> nop
-+0000b3b0 <[^>]*> nop
-+0000b3b4 <[^>]*> nop
-+0000b3b8 <[^>]*> nop
-+0000b3bc <[^>]*> nop
-+0000b3c0 <[^>]*> nop
-+0000b3c4 <[^>]*> nop
-+0000b3c8 <[^>]*> nop
-+0000b3cc <[^>]*> nop
-+0000b3d0 <[^>]*> nop
-+0000b3d4 <[^>]*> nop
-+0000b3d8 <[^>]*> nop
-+0000b3dc <[^>]*> nop
-+0000b3e0 <[^>]*> nop
-+0000b3e4 <[^>]*> nop
-+0000b3e8 <[^>]*> nop
-+0000b3ec <[^>]*> nop
-+0000b3f0 <[^>]*> nop
-+0000b3f4 <[^>]*> nop
-+0000b3f8 <[^>]*> nop
-+0000b3fc <[^>]*> nop
-+0000b400 <[^>]*> nop
-+0000b404 <[^>]*> nop
-+0000b408 <[^>]*> nop
-+0000b40c <[^>]*> nop
-+0000b410 <[^>]*> nop
-+0000b414 <[^>]*> nop
-+0000b418 <[^>]*> nop
-+0000b41c <[^>]*> nop
-+0000b420 <[^>]*> nop
-+0000b424 <[^>]*> nop
-+0000b428 <[^>]*> nop
-+0000b42c <[^>]*> nop
-+0000b430 <[^>]*> nop
-+0000b434 <[^>]*> nop
-+0000b438 <[^>]*> nop
-+0000b43c <[^>]*> nop
-+0000b440 <[^>]*> nop
-+0000b444 <[^>]*> nop
-+0000b448 <[^>]*> nop
-+0000b44c <[^>]*> nop
-+0000b450 <[^>]*> nop
-+0000b454 <[^>]*> nop
-+0000b458 <[^>]*> nop
-+0000b45c <[^>]*> nop
-+0000b460 <[^>]*> nop
-+0000b464 <[^>]*> nop
-+0000b468 <[^>]*> nop
-+0000b46c <[^>]*> nop
-+0000b470 <[^>]*> nop
-+0000b474 <[^>]*> nop
-+0000b478 <[^>]*> nop
-+0000b47c <[^>]*> nop
-+0000b480 <[^>]*> nop
-+0000b484 <[^>]*> nop
-+0000b488 <[^>]*> nop
-+0000b48c <[^>]*> nop
-+0000b490 <[^>]*> nop
-+0000b494 <[^>]*> nop
-+0000b498 <[^>]*> nop
-+0000b49c <[^>]*> nop
-+0000b4a0 <[^>]*> nop
-+0000b4a4 <[^>]*> nop
-+0000b4a8 <[^>]*> nop
-+0000b4ac <[^>]*> nop
-+0000b4b0 <[^>]*> nop
-+0000b4b4 <[^>]*> nop
-+0000b4b8 <[^>]*> nop
-+0000b4bc <[^>]*> nop
-+0000b4c0 <[^>]*> nop
-+0000b4c4 <[^>]*> nop
-+0000b4c8 <[^>]*> nop
-+0000b4cc <[^>]*> nop
-+0000b4d0 <[^>]*> nop
-+0000b4d4 <[^>]*> nop
-+0000b4d8 <[^>]*> nop
-+0000b4dc <[^>]*> nop
-+0000b4e0 <[^>]*> nop
-+0000b4e4 <[^>]*> nop
-+0000b4e8 <[^>]*> nop
-+0000b4ec <[^>]*> nop
-+0000b4f0 <[^>]*> nop
-+0000b4f4 <[^>]*> nop
-+0000b4f8 <[^>]*> nop
-+0000b4fc <[^>]*> nop
-+0000b500 <[^>]*> nop
-+0000b504 <[^>]*> nop
-+0000b508 <[^>]*> nop
-+0000b50c <[^>]*> nop
-+0000b510 <[^>]*> nop
-+0000b514 <[^>]*> nop
-+0000b518 <[^>]*> nop
-+0000b51c <[^>]*> nop
-+0000b520 <[^>]*> nop
-+0000b524 <[^>]*> nop
-+0000b528 <[^>]*> nop
-+0000b52c <[^>]*> nop
-+0000b530 <[^>]*> nop
-+0000b534 <[^>]*> nop
-+0000b538 <[^>]*> nop
-+0000b53c <[^>]*> nop
-+0000b540 <[^>]*> nop
-+0000b544 <[^>]*> nop
-+0000b548 <[^>]*> nop
-+0000b54c <[^>]*> nop
-+0000b550 <[^>]*> nop
-+0000b554 <[^>]*> nop
-+0000b558 <[^>]*> nop
-+0000b55c <[^>]*> nop
-+0000b560 <[^>]*> nop
-+0000b564 <[^>]*> nop
-+0000b568 <[^>]*> nop
-+0000b56c <[^>]*> nop
-+0000b570 <[^>]*> nop
-+0000b574 <[^>]*> nop
-+0000b578 <[^>]*> nop
-+0000b57c <[^>]*> nop
-+0000b580 <[^>]*> nop
-+0000b584 <[^>]*> nop
-+0000b588 <[^>]*> nop
-+0000b58c <[^>]*> nop
-+0000b590 <[^>]*> nop
-+0000b594 <[^>]*> nop
-+0000b598 <[^>]*> nop
-+0000b59c <[^>]*> nop
-+0000b5a0 <[^>]*> nop
-+0000b5a4 <[^>]*> nop
-+0000b5a8 <[^>]*> nop
-+0000b5ac <[^>]*> nop
-+0000b5b0 <[^>]*> nop
-+0000b5b4 <[^>]*> nop
-+0000b5b8 <[^>]*> nop
-+0000b5bc <[^>]*> nop
-+0000b5c0 <[^>]*> nop
-+0000b5c4 <[^>]*> nop
-+0000b5c8 <[^>]*> nop
-+0000b5cc <[^>]*> nop
-+0000b5d0 <[^>]*> nop
-+0000b5d4 <[^>]*> nop
-+0000b5d8 <[^>]*> nop
-+0000b5dc <[^>]*> nop
-+0000b5e0 <[^>]*> nop
-+0000b5e4 <[^>]*> nop
-+0000b5e8 <[^>]*> nop
-+0000b5ec <[^>]*> nop
-+0000b5f0 <[^>]*> nop
-+0000b5f4 <[^>]*> nop
-+0000b5f8 <[^>]*> nop
-+0000b5fc <[^>]*> nop
-+0000b600 <[^>]*> nop
-+0000b604 <[^>]*> nop
-+0000b608 <[^>]*> nop
-+0000b60c <[^>]*> nop
-+0000b610 <[^>]*> nop
-+0000b614 <[^>]*> nop
-+0000b618 <[^>]*> nop
-+0000b61c <[^>]*> nop
-+0000b620 <[^>]*> nop
-+0000b624 <[^>]*> nop
-+0000b628 <[^>]*> nop
-+0000b62c <[^>]*> nop
-+0000b630 <[^>]*> nop
-+0000b634 <[^>]*> nop
-+0000b638 <[^>]*> nop
-+0000b63c <[^>]*> nop
-+0000b640 <[^>]*> nop
-+0000b644 <[^>]*> nop
-+0000b648 <[^>]*> nop
-+0000b64c <[^>]*> nop
-+0000b650 <[^>]*> nop
-+0000b654 <[^>]*> nop
-+0000b658 <[^>]*> nop
-+0000b65c <[^>]*> nop
-+0000b660 <[^>]*> nop
-+0000b664 <[^>]*> nop
-+0000b668 <[^>]*> nop
-+0000b66c <[^>]*> nop
-+0000b670 <[^>]*> nop
-+0000b674 <[^>]*> nop
-+0000b678 <[^>]*> nop
-+0000b67c <[^>]*> nop
-+0000b680 <[^>]*> nop
-+0000b684 <[^>]*> nop
-+0000b688 <[^>]*> nop
-+0000b68c <[^>]*> nop
-+0000b690 <[^>]*> nop
-+0000b694 <[^>]*> nop
-+0000b698 <[^>]*> nop
-+0000b69c <[^>]*> nop
-+0000b6a0 <[^>]*> nop
-+0000b6a4 <[^>]*> nop
-+0000b6a8 <[^>]*> nop
-+0000b6ac <[^>]*> nop
-+0000b6b0 <[^>]*> nop
-+0000b6b4 <[^>]*> nop
-+0000b6b8 <[^>]*> nop
-+0000b6bc <[^>]*> nop
-+0000b6c0 <[^>]*> nop
-+0000b6c4 <[^>]*> nop
-+0000b6c8 <[^>]*> nop
-+0000b6cc <[^>]*> nop
-+0000b6d0 <[^>]*> nop
-+0000b6d4 <[^>]*> nop
-+0000b6d8 <[^>]*> nop
-+0000b6dc <[^>]*> nop
-+0000b6e0 <[^>]*> nop
-+0000b6e4 <[^>]*> nop
-+0000b6e8 <[^>]*> nop
-+0000b6ec <[^>]*> nop
-+0000b6f0 <[^>]*> nop
-+0000b6f4 <[^>]*> nop
-+0000b6f8 <[^>]*> nop
-+0000b6fc <[^>]*> nop
-+0000b700 <[^>]*> nop
-+0000b704 <[^>]*> nop
-+0000b708 <[^>]*> nop
-+0000b70c <[^>]*> nop
-+0000b710 <[^>]*> nop
-+0000b714 <[^>]*> nop
-+0000b718 <[^>]*> nop
-+0000b71c <[^>]*> nop
-+0000b720 <[^>]*> nop
-+0000b724 <[^>]*> nop
-+0000b728 <[^>]*> nop
-+0000b72c <[^>]*> nop
-+0000b730 <[^>]*> nop
-+0000b734 <[^>]*> nop
-+0000b738 <[^>]*> nop
-+0000b73c <[^>]*> nop
-+0000b740 <[^>]*> nop
-+0000b744 <[^>]*> nop
-+0000b748 <[^>]*> nop
-+0000b74c <[^>]*> nop
-+0000b750 <[^>]*> nop
-+0000b754 <[^>]*> nop
-+0000b758 <[^>]*> nop
-+0000b75c <[^>]*> nop
-+0000b760 <[^>]*> nop
-+0000b764 <[^>]*> nop
-+0000b768 <[^>]*> nop
-+0000b76c <[^>]*> nop
-+0000b770 <[^>]*> nop
-+0000b774 <[^>]*> nop
-+0000b778 <[^>]*> nop
-+0000b77c <[^>]*> nop
-+0000b780 <[^>]*> nop
-+0000b784 <[^>]*> nop
-+0000b788 <[^>]*> nop
-+0000b78c <[^>]*> nop
-+0000b790 <[^>]*> nop
-+0000b794 <[^>]*> nop
-+0000b798 <[^>]*> nop
-+0000b79c <[^>]*> nop
-+0000b7a0 <[^>]*> nop
-+0000b7a4 <[^>]*> nop
-+0000b7a8 <[^>]*> nop
-+0000b7ac <[^>]*> nop
-+0000b7b0 <[^>]*> nop
-+0000b7b4 <[^>]*> nop
-+0000b7b8 <[^>]*> nop
-+0000b7bc <[^>]*> nop
-+0000b7c0 <[^>]*> nop
-+0000b7c4 <[^>]*> nop
-+0000b7c8 <[^>]*> nop
-+0000b7cc <[^>]*> nop
-+0000b7d0 <[^>]*> nop
-+0000b7d4 <[^>]*> nop
-+0000b7d8 <[^>]*> nop
-+0000b7dc <[^>]*> nop
-+0000b7e0 <[^>]*> nop
-+0000b7e4 <[^>]*> nop
-+0000b7e8 <[^>]*> nop
-+0000b7ec <[^>]*> nop
-+0000b7f0 <[^>]*> nop
-+0000b7f4 <[^>]*> nop
-+0000b7f8 <[^>]*> nop
-+0000b7fc <[^>]*> nop
-+0000b800 <[^>]*> nop
-+0000b804 <[^>]*> nop
-+0000b808 <[^>]*> nop
-+0000b80c <[^>]*> nop
-+0000b810 <[^>]*> nop
-+0000b814 <[^>]*> nop
-+0000b818 <[^>]*> nop
-+0000b81c <[^>]*> nop
-+0000b820 <[^>]*> nop
-+0000b824 <[^>]*> nop
-+0000b828 <[^>]*> nop
-+0000b82c <[^>]*> nop
-+0000b830 <[^>]*> nop
-+0000b834 <[^>]*> nop
-+0000b838 <[^>]*> nop
-+0000b83c <[^>]*> nop
-+0000b840 <[^>]*> nop
-+0000b844 <[^>]*> nop
-+0000b848 <[^>]*> nop
-+0000b84c <[^>]*> nop
-+0000b850 <[^>]*> nop
-+0000b854 <[^>]*> nop
-+0000b858 <[^>]*> nop
-+0000b85c <[^>]*> nop
-+0000b860 <[^>]*> nop
-+0000b864 <[^>]*> nop
-+0000b868 <[^>]*> nop
-+0000b86c <[^>]*> nop
-+0000b870 <[^>]*> nop
-+0000b874 <[^>]*> nop
-+0000b878 <[^>]*> nop
-+0000b87c <[^>]*> nop
-+0000b880 <[^>]*> nop
-+0000b884 <[^>]*> nop
-+0000b888 <[^>]*> nop
-+0000b88c <[^>]*> nop
-+0000b890 <[^>]*> nop
-+0000b894 <[^>]*> nop
-+0000b898 <[^>]*> nop
-+0000b89c <[^>]*> nop
-+0000b8a0 <[^>]*> nop
-+0000b8a4 <[^>]*> nop
-+0000b8a8 <[^>]*> nop
-+0000b8ac <[^>]*> nop
-+0000b8b0 <[^>]*> nop
-+0000b8b4 <[^>]*> nop
-+0000b8b8 <[^>]*> nop
-+0000b8bc <[^>]*> nop
-+0000b8c0 <[^>]*> nop
-+0000b8c4 <[^>]*> nop
-+0000b8c8 <[^>]*> nop
-+0000b8cc <[^>]*> nop
-+0000b8d0 <[^>]*> nop
-+0000b8d4 <[^>]*> nop
-+0000b8d8 <[^>]*> nop
-+0000b8dc <[^>]*> nop
-+0000b8e0 <[^>]*> nop
-+0000b8e4 <[^>]*> nop
-+0000b8e8 <[^>]*> nop
-+0000b8ec <[^>]*> nop
-+0000b8f0 <[^>]*> nop
-+0000b8f4 <[^>]*> nop
-+0000b8f8 <[^>]*> nop
-+0000b8fc <[^>]*> nop
-+0000b900 <[^>]*> nop
-+0000b904 <[^>]*> nop
-+0000b908 <[^>]*> nop
-+0000b90c <[^>]*> nop
-+0000b910 <[^>]*> nop
-+0000b914 <[^>]*> nop
-+0000b918 <[^>]*> nop
-+0000b91c <[^>]*> nop
-+0000b920 <[^>]*> nop
-+0000b924 <[^>]*> nop
-+0000b928 <[^>]*> nop
-+0000b92c <[^>]*> nop
-+0000b930 <[^>]*> nop
-+0000b934 <[^>]*> nop
-+0000b938 <[^>]*> nop
-+0000b93c <[^>]*> nop
-+0000b940 <[^>]*> nop
-+0000b944 <[^>]*> nop
-+0000b948 <[^>]*> nop
-+0000b94c <[^>]*> nop
-+0000b950 <[^>]*> nop
-+0000b954 <[^>]*> nop
-+0000b958 <[^>]*> nop
-+0000b95c <[^>]*> nop
-+0000b960 <[^>]*> nop
-+0000b964 <[^>]*> nop
-+0000b968 <[^>]*> nop
-+0000b96c <[^>]*> nop
-+0000b970 <[^>]*> nop
-+0000b974 <[^>]*> nop
-+0000b978 <[^>]*> nop
-+0000b97c <[^>]*> nop
-+0000b980 <[^>]*> nop
-+0000b984 <[^>]*> nop
-+0000b988 <[^>]*> nop
-+0000b98c <[^>]*> nop
-+0000b990 <[^>]*> nop
-+0000b994 <[^>]*> nop
-+0000b998 <[^>]*> nop
-+0000b99c <[^>]*> nop
-+0000b9a0 <[^>]*> nop
-+0000b9a4 <[^>]*> nop
-+0000b9a8 <[^>]*> nop
-+0000b9ac <[^>]*> nop
-+0000b9b0 <[^>]*> nop
-+0000b9b4 <[^>]*> nop
-+0000b9b8 <[^>]*> nop
-+0000b9bc <[^>]*> nop
-+0000b9c0 <[^>]*> nop
-+0000b9c4 <[^>]*> nop
-+0000b9c8 <[^>]*> nop
-+0000b9cc <[^>]*> nop
-+0000b9d0 <[^>]*> nop
-+0000b9d4 <[^>]*> nop
-+0000b9d8 <[^>]*> nop
-+0000b9dc <[^>]*> nop
-+0000b9e0 <[^>]*> nop
-+0000b9e4 <[^>]*> nop
-+0000b9e8 <[^>]*> nop
-+0000b9ec <[^>]*> nop
-+0000b9f0 <[^>]*> nop
-+0000b9f4 <[^>]*> nop
-+0000b9f8 <[^>]*> nop
-+0000b9fc <[^>]*> nop
-+0000ba00 <[^>]*> nop
-+0000ba04 <[^>]*> nop
-+0000ba08 <[^>]*> nop
-+0000ba0c <[^>]*> nop
-+0000ba10 <[^>]*> nop
-+0000ba14 <[^>]*> nop
-+0000ba18 <[^>]*> nop
-+0000ba1c <[^>]*> nop
-+0000ba20 <[^>]*> nop
-+0000ba24 <[^>]*> nop
-+0000ba28 <[^>]*> nop
-+0000ba2c <[^>]*> nop
-+0000ba30 <[^>]*> nop
-+0000ba34 <[^>]*> nop
-+0000ba38 <[^>]*> nop
-+0000ba3c <[^>]*> nop
-+0000ba40 <[^>]*> nop
-+0000ba44 <[^>]*> nop
-+0000ba48 <[^>]*> nop
-+0000ba4c <[^>]*> nop
-+0000ba50 <[^>]*> nop
-+0000ba54 <[^>]*> nop
-+0000ba58 <[^>]*> nop
-+0000ba5c <[^>]*> nop
-+0000ba60 <[^>]*> nop
-+0000ba64 <[^>]*> nop
-+0000ba68 <[^>]*> nop
-+0000ba6c <[^>]*> nop
-+0000ba70 <[^>]*> nop
-+0000ba74 <[^>]*> nop
-+0000ba78 <[^>]*> nop
-+0000ba7c <[^>]*> nop
-+0000ba80 <[^>]*> nop
-+0000ba84 <[^>]*> nop
-+0000ba88 <[^>]*> nop
-+0000ba8c <[^>]*> nop
-+0000ba90 <[^>]*> nop
-+0000ba94 <[^>]*> nop
-+0000ba98 <[^>]*> nop
-+0000ba9c <[^>]*> nop
-+0000baa0 <[^>]*> nop
-+0000baa4 <[^>]*> nop
-+0000baa8 <[^>]*> nop
-+0000baac <[^>]*> nop
-+0000bab0 <[^>]*> nop
-+0000bab4 <[^>]*> nop
-+0000bab8 <[^>]*> nop
-+0000babc <[^>]*> nop
-+0000bac0 <[^>]*> nop
-+0000bac4 <[^>]*> nop
-+0000bac8 <[^>]*> nop
-+0000bacc <[^>]*> nop
-+0000bad0 <[^>]*> nop
-+0000bad4 <[^>]*> nop
-+0000bad8 <[^>]*> nop
-+0000badc <[^>]*> nop
-+0000bae0 <[^>]*> nop
-+0000bae4 <[^>]*> nop
-+0000bae8 <[^>]*> nop
-+0000baec <[^>]*> nop
-+0000baf0 <[^>]*> nop
-+0000baf4 <[^>]*> nop
-+0000baf8 <[^>]*> nop
-+0000bafc <[^>]*> nop
-+0000bb00 <[^>]*> nop
-+0000bb04 <[^>]*> nop
-+0000bb08 <[^>]*> nop
-+0000bb0c <[^>]*> nop
-+0000bb10 <[^>]*> nop
-+0000bb14 <[^>]*> nop
-+0000bb18 <[^>]*> nop
-+0000bb1c <[^>]*> nop
-+0000bb20 <[^>]*> nop
-+0000bb24 <[^>]*> nop
-+0000bb28 <[^>]*> nop
-+0000bb2c <[^>]*> nop
-+0000bb30 <[^>]*> nop
-+0000bb34 <[^>]*> nop
-+0000bb38 <[^>]*> nop
-+0000bb3c <[^>]*> nop
-+0000bb40 <[^>]*> nop
-+0000bb44 <[^>]*> nop
-+0000bb48 <[^>]*> nop
-+0000bb4c <[^>]*> nop
-+0000bb50 <[^>]*> nop
-+0000bb54 <[^>]*> nop
-+0000bb58 <[^>]*> nop
-+0000bb5c <[^>]*> nop
-+0000bb60 <[^>]*> nop
-+0000bb64 <[^>]*> nop
-+0000bb68 <[^>]*> nop
-+0000bb6c <[^>]*> nop
-+0000bb70 <[^>]*> nop
-+0000bb74 <[^>]*> nop
-+0000bb78 <[^>]*> nop
-+0000bb7c <[^>]*> nop
-+0000bb80 <[^>]*> nop
-+0000bb84 <[^>]*> nop
-+0000bb88 <[^>]*> nop
-+0000bb8c <[^>]*> nop
-+0000bb90 <[^>]*> nop
-+0000bb94 <[^>]*> nop
-+0000bb98 <[^>]*> nop
-+0000bb9c <[^>]*> nop
-+0000bba0 <[^>]*> nop
-+0000bba4 <[^>]*> nop
-+0000bba8 <[^>]*> nop
-+0000bbac <[^>]*> nop
-+0000bbb0 <[^>]*> nop
-+0000bbb4 <[^>]*> nop
-+0000bbb8 <[^>]*> nop
-+0000bbbc <[^>]*> nop
-+0000bbc0 <[^>]*> nop
-+0000bbc4 <[^>]*> nop
-+0000bbc8 <[^>]*> nop
-+0000bbcc <[^>]*> nop
-+0000bbd0 <[^>]*> nop
-+0000bbd4 <[^>]*> nop
-+0000bbd8 <[^>]*> nop
-+0000bbdc <[^>]*> nop
-+0000bbe0 <[^>]*> nop
-+0000bbe4 <[^>]*> nop
-+0000bbe8 <[^>]*> nop
-+0000bbec <[^>]*> nop
-+0000bbf0 <[^>]*> nop
-+0000bbf4 <[^>]*> nop
-+0000bbf8 <[^>]*> nop
-+0000bbfc <[^>]*> nop
-+0000bc00 <[^>]*> nop
-+0000bc04 <[^>]*> nop
-+0000bc08 <[^>]*> nop
-+0000bc0c <[^>]*> nop
-+0000bc10 <[^>]*> nop
-+0000bc14 <[^>]*> nop
-+0000bc18 <[^>]*> nop
-+0000bc1c <[^>]*> nop
-+0000bc20 <[^>]*> nop
-+0000bc24 <[^>]*> nop
-+0000bc28 <[^>]*> nop
-+0000bc2c <[^>]*> nop
-+0000bc30 <[^>]*> nop
-+0000bc34 <[^>]*> nop
-+0000bc38 <[^>]*> nop
-+0000bc3c <[^>]*> nop
-+0000bc40 <[^>]*> nop
-+0000bc44 <[^>]*> nop
-+0000bc48 <[^>]*> nop
-+0000bc4c <[^>]*> nop
-+0000bc50 <[^>]*> nop
-+0000bc54 <[^>]*> nop
-+0000bc58 <[^>]*> nop
-+0000bc5c <[^>]*> nop
-+0000bc60 <[^>]*> nop
-+0000bc64 <[^>]*> nop
-+0000bc68 <[^>]*> nop
-+0000bc6c <[^>]*> nop
-+0000bc70 <[^>]*> nop
-+0000bc74 <[^>]*> nop
-+0000bc78 <[^>]*> nop
-+0000bc7c <[^>]*> nop
-+0000bc80 <[^>]*> nop
-+0000bc84 <[^>]*> nop
-+0000bc88 <[^>]*> nop
-+0000bc8c <[^>]*> nop
-+0000bc90 <[^>]*> nop
-+0000bc94 <[^>]*> nop
-+0000bc98 <[^>]*> nop
-+0000bc9c <[^>]*> nop
-+0000bca0 <[^>]*> nop
-+0000bca4 <[^>]*> nop
-+0000bca8 <[^>]*> nop
-+0000bcac <[^>]*> nop
-+0000bcb0 <[^>]*> nop
-+0000bcb4 <[^>]*> nop
-+0000bcb8 <[^>]*> nop
-+0000bcbc <[^>]*> nop
-+0000bcc0 <[^>]*> nop
-+0000bcc4 <[^>]*> nop
-+0000bcc8 <[^>]*> nop
-+0000bccc <[^>]*> nop
-+0000bcd0 <[^>]*> nop
-+0000bcd4 <[^>]*> nop
-+0000bcd8 <[^>]*> nop
-+0000bcdc <[^>]*> nop
-+0000bce0 <[^>]*> nop
-+0000bce4 <[^>]*> nop
-+0000bce8 <[^>]*> nop
-+0000bcec <[^>]*> nop
-+0000bcf0 <[^>]*> nop
-+0000bcf4 <[^>]*> nop
-+0000bcf8 <[^>]*> nop
-+0000bcfc <[^>]*> nop
-+0000bd00 <[^>]*> nop
-+0000bd04 <[^>]*> nop
-+0000bd08 <[^>]*> nop
-+0000bd0c <[^>]*> nop
-+0000bd10 <[^>]*> nop
-+0000bd14 <[^>]*> nop
-+0000bd18 <[^>]*> nop
-+0000bd1c <[^>]*> nop
-+0000bd20 <[^>]*> nop
-+0000bd24 <[^>]*> nop
-+0000bd28 <[^>]*> nop
-+0000bd2c <[^>]*> nop
-+0000bd30 <[^>]*> nop
-+0000bd34 <[^>]*> nop
-+0000bd38 <[^>]*> nop
-+0000bd3c <[^>]*> nop
-+0000bd40 <[^>]*> nop
-+0000bd44 <[^>]*> nop
-+0000bd48 <[^>]*> nop
-+0000bd4c <[^>]*> nop
-+0000bd50 <[^>]*> nop
-+0000bd54 <[^>]*> nop
-+0000bd58 <[^>]*> nop
-+0000bd5c <[^>]*> nop
-+0000bd60 <[^>]*> nop
-+0000bd64 <[^>]*> nop
-+0000bd68 <[^>]*> nop
-+0000bd6c <[^>]*> nop
-+0000bd70 <[^>]*> nop
-+0000bd74 <[^>]*> nop
-+0000bd78 <[^>]*> nop
-+0000bd7c <[^>]*> nop
-+0000bd80 <[^>]*> nop
-+0000bd84 <[^>]*> nop
-+0000bd88 <[^>]*> nop
-+0000bd8c <[^>]*> nop
-+0000bd90 <[^>]*> nop
-+0000bd94 <[^>]*> nop
-+0000bd98 <[^>]*> nop
-+0000bd9c <[^>]*> nop
-+0000bda0 <[^>]*> nop
-+0000bda4 <[^>]*> nop
-+0000bda8 <[^>]*> nop
-+0000bdac <[^>]*> nop
-+0000bdb0 <[^>]*> nop
-+0000bdb4 <[^>]*> nop
-+0000bdb8 <[^>]*> nop
-+0000bdbc <[^>]*> nop
-+0000bdc0 <[^>]*> nop
-+0000bdc4 <[^>]*> nop
-+0000bdc8 <[^>]*> nop
-+0000bdcc <[^>]*> nop
-+0000bdd0 <[^>]*> nop
-+0000bdd4 <[^>]*> nop
-+0000bdd8 <[^>]*> nop
-+0000bddc <[^>]*> nop
-+0000bde0 <[^>]*> nop
-+0000bde4 <[^>]*> nop
-+0000bde8 <[^>]*> nop
-+0000bdec <[^>]*> nop
-+0000bdf0 <[^>]*> nop
-+0000bdf4 <[^>]*> nop
-+0000bdf8 <[^>]*> nop
-+0000bdfc <[^>]*> nop
-+0000be00 <[^>]*> nop
-+0000be04 <[^>]*> nop
-+0000be08 <[^>]*> nop
-+0000be0c <[^>]*> nop
-+0000be10 <[^>]*> nop
-+0000be14 <[^>]*> nop
-+0000be18 <[^>]*> nop
-+0000be1c <[^>]*> nop
-+0000be20 <[^>]*> nop
-+0000be24 <[^>]*> nop
-+0000be28 <[^>]*> nop
-+0000be2c <[^>]*> nop
-+0000be30 <[^>]*> nop
-+0000be34 <[^>]*> nop
-+0000be38 <[^>]*> nop
-+0000be3c <[^>]*> nop
-+0000be40 <[^>]*> nop
-+0000be44 <[^>]*> nop
-+0000be48 <[^>]*> nop
-+0000be4c <[^>]*> nop
-+0000be50 <[^>]*> nop
-+0000be54 <[^>]*> nop
-+0000be58 <[^>]*> nop
-+0000be5c <[^>]*> nop
-+0000be60 <[^>]*> nop
-+0000be64 <[^>]*> nop
-+0000be68 <[^>]*> nop
-+0000be6c <[^>]*> nop
-+0000be70 <[^>]*> nop
-+0000be74 <[^>]*> nop
-+0000be78 <[^>]*> nop
-+0000be7c <[^>]*> nop
-+0000be80 <[^>]*> nop
-+0000be84 <[^>]*> nop
-+0000be88 <[^>]*> nop
-+0000be8c <[^>]*> nop
-+0000be90 <[^>]*> nop
-+0000be94 <[^>]*> nop
-+0000be98 <[^>]*> nop
-+0000be9c <[^>]*> nop
-+0000bea0 <[^>]*> nop
-+0000bea4 <[^>]*> nop
-+0000bea8 <[^>]*> nop
-+0000beac <[^>]*> nop
-+0000beb0 <[^>]*> nop
-+0000beb4 <[^>]*> nop
-+0000beb8 <[^>]*> nop
-+0000bebc <[^>]*> nop
-+0000bec0 <[^>]*> nop
-+0000bec4 <[^>]*> nop
-+0000bec8 <[^>]*> nop
-+0000becc <[^>]*> nop
-+0000bed0 <[^>]*> nop
-+0000bed4 <[^>]*> nop
-+0000bed8 <[^>]*> nop
-+0000bedc <[^>]*> nop
-+0000bee0 <[^>]*> nop
-+0000bee4 <[^>]*> nop
-+0000bee8 <[^>]*> nop
-+0000beec <[^>]*> nop
-+0000bef0 <[^>]*> nop
-+0000bef4 <[^>]*> nop
-+0000bef8 <[^>]*> nop
-+0000befc <[^>]*> nop
-+0000bf00 <[^>]*> nop
-+0000bf04 <[^>]*> nop
-+0000bf08 <[^>]*> nop
-+0000bf0c <[^>]*> nop
-+0000bf10 <[^>]*> nop
-+0000bf14 <[^>]*> nop
-+0000bf18 <[^>]*> nop
-+0000bf1c <[^>]*> nop
-+0000bf20 <[^>]*> nop
-+0000bf24 <[^>]*> nop
-+0000bf28 <[^>]*> nop
-+0000bf2c <[^>]*> nop
-+0000bf30 <[^>]*> nop
-+0000bf34 <[^>]*> nop
-+0000bf38 <[^>]*> nop
-+0000bf3c <[^>]*> nop
-+0000bf40 <[^>]*> nop
-+0000bf44 <[^>]*> nop
-+0000bf48 <[^>]*> nop
-+0000bf4c <[^>]*> nop
-+0000bf50 <[^>]*> nop
-+0000bf54 <[^>]*> nop
-+0000bf58 <[^>]*> nop
-+0000bf5c <[^>]*> nop
-+0000bf60 <[^>]*> nop
-+0000bf64 <[^>]*> nop
-+0000bf68 <[^>]*> nop
-+0000bf6c <[^>]*> nop
-+0000bf70 <[^>]*> nop
-+0000bf74 <[^>]*> nop
-+0000bf78 <[^>]*> nop
-+0000bf7c <[^>]*> nop
-+0000bf80 <[^>]*> nop
-+0000bf84 <[^>]*> nop
-+0000bf88 <[^>]*> nop
-+0000bf8c <[^>]*> nop
-+0000bf90 <[^>]*> nop
-+0000bf94 <[^>]*> nop
-+0000bf98 <[^>]*> nop
-+0000bf9c <[^>]*> nop
-+0000bfa0 <[^>]*> nop
-+0000bfa4 <[^>]*> nop
-+0000bfa8 <[^>]*> nop
-+0000bfac <[^>]*> nop
-+0000bfb0 <[^>]*> nop
-+0000bfb4 <[^>]*> nop
-+0000bfb8 <[^>]*> nop
-+0000bfbc <[^>]*> nop
-+0000bfc0 <[^>]*> nop
-+0000bfc4 <[^>]*> nop
-+0000bfc8 <[^>]*> nop
-+0000bfcc <[^>]*> nop
-+0000bfd0 <[^>]*> nop
-+0000bfd4 <[^>]*> nop
-+0000bfd8 <[^>]*> nop
-+0000bfdc <[^>]*> nop
-+0000bfe0 <[^>]*> nop
-+0000bfe4 <[^>]*> nop
-+0000bfe8 <[^>]*> nop
-+0000bfec <[^>]*> nop
-+0000bff0 <[^>]*> nop
-+0000bff4 <[^>]*> nop
-+0000bff8 <[^>]*> nop
-+0000bffc <[^>]*> nop
-+0000c000 <[^>]*> nop
-+0000c004 <[^>]*> nop
-+0000c008 <[^>]*> nop
-+0000c00c <[^>]*> nop
-+0000c010 <[^>]*> nop
-+0000c014 <[^>]*> nop
-+0000c018 <[^>]*> nop
-+0000c01c <[^>]*> nop
-+0000c020 <[^>]*> nop
-+0000c024 <[^>]*> nop
-+0000c028 <[^>]*> nop
-+0000c02c <[^>]*> nop
-+0000c030 <[^>]*> nop
-+0000c034 <[^>]*> nop
-+0000c038 <[^>]*> nop
-+0000c03c <[^>]*> nop
-+0000c040 <[^>]*> nop
-+0000c044 <[^>]*> nop
-+0000c048 <[^>]*> nop
-+0000c04c <[^>]*> nop
-+0000c050 <[^>]*> nop
-+0000c054 <[^>]*> nop
-+0000c058 <[^>]*> nop
-+0000c05c <[^>]*> nop
-+0000c060 <[^>]*> nop
-+0000c064 <[^>]*> nop
-+0000c068 <[^>]*> nop
-+0000c06c <[^>]*> nop
-+0000c070 <[^>]*> nop
-+0000c074 <[^>]*> nop
-+0000c078 <[^>]*> nop
-+0000c07c <[^>]*> nop
-+0000c080 <[^>]*> nop
-+0000c084 <[^>]*> nop
-+0000c088 <[^>]*> nop
-+0000c08c <[^>]*> nop
-+0000c090 <[^>]*> nop
-+0000c094 <[^>]*> nop
-+0000c098 <[^>]*> nop
-+0000c09c <[^>]*> nop
-+0000c0a0 <[^>]*> nop
-+0000c0a4 <[^>]*> nop
-+0000c0a8 <[^>]*> nop
-+0000c0ac <[^>]*> nop
-+0000c0b0 <[^>]*> nop
-+0000c0b4 <[^>]*> nop
-+0000c0b8 <[^>]*> nop
-+0000c0bc <[^>]*> nop
-+0000c0c0 <[^>]*> nop
-+0000c0c4 <[^>]*> nop
-+0000c0c8 <[^>]*> nop
-+0000c0cc <[^>]*> nop
-+0000c0d0 <[^>]*> nop
-+0000c0d4 <[^>]*> nop
-+0000c0d8 <[^>]*> nop
-+0000c0dc <[^>]*> nop
-+0000c0e0 <[^>]*> nop
-+0000c0e4 <[^>]*> nop
-+0000c0e8 <[^>]*> nop
-+0000c0ec <[^>]*> nop
-+0000c0f0 <[^>]*> nop
-+0000c0f4 <[^>]*> nop
-+0000c0f8 <[^>]*> nop
-+0000c0fc <[^>]*> nop
-+0000c100 <[^>]*> nop
-+0000c104 <[^>]*> nop
-+0000c108 <[^>]*> nop
-+0000c10c <[^>]*> nop
-+0000c110 <[^>]*> nop
-+0000c114 <[^>]*> nop
-+0000c118 <[^>]*> nop
-+0000c11c <[^>]*> nop
-+0000c120 <[^>]*> nop
-+0000c124 <[^>]*> nop
-+0000c128 <[^>]*> nop
-+0000c12c <[^>]*> nop
-+0000c130 <[^>]*> nop
-+0000c134 <[^>]*> nop
-+0000c138 <[^>]*> nop
-+0000c13c <[^>]*> nop
-+0000c140 <[^>]*> nop
-+0000c144 <[^>]*> nop
-+0000c148 <[^>]*> nop
-+0000c14c <[^>]*> nop
-+0000c150 <[^>]*> nop
-+0000c154 <[^>]*> nop
-+0000c158 <[^>]*> nop
-+0000c15c <[^>]*> nop
-+0000c160 <[^>]*> nop
-+0000c164 <[^>]*> nop
-+0000c168 <[^>]*> nop
-+0000c16c <[^>]*> nop
-+0000c170 <[^>]*> nop
-+0000c174 <[^>]*> nop
-+0000c178 <[^>]*> nop
-+0000c17c <[^>]*> nop
-+0000c180 <[^>]*> nop
-+0000c184 <[^>]*> nop
-+0000c188 <[^>]*> nop
-+0000c18c <[^>]*> nop
-+0000c190 <[^>]*> nop
-+0000c194 <[^>]*> nop
-+0000c198 <[^>]*> nop
-+0000c19c <[^>]*> nop
-+0000c1a0 <[^>]*> nop
-+0000c1a4 <[^>]*> nop
-+0000c1a8 <[^>]*> nop
-+0000c1ac <[^>]*> nop
-+0000c1b0 <[^>]*> nop
-+0000c1b4 <[^>]*> nop
-+0000c1b8 <[^>]*> nop
-+0000c1bc <[^>]*> nop
-+0000c1c0 <[^>]*> nop
-+0000c1c4 <[^>]*> nop
-+0000c1c8 <[^>]*> nop
-+0000c1cc <[^>]*> nop
-+0000c1d0 <[^>]*> nop
-+0000c1d4 <[^>]*> nop
-+0000c1d8 <[^>]*> nop
-+0000c1dc <[^>]*> nop
-+0000c1e0 <[^>]*> nop
-+0000c1e4 <[^>]*> nop
-+0000c1e8 <[^>]*> nop
-+0000c1ec <[^>]*> nop
-+0000c1f0 <[^>]*> nop
-+0000c1f4 <[^>]*> nop
-+0000c1f8 <[^>]*> nop
-+0000c1fc <[^>]*> nop
-+0000c200 <[^>]*> nop
-+0000c204 <[^>]*> nop
-+0000c208 <[^>]*> nop
-+0000c20c <[^>]*> nop
-+0000c210 <[^>]*> nop
-+0000c214 <[^>]*> nop
-+0000c218 <[^>]*> nop
-+0000c21c <[^>]*> nop
-+0000c220 <[^>]*> nop
-+0000c224 <[^>]*> nop
-+0000c228 <[^>]*> nop
-+0000c22c <[^>]*> nop
-+0000c230 <[^>]*> nop
-+0000c234 <[^>]*> nop
-+0000c238 <[^>]*> nop
-+0000c23c <[^>]*> nop
-+0000c240 <[^>]*> nop
-+0000c244 <[^>]*> nop
-+0000c248 <[^>]*> nop
-+0000c24c <[^>]*> nop
-+0000c250 <[^>]*> nop
-+0000c254 <[^>]*> nop
-+0000c258 <[^>]*> nop
-+0000c25c <[^>]*> nop
-+0000c260 <[^>]*> nop
-+0000c264 <[^>]*> nop
-+0000c268 <[^>]*> nop
-+0000c26c <[^>]*> nop
-+0000c270 <[^>]*> nop
-+0000c274 <[^>]*> nop
-+0000c278 <[^>]*> nop
-+0000c27c <[^>]*> nop
-+0000c280 <[^>]*> nop
-+0000c284 <[^>]*> nop
-+0000c288 <[^>]*> nop
-+0000c28c <[^>]*> nop
-+0000c290 <[^>]*> nop
-+0000c294 <[^>]*> nop
-+0000c298 <[^>]*> nop
-+0000c29c <[^>]*> nop
-+0000c2a0 <[^>]*> nop
-+0000c2a4 <[^>]*> nop
-+0000c2a8 <[^>]*> nop
-+0000c2ac <[^>]*> nop
-+0000c2b0 <[^>]*> nop
-+0000c2b4 <[^>]*> nop
-+0000c2b8 <[^>]*> nop
-+0000c2bc <[^>]*> nop
-+0000c2c0 <[^>]*> nop
-+0000c2c4 <[^>]*> nop
-+0000c2c8 <[^>]*> nop
-+0000c2cc <[^>]*> nop
-+0000c2d0 <[^>]*> nop
-+0000c2d4 <[^>]*> nop
-+0000c2d8 <[^>]*> nop
-+0000c2dc <[^>]*> nop
-+0000c2e0 <[^>]*> nop
-+0000c2e4 <[^>]*> nop
-+0000c2e8 <[^>]*> nop
-+0000c2ec <[^>]*> nop
-+0000c2f0 <[^>]*> nop
-+0000c2f4 <[^>]*> nop
-+0000c2f8 <[^>]*> nop
-+0000c2fc <[^>]*> nop
-+0000c300 <[^>]*> nop
-+0000c304 <[^>]*> nop
-+0000c308 <[^>]*> nop
-+0000c30c <[^>]*> nop
-+0000c310 <[^>]*> nop
-+0000c314 <[^>]*> nop
-+0000c318 <[^>]*> nop
-+0000c31c <[^>]*> nop
-+0000c320 <[^>]*> nop
-+0000c324 <[^>]*> nop
-+0000c328 <[^>]*> nop
-+0000c32c <[^>]*> nop
-+0000c330 <[^>]*> nop
-+0000c334 <[^>]*> nop
-+0000c338 <[^>]*> nop
-+0000c33c <[^>]*> nop
-+0000c340 <[^>]*> nop
-+0000c344 <[^>]*> nop
-+0000c348 <[^>]*> nop
-+0000c34c <[^>]*> nop
-+0000c350 <[^>]*> nop
-+0000c354 <[^>]*> nop
-+0000c358 <[^>]*> nop
-+0000c35c <[^>]*> nop
-+0000c360 <[^>]*> nop
-+0000c364 <[^>]*> nop
-+0000c368 <[^>]*> nop
-+0000c36c <[^>]*> nop
-+0000c370 <[^>]*> nop
-+0000c374 <[^>]*> nop
-+0000c378 <[^>]*> nop
-+0000c37c <[^>]*> nop
-+0000c380 <[^>]*> nop
-+0000c384 <[^>]*> nop
-+0000c388 <[^>]*> nop
-+0000c38c <[^>]*> nop
-+0000c390 <[^>]*> nop
-+0000c394 <[^>]*> nop
-+0000c398 <[^>]*> nop
-+0000c39c <[^>]*> nop
-+0000c3a0 <[^>]*> nop
-+0000c3a4 <[^>]*> nop
-+0000c3a8 <[^>]*> nop
-+0000c3ac <[^>]*> nop
-+0000c3b0 <[^>]*> nop
-+0000c3b4 <[^>]*> nop
-+0000c3b8 <[^>]*> nop
-+0000c3bc <[^>]*> nop
-+0000c3c0 <[^>]*> nop
-+0000c3c4 <[^>]*> nop
-+0000c3c8 <[^>]*> nop
-+0000c3cc <[^>]*> nop
-+0000c3d0 <[^>]*> nop
-+0000c3d4 <[^>]*> nop
-+0000c3d8 <[^>]*> nop
-+0000c3dc <[^>]*> nop
-+0000c3e0 <[^>]*> nop
-+0000c3e4 <[^>]*> nop
-+0000c3e8 <[^>]*> nop
-+0000c3ec <[^>]*> nop
-+0000c3f0 <[^>]*> nop
-+0000c3f4 <[^>]*> nop
-+0000c3f8 <[^>]*> nop
-+0000c3fc <[^>]*> nop
-+0000c400 <[^>]*> nop
-+0000c404 <[^>]*> nop
-+0000c408 <[^>]*> nop
-+0000c40c <[^>]*> nop
-+0000c410 <[^>]*> nop
-+0000c414 <[^>]*> nop
-+0000c418 <[^>]*> nop
-+0000c41c <[^>]*> nop
-+0000c420 <[^>]*> nop
-+0000c424 <[^>]*> nop
-+0000c428 <[^>]*> nop
-+0000c42c <[^>]*> nop
-+0000c430 <[^>]*> nop
-+0000c434 <[^>]*> nop
-+0000c438 <[^>]*> nop
-+0000c43c <[^>]*> nop
-+0000c440 <[^>]*> nop
-+0000c444 <[^>]*> nop
-+0000c448 <[^>]*> nop
-+0000c44c <[^>]*> nop
-+0000c450 <[^>]*> nop
-+0000c454 <[^>]*> nop
-+0000c458 <[^>]*> nop
-+0000c45c <[^>]*> nop
-+0000c460 <[^>]*> nop
-+0000c464 <[^>]*> nop
-+0000c468 <[^>]*> nop
-+0000c46c <[^>]*> nop
-+0000c470 <[^>]*> nop
-+0000c474 <[^>]*> nop
-+0000c478 <[^>]*> nop
-+0000c47c <[^>]*> nop
-+0000c480 <[^>]*> nop
-+0000c484 <[^>]*> nop
-+0000c488 <[^>]*> nop
-+0000c48c <[^>]*> nop
-+0000c490 <[^>]*> nop
-+0000c494 <[^>]*> nop
-+0000c498 <[^>]*> nop
-+0000c49c <[^>]*> nop
-+0000c4a0 <[^>]*> nop
-+0000c4a4 <[^>]*> nop
-+0000c4a8 <[^>]*> nop
-+0000c4ac <[^>]*> nop
-+0000c4b0 <[^>]*> nop
-+0000c4b4 <[^>]*> nop
-+0000c4b8 <[^>]*> nop
-+0000c4bc <[^>]*> nop
-+0000c4c0 <[^>]*> nop
-+0000c4c4 <[^>]*> nop
-+0000c4c8 <[^>]*> nop
-+0000c4cc <[^>]*> nop
-+0000c4d0 <[^>]*> nop
-+0000c4d4 <[^>]*> nop
-+0000c4d8 <[^>]*> nop
-+0000c4dc <[^>]*> nop
-+0000c4e0 <[^>]*> nop
-+0000c4e4 <[^>]*> nop
-+0000c4e8 <[^>]*> nop
-+0000c4ec <[^>]*> nop
-+0000c4f0 <[^>]*> nop
-+0000c4f4 <[^>]*> nop
-+0000c4f8 <[^>]*> nop
-+0000c4fc <[^>]*> nop
-+0000c500 <[^>]*> nop
-+0000c504 <[^>]*> nop
-+0000c508 <[^>]*> nop
-+0000c50c <[^>]*> nop
-+0000c510 <[^>]*> nop
-+0000c514 <[^>]*> nop
-+0000c518 <[^>]*> nop
-+0000c51c <[^>]*> nop
-+0000c520 <[^>]*> nop
-+0000c524 <[^>]*> nop
-+0000c528 <[^>]*> nop
-+0000c52c <[^>]*> nop
-+0000c530 <[^>]*> nop
-+0000c534 <[^>]*> nop
-+0000c538 <[^>]*> nop
-+0000c53c <[^>]*> nop
-+0000c540 <[^>]*> nop
-+0000c544 <[^>]*> nop
-+0000c548 <[^>]*> nop
-+0000c54c <[^>]*> nop
-+0000c550 <[^>]*> nop
-+0000c554 <[^>]*> nop
-+0000c558 <[^>]*> nop
-+0000c55c <[^>]*> nop
-+0000c560 <[^>]*> nop
-+0000c564 <[^>]*> nop
-+0000c568 <[^>]*> nop
-+0000c56c <[^>]*> nop
-+0000c570 <[^>]*> nop
-+0000c574 <[^>]*> nop
-+0000c578 <[^>]*> nop
-+0000c57c <[^>]*> nop
-+0000c580 <[^>]*> nop
-+0000c584 <[^>]*> nop
-+0000c588 <[^>]*> nop
-+0000c58c <[^>]*> nop
-+0000c590 <[^>]*> nop
-+0000c594 <[^>]*> nop
-+0000c598 <[^>]*> nop
-+0000c59c <[^>]*> nop
-+0000c5a0 <[^>]*> nop
-+0000c5a4 <[^>]*> nop
-+0000c5a8 <[^>]*> nop
-+0000c5ac <[^>]*> nop
-+0000c5b0 <[^>]*> nop
-+0000c5b4 <[^>]*> nop
-+0000c5b8 <[^>]*> nop
-+0000c5bc <[^>]*> nop
-+0000c5c0 <[^>]*> nop
-+0000c5c4 <[^>]*> nop
-+0000c5c8 <[^>]*> nop
-+0000c5cc <[^>]*> nop
-+0000c5d0 <[^>]*> nop
-+0000c5d4 <[^>]*> nop
-+0000c5d8 <[^>]*> nop
-+0000c5dc <[^>]*> nop
-+0000c5e0 <[^>]*> nop
-+0000c5e4 <[^>]*> nop
-+0000c5e8 <[^>]*> nop
-+0000c5ec <[^>]*> nop
-+0000c5f0 <[^>]*> nop
-+0000c5f4 <[^>]*> nop
-+0000c5f8 <[^>]*> nop
-+0000c5fc <[^>]*> nop
-+0000c600 <[^>]*> nop
-+0000c604 <[^>]*> nop
-+0000c608 <[^>]*> nop
-+0000c60c <[^>]*> nop
-+0000c610 <[^>]*> nop
-+0000c614 <[^>]*> nop
-+0000c618 <[^>]*> nop
-+0000c61c <[^>]*> nop
-+0000c620 <[^>]*> nop
-+0000c624 <[^>]*> nop
-+0000c628 <[^>]*> nop
-+0000c62c <[^>]*> nop
-+0000c630 <[^>]*> nop
-+0000c634 <[^>]*> nop
-+0000c638 <[^>]*> nop
-+0000c63c <[^>]*> nop
-+0000c640 <[^>]*> nop
-+0000c644 <[^>]*> nop
-+0000c648 <[^>]*> nop
-+0000c64c <[^>]*> nop
-+0000c650 <[^>]*> nop
-+0000c654 <[^>]*> nop
-+0000c658 <[^>]*> nop
-+0000c65c <[^>]*> nop
-+0000c660 <[^>]*> nop
-+0000c664 <[^>]*> nop
-+0000c668 <[^>]*> nop
-+0000c66c <[^>]*> nop
-+0000c670 <[^>]*> nop
-+0000c674 <[^>]*> nop
-+0000c678 <[^>]*> nop
-+0000c67c <[^>]*> nop
-+0000c680 <[^>]*> nop
-+0000c684 <[^>]*> nop
-+0000c688 <[^>]*> nop
-+0000c68c <[^>]*> nop
-+0000c690 <[^>]*> nop
-+0000c694 <[^>]*> nop
-+0000c698 <[^>]*> nop
-+0000c69c <[^>]*> nop
-+0000c6a0 <[^>]*> nop
-+0000c6a4 <[^>]*> nop
-+0000c6a8 <[^>]*> nop
-+0000c6ac <[^>]*> nop
-+0000c6b0 <[^>]*> nop
-+0000c6b4 <[^>]*> nop
-+0000c6b8 <[^>]*> nop
-+0000c6bc <[^>]*> nop
-+0000c6c0 <[^>]*> nop
-+0000c6c4 <[^>]*> nop
-+0000c6c8 <[^>]*> nop
-+0000c6cc <[^>]*> nop
-+0000c6d0 <[^>]*> nop
-+0000c6d4 <[^>]*> nop
-+0000c6d8 <[^>]*> nop
-+0000c6dc <[^>]*> nop
-+0000c6e0 <[^>]*> nop
-+0000c6e4 <[^>]*> nop
-+0000c6e8 <[^>]*> nop
-+0000c6ec <[^>]*> nop
-+0000c6f0 <[^>]*> nop
-+0000c6f4 <[^>]*> nop
-+0000c6f8 <[^>]*> nop
-+0000c6fc <[^>]*> nop
-+0000c700 <[^>]*> nop
-+0000c704 <[^>]*> nop
-+0000c708 <[^>]*> nop
-+0000c70c <[^>]*> nop
-+0000c710 <[^>]*> nop
-+0000c714 <[^>]*> nop
-+0000c718 <[^>]*> nop
-+0000c71c <[^>]*> nop
-+0000c720 <[^>]*> nop
-+0000c724 <[^>]*> nop
-+0000c728 <[^>]*> nop
-+0000c72c <[^>]*> nop
-+0000c730 <[^>]*> nop
-+0000c734 <[^>]*> nop
-+0000c738 <[^>]*> nop
-+0000c73c <[^>]*> nop
-+0000c740 <[^>]*> nop
-+0000c744 <[^>]*> nop
-+0000c748 <[^>]*> nop
-+0000c74c <[^>]*> nop
-+0000c750 <[^>]*> nop
-+0000c754 <[^>]*> nop
-+0000c758 <[^>]*> nop
-+0000c75c <[^>]*> nop
-+0000c760 <[^>]*> nop
-+0000c764 <[^>]*> nop
-+0000c768 <[^>]*> nop
-+0000c76c <[^>]*> nop
-+0000c770 <[^>]*> nop
-+0000c774 <[^>]*> nop
-+0000c778 <[^>]*> nop
-+0000c77c <[^>]*> nop
-+0000c780 <[^>]*> nop
-+0000c784 <[^>]*> nop
-+0000c788 <[^>]*> nop
-+0000c78c <[^>]*> nop
-+0000c790 <[^>]*> nop
-+0000c794 <[^>]*> nop
-+0000c798 <[^>]*> nop
-+0000c79c <[^>]*> nop
-+0000c7a0 <[^>]*> nop
-+0000c7a4 <[^>]*> nop
-+0000c7a8 <[^>]*> nop
-+0000c7ac <[^>]*> nop
-+0000c7b0 <[^>]*> nop
-+0000c7b4 <[^>]*> nop
-+0000c7b8 <[^>]*> nop
-+0000c7bc <[^>]*> nop
-+0000c7c0 <[^>]*> nop
-+0000c7c4 <[^>]*> nop
-+0000c7c8 <[^>]*> nop
-+0000c7cc <[^>]*> nop
-+0000c7d0 <[^>]*> nop
-+0000c7d4 <[^>]*> nop
-+0000c7d8 <[^>]*> nop
-+0000c7dc <[^>]*> nop
-+0000c7e0 <[^>]*> nop
-+0000c7e4 <[^>]*> nop
-+0000c7e8 <[^>]*> nop
-+0000c7ec <[^>]*> nop
-+0000c7f0 <[^>]*> nop
-+0000c7f4 <[^>]*> nop
-+0000c7f8 <[^>]*> nop
-+0000c7fc <[^>]*> nop
-+0000c800 <[^>]*> nop
-+0000c804 <[^>]*> nop
-+0000c808 <[^>]*> nop
-+0000c80c <[^>]*> nop
-+0000c810 <[^>]*> nop
-+0000c814 <[^>]*> nop
-+0000c818 <[^>]*> nop
-+0000c81c <[^>]*> nop
-+0000c820 <[^>]*> nop
-+0000c824 <[^>]*> nop
-+0000c828 <[^>]*> nop
-+0000c82c <[^>]*> nop
-+0000c830 <[^>]*> nop
-+0000c834 <[^>]*> nop
-+0000c838 <[^>]*> nop
-+0000c83c <[^>]*> nop
-+0000c840 <[^>]*> nop
-+0000c844 <[^>]*> nop
-+0000c848 <[^>]*> nop
-+0000c84c <[^>]*> nop
-+0000c850 <[^>]*> nop
-+0000c854 <[^>]*> nop
-+0000c858 <[^>]*> nop
-+0000c85c <[^>]*> nop
-+0000c860 <[^>]*> nop
-+0000c864 <[^>]*> nop
-+0000c868 <[^>]*> nop
-+0000c86c <[^>]*> nop
-+0000c870 <[^>]*> nop
-+0000c874 <[^>]*> nop
-+0000c878 <[^>]*> nop
-+0000c87c <[^>]*> nop
-+0000c880 <[^>]*> nop
-+0000c884 <[^>]*> nop
-+0000c888 <[^>]*> nop
-+0000c88c <[^>]*> nop
-+0000c890 <[^>]*> nop
-+0000c894 <[^>]*> nop
-+0000c898 <[^>]*> nop
-+0000c89c <[^>]*> nop
-+0000c8a0 <[^>]*> nop
-+0000c8a4 <[^>]*> nop
-+0000c8a8 <[^>]*> nop
-+0000c8ac <[^>]*> nop
-+0000c8b0 <[^>]*> nop
-+0000c8b4 <[^>]*> nop
-+0000c8b8 <[^>]*> nop
-+0000c8bc <[^>]*> nop
-+0000c8c0 <[^>]*> nop
-+0000c8c4 <[^>]*> nop
-+0000c8c8 <[^>]*> nop
-+0000c8cc <[^>]*> nop
-+0000c8d0 <[^>]*> nop
-+0000c8d4 <[^>]*> nop
-+0000c8d8 <[^>]*> nop
-+0000c8dc <[^>]*> nop
-+0000c8e0 <[^>]*> nop
-+0000c8e4 <[^>]*> nop
-+0000c8e8 <[^>]*> nop
-+0000c8ec <[^>]*> nop
-+0000c8f0 <[^>]*> nop
-+0000c8f4 <[^>]*> nop
-+0000c8f8 <[^>]*> nop
-+0000c8fc <[^>]*> nop
-+0000c900 <[^>]*> nop
-+0000c904 <[^>]*> nop
-+0000c908 <[^>]*> nop
-+0000c90c <[^>]*> nop
-+0000c910 <[^>]*> nop
-+0000c914 <[^>]*> nop
-+0000c918 <[^>]*> nop
-+0000c91c <[^>]*> nop
-+0000c920 <[^>]*> nop
-+0000c924 <[^>]*> nop
-+0000c928 <[^>]*> nop
-+0000c92c <[^>]*> nop
-+0000c930 <[^>]*> nop
-+0000c934 <[^>]*> nop
-+0000c938 <[^>]*> nop
-+0000c93c <[^>]*> nop
-+0000c940 <[^>]*> nop
-+0000c944 <[^>]*> nop
-+0000c948 <[^>]*> nop
-+0000c94c <[^>]*> nop
-+0000c950 <[^>]*> nop
-+0000c954 <[^>]*> nop
-+0000c958 <[^>]*> nop
-+0000c95c <[^>]*> nop
-+0000c960 <[^>]*> nop
-+0000c964 <[^>]*> nop
-+0000c968 <[^>]*> nop
-+0000c96c <[^>]*> nop
-+0000c970 <[^>]*> nop
-+0000c974 <[^>]*> nop
-+0000c978 <[^>]*> nop
-+0000c97c <[^>]*> nop
-+0000c980 <[^>]*> nop
-+0000c984 <[^>]*> nop
-+0000c988 <[^>]*> nop
-+0000c98c <[^>]*> nop
-+0000c990 <[^>]*> nop
-+0000c994 <[^>]*> nop
-+0000c998 <[^>]*> nop
-+0000c99c <[^>]*> nop
-+0000c9a0 <[^>]*> nop
-+0000c9a4 <[^>]*> nop
-+0000c9a8 <[^>]*> nop
-+0000c9ac <[^>]*> nop
-+0000c9b0 <[^>]*> nop
-+0000c9b4 <[^>]*> nop
-+0000c9b8 <[^>]*> nop
-+0000c9bc <[^>]*> nop
-+0000c9c0 <[^>]*> nop
-+0000c9c4 <[^>]*> nop
-+0000c9c8 <[^>]*> nop
-+0000c9cc <[^>]*> nop
-+0000c9d0 <[^>]*> nop
-+0000c9d4 <[^>]*> nop
-+0000c9d8 <[^>]*> nop
-+0000c9dc <[^>]*> nop
-+0000c9e0 <[^>]*> nop
-+0000c9e4 <[^>]*> nop
-+0000c9e8 <[^>]*> nop
-+0000c9ec <[^>]*> nop
-+0000c9f0 <[^>]*> nop
-+0000c9f4 <[^>]*> nop
-+0000c9f8 <[^>]*> nop
-+0000c9fc <[^>]*> nop
-+0000ca00 <[^>]*> nop
-+0000ca04 <[^>]*> nop
-+0000ca08 <[^>]*> nop
-+0000ca0c <[^>]*> nop
-+0000ca10 <[^>]*> nop
-+0000ca14 <[^>]*> nop
-+0000ca18 <[^>]*> nop
-+0000ca1c <[^>]*> nop
-+0000ca20 <[^>]*> nop
-+0000ca24 <[^>]*> nop
-+0000ca28 <[^>]*> nop
-+0000ca2c <[^>]*> nop
-+0000ca30 <[^>]*> nop
-+0000ca34 <[^>]*> nop
-+0000ca38 <[^>]*> nop
-+0000ca3c <[^>]*> nop
-+0000ca40 <[^>]*> nop
-+0000ca44 <[^>]*> nop
-+0000ca48 <[^>]*> nop
-+0000ca4c <[^>]*> nop
-+0000ca50 <[^>]*> nop
-+0000ca54 <[^>]*> nop
-+0000ca58 <[^>]*> nop
-+0000ca5c <[^>]*> nop
-+0000ca60 <[^>]*> nop
-+0000ca64 <[^>]*> nop
-+0000ca68 <[^>]*> nop
-+0000ca6c <[^>]*> nop
-+0000ca70 <[^>]*> nop
-+0000ca74 <[^>]*> nop
-+0000ca78 <[^>]*> nop
-+0000ca7c <[^>]*> nop
-+0000ca80 <[^>]*> nop
-+0000ca84 <[^>]*> nop
-+0000ca88 <[^>]*> nop
-+0000ca8c <[^>]*> nop
-+0000ca90 <[^>]*> nop
-+0000ca94 <[^>]*> nop
-+0000ca98 <[^>]*> nop
-+0000ca9c <[^>]*> nop
-+0000caa0 <[^>]*> nop
-+0000caa4 <[^>]*> nop
-+0000caa8 <[^>]*> nop
-+0000caac <[^>]*> nop
-+0000cab0 <[^>]*> nop
-+0000cab4 <[^>]*> nop
-+0000cab8 <[^>]*> nop
-+0000cabc <[^>]*> nop
-+0000cac0 <[^>]*> nop
-+0000cac4 <[^>]*> nop
-+0000cac8 <[^>]*> nop
-+0000cacc <[^>]*> nop
-+0000cad0 <[^>]*> nop
-+0000cad4 <[^>]*> nop
-+0000cad8 <[^>]*> nop
-+0000cadc <[^>]*> nop
-+0000cae0 <[^>]*> nop
-+0000cae4 <[^>]*> nop
-+0000cae8 <[^>]*> nop
-+0000caec <[^>]*> nop
-+0000caf0 <[^>]*> nop
-+0000caf4 <[^>]*> nop
-+0000caf8 <[^>]*> nop
-+0000cafc <[^>]*> nop
-+0000cb00 <[^>]*> nop
-+0000cb04 <[^>]*> nop
-+0000cb08 <[^>]*> nop
-+0000cb0c <[^>]*> nop
-+0000cb10 <[^>]*> nop
-+0000cb14 <[^>]*> nop
-+0000cb18 <[^>]*> nop
-+0000cb1c <[^>]*> nop
-+0000cb20 <[^>]*> nop
-+0000cb24 <[^>]*> nop
-+0000cb28 <[^>]*> nop
-+0000cb2c <[^>]*> nop
-+0000cb30 <[^>]*> nop
-+0000cb34 <[^>]*> nop
-+0000cb38 <[^>]*> nop
-+0000cb3c <[^>]*> nop
-+0000cb40 <[^>]*> nop
-+0000cb44 <[^>]*> nop
-+0000cb48 <[^>]*> nop
-+0000cb4c <[^>]*> nop
-+0000cb50 <[^>]*> nop
-+0000cb54 <[^>]*> nop
-+0000cb58 <[^>]*> nop
-+0000cb5c <[^>]*> nop
-+0000cb60 <[^>]*> nop
-+0000cb64 <[^>]*> nop
-+0000cb68 <[^>]*> nop
-+0000cb6c <[^>]*> nop
-+0000cb70 <[^>]*> nop
-+0000cb74 <[^>]*> nop
-+0000cb78 <[^>]*> nop
-+0000cb7c <[^>]*> nop
-+0000cb80 <[^>]*> nop
-+0000cb84 <[^>]*> nop
-+0000cb88 <[^>]*> nop
-+0000cb8c <[^>]*> nop
-+0000cb90 <[^>]*> nop
-+0000cb94 <[^>]*> nop
-+0000cb98 <[^>]*> nop
-+0000cb9c <[^>]*> nop
-+0000cba0 <[^>]*> nop
-+0000cba4 <[^>]*> nop
-+0000cba8 <[^>]*> nop
-+0000cbac <[^>]*> nop
-+0000cbb0 <[^>]*> nop
-+0000cbb4 <[^>]*> nop
-+0000cbb8 <[^>]*> nop
-+0000cbbc <[^>]*> nop
-+0000cbc0 <[^>]*> nop
-+0000cbc4 <[^>]*> nop
-+0000cbc8 <[^>]*> nop
-+0000cbcc <[^>]*> nop
-+0000cbd0 <[^>]*> nop
-+0000cbd4 <[^>]*> nop
-+0000cbd8 <[^>]*> nop
-+0000cbdc <[^>]*> nop
-+0000cbe0 <[^>]*> nop
-+0000cbe4 <[^>]*> nop
-+0000cbe8 <[^>]*> nop
-+0000cbec <[^>]*> nop
-+0000cbf0 <[^>]*> nop
-+0000cbf4 <[^>]*> nop
-+0000cbf8 <[^>]*> nop
-+0000cbfc <[^>]*> nop
-+0000cc00 <[^>]*> nop
-+0000cc04 <[^>]*> nop
-+0000cc08 <[^>]*> nop
-+0000cc0c <[^>]*> nop
-+0000cc10 <[^>]*> nop
-+0000cc14 <[^>]*> nop
-+0000cc18 <[^>]*> nop
-+0000cc1c <[^>]*> nop
-+0000cc20 <[^>]*> nop
-+0000cc24 <[^>]*> nop
-+0000cc28 <[^>]*> nop
-+0000cc2c <[^>]*> nop
-+0000cc30 <[^>]*> nop
-+0000cc34 <[^>]*> nop
-+0000cc38 <[^>]*> nop
-+0000cc3c <[^>]*> nop
-+0000cc40 <[^>]*> nop
-+0000cc44 <[^>]*> nop
-+0000cc48 <[^>]*> nop
-+0000cc4c <[^>]*> nop
-+0000cc50 <[^>]*> nop
-+0000cc54 <[^>]*> nop
-+0000cc58 <[^>]*> nop
-+0000cc5c <[^>]*> nop
-+0000cc60 <[^>]*> nop
-+0000cc64 <[^>]*> nop
-+0000cc68 <[^>]*> nop
-+0000cc6c <[^>]*> nop
-+0000cc70 <[^>]*> nop
-+0000cc74 <[^>]*> nop
-+0000cc78 <[^>]*> nop
-+0000cc7c <[^>]*> nop
-+0000cc80 <[^>]*> nop
-+0000cc84 <[^>]*> nop
-+0000cc88 <[^>]*> nop
-+0000cc8c <[^>]*> nop
-+0000cc90 <[^>]*> nop
-+0000cc94 <[^>]*> nop
-+0000cc98 <[^>]*> nop
-+0000cc9c <[^>]*> nop
-+0000cca0 <[^>]*> nop
-+0000cca4 <[^>]*> nop
-+0000cca8 <[^>]*> nop
-+0000ccac <[^>]*> nop
-+0000ccb0 <[^>]*> nop
-+0000ccb4 <[^>]*> nop
-+0000ccb8 <[^>]*> nop
-+0000ccbc <[^>]*> nop
-+0000ccc0 <[^>]*> nop
-+0000ccc4 <[^>]*> nop
-+0000ccc8 <[^>]*> nop
-+0000cccc <[^>]*> nop
-+0000ccd0 <[^>]*> nop
-+0000ccd4 <[^>]*> nop
-+0000ccd8 <[^>]*> nop
-+0000ccdc <[^>]*> nop
-+0000cce0 <[^>]*> nop
-+0000cce4 <[^>]*> nop
-+0000cce8 <[^>]*> nop
-+0000ccec <[^>]*> nop
-+0000ccf0 <[^>]*> nop
-+0000ccf4 <[^>]*> nop
-+0000ccf8 <[^>]*> nop
-+0000ccfc <[^>]*> nop
-+0000cd00 <[^>]*> nop
-+0000cd04 <[^>]*> nop
-+0000cd08 <[^>]*> nop
-+0000cd0c <[^>]*> nop
-+0000cd10 <[^>]*> nop
-+0000cd14 <[^>]*> nop
-+0000cd18 <[^>]*> nop
-+0000cd1c <[^>]*> nop
-+0000cd20 <[^>]*> nop
-+0000cd24 <[^>]*> nop
-+0000cd28 <[^>]*> nop
-+0000cd2c <[^>]*> nop
-+0000cd30 <[^>]*> nop
-+0000cd34 <[^>]*> nop
-+0000cd38 <[^>]*> nop
-+0000cd3c <[^>]*> nop
-+0000cd40 <[^>]*> nop
-+0000cd44 <[^>]*> nop
-+0000cd48 <[^>]*> nop
-+0000cd4c <[^>]*> nop
-+0000cd50 <[^>]*> nop
-+0000cd54 <[^>]*> nop
-+0000cd58 <[^>]*> nop
-+0000cd5c <[^>]*> nop
-+0000cd60 <[^>]*> nop
-+0000cd64 <[^>]*> nop
-+0000cd68 <[^>]*> nop
-+0000cd6c <[^>]*> nop
-+0000cd70 <[^>]*> nop
-+0000cd74 <[^>]*> nop
-+0000cd78 <[^>]*> nop
-+0000cd7c <[^>]*> nop
-+0000cd80 <[^>]*> nop
-+0000cd84 <[^>]*> nop
-+0000cd88 <[^>]*> nop
-+0000cd8c <[^>]*> nop
-+0000cd90 <[^>]*> nop
-+0000cd94 <[^>]*> nop
-+0000cd98 <[^>]*> nop
-+0000cd9c <[^>]*> nop
-+0000cda0 <[^>]*> nop
-+0000cda4 <[^>]*> nop
-+0000cda8 <[^>]*> nop
-+0000cdac <[^>]*> nop
-+0000cdb0 <[^>]*> nop
-+0000cdb4 <[^>]*> nop
-+0000cdb8 <[^>]*> nop
-+0000cdbc <[^>]*> nop
-+0000cdc0 <[^>]*> nop
-+0000cdc4 <[^>]*> nop
-+0000cdc8 <[^>]*> nop
-+0000cdcc <[^>]*> nop
-+0000cdd0 <[^>]*> nop
-+0000cdd4 <[^>]*> nop
-+0000cdd8 <[^>]*> nop
-+0000cddc <[^>]*> nop
-+0000cde0 <[^>]*> nop
-+0000cde4 <[^>]*> nop
-+0000cde8 <[^>]*> nop
-+0000cdec <[^>]*> nop
-+0000cdf0 <[^>]*> nop
-+0000cdf4 <[^>]*> nop
-+0000cdf8 <[^>]*> nop
-+0000cdfc <[^>]*> nop
-+0000ce00 <[^>]*> nop
-+0000ce04 <[^>]*> nop
-+0000ce08 <[^>]*> nop
-+0000ce0c <[^>]*> nop
-+0000ce10 <[^>]*> nop
-+0000ce14 <[^>]*> nop
-+0000ce18 <[^>]*> nop
-+0000ce1c <[^>]*> nop
-+0000ce20 <[^>]*> nop
-+0000ce24 <[^>]*> nop
-+0000ce28 <[^>]*> nop
-+0000ce2c <[^>]*> nop
-+0000ce30 <[^>]*> nop
-+0000ce34 <[^>]*> nop
-+0000ce38 <[^>]*> nop
-+0000ce3c <[^>]*> nop
-+0000ce40 <[^>]*> nop
-+0000ce44 <[^>]*> nop
-+0000ce48 <[^>]*> nop
-+0000ce4c <[^>]*> nop
-+0000ce50 <[^>]*> nop
-+0000ce54 <[^>]*> nop
-+0000ce58 <[^>]*> nop
-+0000ce5c <[^>]*> nop
-+0000ce60 <[^>]*> nop
-+0000ce64 <[^>]*> nop
-+0000ce68 <[^>]*> nop
-+0000ce6c <[^>]*> nop
-+0000ce70 <[^>]*> nop
-+0000ce74 <[^>]*> nop
-+0000ce78 <[^>]*> nop
-+0000ce7c <[^>]*> nop
-+0000ce80 <[^>]*> nop
-+0000ce84 <[^>]*> nop
-+0000ce88 <[^>]*> nop
-+0000ce8c <[^>]*> nop
-+0000ce90 <[^>]*> nop
-+0000ce94 <[^>]*> nop
-+0000ce98 <[^>]*> nop
-+0000ce9c <[^>]*> nop
-+0000cea0 <[^>]*> nop
-+0000cea4 <[^>]*> nop
-+0000cea8 <[^>]*> nop
-+0000ceac <[^>]*> nop
-+0000ceb0 <[^>]*> nop
-+0000ceb4 <[^>]*> nop
-+0000ceb8 <[^>]*> nop
-+0000cebc <[^>]*> nop
-+0000cec0 <[^>]*> nop
-+0000cec4 <[^>]*> nop
-+0000cec8 <[^>]*> nop
-+0000cecc <[^>]*> nop
-+0000ced0 <[^>]*> nop
-+0000ced4 <[^>]*> nop
-+0000ced8 <[^>]*> nop
-+0000cedc <[^>]*> nop
-+0000cee0 <[^>]*> nop
-+0000cee4 <[^>]*> nop
-+0000cee8 <[^>]*> nop
-+0000ceec <[^>]*> nop
-+0000cef0 <[^>]*> nop
-+0000cef4 <[^>]*> nop
-+0000cef8 <[^>]*> nop
-+0000cefc <[^>]*> nop
-+0000cf00 <[^>]*> nop
-+0000cf04 <[^>]*> nop
-+0000cf08 <[^>]*> nop
-+0000cf0c <[^>]*> nop
-+0000cf10 <[^>]*> nop
-+0000cf14 <[^>]*> nop
-+0000cf18 <[^>]*> nop
-+0000cf1c <[^>]*> nop
-+0000cf20 <[^>]*> nop
-+0000cf24 <[^>]*> nop
-+0000cf28 <[^>]*> nop
-+0000cf2c <[^>]*> nop
-+0000cf30 <[^>]*> nop
-+0000cf34 <[^>]*> nop
-+0000cf38 <[^>]*> nop
-+0000cf3c <[^>]*> nop
-+0000cf40 <[^>]*> nop
-+0000cf44 <[^>]*> nop
-+0000cf48 <[^>]*> nop
-+0000cf4c <[^>]*> nop
-+0000cf50 <[^>]*> nop
-+0000cf54 <[^>]*> nop
-+0000cf58 <[^>]*> nop
-+0000cf5c <[^>]*> nop
-+0000cf60 <[^>]*> nop
-+0000cf64 <[^>]*> nop
-+0000cf68 <[^>]*> nop
-+0000cf6c <[^>]*> nop
-+0000cf70 <[^>]*> nop
-+0000cf74 <[^>]*> nop
-+0000cf78 <[^>]*> nop
-+0000cf7c <[^>]*> nop
-+0000cf80 <[^>]*> nop
-+0000cf84 <[^>]*> nop
-+0000cf88 <[^>]*> nop
-+0000cf8c <[^>]*> nop
-+0000cf90 <[^>]*> nop
-+0000cf94 <[^>]*> nop
-+0000cf98 <[^>]*> nop
-+0000cf9c <[^>]*> nop
-+0000cfa0 <[^>]*> nop
-+0000cfa4 <[^>]*> nop
-+0000cfa8 <[^>]*> nop
-+0000cfac <[^>]*> nop
-+0000cfb0 <[^>]*> nop
-+0000cfb4 <[^>]*> nop
-+0000cfb8 <[^>]*> nop
-+0000cfbc <[^>]*> nop
-+0000cfc0 <[^>]*> nop
-+0000cfc4 <[^>]*> nop
-+0000cfc8 <[^>]*> nop
-+0000cfcc <[^>]*> nop
-+0000cfd0 <[^>]*> nop
-+0000cfd4 <[^>]*> nop
-+0000cfd8 <[^>]*> nop
-+0000cfdc <[^>]*> nop
-+0000cfe0 <[^>]*> nop
-+0000cfe4 <[^>]*> nop
-+0000cfe8 <[^>]*> nop
-+0000cfec <[^>]*> nop
-+0000cff0 <[^>]*> nop
-+0000cff4 <[^>]*> nop
-+0000cff8 <[^>]*> nop
-+0000cffc <[^>]*> nop
-+0000d000 <[^>]*> nop
-+0000d004 <[^>]*> nop
-+0000d008 <[^>]*> nop
-+0000d00c <[^>]*> nop
-+0000d010 <[^>]*> nop
-+0000d014 <[^>]*> nop
-+0000d018 <[^>]*> nop
-+0000d01c <[^>]*> nop
-+0000d020 <[^>]*> nop
-+0000d024 <[^>]*> nop
-+0000d028 <[^>]*> nop
-+0000d02c <[^>]*> nop
-+0000d030 <[^>]*> nop
-+0000d034 <[^>]*> nop
-+0000d038 <[^>]*> nop
-+0000d03c <[^>]*> nop
-+0000d040 <[^>]*> nop
-+0000d044 <[^>]*> nop
-+0000d048 <[^>]*> nop
-+0000d04c <[^>]*> nop
-+0000d050 <[^>]*> nop
-+0000d054 <[^>]*> nop
-+0000d058 <[^>]*> nop
-+0000d05c <[^>]*> nop
-+0000d060 <[^>]*> nop
-+0000d064 <[^>]*> nop
-+0000d068 <[^>]*> nop
-+0000d06c <[^>]*> nop
-+0000d070 <[^>]*> nop
-+0000d074 <[^>]*> nop
-+0000d078 <[^>]*> nop
-+0000d07c <[^>]*> nop
-+0000d080 <[^>]*> nop
-+0000d084 <[^>]*> nop
-+0000d088 <[^>]*> nop
-+0000d08c <[^>]*> nop
-+0000d090 <[^>]*> nop
-+0000d094 <[^>]*> nop
-+0000d098 <[^>]*> nop
-+0000d09c <[^>]*> nop
-+0000d0a0 <[^>]*> nop
-+0000d0a4 <[^>]*> nop
-+0000d0a8 <[^>]*> nop
-+0000d0ac <[^>]*> nop
-+0000d0b0 <[^>]*> nop
-+0000d0b4 <[^>]*> nop
-+0000d0b8 <[^>]*> nop
-+0000d0bc <[^>]*> nop
-+0000d0c0 <[^>]*> nop
-+0000d0c4 <[^>]*> nop
-+0000d0c8 <[^>]*> nop
-+0000d0cc <[^>]*> nop
-+0000d0d0 <[^>]*> nop
-+0000d0d4 <[^>]*> nop
-+0000d0d8 <[^>]*> nop
-+0000d0dc <[^>]*> nop
-+0000d0e0 <[^>]*> nop
-+0000d0e4 <[^>]*> nop
-+0000d0e8 <[^>]*> nop
-+0000d0ec <[^>]*> nop
-+0000d0f0 <[^>]*> nop
-+0000d0f4 <[^>]*> nop
-+0000d0f8 <[^>]*> nop
-+0000d0fc <[^>]*> nop
-+0000d100 <[^>]*> nop
-+0000d104 <[^>]*> nop
-+0000d108 <[^>]*> nop
-+0000d10c <[^>]*> nop
-+0000d110 <[^>]*> nop
-+0000d114 <[^>]*> nop
-+0000d118 <[^>]*> nop
-+0000d11c <[^>]*> nop
-+0000d120 <[^>]*> nop
-+0000d124 <[^>]*> nop
-+0000d128 <[^>]*> nop
-+0000d12c <[^>]*> nop
-+0000d130 <[^>]*> nop
-+0000d134 <[^>]*> nop
-+0000d138 <[^>]*> nop
-+0000d13c <[^>]*> nop
-+0000d140 <[^>]*> nop
-+0000d144 <[^>]*> nop
-+0000d148 <[^>]*> nop
-+0000d14c <[^>]*> nop
-+0000d150 <[^>]*> nop
-+0000d154 <[^>]*> nop
-+0000d158 <[^>]*> nop
-+0000d15c <[^>]*> nop
-+0000d160 <[^>]*> nop
-+0000d164 <[^>]*> nop
-+0000d168 <[^>]*> nop
-+0000d16c <[^>]*> nop
-+0000d170 <[^>]*> nop
-+0000d174 <[^>]*> nop
-+0000d178 <[^>]*> nop
-+0000d17c <[^>]*> nop
-+0000d180 <[^>]*> nop
-+0000d184 <[^>]*> nop
-+0000d188 <[^>]*> nop
-+0000d18c <[^>]*> nop
-+0000d190 <[^>]*> nop
-+0000d194 <[^>]*> nop
-+0000d198 <[^>]*> nop
-+0000d19c <[^>]*> nop
-+0000d1a0 <[^>]*> nop
-+0000d1a4 <[^>]*> nop
-+0000d1a8 <[^>]*> nop
-+0000d1ac <[^>]*> nop
-+0000d1b0 <[^>]*> nop
-+0000d1b4 <[^>]*> nop
-+0000d1b8 <[^>]*> nop
-+0000d1bc <[^>]*> nop
-+0000d1c0 <[^>]*> nop
-+0000d1c4 <[^>]*> nop
-+0000d1c8 <[^>]*> nop
-+0000d1cc <[^>]*> nop
-+0000d1d0 <[^>]*> nop
-+0000d1d4 <[^>]*> nop
-+0000d1d8 <[^>]*> nop
-+0000d1dc <[^>]*> nop
-+0000d1e0 <[^>]*> nop
-+0000d1e4 <[^>]*> nop
-+0000d1e8 <[^>]*> nop
-+0000d1ec <[^>]*> nop
-+0000d1f0 <[^>]*> nop
-+0000d1f4 <[^>]*> nop
-+0000d1f8 <[^>]*> nop
-+0000d1fc <[^>]*> nop
-+0000d200 <[^>]*> nop
-+0000d204 <[^>]*> nop
-+0000d208 <[^>]*> nop
-+0000d20c <[^>]*> nop
-+0000d210 <[^>]*> nop
-+0000d214 <[^>]*> nop
-+0000d218 <[^>]*> nop
-+0000d21c <[^>]*> nop
-+0000d220 <[^>]*> nop
-+0000d224 <[^>]*> nop
-+0000d228 <[^>]*> nop
-+0000d22c <[^>]*> nop
-+0000d230 <[^>]*> nop
-+0000d234 <[^>]*> nop
-+0000d238 <[^>]*> nop
-+0000d23c <[^>]*> nop
-+0000d240 <[^>]*> nop
-+0000d244 <[^>]*> nop
-+0000d248 <[^>]*> nop
-+0000d24c <[^>]*> nop
-+0000d250 <[^>]*> nop
-+0000d254 <[^>]*> nop
-+0000d258 <[^>]*> nop
-+0000d25c <[^>]*> nop
-+0000d260 <[^>]*> nop
-+0000d264 <[^>]*> nop
-+0000d268 <[^>]*> nop
-+0000d26c <[^>]*> nop
-+0000d270 <[^>]*> nop
-+0000d274 <[^>]*> nop
-+0000d278 <[^>]*> nop
-+0000d27c <[^>]*> nop
-+0000d280 <[^>]*> nop
-+0000d284 <[^>]*> nop
-+0000d288 <[^>]*> nop
-+0000d28c <[^>]*> nop
-+0000d290 <[^>]*> nop
-+0000d294 <[^>]*> nop
-+0000d298 <[^>]*> nop
-+0000d29c <[^>]*> nop
-+0000d2a0 <[^>]*> nop
-+0000d2a4 <[^>]*> nop
-+0000d2a8 <[^>]*> nop
-+0000d2ac <[^>]*> nop
-+0000d2b0 <[^>]*> nop
-+0000d2b4 <[^>]*> nop
-+0000d2b8 <[^>]*> nop
-+0000d2bc <[^>]*> nop
-+0000d2c0 <[^>]*> nop
-+0000d2c4 <[^>]*> nop
-+0000d2c8 <[^>]*> nop
-+0000d2cc <[^>]*> nop
-+0000d2d0 <[^>]*> nop
-+0000d2d4 <[^>]*> nop
-+0000d2d8 <[^>]*> nop
-+0000d2dc <[^>]*> nop
-+0000d2e0 <[^>]*> nop
-+0000d2e4 <[^>]*> nop
-+0000d2e8 <[^>]*> nop
-+0000d2ec <[^>]*> nop
-+0000d2f0 <[^>]*> nop
-+0000d2f4 <[^>]*> nop
-+0000d2f8 <[^>]*> nop
-+0000d2fc <[^>]*> nop
-+0000d300 <[^>]*> nop
-+0000d304 <[^>]*> nop
-+0000d308 <[^>]*> nop
-+0000d30c <[^>]*> nop
-+0000d310 <[^>]*> nop
-+0000d314 <[^>]*> nop
-+0000d318 <[^>]*> nop
-+0000d31c <[^>]*> nop
-+0000d320 <[^>]*> nop
-+0000d324 <[^>]*> nop
-+0000d328 <[^>]*> nop
-+0000d32c <[^>]*> nop
-+0000d330 <[^>]*> nop
-+0000d334 <[^>]*> nop
-+0000d338 <[^>]*> nop
-+0000d33c <[^>]*> nop
-+0000d340 <[^>]*> nop
-+0000d344 <[^>]*> nop
-+0000d348 <[^>]*> nop
-+0000d34c <[^>]*> nop
-+0000d350 <[^>]*> nop
-+0000d354 <[^>]*> nop
-+0000d358 <[^>]*> nop
-+0000d35c <[^>]*> nop
-+0000d360 <[^>]*> nop
-+0000d364 <[^>]*> nop
-+0000d368 <[^>]*> nop
-+0000d36c <[^>]*> nop
-+0000d370 <[^>]*> nop
-+0000d374 <[^>]*> nop
-+0000d378 <[^>]*> nop
-+0000d37c <[^>]*> nop
-+0000d380 <[^>]*> nop
-+0000d384 <[^>]*> nop
-+0000d388 <[^>]*> nop
-+0000d38c <[^>]*> nop
-+0000d390 <[^>]*> nop
-+0000d394 <[^>]*> nop
-+0000d398 <[^>]*> nop
-+0000d39c <[^>]*> nop
-+0000d3a0 <[^>]*> nop
-+0000d3a4 <[^>]*> nop
-+0000d3a8 <[^>]*> nop
-+0000d3ac <[^>]*> nop
-+0000d3b0 <[^>]*> nop
-+0000d3b4 <[^>]*> nop
-+0000d3b8 <[^>]*> nop
-+0000d3bc <[^>]*> nop
-+0000d3c0 <[^>]*> nop
-+0000d3c4 <[^>]*> nop
-+0000d3c8 <[^>]*> nop
-+0000d3cc <[^>]*> nop
-+0000d3d0 <[^>]*> nop
-+0000d3d4 <[^>]*> nop
-+0000d3d8 <[^>]*> nop
-+0000d3dc <[^>]*> nop
-+0000d3e0 <[^>]*> nop
-+0000d3e4 <[^>]*> nop
-+0000d3e8 <[^>]*> nop
-+0000d3ec <[^>]*> nop
-+0000d3f0 <[^>]*> nop
-+0000d3f4 <[^>]*> nop
-+0000d3f8 <[^>]*> nop
-+0000d3fc <[^>]*> nop
-+0000d400 <[^>]*> nop
-+0000d404 <[^>]*> nop
-+0000d408 <[^>]*> nop
-+0000d40c <[^>]*> nop
-+0000d410 <[^>]*> nop
-+0000d414 <[^>]*> nop
-+0000d418 <[^>]*> nop
-+0000d41c <[^>]*> nop
-+0000d420 <[^>]*> nop
-+0000d424 <[^>]*> nop
-+0000d428 <[^>]*> nop
-+0000d42c <[^>]*> nop
-+0000d430 <[^>]*> nop
-+0000d434 <[^>]*> nop
-+0000d438 <[^>]*> nop
-+0000d43c <[^>]*> nop
-+0000d440 <[^>]*> nop
-+0000d444 <[^>]*> nop
-+0000d448 <[^>]*> nop
-+0000d44c <[^>]*> nop
-+0000d450 <[^>]*> nop
-+0000d454 <[^>]*> nop
-+0000d458 <[^>]*> nop
-+0000d45c <[^>]*> nop
-+0000d460 <[^>]*> nop
-+0000d464 <[^>]*> nop
-+0000d468 <[^>]*> nop
-+0000d46c <[^>]*> nop
-+0000d470 <[^>]*> nop
-+0000d474 <[^>]*> nop
-+0000d478 <[^>]*> nop
-+0000d47c <[^>]*> nop
-+0000d480 <[^>]*> nop
-+0000d484 <[^>]*> nop
-+0000d488 <[^>]*> nop
-+0000d48c <[^>]*> nop
-+0000d490 <[^>]*> nop
-+0000d494 <[^>]*> nop
-+0000d498 <[^>]*> nop
-+0000d49c <[^>]*> nop
-+0000d4a0 <[^>]*> nop
-+0000d4a4 <[^>]*> nop
-+0000d4a8 <[^>]*> nop
-+0000d4ac <[^>]*> nop
-+0000d4b0 <[^>]*> nop
-+0000d4b4 <[^>]*> nop
-+0000d4b8 <[^>]*> nop
-+0000d4bc <[^>]*> nop
-+0000d4c0 <[^>]*> nop
-+0000d4c4 <[^>]*> nop
-+0000d4c8 <[^>]*> nop
-+0000d4cc <[^>]*> nop
-+0000d4d0 <[^>]*> nop
-+0000d4d4 <[^>]*> nop
-+0000d4d8 <[^>]*> nop
-+0000d4dc <[^>]*> nop
-+0000d4e0 <[^>]*> nop
-+0000d4e4 <[^>]*> nop
-+0000d4e8 <[^>]*> nop
-+0000d4ec <[^>]*> nop
-+0000d4f0 <[^>]*> nop
-+0000d4f4 <[^>]*> nop
-+0000d4f8 <[^>]*> nop
-+0000d4fc <[^>]*> nop
-+0000d500 <[^>]*> nop
-+0000d504 <[^>]*> nop
-+0000d508 <[^>]*> nop
-+0000d50c <[^>]*> nop
-+0000d510 <[^>]*> nop
-+0000d514 <[^>]*> nop
-+0000d518 <[^>]*> nop
-+0000d51c <[^>]*> nop
-+0000d520 <[^>]*> nop
-+0000d524 <[^>]*> nop
-+0000d528 <[^>]*> nop
-+0000d52c <[^>]*> nop
-+0000d530 <[^>]*> nop
-+0000d534 <[^>]*> nop
-+0000d538 <[^>]*> nop
-+0000d53c <[^>]*> nop
-+0000d540 <[^>]*> nop
-+0000d544 <[^>]*> nop
-+0000d548 <[^>]*> nop
-+0000d54c <[^>]*> nop
-+0000d550 <[^>]*> nop
-+0000d554 <[^>]*> nop
-+0000d558 <[^>]*> nop
-+0000d55c <[^>]*> nop
-+0000d560 <[^>]*> nop
-+0000d564 <[^>]*> nop
-+0000d568 <[^>]*> nop
-+0000d56c <[^>]*> nop
-+0000d570 <[^>]*> nop
-+0000d574 <[^>]*> nop
-+0000d578 <[^>]*> nop
-+0000d57c <[^>]*> nop
-+0000d580 <[^>]*> nop
-+0000d584 <[^>]*> nop
-+0000d588 <[^>]*> nop
-+0000d58c <[^>]*> nop
-+0000d590 <[^>]*> nop
-+0000d594 <[^>]*> nop
-+0000d598 <[^>]*> nop
-+0000d59c <[^>]*> nop
-+0000d5a0 <[^>]*> nop
-+0000d5a4 <[^>]*> nop
-+0000d5a8 <[^>]*> nop
-+0000d5ac <[^>]*> nop
-+0000d5b0 <[^>]*> nop
-+0000d5b4 <[^>]*> nop
-+0000d5b8 <[^>]*> nop
-+0000d5bc <[^>]*> nop
-+0000d5c0 <[^>]*> nop
-+0000d5c4 <[^>]*> nop
-+0000d5c8 <[^>]*> nop
-+0000d5cc <[^>]*> nop
-+0000d5d0 <[^>]*> nop
-+0000d5d4 <[^>]*> nop
-+0000d5d8 <[^>]*> nop
-+0000d5dc <[^>]*> nop
-+0000d5e0 <[^>]*> nop
-+0000d5e4 <[^>]*> nop
-+0000d5e8 <[^>]*> nop
-+0000d5ec <[^>]*> nop
-+0000d5f0 <[^>]*> nop
-+0000d5f4 <[^>]*> nop
-+0000d5f8 <[^>]*> nop
-+0000d5fc <[^>]*> nop
-+0000d600 <[^>]*> nop
-+0000d604 <[^>]*> nop
-+0000d608 <[^>]*> nop
-+0000d60c <[^>]*> nop
-+0000d610 <[^>]*> nop
-+0000d614 <[^>]*> nop
-+0000d618 <[^>]*> nop
-+0000d61c <[^>]*> nop
-+0000d620 <[^>]*> nop
-+0000d624 <[^>]*> nop
-+0000d628 <[^>]*> nop
-+0000d62c <[^>]*> nop
-+0000d630 <[^>]*> nop
-+0000d634 <[^>]*> nop
-+0000d638 <[^>]*> nop
-+0000d63c <[^>]*> nop
-+0000d640 <[^>]*> nop
-+0000d644 <[^>]*> nop
-+0000d648 <[^>]*> nop
-+0000d64c <[^>]*> nop
-+0000d650 <[^>]*> nop
-+0000d654 <[^>]*> nop
-+0000d658 <[^>]*> nop
-+0000d65c <[^>]*> nop
-+0000d660 <[^>]*> nop
-+0000d664 <[^>]*> nop
-+0000d668 <[^>]*> nop
-+0000d66c <[^>]*> nop
-+0000d670 <[^>]*> nop
-+0000d674 <[^>]*> nop
-+0000d678 <[^>]*> nop
-+0000d67c <[^>]*> nop
-+0000d680 <[^>]*> nop
-+0000d684 <[^>]*> nop
-+0000d688 <[^>]*> nop
-+0000d68c <[^>]*> nop
-+0000d690 <[^>]*> nop
-+0000d694 <[^>]*> nop
-+0000d698 <[^>]*> nop
-+0000d69c <[^>]*> nop
-+0000d6a0 <[^>]*> nop
-+0000d6a4 <[^>]*> nop
-+0000d6a8 <[^>]*> nop
-+0000d6ac <[^>]*> nop
-+0000d6b0 <[^>]*> nop
-+0000d6b4 <[^>]*> nop
-+0000d6b8 <[^>]*> nop
-+0000d6bc <[^>]*> nop
-+0000d6c0 <[^>]*> nop
-+0000d6c4 <[^>]*> nop
-+0000d6c8 <[^>]*> nop
-+0000d6cc <[^>]*> nop
-+0000d6d0 <[^>]*> nop
-+0000d6d4 <[^>]*> nop
-+0000d6d8 <[^>]*> nop
-+0000d6dc <[^>]*> nop
-+0000d6e0 <[^>]*> nop
-+0000d6e4 <[^>]*> nop
-+0000d6e8 <[^>]*> nop
-+0000d6ec <[^>]*> nop
-+0000d6f0 <[^>]*> nop
-+0000d6f4 <[^>]*> nop
-+0000d6f8 <[^>]*> nop
-+0000d6fc <[^>]*> nop
-+0000d700 <[^>]*> nop
-+0000d704 <[^>]*> nop
-+0000d708 <[^>]*> nop
-+0000d70c <[^>]*> nop
-+0000d710 <[^>]*> nop
-+0000d714 <[^>]*> nop
-+0000d718 <[^>]*> nop
-+0000d71c <[^>]*> nop
-+0000d720 <[^>]*> nop
-+0000d724 <[^>]*> nop
-+0000d728 <[^>]*> nop
-+0000d72c <[^>]*> nop
-+0000d730 <[^>]*> nop
-+0000d734 <[^>]*> nop
-+0000d738 <[^>]*> nop
-+0000d73c <[^>]*> nop
-+0000d740 <[^>]*> nop
-+0000d744 <[^>]*> nop
-+0000d748 <[^>]*> nop
-+0000d74c <[^>]*> nop
-+0000d750 <[^>]*> nop
-+0000d754 <[^>]*> nop
-+0000d758 <[^>]*> nop
-+0000d75c <[^>]*> nop
-+0000d760 <[^>]*> nop
-+0000d764 <[^>]*> nop
-+0000d768 <[^>]*> nop
-+0000d76c <[^>]*> nop
-+0000d770 <[^>]*> nop
-+0000d774 <[^>]*> nop
-+0000d778 <[^>]*> nop
-+0000d77c <[^>]*> nop
-+0000d780 <[^>]*> nop
-+0000d784 <[^>]*> nop
-+0000d788 <[^>]*> nop
-+0000d78c <[^>]*> nop
-+0000d790 <[^>]*> nop
-+0000d794 <[^>]*> nop
-+0000d798 <[^>]*> nop
-+0000d79c <[^>]*> nop
-+0000d7a0 <[^>]*> nop
-+0000d7a4 <[^>]*> nop
-+0000d7a8 <[^>]*> nop
-+0000d7ac <[^>]*> nop
-+0000d7b0 <[^>]*> nop
-+0000d7b4 <[^>]*> nop
-+0000d7b8 <[^>]*> nop
-+0000d7bc <[^>]*> nop
-+0000d7c0 <[^>]*> nop
-+0000d7c4 <[^>]*> nop
-+0000d7c8 <[^>]*> nop
-+0000d7cc <[^>]*> nop
-+0000d7d0 <[^>]*> nop
-+0000d7d4 <[^>]*> nop
-+0000d7d8 <[^>]*> nop
-+0000d7dc <[^>]*> nop
-+0000d7e0 <[^>]*> nop
-+0000d7e4 <[^>]*> nop
-+0000d7e8 <[^>]*> nop
-+0000d7ec <[^>]*> nop
-+0000d7f0 <[^>]*> nop
-+0000d7f4 <[^>]*> nop
-+0000d7f8 <[^>]*> nop
-+0000d7fc <[^>]*> nop
-+0000d800 <[^>]*> nop
-+0000d804 <[^>]*> nop
-+0000d808 <[^>]*> nop
-+0000d80c <[^>]*> nop
-+0000d810 <[^>]*> nop
-+0000d814 <[^>]*> nop
-+0000d818 <[^>]*> nop
-+0000d81c <[^>]*> nop
-+0000d820 <[^>]*> nop
-+0000d824 <[^>]*> nop
-+0000d828 <[^>]*> nop
-+0000d82c <[^>]*> nop
-+0000d830 <[^>]*> nop
-+0000d834 <[^>]*> nop
-+0000d838 <[^>]*> nop
-+0000d83c <[^>]*> nop
-+0000d840 <[^>]*> nop
-+0000d844 <[^>]*> nop
-+0000d848 <[^>]*> nop
-+0000d84c <[^>]*> nop
-+0000d850 <[^>]*> nop
-+0000d854 <[^>]*> nop
-+0000d858 <[^>]*> nop
-+0000d85c <[^>]*> nop
-+0000d860 <[^>]*> nop
-+0000d864 <[^>]*> nop
-+0000d868 <[^>]*> nop
-+0000d86c <[^>]*> nop
-+0000d870 <[^>]*> nop
-+0000d874 <[^>]*> nop
-+0000d878 <[^>]*> nop
-+0000d87c <[^>]*> nop
-+0000d880 <[^>]*> nop
-+0000d884 <[^>]*> nop
-+0000d888 <[^>]*> nop
-+0000d88c <[^>]*> nop
-+0000d890 <[^>]*> nop
-+0000d894 <[^>]*> nop
-+0000d898 <[^>]*> nop
-+0000d89c <[^>]*> nop
-+0000d8a0 <[^>]*> nop
-+0000d8a4 <[^>]*> nop
-+0000d8a8 <[^>]*> nop
-+0000d8ac <[^>]*> nop
-+0000d8b0 <[^>]*> nop
-+0000d8b4 <[^>]*> nop
-+0000d8b8 <[^>]*> nop
-+0000d8bc <[^>]*> nop
-+0000d8c0 <[^>]*> nop
-+0000d8c4 <[^>]*> nop
-+0000d8c8 <[^>]*> nop
-+0000d8cc <[^>]*> nop
-+0000d8d0 <[^>]*> nop
-+0000d8d4 <[^>]*> nop
-+0000d8d8 <[^>]*> nop
-+0000d8dc <[^>]*> nop
-+0000d8e0 <[^>]*> nop
-+0000d8e4 <[^>]*> nop
-+0000d8e8 <[^>]*> nop
-+0000d8ec <[^>]*> nop
-+0000d8f0 <[^>]*> nop
-+0000d8f4 <[^>]*> nop
-+0000d8f8 <[^>]*> nop
-+0000d8fc <[^>]*> nop
-+0000d900 <[^>]*> nop
-+0000d904 <[^>]*> nop
-+0000d908 <[^>]*> nop
-+0000d90c <[^>]*> nop
-+0000d910 <[^>]*> nop
-+0000d914 <[^>]*> nop
-+0000d918 <[^>]*> nop
-+0000d91c <[^>]*> nop
-+0000d920 <[^>]*> nop
-+0000d924 <[^>]*> nop
-+0000d928 <[^>]*> nop
-+0000d92c <[^>]*> nop
-+0000d930 <[^>]*> nop
-+0000d934 <[^>]*> nop
-+0000d938 <[^>]*> nop
-+0000d93c <[^>]*> nop
-+0000d940 <[^>]*> nop
-+0000d944 <[^>]*> nop
-+0000d948 <[^>]*> nop
-+0000d94c <[^>]*> nop
-+0000d950 <[^>]*> nop
-+0000d954 <[^>]*> nop
-+0000d958 <[^>]*> nop
-+0000d95c <[^>]*> nop
-+0000d960 <[^>]*> nop
-+0000d964 <[^>]*> nop
-+0000d968 <[^>]*> nop
-+0000d96c <[^>]*> nop
-+0000d970 <[^>]*> nop
-+0000d974 <[^>]*> nop
-+0000d978 <[^>]*> nop
-+0000d97c <[^>]*> nop
-+0000d980 <[^>]*> nop
-+0000d984 <[^>]*> nop
-+0000d988 <[^>]*> nop
-+0000d98c <[^>]*> nop
-+0000d990 <[^>]*> nop
-+0000d994 <[^>]*> nop
-+0000d998 <[^>]*> nop
-+0000d99c <[^>]*> nop
-+0000d9a0 <[^>]*> nop
-+0000d9a4 <[^>]*> nop
-+0000d9a8 <[^>]*> nop
-+0000d9ac <[^>]*> nop
-+0000d9b0 <[^>]*> nop
-+0000d9b4 <[^>]*> nop
-+0000d9b8 <[^>]*> nop
-+0000d9bc <[^>]*> nop
-+0000d9c0 <[^>]*> nop
-+0000d9c4 <[^>]*> nop
-+0000d9c8 <[^>]*> nop
-+0000d9cc <[^>]*> nop
-+0000d9d0 <[^>]*> nop
-+0000d9d4 <[^>]*> nop
-+0000d9d8 <[^>]*> nop
-+0000d9dc <[^>]*> nop
-+0000d9e0 <[^>]*> nop
-+0000d9e4 <[^>]*> nop
-+0000d9e8 <[^>]*> nop
-+0000d9ec <[^>]*> nop
-+0000d9f0 <[^>]*> nop
-+0000d9f4 <[^>]*> nop
-+0000d9f8 <[^>]*> nop
-+0000d9fc <[^>]*> nop
-+0000da00 <[^>]*> nop
-+0000da04 <[^>]*> nop
-+0000da08 <[^>]*> nop
-+0000da0c <[^>]*> nop
-+0000da10 <[^>]*> nop
-+0000da14 <[^>]*> nop
-+0000da18 <[^>]*> nop
-+0000da1c <[^>]*> nop
-+0000da20 <[^>]*> nop
-+0000da24 <[^>]*> nop
-+0000da28 <[^>]*> nop
-+0000da2c <[^>]*> nop
-+0000da30 <[^>]*> nop
-+0000da34 <[^>]*> nop
-+0000da38 <[^>]*> nop
-+0000da3c <[^>]*> nop
-+0000da40 <[^>]*> nop
-+0000da44 <[^>]*> nop
-+0000da48 <[^>]*> nop
-+0000da4c <[^>]*> nop
-+0000da50 <[^>]*> nop
-+0000da54 <[^>]*> nop
-+0000da58 <[^>]*> nop
-+0000da5c <[^>]*> nop
-+0000da60 <[^>]*> nop
-+0000da64 <[^>]*> nop
-+0000da68 <[^>]*> nop
-+0000da6c <[^>]*> nop
-+0000da70 <[^>]*> nop
-+0000da74 <[^>]*> nop
-+0000da78 <[^>]*> nop
-+0000da7c <[^>]*> nop
-+0000da80 <[^>]*> nop
-+0000da84 <[^>]*> nop
-+0000da88 <[^>]*> nop
-+0000da8c <[^>]*> nop
-+0000da90 <[^>]*> nop
-+0000da94 <[^>]*> nop
-+0000da98 <[^>]*> nop
-+0000da9c <[^>]*> nop
-+0000daa0 <[^>]*> nop
-+0000daa4 <[^>]*> nop
-+0000daa8 <[^>]*> nop
-+0000daac <[^>]*> nop
-+0000dab0 <[^>]*> nop
-+0000dab4 <[^>]*> nop
-+0000dab8 <[^>]*> nop
-+0000dabc <[^>]*> nop
-+0000dac0 <[^>]*> nop
-+0000dac4 <[^>]*> nop
-+0000dac8 <[^>]*> nop
-+0000dacc <[^>]*> nop
-+0000dad0 <[^>]*> nop
-+0000dad4 <[^>]*> nop
-+0000dad8 <[^>]*> nop
-+0000dadc <[^>]*> nop
-+0000dae0 <[^>]*> nop
-+0000dae4 <[^>]*> nop
-+0000dae8 <[^>]*> nop
-+0000daec <[^>]*> nop
-+0000daf0 <[^>]*> nop
-+0000daf4 <[^>]*> nop
-+0000daf8 <[^>]*> nop
-+0000dafc <[^>]*> nop
-+0000db00 <[^>]*> nop
-+0000db04 <[^>]*> nop
-+0000db08 <[^>]*> nop
-+0000db0c <[^>]*> nop
-+0000db10 <[^>]*> nop
-+0000db14 <[^>]*> nop
-+0000db18 <[^>]*> nop
-+0000db1c <[^>]*> nop
-+0000db20 <[^>]*> nop
-+0000db24 <[^>]*> nop
-+0000db28 <[^>]*> nop
-+0000db2c <[^>]*> nop
-+0000db30 <[^>]*> nop
-+0000db34 <[^>]*> nop
-+0000db38 <[^>]*> nop
-+0000db3c <[^>]*> nop
-+0000db40 <[^>]*> nop
-+0000db44 <[^>]*> nop
-+0000db48 <[^>]*> nop
-+0000db4c <[^>]*> nop
-+0000db50 <[^>]*> nop
-+0000db54 <[^>]*> nop
-+0000db58 <[^>]*> nop
-+0000db5c <[^>]*> nop
-+0000db60 <[^>]*> nop
-+0000db64 <[^>]*> nop
-+0000db68 <[^>]*> nop
-+0000db6c <[^>]*> nop
-+0000db70 <[^>]*> nop
-+0000db74 <[^>]*> nop
-+0000db78 <[^>]*> nop
-+0000db7c <[^>]*> nop
-+0000db80 <[^>]*> nop
-+0000db84 <[^>]*> nop
-+0000db88 <[^>]*> nop
-+0000db8c <[^>]*> nop
-+0000db90 <[^>]*> nop
-+0000db94 <[^>]*> nop
-+0000db98 <[^>]*> nop
-+0000db9c <[^>]*> nop
-+0000dba0 <[^>]*> nop
-+0000dba4 <[^>]*> nop
-+0000dba8 <[^>]*> nop
-+0000dbac <[^>]*> nop
-+0000dbb0 <[^>]*> nop
-+0000dbb4 <[^>]*> nop
-+0000dbb8 <[^>]*> nop
-+0000dbbc <[^>]*> nop
-+0000dbc0 <[^>]*> nop
-+0000dbc4 <[^>]*> nop
-+0000dbc8 <[^>]*> nop
-+0000dbcc <[^>]*> nop
-+0000dbd0 <[^>]*> nop
-+0000dbd4 <[^>]*> nop
-+0000dbd8 <[^>]*> nop
-+0000dbdc <[^>]*> nop
-+0000dbe0 <[^>]*> nop
-+0000dbe4 <[^>]*> nop
-+0000dbe8 <[^>]*> nop
-+0000dbec <[^>]*> nop
-+0000dbf0 <[^>]*> nop
-+0000dbf4 <[^>]*> nop
-+0000dbf8 <[^>]*> nop
-+0000dbfc <[^>]*> nop
-+0000dc00 <[^>]*> nop
-+0000dc04 <[^>]*> nop
-+0000dc08 <[^>]*> nop
-+0000dc0c <[^>]*> nop
-+0000dc10 <[^>]*> nop
-+0000dc14 <[^>]*> nop
-+0000dc18 <[^>]*> nop
-+0000dc1c <[^>]*> nop
-+0000dc20 <[^>]*> nop
-+0000dc24 <[^>]*> nop
-+0000dc28 <[^>]*> nop
-+0000dc2c <[^>]*> nop
-+0000dc30 <[^>]*> nop
-+0000dc34 <[^>]*> nop
-+0000dc38 <[^>]*> nop
-+0000dc3c <[^>]*> nop
-+0000dc40 <[^>]*> nop
-+0000dc44 <[^>]*> nop
-+0000dc48 <[^>]*> nop
-+0000dc4c <[^>]*> nop
-+0000dc50 <[^>]*> nop
-+0000dc54 <[^>]*> nop
-+0000dc58 <[^>]*> nop
-+0000dc5c <[^>]*> nop
-+0000dc60 <[^>]*> nop
-+0000dc64 <[^>]*> nop
-+0000dc68 <[^>]*> nop
-+0000dc6c <[^>]*> nop
-+0000dc70 <[^>]*> nop
-+0000dc74 <[^>]*> nop
-+0000dc78 <[^>]*> nop
-+0000dc7c <[^>]*> nop
-+0000dc80 <[^>]*> nop
-+0000dc84 <[^>]*> nop
-+0000dc88 <[^>]*> nop
-+0000dc8c <[^>]*> nop
-+0000dc90 <[^>]*> nop
-+0000dc94 <[^>]*> nop
-+0000dc98 <[^>]*> nop
-+0000dc9c <[^>]*> nop
-+0000dca0 <[^>]*> nop
-+0000dca4 <[^>]*> nop
-+0000dca8 <[^>]*> nop
-+0000dcac <[^>]*> nop
-+0000dcb0 <[^>]*> nop
-+0000dcb4 <[^>]*> nop
-+0000dcb8 <[^>]*> nop
-+0000dcbc <[^>]*> nop
-+0000dcc0 <[^>]*> nop
-+0000dcc4 <[^>]*> nop
-+0000dcc8 <[^>]*> nop
-+0000dccc <[^>]*> nop
-+0000dcd0 <[^>]*> nop
-+0000dcd4 <[^>]*> nop
-+0000dcd8 <[^>]*> nop
-+0000dcdc <[^>]*> nop
-+0000dce0 <[^>]*> nop
-+0000dce4 <[^>]*> nop
-+0000dce8 <[^>]*> nop
-+0000dcec <[^>]*> nop
-+0000dcf0 <[^>]*> nop
-+0000dcf4 <[^>]*> nop
-+0000dcf8 <[^>]*> nop
-+0000dcfc <[^>]*> nop
-+0000dd00 <[^>]*> nop
-+0000dd04 <[^>]*> nop
-+0000dd08 <[^>]*> nop
-+0000dd0c <[^>]*> nop
-+0000dd10 <[^>]*> nop
-+0000dd14 <[^>]*> nop
-+0000dd18 <[^>]*> nop
-+0000dd1c <[^>]*> nop
-+0000dd20 <[^>]*> nop
-+0000dd24 <[^>]*> nop
-+0000dd28 <[^>]*> nop
-+0000dd2c <[^>]*> nop
-+0000dd30 <[^>]*> nop
-+0000dd34 <[^>]*> nop
-+0000dd38 <[^>]*> nop
-+0000dd3c <[^>]*> nop
-+0000dd40 <[^>]*> nop
-+0000dd44 <[^>]*> nop
-+0000dd48 <[^>]*> nop
-+0000dd4c <[^>]*> nop
-+0000dd50 <[^>]*> nop
-+0000dd54 <[^>]*> nop
-+0000dd58 <[^>]*> nop
-+0000dd5c <[^>]*> nop
-+0000dd60 <[^>]*> nop
-+0000dd64 <[^>]*> nop
-+0000dd68 <[^>]*> nop
-+0000dd6c <[^>]*> nop
-+0000dd70 <[^>]*> nop
-+0000dd74 <[^>]*> nop
-+0000dd78 <[^>]*> nop
-+0000dd7c <[^>]*> nop
-+0000dd80 <[^>]*> nop
-+0000dd84 <[^>]*> nop
-+0000dd88 <[^>]*> nop
-+0000dd8c <[^>]*> nop
-+0000dd90 <[^>]*> nop
-+0000dd94 <[^>]*> nop
-+0000dd98 <[^>]*> nop
-+0000dd9c <[^>]*> nop
-+0000dda0 <[^>]*> nop
-+0000dda4 <[^>]*> nop
-+0000dda8 <[^>]*> nop
-+0000ddac <[^>]*> nop
-+0000ddb0 <[^>]*> nop
-+0000ddb4 <[^>]*> nop
-+0000ddb8 <[^>]*> nop
-+0000ddbc <[^>]*> nop
-+0000ddc0 <[^>]*> nop
-+0000ddc4 <[^>]*> nop
-+0000ddc8 <[^>]*> nop
-+0000ddcc <[^>]*> nop
-+0000ddd0 <[^>]*> nop
-+0000ddd4 <[^>]*> nop
-+0000ddd8 <[^>]*> nop
-+0000dddc <[^>]*> nop
-+0000dde0 <[^>]*> nop
-+0000dde4 <[^>]*> nop
-+0000dde8 <[^>]*> nop
-+0000ddec <[^>]*> nop
-+0000ddf0 <[^>]*> nop
-+0000ddf4 <[^>]*> nop
-+0000ddf8 <[^>]*> nop
-+0000ddfc <[^>]*> nop
-+0000de00 <[^>]*> nop
-+0000de04 <[^>]*> nop
-+0000de08 <[^>]*> nop
-+0000de0c <[^>]*> nop
-+0000de10 <[^>]*> nop
-+0000de14 <[^>]*> nop
-+0000de18 <[^>]*> nop
-+0000de1c <[^>]*> nop
-+0000de20 <[^>]*> nop
-+0000de24 <[^>]*> nop
-+0000de28 <[^>]*> nop
-+0000de2c <[^>]*> nop
-+0000de30 <[^>]*> nop
-+0000de34 <[^>]*> nop
-+0000de38 <[^>]*> nop
-+0000de3c <[^>]*> nop
-+0000de40 <[^>]*> nop
-+0000de44 <[^>]*> nop
-+0000de48 <[^>]*> nop
-+0000de4c <[^>]*> nop
-+0000de50 <[^>]*> nop
-+0000de54 <[^>]*> nop
-+0000de58 <[^>]*> nop
-+0000de5c <[^>]*> nop
-+0000de60 <[^>]*> nop
-+0000de64 <[^>]*> nop
-+0000de68 <[^>]*> nop
-+0000de6c <[^>]*> nop
-+0000de70 <[^>]*> nop
-+0000de74 <[^>]*> nop
-+0000de78 <[^>]*> nop
-+0000de7c <[^>]*> nop
-+0000de80 <[^>]*> nop
-+0000de84 <[^>]*> nop
-+0000de88 <[^>]*> nop
-+0000de8c <[^>]*> nop
-+0000de90 <[^>]*> nop
-+0000de94 <[^>]*> nop
-+0000de98 <[^>]*> nop
-+0000de9c <[^>]*> nop
-+0000dea0 <[^>]*> nop
-+0000dea4 <[^>]*> nop
-+0000dea8 <[^>]*> nop
-+0000deac <[^>]*> nop
-+0000deb0 <[^>]*> nop
-+0000deb4 <[^>]*> nop
-+0000deb8 <[^>]*> nop
-+0000debc <[^>]*> nop
-+0000dec0 <[^>]*> nop
-+0000dec4 <[^>]*> nop
-+0000dec8 <[^>]*> nop
-+0000decc <[^>]*> nop
-+0000ded0 <[^>]*> nop
-+0000ded4 <[^>]*> nop
-+0000ded8 <[^>]*> nop
-+0000dedc <[^>]*> nop
-+0000dee0 <[^>]*> nop
-+0000dee4 <[^>]*> nop
-+0000dee8 <[^>]*> nop
-+0000deec <[^>]*> nop
-+0000def0 <[^>]*> nop
-+0000def4 <[^>]*> nop
-+0000def8 <[^>]*> nop
-+0000defc <[^>]*> nop
-+0000df00 <[^>]*> nop
-+0000df04 <[^>]*> nop
-+0000df08 <[^>]*> nop
-+0000df0c <[^>]*> nop
-+0000df10 <[^>]*> nop
-+0000df14 <[^>]*> nop
-+0000df18 <[^>]*> nop
-+0000df1c <[^>]*> nop
-+0000df20 <[^>]*> nop
-+0000df24 <[^>]*> nop
-+0000df28 <[^>]*> nop
-+0000df2c <[^>]*> nop
-+0000df30 <[^>]*> nop
-+0000df34 <[^>]*> nop
-+0000df38 <[^>]*> nop
-+0000df3c <[^>]*> nop
-+0000df40 <[^>]*> nop
-+0000df44 <[^>]*> nop
-+0000df48 <[^>]*> nop
-+0000df4c <[^>]*> nop
-+0000df50 <[^>]*> nop
-+0000df54 <[^>]*> nop
-+0000df58 <[^>]*> nop
-+0000df5c <[^>]*> nop
-+0000df60 <[^>]*> nop
-+0000df64 <[^>]*> nop
-+0000df68 <[^>]*> nop
-+0000df6c <[^>]*> nop
-+0000df70 <[^>]*> nop
-+0000df74 <[^>]*> nop
-+0000df78 <[^>]*> nop
-+0000df7c <[^>]*> nop
-+0000df80 <[^>]*> nop
-+0000df84 <[^>]*> nop
-+0000df88 <[^>]*> nop
-+0000df8c <[^>]*> nop
-+0000df90 <[^>]*> nop
-+0000df94 <[^>]*> nop
-+0000df98 <[^>]*> nop
-+0000df9c <[^>]*> nop
-+0000dfa0 <[^>]*> nop
-+0000dfa4 <[^>]*> nop
-+0000dfa8 <[^>]*> nop
-+0000dfac <[^>]*> nop
-+0000dfb0 <[^>]*> nop
-+0000dfb4 <[^>]*> nop
-+0000dfb8 <[^>]*> nop
-+0000dfbc <[^>]*> nop
-+0000dfc0 <[^>]*> nop
-+0000dfc4 <[^>]*> nop
-+0000dfc8 <[^>]*> nop
-+0000dfcc <[^>]*> nop
-+0000dfd0 <[^>]*> nop
-+0000dfd4 <[^>]*> nop
-+0000dfd8 <[^>]*> nop
-+0000dfdc <[^>]*> nop
-+0000dfe0 <[^>]*> nop
-+0000dfe4 <[^>]*> nop
-+0000dfe8 <[^>]*> nop
-+0000dfec <[^>]*> nop
-+0000dff0 <[^>]*> nop
-+0000dff4 <[^>]*> nop
-+0000dff8 <[^>]*> nop
-+0000dffc <[^>]*> nop
-+0000e000 <[^>]*> nop
-+0000e004 <[^>]*> nop
-+0000e008 <[^>]*> nop
-+0000e00c <[^>]*> nop
-+0000e010 <[^>]*> nop
-+0000e014 <[^>]*> nop
-+0000e018 <[^>]*> nop
-+0000e01c <[^>]*> nop
-+0000e020 <[^>]*> nop
-+0000e024 <[^>]*> nop
-+0000e028 <[^>]*> nop
-+0000e02c <[^>]*> nop
-+0000e030 <[^>]*> nop
-+0000e034 <[^>]*> nop
-+0000e038 <[^>]*> nop
-+0000e03c <[^>]*> nop
-+0000e040 <[^>]*> nop
-+0000e044 <[^>]*> nop
-+0000e048 <[^>]*> nop
-+0000e04c <[^>]*> nop
-+0000e050 <[^>]*> nop
-+0000e054 <[^>]*> nop
-+0000e058 <[^>]*> nop
-+0000e05c <[^>]*> nop
-+0000e060 <[^>]*> nop
-+0000e064 <[^>]*> nop
-+0000e068 <[^>]*> nop
-+0000e06c <[^>]*> nop
-+0000e070 <[^>]*> nop
-+0000e074 <[^>]*> nop
-+0000e078 <[^>]*> nop
-+0000e07c <[^>]*> nop
-+0000e080 <[^>]*> nop
-+0000e084 <[^>]*> nop
-+0000e088 <[^>]*> nop
-+0000e08c <[^>]*> nop
-+0000e090 <[^>]*> nop
-+0000e094 <[^>]*> nop
-+0000e098 <[^>]*> nop
-+0000e09c <[^>]*> nop
-+0000e0a0 <[^>]*> nop
-+0000e0a4 <[^>]*> nop
-+0000e0a8 <[^>]*> nop
-+0000e0ac <[^>]*> nop
-+0000e0b0 <[^>]*> nop
-+0000e0b4 <[^>]*> nop
-+0000e0b8 <[^>]*> nop
-+0000e0bc <[^>]*> nop
-+0000e0c0 <[^>]*> nop
-+0000e0c4 <[^>]*> nop
-+0000e0c8 <[^>]*> nop
-+0000e0cc <[^>]*> nop
-+0000e0d0 <[^>]*> nop
-+0000e0d4 <[^>]*> nop
-+0000e0d8 <[^>]*> nop
-+0000e0dc <[^>]*> nop
-+0000e0e0 <[^>]*> nop
-+0000e0e4 <[^>]*> nop
-+0000e0e8 <[^>]*> nop
-+0000e0ec <[^>]*> nop
-+0000e0f0 <[^>]*> nop
-+0000e0f4 <[^>]*> nop
-+0000e0f8 <[^>]*> nop
-+0000e0fc <[^>]*> nop
-+0000e100 <[^>]*> nop
-+0000e104 <[^>]*> nop
-+0000e108 <[^>]*> nop
-+0000e10c <[^>]*> nop
-+0000e110 <[^>]*> nop
-+0000e114 <[^>]*> nop
-+0000e118 <[^>]*> nop
-+0000e11c <[^>]*> nop
-+0000e120 <[^>]*> nop
-+0000e124 <[^>]*> nop
-+0000e128 <[^>]*> nop
-+0000e12c <[^>]*> nop
-+0000e130 <[^>]*> nop
-+0000e134 <[^>]*> nop
-+0000e138 <[^>]*> nop
-+0000e13c <[^>]*> nop
-+0000e140 <[^>]*> nop
-+0000e144 <[^>]*> nop
-+0000e148 <[^>]*> nop
-+0000e14c <[^>]*> nop
-+0000e150 <[^>]*> nop
-+0000e154 <[^>]*> nop
-+0000e158 <[^>]*> nop
-+0000e15c <[^>]*> nop
-+0000e160 <[^>]*> nop
-+0000e164 <[^>]*> nop
-+0000e168 <[^>]*> nop
-+0000e16c <[^>]*> nop
-+0000e170 <[^>]*> nop
-+0000e174 <[^>]*> nop
-+0000e178 <[^>]*> nop
-+0000e17c <[^>]*> nop
-+0000e180 <[^>]*> nop
-+0000e184 <[^>]*> nop
-+0000e188 <[^>]*> nop
-+0000e18c <[^>]*> nop
-+0000e190 <[^>]*> nop
-+0000e194 <[^>]*> nop
-+0000e198 <[^>]*> nop
-+0000e19c <[^>]*> nop
-+0000e1a0 <[^>]*> nop
-+0000e1a4 <[^>]*> nop
-+0000e1a8 <[^>]*> nop
-+0000e1ac <[^>]*> nop
-+0000e1b0 <[^>]*> nop
-+0000e1b4 <[^>]*> nop
-+0000e1b8 <[^>]*> nop
-+0000e1bc <[^>]*> nop
-+0000e1c0 <[^>]*> nop
-+0000e1c4 <[^>]*> nop
-+0000e1c8 <[^>]*> nop
-+0000e1cc <[^>]*> nop
-+0000e1d0 <[^>]*> nop
-+0000e1d4 <[^>]*> nop
-+0000e1d8 <[^>]*> nop
-+0000e1dc <[^>]*> nop
-+0000e1e0 <[^>]*> nop
-+0000e1e4 <[^>]*> nop
-+0000e1e8 <[^>]*> nop
-+0000e1ec <[^>]*> nop
-+0000e1f0 <[^>]*> nop
-+0000e1f4 <[^>]*> nop
-+0000e1f8 <[^>]*> nop
-+0000e1fc <[^>]*> nop
-+0000e200 <[^>]*> nop
-+0000e204 <[^>]*> nop
-+0000e208 <[^>]*> nop
-+0000e20c <[^>]*> nop
-+0000e210 <[^>]*> nop
-+0000e214 <[^>]*> nop
-+0000e218 <[^>]*> nop
-+0000e21c <[^>]*> nop
-+0000e220 <[^>]*> nop
-+0000e224 <[^>]*> nop
-+0000e228 <[^>]*> nop
-+0000e22c <[^>]*> nop
-+0000e230 <[^>]*> nop
-+0000e234 <[^>]*> nop
-+0000e238 <[^>]*> nop
-+0000e23c <[^>]*> nop
-+0000e240 <[^>]*> nop
-+0000e244 <[^>]*> nop
-+0000e248 <[^>]*> nop
-+0000e24c <[^>]*> nop
-+0000e250 <[^>]*> nop
-+0000e254 <[^>]*> nop
-+0000e258 <[^>]*> nop
-+0000e25c <[^>]*> nop
-+0000e260 <[^>]*> nop
-+0000e264 <[^>]*> nop
-+0000e268 <[^>]*> nop
-+0000e26c <[^>]*> nop
-+0000e270 <[^>]*> nop
-+0000e274 <[^>]*> nop
-+0000e278 <[^>]*> nop
-+0000e27c <[^>]*> nop
-+0000e280 <[^>]*> nop
-+0000e284 <[^>]*> nop
-+0000e288 <[^>]*> nop
-+0000e28c <[^>]*> nop
-+0000e290 <[^>]*> nop
-+0000e294 <[^>]*> nop
-+0000e298 <[^>]*> nop
-+0000e29c <[^>]*> nop
-+0000e2a0 <[^>]*> nop
-+0000e2a4 <[^>]*> nop
-+0000e2a8 <[^>]*> nop
-+0000e2ac <[^>]*> nop
-+0000e2b0 <[^>]*> nop
-+0000e2b4 <[^>]*> nop
-+0000e2b8 <[^>]*> nop
-+0000e2bc <[^>]*> nop
-+0000e2c0 <[^>]*> nop
-+0000e2c4 <[^>]*> nop
-+0000e2c8 <[^>]*> nop
-+0000e2cc <[^>]*> nop
-+0000e2d0 <[^>]*> nop
-+0000e2d4 <[^>]*> nop
-+0000e2d8 <[^>]*> nop
-+0000e2dc <[^>]*> nop
-+0000e2e0 <[^>]*> nop
-+0000e2e4 <[^>]*> nop
-+0000e2e8 <[^>]*> nop
-+0000e2ec <[^>]*> nop
-+0000e2f0 <[^>]*> nop
-+0000e2f4 <[^>]*> nop
-+0000e2f8 <[^>]*> nop
-+0000e2fc <[^>]*> nop
-+0000e300 <[^>]*> nop
-+0000e304 <[^>]*> nop
-+0000e308 <[^>]*> nop
-+0000e30c <[^>]*> nop
-+0000e310 <[^>]*> nop
-+0000e314 <[^>]*> nop
-+0000e318 <[^>]*> nop
-+0000e31c <[^>]*> nop
-+0000e320 <[^>]*> nop
-+0000e324 <[^>]*> nop
-+0000e328 <[^>]*> nop
-+0000e32c <[^>]*> nop
-+0000e330 <[^>]*> nop
-+0000e334 <[^>]*> nop
-+0000e338 <[^>]*> nop
-+0000e33c <[^>]*> nop
-+0000e340 <[^>]*> nop
-+0000e344 <[^>]*> nop
-+0000e348 <[^>]*> nop
-+0000e34c <[^>]*> nop
-+0000e350 <[^>]*> nop
-+0000e354 <[^>]*> nop
-+0000e358 <[^>]*> nop
-+0000e35c <[^>]*> nop
-+0000e360 <[^>]*> nop
-+0000e364 <[^>]*> nop
-+0000e368 <[^>]*> nop
-+0000e36c <[^>]*> nop
-+0000e370 <[^>]*> nop
-+0000e374 <[^>]*> nop
-+0000e378 <[^>]*> nop
-+0000e37c <[^>]*> nop
-+0000e380 <[^>]*> nop
-+0000e384 <[^>]*> nop
-+0000e388 <[^>]*> nop
-+0000e38c <[^>]*> nop
-+0000e390 <[^>]*> nop
-+0000e394 <[^>]*> nop
-+0000e398 <[^>]*> nop
-+0000e39c <[^>]*> nop
-+0000e3a0 <[^>]*> nop
-+0000e3a4 <[^>]*> nop
-+0000e3a8 <[^>]*> nop
-+0000e3ac <[^>]*> nop
-+0000e3b0 <[^>]*> nop
-+0000e3b4 <[^>]*> nop
-+0000e3b8 <[^>]*> nop
-+0000e3bc <[^>]*> nop
-+0000e3c0 <[^>]*> nop
-+0000e3c4 <[^>]*> nop
-+0000e3c8 <[^>]*> nop
-+0000e3cc <[^>]*> nop
-+0000e3d0 <[^>]*> nop
-+0000e3d4 <[^>]*> nop
-+0000e3d8 <[^>]*> nop
-+0000e3dc <[^>]*> nop
-+0000e3e0 <[^>]*> nop
-+0000e3e4 <[^>]*> nop
-+0000e3e8 <[^>]*> nop
-+0000e3ec <[^>]*> nop
-+0000e3f0 <[^>]*> nop
-+0000e3f4 <[^>]*> nop
-+0000e3f8 <[^>]*> nop
-+0000e3fc <[^>]*> nop
-+0000e400 <[^>]*> nop
-+0000e404 <[^>]*> nop
-+0000e408 <[^>]*> nop
-+0000e40c <[^>]*> nop
-+0000e410 <[^>]*> nop
-+0000e414 <[^>]*> nop
-+0000e418 <[^>]*> nop
-+0000e41c <[^>]*> nop
-+0000e420 <[^>]*> nop
-+0000e424 <[^>]*> nop
-+0000e428 <[^>]*> nop
-+0000e42c <[^>]*> nop
-+0000e430 <[^>]*> nop
-+0000e434 <[^>]*> nop
-+0000e438 <[^>]*> nop
-+0000e43c <[^>]*> nop
-+0000e440 <[^>]*> nop
-+0000e444 <[^>]*> nop
-+0000e448 <[^>]*> nop
-+0000e44c <[^>]*> nop
-+0000e450 <[^>]*> nop
-+0000e454 <[^>]*> nop
-+0000e458 <[^>]*> nop
-+0000e45c <[^>]*> nop
-+0000e460 <[^>]*> nop
-+0000e464 <[^>]*> nop
-+0000e468 <[^>]*> nop
-+0000e46c <[^>]*> nop
-+0000e470 <[^>]*> nop
-+0000e474 <[^>]*> nop
-+0000e478 <[^>]*> nop
-+0000e47c <[^>]*> nop
-+0000e480 <[^>]*> nop
-+0000e484 <[^>]*> nop
-+0000e488 <[^>]*> nop
-+0000e48c <[^>]*> nop
-+0000e490 <[^>]*> nop
-+0000e494 <[^>]*> nop
-+0000e498 <[^>]*> nop
-+0000e49c <[^>]*> nop
-+0000e4a0 <[^>]*> nop
-+0000e4a4 <[^>]*> nop
-+0000e4a8 <[^>]*> nop
-+0000e4ac <[^>]*> nop
-+0000e4b0 <[^>]*> nop
-+0000e4b4 <[^>]*> nop
-+0000e4b8 <[^>]*> nop
-+0000e4bc <[^>]*> nop
-+0000e4c0 <[^>]*> nop
-+0000e4c4 <[^>]*> nop
-+0000e4c8 <[^>]*> nop
-+0000e4cc <[^>]*> nop
-+0000e4d0 <[^>]*> nop
-+0000e4d4 <[^>]*> nop
-+0000e4d8 <[^>]*> nop
-+0000e4dc <[^>]*> nop
-+0000e4e0 <[^>]*> nop
-+0000e4e4 <[^>]*> nop
-+0000e4e8 <[^>]*> nop
-+0000e4ec <[^>]*> nop
-+0000e4f0 <[^>]*> nop
-+0000e4f4 <[^>]*> nop
-+0000e4f8 <[^>]*> nop
-+0000e4fc <[^>]*> nop
-+0000e500 <[^>]*> nop
-+0000e504 <[^>]*> nop
-+0000e508 <[^>]*> nop
-+0000e50c <[^>]*> nop
-+0000e510 <[^>]*> nop
-+0000e514 <[^>]*> nop
-+0000e518 <[^>]*> nop
-+0000e51c <[^>]*> nop
-+0000e520 <[^>]*> nop
-+0000e524 <[^>]*> nop
-+0000e528 <[^>]*> nop
-+0000e52c <[^>]*> nop
-+0000e530 <[^>]*> nop
-+0000e534 <[^>]*> nop
-+0000e538 <[^>]*> nop
-+0000e53c <[^>]*> nop
-+0000e540 <[^>]*> nop
-+0000e544 <[^>]*> nop
-+0000e548 <[^>]*> nop
-+0000e54c <[^>]*> nop
-+0000e550 <[^>]*> nop
-+0000e554 <[^>]*> nop
-+0000e558 <[^>]*> nop
-+0000e55c <[^>]*> nop
-+0000e560 <[^>]*> nop
-+0000e564 <[^>]*> nop
-+0000e568 <[^>]*> nop
-+0000e56c <[^>]*> nop
-+0000e570 <[^>]*> nop
-+0000e574 <[^>]*> nop
-+0000e578 <[^>]*> nop
-+0000e57c <[^>]*> nop
-+0000e580 <[^>]*> nop
-+0000e584 <[^>]*> nop
-+0000e588 <[^>]*> nop
-+0000e58c <[^>]*> nop
-+0000e590 <[^>]*> nop
-+0000e594 <[^>]*> nop
-+0000e598 <[^>]*> nop
-+0000e59c <[^>]*> nop
-+0000e5a0 <[^>]*> nop
-+0000e5a4 <[^>]*> nop
-+0000e5a8 <[^>]*> nop
-+0000e5ac <[^>]*> nop
-+0000e5b0 <[^>]*> nop
-+0000e5b4 <[^>]*> nop
-+0000e5b8 <[^>]*> nop
-+0000e5bc <[^>]*> nop
-+0000e5c0 <[^>]*> nop
-+0000e5c4 <[^>]*> nop
-+0000e5c8 <[^>]*> nop
-+0000e5cc <[^>]*> nop
-+0000e5d0 <[^>]*> nop
-+0000e5d4 <[^>]*> nop
-+0000e5d8 <[^>]*> nop
-+0000e5dc <[^>]*> nop
-+0000e5e0 <[^>]*> nop
-+0000e5e4 <[^>]*> nop
-+0000e5e8 <[^>]*> nop
-+0000e5ec <[^>]*> nop
-+0000e5f0 <[^>]*> nop
-+0000e5f4 <[^>]*> nop
-+0000e5f8 <[^>]*> nop
-+0000e5fc <[^>]*> nop
-+0000e600 <[^>]*> nop
-+0000e604 <[^>]*> nop
-+0000e608 <[^>]*> nop
-+0000e60c <[^>]*> nop
-+0000e610 <[^>]*> nop
-+0000e614 <[^>]*> nop
-+0000e618 <[^>]*> nop
-+0000e61c <[^>]*> nop
-+0000e620 <[^>]*> nop
-+0000e624 <[^>]*> nop
-+0000e628 <[^>]*> nop
-+0000e62c <[^>]*> nop
-+0000e630 <[^>]*> nop
-+0000e634 <[^>]*> nop
-+0000e638 <[^>]*> nop
-+0000e63c <[^>]*> nop
-+0000e640 <[^>]*> nop
-+0000e644 <[^>]*> nop
-+0000e648 <[^>]*> nop
-+0000e64c <[^>]*> nop
-+0000e650 <[^>]*> nop
-+0000e654 <[^>]*> nop
-+0000e658 <[^>]*> nop
-+0000e65c <[^>]*> nop
-+0000e660 <[^>]*> nop
-+0000e664 <[^>]*> nop
-+0000e668 <[^>]*> nop
-+0000e66c <[^>]*> nop
-+0000e670 <[^>]*> nop
-+0000e674 <[^>]*> nop
-+0000e678 <[^>]*> nop
-+0000e67c <[^>]*> nop
-+0000e680 <[^>]*> nop
-+0000e684 <[^>]*> nop
-+0000e688 <[^>]*> nop
-+0000e68c <[^>]*> nop
-+0000e690 <[^>]*> nop
-+0000e694 <[^>]*> nop
-+0000e698 <[^>]*> nop
-+0000e69c <[^>]*> nop
-+0000e6a0 <[^>]*> nop
-+0000e6a4 <[^>]*> nop
-+0000e6a8 <[^>]*> nop
-+0000e6ac <[^>]*> nop
-+0000e6b0 <[^>]*> nop
-+0000e6b4 <[^>]*> nop
-+0000e6b8 <[^>]*> nop
-+0000e6bc <[^>]*> nop
-+0000e6c0 <[^>]*> nop
-+0000e6c4 <[^>]*> nop
-+0000e6c8 <[^>]*> nop
-+0000e6cc <[^>]*> nop
-+0000e6d0 <[^>]*> nop
-+0000e6d4 <[^>]*> nop
-+0000e6d8 <[^>]*> nop
-+0000e6dc <[^>]*> nop
-+0000e6e0 <[^>]*> nop
-+0000e6e4 <[^>]*> nop
-+0000e6e8 <[^>]*> nop
-+0000e6ec <[^>]*> nop
-+0000e6f0 <[^>]*> nop
-+0000e6f4 <[^>]*> nop
-+0000e6f8 <[^>]*> nop
-+0000e6fc <[^>]*> nop
-+0000e700 <[^>]*> nop
-+0000e704 <[^>]*> nop
-+0000e708 <[^>]*> nop
-+0000e70c <[^>]*> nop
-+0000e710 <[^>]*> nop
-+0000e714 <[^>]*> nop
-+0000e718 <[^>]*> nop
-+0000e71c <[^>]*> nop
-+0000e720 <[^>]*> nop
-+0000e724 <[^>]*> nop
-+0000e728 <[^>]*> nop
-+0000e72c <[^>]*> nop
-+0000e730 <[^>]*> nop
-+0000e734 <[^>]*> nop
-+0000e738 <[^>]*> nop
-+0000e73c <[^>]*> nop
-+0000e740 <[^>]*> nop
-+0000e744 <[^>]*> nop
-+0000e748 <[^>]*> nop
-+0000e74c <[^>]*> nop
-+0000e750 <[^>]*> nop
-+0000e754 <[^>]*> nop
-+0000e758 <[^>]*> nop
-+0000e75c <[^>]*> nop
-+0000e760 <[^>]*> nop
-+0000e764 <[^>]*> nop
-+0000e768 <[^>]*> nop
-+0000e76c <[^>]*> nop
-+0000e770 <[^>]*> nop
-+0000e774 <[^>]*> nop
-+0000e778 <[^>]*> nop
-+0000e77c <[^>]*> nop
-+0000e780 <[^>]*> nop
-+0000e784 <[^>]*> nop
-+0000e788 <[^>]*> nop
-+0000e78c <[^>]*> nop
-+0000e790 <[^>]*> nop
-+0000e794 <[^>]*> nop
-+0000e798 <[^>]*> nop
-+0000e79c <[^>]*> nop
-+0000e7a0 <[^>]*> nop
-+0000e7a4 <[^>]*> nop
-+0000e7a8 <[^>]*> nop
-+0000e7ac <[^>]*> nop
-+0000e7b0 <[^>]*> nop
-+0000e7b4 <[^>]*> nop
-+0000e7b8 <[^>]*> nop
-+0000e7bc <[^>]*> nop
-+0000e7c0 <[^>]*> nop
-+0000e7c4 <[^>]*> nop
-+0000e7c8 <[^>]*> nop
-+0000e7cc <[^>]*> nop
-+0000e7d0 <[^>]*> nop
-+0000e7d4 <[^>]*> nop
-+0000e7d8 <[^>]*> nop
-+0000e7dc <[^>]*> nop
-+0000e7e0 <[^>]*> nop
-+0000e7e4 <[^>]*> nop
-+0000e7e8 <[^>]*> nop
-+0000e7ec <[^>]*> nop
-+0000e7f0 <[^>]*> nop
-+0000e7f4 <[^>]*> nop
-+0000e7f8 <[^>]*> nop
-+0000e7fc <[^>]*> nop
-+0000e800 <[^>]*> nop
-+0000e804 <[^>]*> nop
-+0000e808 <[^>]*> nop
-+0000e80c <[^>]*> nop
-+0000e810 <[^>]*> nop
-+0000e814 <[^>]*> nop
-+0000e818 <[^>]*> nop
-+0000e81c <[^>]*> nop
-+0000e820 <[^>]*> nop
-+0000e824 <[^>]*> nop
-+0000e828 <[^>]*> nop
-+0000e82c <[^>]*> nop
-+0000e830 <[^>]*> nop
-+0000e834 <[^>]*> nop
-+0000e838 <[^>]*> nop
-+0000e83c <[^>]*> nop
-+0000e840 <[^>]*> nop
-+0000e844 <[^>]*> nop
-+0000e848 <[^>]*> nop
-+0000e84c <[^>]*> nop
-+0000e850 <[^>]*> nop
-+0000e854 <[^>]*> nop
-+0000e858 <[^>]*> nop
-+0000e85c <[^>]*> nop
-+0000e860 <[^>]*> nop
-+0000e864 <[^>]*> nop
-+0000e868 <[^>]*> nop
-+0000e86c <[^>]*> nop
-+0000e870 <[^>]*> nop
-+0000e874 <[^>]*> nop
-+0000e878 <[^>]*> nop
-+0000e87c <[^>]*> nop
-+0000e880 <[^>]*> nop
-+0000e884 <[^>]*> nop
-+0000e888 <[^>]*> nop
-+0000e88c <[^>]*> nop
-+0000e890 <[^>]*> nop
-+0000e894 <[^>]*> nop
-+0000e898 <[^>]*> nop
-+0000e89c <[^>]*> nop
-+0000e8a0 <[^>]*> nop
-+0000e8a4 <[^>]*> nop
-+0000e8a8 <[^>]*> nop
-+0000e8ac <[^>]*> nop
-+0000e8b0 <[^>]*> nop
-+0000e8b4 <[^>]*> nop
-+0000e8b8 <[^>]*> nop
-+0000e8bc <[^>]*> nop
-+0000e8c0 <[^>]*> nop
-+0000e8c4 <[^>]*> nop
-+0000e8c8 <[^>]*> nop
-+0000e8cc <[^>]*> nop
-+0000e8d0 <[^>]*> nop
-+0000e8d4 <[^>]*> nop
-+0000e8d8 <[^>]*> nop
-+0000e8dc <[^>]*> nop
-+0000e8e0 <[^>]*> nop
-+0000e8e4 <[^>]*> nop
-+0000e8e8 <[^>]*> nop
-+0000e8ec <[^>]*> nop
-+0000e8f0 <[^>]*> nop
-+0000e8f4 <[^>]*> nop
-+0000e8f8 <[^>]*> nop
-+0000e8fc <[^>]*> nop
-+0000e900 <[^>]*> nop
-+0000e904 <[^>]*> nop
-+0000e908 <[^>]*> nop
-+0000e90c <[^>]*> nop
-+0000e910 <[^>]*> nop
-+0000e914 <[^>]*> nop
-+0000e918 <[^>]*> nop
-+0000e91c <[^>]*> nop
-+0000e920 <[^>]*> nop
-+0000e924 <[^>]*> nop
-+0000e928 <[^>]*> nop
-+0000e92c <[^>]*> nop
-+0000e930 <[^>]*> nop
-+0000e934 <[^>]*> nop
-+0000e938 <[^>]*> nop
-+0000e93c <[^>]*> nop
-+0000e940 <[^>]*> nop
-+0000e944 <[^>]*> nop
-+0000e948 <[^>]*> nop
-+0000e94c <[^>]*> nop
-+0000e950 <[^>]*> nop
-+0000e954 <[^>]*> nop
-+0000e958 <[^>]*> nop
-+0000e95c <[^>]*> nop
-+0000e960 <[^>]*> nop
-+0000e964 <[^>]*> nop
-+0000e968 <[^>]*> nop
-+0000e96c <[^>]*> nop
-+0000e970 <[^>]*> nop
-+0000e974 <[^>]*> nop
-+0000e978 <[^>]*> nop
-+0000e97c <[^>]*> nop
-+0000e980 <[^>]*> nop
-+0000e984 <[^>]*> nop
-+0000e988 <[^>]*> nop
-+0000e98c <[^>]*> nop
-+0000e990 <[^>]*> nop
-+0000e994 <[^>]*> nop
-+0000e998 <[^>]*> nop
-+0000e99c <[^>]*> nop
-+0000e9a0 <[^>]*> nop
-+0000e9a4 <[^>]*> nop
-+0000e9a8 <[^>]*> nop
-+0000e9ac <[^>]*> nop
-+0000e9b0 <[^>]*> nop
-+0000e9b4 <[^>]*> nop
-+0000e9b8 <[^>]*> nop
-+0000e9bc <[^>]*> nop
-+0000e9c0 <[^>]*> nop
-+0000e9c4 <[^>]*> nop
-+0000e9c8 <[^>]*> nop
-+0000e9cc <[^>]*> nop
-+0000e9d0 <[^>]*> nop
-+0000e9d4 <[^>]*> nop
-+0000e9d8 <[^>]*> nop
-+0000e9dc <[^>]*> nop
-+0000e9e0 <[^>]*> nop
-+0000e9e4 <[^>]*> nop
-+0000e9e8 <[^>]*> nop
-+0000e9ec <[^>]*> nop
-+0000e9f0 <[^>]*> nop
-+0000e9f4 <[^>]*> nop
-+0000e9f8 <[^>]*> nop
-+0000e9fc <[^>]*> nop
-+0000ea00 <[^>]*> nop
-+0000ea04 <[^>]*> nop
-+0000ea08 <[^>]*> nop
-+0000ea0c <[^>]*> nop
-+0000ea10 <[^>]*> nop
-+0000ea14 <[^>]*> nop
-+0000ea18 <[^>]*> nop
-+0000ea1c <[^>]*> nop
-+0000ea20 <[^>]*> nop
-+0000ea24 <[^>]*> nop
-+0000ea28 <[^>]*> nop
-+0000ea2c <[^>]*> nop
-+0000ea30 <[^>]*> nop
-+0000ea34 <[^>]*> nop
-+0000ea38 <[^>]*> nop
-+0000ea3c <[^>]*> nop
-+0000ea40 <[^>]*> nop
-+0000ea44 <[^>]*> nop
-+0000ea48 <[^>]*> nop
-+0000ea4c <[^>]*> nop
-+0000ea50 <[^>]*> nop
-+0000ea54 <[^>]*> nop
-+0000ea58 <[^>]*> nop
-+0000ea5c <[^>]*> nop
-+0000ea60 <[^>]*> nop
-+0000ea64 <[^>]*> nop
-+0000ea68 <[^>]*> nop
-+0000ea6c <[^>]*> nop
-+0000ea70 <[^>]*> nop
-+0000ea74 <[^>]*> nop
-+0000ea78 <[^>]*> nop
-+0000ea7c <[^>]*> nop
-+0000ea80 <[^>]*> nop
-+0000ea84 <[^>]*> nop
-+0000ea88 <[^>]*> nop
-+0000ea8c <[^>]*> nop
-+0000ea90 <[^>]*> nop
-+0000ea94 <[^>]*> nop
-+0000ea98 <[^>]*> nop
-+0000ea9c <[^>]*> nop
-+0000eaa0 <[^>]*> nop
-+0000eaa4 <[^>]*> nop
-+0000eaa8 <[^>]*> nop
-+0000eaac <[^>]*> nop
-+0000eab0 <[^>]*> nop
-+0000eab4 <[^>]*> nop
-+0000eab8 <[^>]*> nop
-+0000eabc <[^>]*> nop
-+0000eac0 <[^>]*> nop
-+0000eac4 <[^>]*> nop
-+0000eac8 <[^>]*> nop
-+0000eacc <[^>]*> nop
-+0000ead0 <[^>]*> nop
-+0000ead4 <[^>]*> nop
-+0000ead8 <[^>]*> nop
-+0000eadc <[^>]*> nop
-+0000eae0 <[^>]*> nop
-+0000eae4 <[^>]*> nop
-+0000eae8 <[^>]*> nop
-+0000eaec <[^>]*> nop
-+0000eaf0 <[^>]*> nop
-+0000eaf4 <[^>]*> nop
-+0000eaf8 <[^>]*> nop
-+0000eafc <[^>]*> nop
-+0000eb00 <[^>]*> nop
-+0000eb04 <[^>]*> nop
-+0000eb08 <[^>]*> nop
-+0000eb0c <[^>]*> nop
-+0000eb10 <[^>]*> nop
-+0000eb14 <[^>]*> nop
-+0000eb18 <[^>]*> nop
-+0000eb1c <[^>]*> nop
-+0000eb20 <[^>]*> nop
-+0000eb24 <[^>]*> nop
-+0000eb28 <[^>]*> nop
-+0000eb2c <[^>]*> nop
-+0000eb30 <[^>]*> nop
-+0000eb34 <[^>]*> nop
-+0000eb38 <[^>]*> nop
-+0000eb3c <[^>]*> nop
-+0000eb40 <[^>]*> nop
-+0000eb44 <[^>]*> nop
-+0000eb48 <[^>]*> nop
-+0000eb4c <[^>]*> nop
-+0000eb50 <[^>]*> nop
-+0000eb54 <[^>]*> nop
-+0000eb58 <[^>]*> nop
-+0000eb5c <[^>]*> nop
-+0000eb60 <[^>]*> nop
-+0000eb64 <[^>]*> nop
-+0000eb68 <[^>]*> nop
-+0000eb6c <[^>]*> nop
-+0000eb70 <[^>]*> nop
-+0000eb74 <[^>]*> nop
-+0000eb78 <[^>]*> nop
-+0000eb7c <[^>]*> nop
-+0000eb80 <[^>]*> nop
-+0000eb84 <[^>]*> nop
-+0000eb88 <[^>]*> nop
-+0000eb8c <[^>]*> nop
-+0000eb90 <[^>]*> nop
-+0000eb94 <[^>]*> nop
-+0000eb98 <[^>]*> nop
-+0000eb9c <[^>]*> nop
-+0000eba0 <[^>]*> nop
-+0000eba4 <[^>]*> nop
-+0000eba8 <[^>]*> nop
-+0000ebac <[^>]*> nop
-+0000ebb0 <[^>]*> nop
-+0000ebb4 <[^>]*> nop
-+0000ebb8 <[^>]*> nop
-+0000ebbc <[^>]*> nop
-+0000ebc0 <[^>]*> nop
-+0000ebc4 <[^>]*> nop
-+0000ebc8 <[^>]*> nop
-+0000ebcc <[^>]*> nop
-+0000ebd0 <[^>]*> nop
-+0000ebd4 <[^>]*> nop
-+0000ebd8 <[^>]*> nop
-+0000ebdc <[^>]*> nop
-+0000ebe0 <[^>]*> nop
-+0000ebe4 <[^>]*> nop
-+0000ebe8 <[^>]*> nop
-+0000ebec <[^>]*> nop
-+0000ebf0 <[^>]*> nop
-+0000ebf4 <[^>]*> nop
-+0000ebf8 <[^>]*> nop
-+0000ebfc <[^>]*> nop
-+0000ec00 <[^>]*> nop
-+0000ec04 <[^>]*> nop
-+0000ec08 <[^>]*> nop
-+0000ec0c <[^>]*> nop
-+0000ec10 <[^>]*> nop
-+0000ec14 <[^>]*> nop
-+0000ec18 <[^>]*> nop
-+0000ec1c <[^>]*> nop
-+0000ec20 <[^>]*> nop
-+0000ec24 <[^>]*> nop
-+0000ec28 <[^>]*> nop
-+0000ec2c <[^>]*> nop
-+0000ec30 <[^>]*> nop
-+0000ec34 <[^>]*> nop
-+0000ec38 <[^>]*> nop
-+0000ec3c <[^>]*> nop
-+0000ec40 <[^>]*> nop
-+0000ec44 <[^>]*> nop
-+0000ec48 <[^>]*> nop
-+0000ec4c <[^>]*> nop
-+0000ec50 <[^>]*> nop
-+0000ec54 <[^>]*> nop
-+0000ec58 <[^>]*> nop
-+0000ec5c <[^>]*> nop
-+0000ec60 <[^>]*> nop
-+0000ec64 <[^>]*> nop
-+0000ec68 <[^>]*> nop
-+0000ec6c <[^>]*> nop
-+0000ec70 <[^>]*> nop
-+0000ec74 <[^>]*> nop
-+0000ec78 <[^>]*> nop
-+0000ec7c <[^>]*> nop
-+0000ec80 <[^>]*> nop
-+0000ec84 <[^>]*> nop
-+0000ec88 <[^>]*> nop
-+0000ec8c <[^>]*> nop
-+0000ec90 <[^>]*> nop
-+0000ec94 <[^>]*> nop
-+0000ec98 <[^>]*> nop
-+0000ec9c <[^>]*> nop
-+0000eca0 <[^>]*> nop
-+0000eca4 <[^>]*> nop
-+0000eca8 <[^>]*> nop
-+0000ecac <[^>]*> nop
-+0000ecb0 <[^>]*> nop
-+0000ecb4 <[^>]*> nop
-+0000ecb8 <[^>]*> nop
-+0000ecbc <[^>]*> nop
-+0000ecc0 <[^>]*> nop
-+0000ecc4 <[^>]*> nop
-+0000ecc8 <[^>]*> nop
-+0000eccc <[^>]*> nop
-+0000ecd0 <[^>]*> nop
-+0000ecd4 <[^>]*> nop
-+0000ecd8 <[^>]*> nop
-+0000ecdc <[^>]*> nop
-+0000ece0 <[^>]*> nop
-+0000ece4 <[^>]*> nop
-+0000ece8 <[^>]*> nop
-+0000ecec <[^>]*> nop
-+0000ecf0 <[^>]*> nop
-+0000ecf4 <[^>]*> nop
-+0000ecf8 <[^>]*> nop
-+0000ecfc <[^>]*> nop
-+0000ed00 <[^>]*> nop
-+0000ed04 <[^>]*> nop
-+0000ed08 <[^>]*> nop
-+0000ed0c <[^>]*> nop
-+0000ed10 <[^>]*> nop
-+0000ed14 <[^>]*> nop
-+0000ed18 <[^>]*> nop
-+0000ed1c <[^>]*> nop
-+0000ed20 <[^>]*> nop
-+0000ed24 <[^>]*> nop
-+0000ed28 <[^>]*> nop
-+0000ed2c <[^>]*> nop
-+0000ed30 <[^>]*> nop
-+0000ed34 <[^>]*> nop
-+0000ed38 <[^>]*> nop
-+0000ed3c <[^>]*> nop
-+0000ed40 <[^>]*> nop
-+0000ed44 <[^>]*> nop
-+0000ed48 <[^>]*> nop
-+0000ed4c <[^>]*> nop
-+0000ed50 <[^>]*> nop
-+0000ed54 <[^>]*> nop
-+0000ed58 <[^>]*> nop
-+0000ed5c <[^>]*> nop
-+0000ed60 <[^>]*> nop
-+0000ed64 <[^>]*> nop
-+0000ed68 <[^>]*> nop
-+0000ed6c <[^>]*> nop
-+0000ed70 <[^>]*> nop
-+0000ed74 <[^>]*> nop
-+0000ed78 <[^>]*> nop
-+0000ed7c <[^>]*> nop
-+0000ed80 <[^>]*> nop
-+0000ed84 <[^>]*> nop
-+0000ed88 <[^>]*> nop
-+0000ed8c <[^>]*> nop
-+0000ed90 <[^>]*> nop
-+0000ed94 <[^>]*> nop
-+0000ed98 <[^>]*> nop
-+0000ed9c <[^>]*> nop
-+0000eda0 <[^>]*> nop
-+0000eda4 <[^>]*> nop
-+0000eda8 <[^>]*> nop
-+0000edac <[^>]*> nop
-+0000edb0 <[^>]*> nop
-+0000edb4 <[^>]*> nop
-+0000edb8 <[^>]*> nop
-+0000edbc <[^>]*> nop
-+0000edc0 <[^>]*> nop
-+0000edc4 <[^>]*> nop
-+0000edc8 <[^>]*> nop
-+0000edcc <[^>]*> nop
-+0000edd0 <[^>]*> nop
-+0000edd4 <[^>]*> nop
-+0000edd8 <[^>]*> nop
-+0000eddc <[^>]*> nop
-+0000ede0 <[^>]*> nop
-+0000ede4 <[^>]*> nop
-+0000ede8 <[^>]*> nop
-+0000edec <[^>]*> nop
-+0000edf0 <[^>]*> nop
-+0000edf4 <[^>]*> nop
-+0000edf8 <[^>]*> nop
-+0000edfc <[^>]*> nop
-+0000ee00 <[^>]*> nop
-+0000ee04 <[^>]*> nop
-+0000ee08 <[^>]*> nop
-+0000ee0c <[^>]*> nop
-+0000ee10 <[^>]*> nop
-+0000ee14 <[^>]*> nop
-+0000ee18 <[^>]*> nop
-+0000ee1c <[^>]*> nop
-+0000ee20 <[^>]*> nop
-+0000ee24 <[^>]*> nop
-+0000ee28 <[^>]*> nop
-+0000ee2c <[^>]*> nop
-+0000ee30 <[^>]*> nop
-+0000ee34 <[^>]*> nop
-+0000ee38 <[^>]*> nop
-+0000ee3c <[^>]*> nop
-+0000ee40 <[^>]*> nop
-+0000ee44 <[^>]*> nop
-+0000ee48 <[^>]*> nop
-+0000ee4c <[^>]*> nop
-+0000ee50 <[^>]*> nop
-+0000ee54 <[^>]*> nop
-+0000ee58 <[^>]*> nop
-+0000ee5c <[^>]*> nop
-+0000ee60 <[^>]*> nop
-+0000ee64 <[^>]*> nop
-+0000ee68 <[^>]*> nop
-+0000ee6c <[^>]*> nop
-+0000ee70 <[^>]*> nop
-+0000ee74 <[^>]*> nop
-+0000ee78 <[^>]*> nop
-+0000ee7c <[^>]*> nop
-+0000ee80 <[^>]*> nop
-+0000ee84 <[^>]*> nop
-+0000ee88 <[^>]*> nop
-+0000ee8c <[^>]*> nop
-+0000ee90 <[^>]*> nop
-+0000ee94 <[^>]*> nop
-+0000ee98 <[^>]*> nop
-+0000ee9c <[^>]*> nop
-+0000eea0 <[^>]*> nop
-+0000eea4 <[^>]*> nop
-+0000eea8 <[^>]*> nop
-+0000eeac <[^>]*> nop
-+0000eeb0 <[^>]*> nop
-+0000eeb4 <[^>]*> nop
-+0000eeb8 <[^>]*> nop
-+0000eebc <[^>]*> nop
-+0000eec0 <[^>]*> nop
-+0000eec4 <[^>]*> nop
-+0000eec8 <[^>]*> nop
-+0000eecc <[^>]*> nop
-+0000eed0 <[^>]*> nop
-+0000eed4 <[^>]*> nop
-+0000eed8 <[^>]*> nop
-+0000eedc <[^>]*> nop
-+0000eee0 <[^>]*> nop
-+0000eee4 <[^>]*> nop
-+0000eee8 <[^>]*> nop
-+0000eeec <[^>]*> nop
-+0000eef0 <[^>]*> nop
-+0000eef4 <[^>]*> nop
-+0000eef8 <[^>]*> nop
-+0000eefc <[^>]*> nop
-+0000ef00 <[^>]*> nop
-+0000ef04 <[^>]*> nop
-+0000ef08 <[^>]*> nop
-+0000ef0c <[^>]*> nop
-+0000ef10 <[^>]*> nop
-+0000ef14 <[^>]*> nop
-+0000ef18 <[^>]*> nop
-+0000ef1c <[^>]*> nop
-+0000ef20 <[^>]*> nop
-+0000ef24 <[^>]*> nop
-+0000ef28 <[^>]*> nop
-+0000ef2c <[^>]*> nop
-+0000ef30 <[^>]*> nop
-+0000ef34 <[^>]*> nop
-+0000ef38 <[^>]*> nop
-+0000ef3c <[^>]*> nop
-+0000ef40 <[^>]*> nop
-+0000ef44 <[^>]*> nop
-+0000ef48 <[^>]*> nop
-+0000ef4c <[^>]*> nop
-+0000ef50 <[^>]*> nop
-+0000ef54 <[^>]*> nop
-+0000ef58 <[^>]*> nop
-+0000ef5c <[^>]*> nop
-+0000ef60 <[^>]*> nop
-+0000ef64 <[^>]*> nop
-+0000ef68 <[^>]*> nop
-+0000ef6c <[^>]*> nop
-+0000ef70 <[^>]*> nop
-+0000ef74 <[^>]*> nop
-+0000ef78 <[^>]*> nop
-+0000ef7c <[^>]*> nop
-+0000ef80 <[^>]*> nop
-+0000ef84 <[^>]*> nop
-+0000ef88 <[^>]*> nop
-+0000ef8c <[^>]*> nop
-+0000ef90 <[^>]*> nop
-+0000ef94 <[^>]*> nop
-+0000ef98 <[^>]*> nop
-+0000ef9c <[^>]*> nop
-+0000efa0 <[^>]*> nop
-+0000efa4 <[^>]*> nop
-+0000efa8 <[^>]*> nop
-+0000efac <[^>]*> nop
-+0000efb0 <[^>]*> nop
-+0000efb4 <[^>]*> nop
-+0000efb8 <[^>]*> nop
-+0000efbc <[^>]*> nop
-+0000efc0 <[^>]*> nop
-+0000efc4 <[^>]*> nop
-+0000efc8 <[^>]*> nop
-+0000efcc <[^>]*> nop
-+0000efd0 <[^>]*> nop
-+0000efd4 <[^>]*> nop
-+0000efd8 <[^>]*> nop
-+0000efdc <[^>]*> nop
-+0000efe0 <[^>]*> nop
-+0000efe4 <[^>]*> nop
-+0000efe8 <[^>]*> nop
-+0000efec <[^>]*> nop
-+0000eff0 <[^>]*> nop
-+0000eff4 <[^>]*> nop
-+0000eff8 <[^>]*> nop
-+0000effc <[^>]*> nop
-+0000f000 <[^>]*> nop
-+0000f004 <[^>]*> nop
-+0000f008 <[^>]*> nop
-+0000f00c <[^>]*> nop
-+0000f010 <[^>]*> nop
-+0000f014 <[^>]*> nop
-+0000f018 <[^>]*> nop
-+0000f01c <[^>]*> nop
-+0000f020 <[^>]*> nop
-+0000f024 <[^>]*> nop
-+0000f028 <[^>]*> nop
-+0000f02c <[^>]*> nop
-+0000f030 <[^>]*> nop
-+0000f034 <[^>]*> nop
-+0000f038 <[^>]*> nop
-+0000f03c <[^>]*> nop
-+0000f040 <[^>]*> nop
-+0000f044 <[^>]*> nop
-+0000f048 <[^>]*> nop
-+0000f04c <[^>]*> nop
-+0000f050 <[^>]*> nop
-+0000f054 <[^>]*> nop
-+0000f058 <[^>]*> nop
-+0000f05c <[^>]*> nop
-+0000f060 <[^>]*> nop
-+0000f064 <[^>]*> nop
-+0000f068 <[^>]*> nop
-+0000f06c <[^>]*> nop
-+0000f070 <[^>]*> nop
-+0000f074 <[^>]*> nop
-+0000f078 <[^>]*> nop
-+0000f07c <[^>]*> nop
-+0000f080 <[^>]*> nop
-+0000f084 <[^>]*> nop
-+0000f088 <[^>]*> nop
-+0000f08c <[^>]*> nop
-+0000f090 <[^>]*> nop
-+0000f094 <[^>]*> nop
-+0000f098 <[^>]*> nop
-+0000f09c <[^>]*> nop
-+0000f0a0 <[^>]*> nop
-+0000f0a4 <[^>]*> nop
-+0000f0a8 <[^>]*> nop
-+0000f0ac <[^>]*> nop
-+0000f0b0 <[^>]*> nop
-+0000f0b4 <[^>]*> nop
-+0000f0b8 <[^>]*> nop
-+0000f0bc <[^>]*> nop
-+0000f0c0 <[^>]*> nop
-+0000f0c4 <[^>]*> nop
-+0000f0c8 <[^>]*> nop
-+0000f0cc <[^>]*> nop
-+0000f0d0 <[^>]*> nop
-+0000f0d4 <[^>]*> nop
-+0000f0d8 <[^>]*> nop
-+0000f0dc <[^>]*> nop
-+0000f0e0 <[^>]*> nop
-+0000f0e4 <[^>]*> nop
-+0000f0e8 <[^>]*> nop
-+0000f0ec <[^>]*> nop
-+0000f0f0 <[^>]*> nop
-+0000f0f4 <[^>]*> nop
-+0000f0f8 <[^>]*> nop
-+0000f0fc <[^>]*> nop
-+0000f100 <[^>]*> nop
-+0000f104 <[^>]*> nop
-+0000f108 <[^>]*> nop
-+0000f10c <[^>]*> nop
-+0000f110 <[^>]*> nop
-+0000f114 <[^>]*> nop
-+0000f118 <[^>]*> nop
-+0000f11c <[^>]*> nop
-+0000f120 <[^>]*> nop
-+0000f124 <[^>]*> nop
-+0000f128 <[^>]*> nop
-+0000f12c <[^>]*> nop
-+0000f130 <[^>]*> nop
-+0000f134 <[^>]*> nop
-+0000f138 <[^>]*> nop
-+0000f13c <[^>]*> nop
-+0000f140 <[^>]*> nop
-+0000f144 <[^>]*> nop
-+0000f148 <[^>]*> nop
-+0000f14c <[^>]*> nop
-+0000f150 <[^>]*> nop
-+0000f154 <[^>]*> nop
-+0000f158 <[^>]*> nop
-+0000f15c <[^>]*> nop
-+0000f160 <[^>]*> nop
-+0000f164 <[^>]*> nop
-+0000f168 <[^>]*> nop
-+0000f16c <[^>]*> nop
-+0000f170 <[^>]*> nop
-+0000f174 <[^>]*> nop
-+0000f178 <[^>]*> nop
-+0000f17c <[^>]*> nop
-+0000f180 <[^>]*> nop
-+0000f184 <[^>]*> nop
-+0000f188 <[^>]*> nop
-+0000f18c <[^>]*> nop
-+0000f190 <[^>]*> nop
-+0000f194 <[^>]*> nop
-+0000f198 <[^>]*> nop
-+0000f19c <[^>]*> nop
-+0000f1a0 <[^>]*> nop
-+0000f1a4 <[^>]*> nop
-+0000f1a8 <[^>]*> nop
-+0000f1ac <[^>]*> nop
-+0000f1b0 <[^>]*> nop
-+0000f1b4 <[^>]*> nop
-+0000f1b8 <[^>]*> nop
-+0000f1bc <[^>]*> nop
-+0000f1c0 <[^>]*> nop
-+0000f1c4 <[^>]*> nop
-+0000f1c8 <[^>]*> nop
-+0000f1cc <[^>]*> nop
-+0000f1d0 <[^>]*> nop
-+0000f1d4 <[^>]*> nop
-+0000f1d8 <[^>]*> nop
-+0000f1dc <[^>]*> nop
-+0000f1e0 <[^>]*> nop
-+0000f1e4 <[^>]*> nop
-+0000f1e8 <[^>]*> nop
-+0000f1ec <[^>]*> nop
-+0000f1f0 <[^>]*> nop
-+0000f1f4 <[^>]*> nop
-+0000f1f8 <[^>]*> nop
-+0000f1fc <[^>]*> nop
-+0000f200 <[^>]*> nop
-+0000f204 <[^>]*> nop
-+0000f208 <[^>]*> nop
-+0000f20c <[^>]*> nop
-+0000f210 <[^>]*> nop
-+0000f214 <[^>]*> nop
-+0000f218 <[^>]*> nop
-+0000f21c <[^>]*> nop
-+0000f220 <[^>]*> nop
-+0000f224 <[^>]*> nop
-+0000f228 <[^>]*> nop
-+0000f22c <[^>]*> nop
-+0000f230 <[^>]*> nop
-+0000f234 <[^>]*> nop
-+0000f238 <[^>]*> nop
-+0000f23c <[^>]*> nop
-+0000f240 <[^>]*> nop
-+0000f244 <[^>]*> nop
-+0000f248 <[^>]*> nop
-+0000f24c <[^>]*> nop
-+0000f250 <[^>]*> nop
-+0000f254 <[^>]*> nop
-+0000f258 <[^>]*> nop
-+0000f25c <[^>]*> nop
-+0000f260 <[^>]*> nop
-+0000f264 <[^>]*> nop
-+0000f268 <[^>]*> nop
-+0000f26c <[^>]*> nop
-+0000f270 <[^>]*> nop
-+0000f274 <[^>]*> nop
-+0000f278 <[^>]*> nop
-+0000f27c <[^>]*> nop
-+0000f280 <[^>]*> nop
-+0000f284 <[^>]*> nop
-+0000f288 <[^>]*> nop
-+0000f28c <[^>]*> nop
-+0000f290 <[^>]*> nop
-+0000f294 <[^>]*> nop
-+0000f298 <[^>]*> nop
-+0000f29c <[^>]*> nop
-+0000f2a0 <[^>]*> nop
-+0000f2a4 <[^>]*> nop
-+0000f2a8 <[^>]*> nop
-+0000f2ac <[^>]*> nop
-+0000f2b0 <[^>]*> nop
-+0000f2b4 <[^>]*> nop
-+0000f2b8 <[^>]*> nop
-+0000f2bc <[^>]*> nop
-+0000f2c0 <[^>]*> nop
-+0000f2c4 <[^>]*> nop
-+0000f2c8 <[^>]*> nop
-+0000f2cc <[^>]*> nop
-+0000f2d0 <[^>]*> nop
-+0000f2d4 <[^>]*> nop
-+0000f2d8 <[^>]*> nop
-+0000f2dc <[^>]*> nop
-+0000f2e0 <[^>]*> nop
-+0000f2e4 <[^>]*> nop
-+0000f2e8 <[^>]*> nop
-+0000f2ec <[^>]*> nop
-+0000f2f0 <[^>]*> nop
-+0000f2f4 <[^>]*> nop
-+0000f2f8 <[^>]*> nop
-+0000f2fc <[^>]*> nop
-+0000f300 <[^>]*> nop
-+0000f304 <[^>]*> nop
-+0000f308 <[^>]*> nop
-+0000f30c <[^>]*> nop
-+0000f310 <[^>]*> nop
-+0000f314 <[^>]*> nop
-+0000f318 <[^>]*> nop
-+0000f31c <[^>]*> nop
-+0000f320 <[^>]*> nop
-+0000f324 <[^>]*> nop
-+0000f328 <[^>]*> nop
-+0000f32c <[^>]*> nop
-+0000f330 <[^>]*> nop
-+0000f334 <[^>]*> nop
-+0000f338 <[^>]*> nop
-+0000f33c <[^>]*> nop
-+0000f340 <[^>]*> nop
-+0000f344 <[^>]*> nop
-+0000f348 <[^>]*> nop
-+0000f34c <[^>]*> nop
-+0000f350 <[^>]*> nop
-+0000f354 <[^>]*> nop
-+0000f358 <[^>]*> nop
-+0000f35c <[^>]*> nop
-+0000f360 <[^>]*> nop
-+0000f364 <[^>]*> nop
-+0000f368 <[^>]*> nop
-+0000f36c <[^>]*> nop
-+0000f370 <[^>]*> nop
-+0000f374 <[^>]*> nop
-+0000f378 <[^>]*> nop
-+0000f37c <[^>]*> nop
-+0000f380 <[^>]*> nop
-+0000f384 <[^>]*> nop
-+0000f388 <[^>]*> nop
-+0000f38c <[^>]*> nop
-+0000f390 <[^>]*> nop
-+0000f394 <[^>]*> nop
-+0000f398 <[^>]*> nop
-+0000f39c <[^>]*> nop
-+0000f3a0 <[^>]*> nop
-+0000f3a4 <[^>]*> nop
-+0000f3a8 <[^>]*> nop
-+0000f3ac <[^>]*> nop
-+0000f3b0 <[^>]*> nop
-+0000f3b4 <[^>]*> nop
-+0000f3b8 <[^>]*> nop
-+0000f3bc <[^>]*> nop
-+0000f3c0 <[^>]*> nop
-+0000f3c4 <[^>]*> nop
-+0000f3c8 <[^>]*> nop
-+0000f3cc <[^>]*> nop
-+0000f3d0 <[^>]*> nop
-+0000f3d4 <[^>]*> nop
-+0000f3d8 <[^>]*> nop
-+0000f3dc <[^>]*> nop
-+0000f3e0 <[^>]*> nop
-+0000f3e4 <[^>]*> nop
-+0000f3e8 <[^>]*> nop
-+0000f3ec <[^>]*> nop
-+0000f3f0 <[^>]*> nop
-+0000f3f4 <[^>]*> nop
-+0000f3f8 <[^>]*> nop
-+0000f3fc <[^>]*> nop
-+0000f400 <[^>]*> nop
-+0000f404 <[^>]*> nop
-+0000f408 <[^>]*> nop
-+0000f40c <[^>]*> nop
-+0000f410 <[^>]*> nop
-+0000f414 <[^>]*> nop
-+0000f418 <[^>]*> nop
-+0000f41c <[^>]*> nop
-+0000f420 <[^>]*> nop
-+0000f424 <[^>]*> nop
-+0000f428 <[^>]*> nop
-+0000f42c <[^>]*> nop
-+0000f430 <[^>]*> nop
-+0000f434 <[^>]*> nop
-+0000f438 <[^>]*> nop
-+0000f43c <[^>]*> nop
-+0000f440 <[^>]*> nop
-+0000f444 <[^>]*> nop
-+0000f448 <[^>]*> nop
-+0000f44c <[^>]*> nop
-+0000f450 <[^>]*> nop
-+0000f454 <[^>]*> nop
-+0000f458 <[^>]*> nop
-+0000f45c <[^>]*> nop
-+0000f460 <[^>]*> nop
-+0000f464 <[^>]*> nop
-+0000f468 <[^>]*> nop
-+0000f46c <[^>]*> nop
-+0000f470 <[^>]*> nop
-+0000f474 <[^>]*> nop
-+0000f478 <[^>]*> nop
-+0000f47c <[^>]*> nop
-+0000f480 <[^>]*> nop
-+0000f484 <[^>]*> nop
-+0000f488 <[^>]*> nop
-+0000f48c <[^>]*> nop
-+0000f490 <[^>]*> nop
-+0000f494 <[^>]*> nop
-+0000f498 <[^>]*> nop
-+0000f49c <[^>]*> nop
-+0000f4a0 <[^>]*> nop
-+0000f4a4 <[^>]*> nop
-+0000f4a8 <[^>]*> nop
-+0000f4ac <[^>]*> nop
-+0000f4b0 <[^>]*> nop
-+0000f4b4 <[^>]*> nop
-+0000f4b8 <[^>]*> nop
-+0000f4bc <[^>]*> nop
-+0000f4c0 <[^>]*> nop
-+0000f4c4 <[^>]*> nop
-+0000f4c8 <[^>]*> nop
-+0000f4cc <[^>]*> nop
-+0000f4d0 <[^>]*> nop
-+0000f4d4 <[^>]*> nop
-+0000f4d8 <[^>]*> nop
-+0000f4dc <[^>]*> nop
-+0000f4e0 <[^>]*> nop
-+0000f4e4 <[^>]*> nop
-+0000f4e8 <[^>]*> nop
-+0000f4ec <[^>]*> nop
-+0000f4f0 <[^>]*> nop
-+0000f4f4 <[^>]*> nop
-+0000f4f8 <[^>]*> nop
-+0000f4fc <[^>]*> nop
-+0000f500 <[^>]*> nop
-+0000f504 <[^>]*> nop
-+0000f508 <[^>]*> nop
-+0000f50c <[^>]*> nop
-+0000f510 <[^>]*> nop
-+0000f514 <[^>]*> nop
-+0000f518 <[^>]*> nop
-+0000f51c <[^>]*> nop
-+0000f520 <[^>]*> nop
-+0000f524 <[^>]*> nop
-+0000f528 <[^>]*> nop
-+0000f52c <[^>]*> nop
-+0000f530 <[^>]*> nop
-+0000f534 <[^>]*> nop
-+0000f538 <[^>]*> nop
-+0000f53c <[^>]*> nop
-+0000f540 <[^>]*> nop
-+0000f544 <[^>]*> nop
-+0000f548 <[^>]*> nop
-+0000f54c <[^>]*> nop
-+0000f550 <[^>]*> nop
-+0000f554 <[^>]*> nop
-+0000f558 <[^>]*> nop
-+0000f55c <[^>]*> nop
-+0000f560 <[^>]*> nop
-+0000f564 <[^>]*> nop
-+0000f568 <[^>]*> nop
-+0000f56c <[^>]*> nop
-+0000f570 <[^>]*> nop
-+0000f574 <[^>]*> nop
-+0000f578 <[^>]*> nop
-+0000f57c <[^>]*> nop
-+0000f580 <[^>]*> nop
-+0000f584 <[^>]*> nop
-+0000f588 <[^>]*> nop
-+0000f58c <[^>]*> nop
-+0000f590 <[^>]*> nop
-+0000f594 <[^>]*> nop
-+0000f598 <[^>]*> nop
-+0000f59c <[^>]*> nop
-+0000f5a0 <[^>]*> nop
-+0000f5a4 <[^>]*> nop
-+0000f5a8 <[^>]*> nop
-+0000f5ac <[^>]*> nop
-+0000f5b0 <[^>]*> nop
-+0000f5b4 <[^>]*> nop
-+0000f5b8 <[^>]*> nop
-+0000f5bc <[^>]*> nop
-+0000f5c0 <[^>]*> nop
-+0000f5c4 <[^>]*> nop
-+0000f5c8 <[^>]*> nop
-+0000f5cc <[^>]*> nop
-+0000f5d0 <[^>]*> nop
-+0000f5d4 <[^>]*> nop
-+0000f5d8 <[^>]*> nop
-+0000f5dc <[^>]*> nop
-+0000f5e0 <[^>]*> nop
-+0000f5e4 <[^>]*> nop
-+0000f5e8 <[^>]*> nop
-+0000f5ec <[^>]*> nop
-+0000f5f0 <[^>]*> nop
-+0000f5f4 <[^>]*> nop
-+0000f5f8 <[^>]*> nop
-+0000f5fc <[^>]*> nop
-+0000f600 <[^>]*> nop
-+0000f604 <[^>]*> nop
-+0000f608 <[^>]*> nop
-+0000f60c <[^>]*> nop
-+0000f610 <[^>]*> nop
-+0000f614 <[^>]*> nop
-+0000f618 <[^>]*> nop
-+0000f61c <[^>]*> nop
-+0000f620 <[^>]*> nop
-+0000f624 <[^>]*> nop
-+0000f628 <[^>]*> nop
-+0000f62c <[^>]*> nop
-+0000f630 <[^>]*> nop
-+0000f634 <[^>]*> nop
-+0000f638 <[^>]*> nop
-+0000f63c <[^>]*> nop
-+0000f640 <[^>]*> nop
-+0000f644 <[^>]*> nop
-+0000f648 <[^>]*> nop
-+0000f64c <[^>]*> nop
-+0000f650 <[^>]*> nop
-+0000f654 <[^>]*> nop
-+0000f658 <[^>]*> nop
-+0000f65c <[^>]*> nop
-+0000f660 <[^>]*> nop
-+0000f664 <[^>]*> nop
-+0000f668 <[^>]*> nop
-+0000f66c <[^>]*> nop
-+0000f670 <[^>]*> nop
-+0000f674 <[^>]*> nop
-+0000f678 <[^>]*> nop
-+0000f67c <[^>]*> nop
-+0000f680 <[^>]*> nop
-+0000f684 <[^>]*> nop
-+0000f688 <[^>]*> nop
-+0000f68c <[^>]*> nop
-+0000f690 <[^>]*> nop
-+0000f694 <[^>]*> nop
-+0000f698 <[^>]*> nop
-+0000f69c <[^>]*> nop
-+0000f6a0 <[^>]*> nop
-+0000f6a4 <[^>]*> nop
-+0000f6a8 <[^>]*> nop
-+0000f6ac <[^>]*> nop
-+0000f6b0 <[^>]*> nop
-+0000f6b4 <[^>]*> nop
-+0000f6b8 <[^>]*> nop
-+0000f6bc <[^>]*> nop
-+0000f6c0 <[^>]*> nop
-+0000f6c4 <[^>]*> nop
-+0000f6c8 <[^>]*> nop
-+0000f6cc <[^>]*> nop
-+0000f6d0 <[^>]*> nop
-+0000f6d4 <[^>]*> nop
-+0000f6d8 <[^>]*> nop
-+0000f6dc <[^>]*> nop
-+0000f6e0 <[^>]*> nop
-+0000f6e4 <[^>]*> nop
-+0000f6e8 <[^>]*> nop
-+0000f6ec <[^>]*> nop
-+0000f6f0 <[^>]*> nop
-+0000f6f4 <[^>]*> nop
-+0000f6f8 <[^>]*> nop
-+0000f6fc <[^>]*> nop
-+0000f700 <[^>]*> nop
-+0000f704 <[^>]*> nop
-+0000f708 <[^>]*> nop
-+0000f70c <[^>]*> nop
-+0000f710 <[^>]*> nop
-+0000f714 <[^>]*> nop
-+0000f718 <[^>]*> nop
-+0000f71c <[^>]*> nop
-+0000f720 <[^>]*> nop
-+0000f724 <[^>]*> nop
-+0000f728 <[^>]*> nop
-+0000f72c <[^>]*> nop
-+0000f730 <[^>]*> nop
-+0000f734 <[^>]*> nop
-+0000f738 <[^>]*> nop
-+0000f73c <[^>]*> nop
-+0000f740 <[^>]*> nop
-+0000f744 <[^>]*> nop
-+0000f748 <[^>]*> nop
-+0000f74c <[^>]*> nop
-+0000f750 <[^>]*> nop
-+0000f754 <[^>]*> nop
-+0000f758 <[^>]*> nop
-+0000f75c <[^>]*> nop
-+0000f760 <[^>]*> nop
-+0000f764 <[^>]*> nop
-+0000f768 <[^>]*> nop
-+0000f76c <[^>]*> nop
-+0000f770 <[^>]*> nop
-+0000f774 <[^>]*> nop
-+0000f778 <[^>]*> nop
-+0000f77c <[^>]*> nop
-+0000f780 <[^>]*> nop
-+0000f784 <[^>]*> nop
-+0000f788 <[^>]*> nop
-+0000f78c <[^>]*> nop
-+0000f790 <[^>]*> nop
-+0000f794 <[^>]*> nop
-+0000f798 <[^>]*> nop
-+0000f79c <[^>]*> nop
-+0000f7a0 <[^>]*> nop
-+0000f7a4 <[^>]*> nop
-+0000f7a8 <[^>]*> nop
-+0000f7ac <[^>]*> nop
-+0000f7b0 <[^>]*> nop
-+0000f7b4 <[^>]*> nop
-+0000f7b8 <[^>]*> nop
-+0000f7bc <[^>]*> nop
-+0000f7c0 <[^>]*> nop
-+0000f7c4 <[^>]*> nop
-+0000f7c8 <[^>]*> nop
-+0000f7cc <[^>]*> nop
-+0000f7d0 <[^>]*> nop
-+0000f7d4 <[^>]*> nop
-+0000f7d8 <[^>]*> nop
-+0000f7dc <[^>]*> nop
-+0000f7e0 <[^>]*> nop
-+0000f7e4 <[^>]*> nop
-+0000f7e8 <[^>]*> nop
-+0000f7ec <[^>]*> nop
-+0000f7f0 <[^>]*> nop
-+0000f7f4 <[^>]*> nop
-+0000f7f8 <[^>]*> nop
-+0000f7fc <[^>]*> nop
-+0000f800 <[^>]*> nop
-+0000f804 <[^>]*> nop
-+0000f808 <[^>]*> nop
-+0000f80c <[^>]*> nop
-+0000f810 <[^>]*> nop
-+0000f814 <[^>]*> nop
-+0000f818 <[^>]*> nop
-+0000f81c <[^>]*> nop
-+0000f820 <[^>]*> nop
-+0000f824 <[^>]*> nop
-+0000f828 <[^>]*> nop
-+0000f82c <[^>]*> nop
-+0000f830 <[^>]*> nop
-+0000f834 <[^>]*> nop
-+0000f838 <[^>]*> nop
-+0000f83c <[^>]*> nop
-+0000f840 <[^>]*> nop
-+0000f844 <[^>]*> nop
-+0000f848 <[^>]*> nop
-+0000f84c <[^>]*> nop
-+0000f850 <[^>]*> nop
-+0000f854 <[^>]*> nop
-+0000f858 <[^>]*> nop
-+0000f85c <[^>]*> nop
-+0000f860 <[^>]*> nop
-+0000f864 <[^>]*> nop
-+0000f868 <[^>]*> nop
-+0000f86c <[^>]*> nop
-+0000f870 <[^>]*> nop
-+0000f874 <[^>]*> nop
-+0000f878 <[^>]*> nop
-+0000f87c <[^>]*> nop
-+0000f880 <[^>]*> nop
-+0000f884 <[^>]*> nop
-+0000f888 <[^>]*> nop
-+0000f88c <[^>]*> nop
-+0000f890 <[^>]*> nop
-+0000f894 <[^>]*> nop
-+0000f898 <[^>]*> nop
-+0000f89c <[^>]*> nop
-+0000f8a0 <[^>]*> nop
-+0000f8a4 <[^>]*> nop
-+0000f8a8 <[^>]*> nop
-+0000f8ac <[^>]*> nop
-+0000f8b0 <[^>]*> nop
-+0000f8b4 <[^>]*> nop
-+0000f8b8 <[^>]*> nop
-+0000f8bc <[^>]*> nop
-+0000f8c0 <[^>]*> nop
-+0000f8c4 <[^>]*> nop
-+0000f8c8 <[^>]*> nop
-+0000f8cc <[^>]*> nop
-+0000f8d0 <[^>]*> nop
-+0000f8d4 <[^>]*> nop
-+0000f8d8 <[^>]*> nop
-+0000f8dc <[^>]*> nop
-+0000f8e0 <[^>]*> nop
-+0000f8e4 <[^>]*> nop
-+0000f8e8 <[^>]*> nop
-+0000f8ec <[^>]*> nop
-+0000f8f0 <[^>]*> nop
-+0000f8f4 <[^>]*> nop
-+0000f8f8 <[^>]*> nop
-+0000f8fc <[^>]*> nop
-+0000f900 <[^>]*> nop
-+0000f904 <[^>]*> nop
-+0000f908 <[^>]*> nop
-+0000f90c <[^>]*> nop
-+0000f910 <[^>]*> nop
-+0000f914 <[^>]*> nop
-+0000f918 <[^>]*> nop
-+0000f91c <[^>]*> nop
-+0000f920 <[^>]*> nop
-+0000f924 <[^>]*> nop
-+0000f928 <[^>]*> nop
-+0000f92c <[^>]*> nop
-+0000f930 <[^>]*> nop
-+0000f934 <[^>]*> nop
-+0000f938 <[^>]*> nop
-+0000f93c <[^>]*> nop
-+0000f940 <[^>]*> nop
-+0000f944 <[^>]*> nop
-+0000f948 <[^>]*> nop
-+0000f94c <[^>]*> nop
-+0000f950 <[^>]*> nop
-+0000f954 <[^>]*> nop
-+0000f958 <[^>]*> nop
-+0000f95c <[^>]*> nop
-+0000f960 <[^>]*> nop
-+0000f964 <[^>]*> nop
-+0000f968 <[^>]*> nop
-+0000f96c <[^>]*> nop
-+0000f970 <[^>]*> nop
-+0000f974 <[^>]*> nop
-+0000f978 <[^>]*> nop
-+0000f97c <[^>]*> nop
-+0000f980 <[^>]*> nop
-+0000f984 <[^>]*> nop
-+0000f988 <[^>]*> nop
-+0000f98c <[^>]*> nop
-+0000f990 <[^>]*> nop
-+0000f994 <[^>]*> nop
-+0000f998 <[^>]*> nop
-+0000f99c <[^>]*> nop
-+0000f9a0 <[^>]*> nop
-+0000f9a4 <[^>]*> nop
-+0000f9a8 <[^>]*> nop
-+0000f9ac <[^>]*> nop
-+0000f9b0 <[^>]*> nop
-+0000f9b4 <[^>]*> nop
-+0000f9b8 <[^>]*> nop
-+0000f9bc <[^>]*> nop
-+0000f9c0 <[^>]*> nop
-+0000f9c4 <[^>]*> nop
-+0000f9c8 <[^>]*> nop
-+0000f9cc <[^>]*> nop
-+0000f9d0 <[^>]*> nop
-+0000f9d4 <[^>]*> nop
-+0000f9d8 <[^>]*> nop
-+0000f9dc <[^>]*> nop
-+0000f9e0 <[^>]*> nop
-+0000f9e4 <[^>]*> nop
-+0000f9e8 <[^>]*> nop
-+0000f9ec <[^>]*> nop
-+0000f9f0 <[^>]*> nop
-+0000f9f4 <[^>]*> nop
-+0000f9f8 <[^>]*> nop
-+0000f9fc <[^>]*> nop
-+0000fa00 <[^>]*> nop
-+0000fa04 <[^>]*> nop
-+0000fa08 <[^>]*> nop
-+0000fa0c <[^>]*> nop
-+0000fa10 <[^>]*> nop
-+0000fa14 <[^>]*> nop
-+0000fa18 <[^>]*> nop
-+0000fa1c <[^>]*> nop
-+0000fa20 <[^>]*> nop
-+0000fa24 <[^>]*> nop
-+0000fa28 <[^>]*> nop
-+0000fa2c <[^>]*> nop
-+0000fa30 <[^>]*> nop
-+0000fa34 <[^>]*> nop
-+0000fa38 <[^>]*> nop
-+0000fa3c <[^>]*> nop
-+0000fa40 <[^>]*> nop
-+0000fa44 <[^>]*> nop
-+0000fa48 <[^>]*> nop
-+0000fa4c <[^>]*> nop
-+0000fa50 <[^>]*> nop
-+0000fa54 <[^>]*> nop
-+0000fa58 <[^>]*> nop
-+0000fa5c <[^>]*> nop
-+0000fa60 <[^>]*> nop
-+0000fa64 <[^>]*> nop
-+0000fa68 <[^>]*> nop
-+0000fa6c <[^>]*> nop
-+0000fa70 <[^>]*> nop
-+0000fa74 <[^>]*> nop
-+0000fa78 <[^>]*> nop
-+0000fa7c <[^>]*> nop
-+0000fa80 <[^>]*> nop
-+0000fa84 <[^>]*> nop
-+0000fa88 <[^>]*> nop
-+0000fa8c <[^>]*> nop
-+0000fa90 <[^>]*> nop
-+0000fa94 <[^>]*> nop
-+0000fa98 <[^>]*> nop
-+0000fa9c <[^>]*> nop
-+0000faa0 <[^>]*> nop
-+0000faa4 <[^>]*> nop
-+0000faa8 <[^>]*> nop
-+0000faac <[^>]*> nop
-+0000fab0 <[^>]*> nop
-+0000fab4 <[^>]*> nop
-+0000fab8 <[^>]*> nop
-+0000fabc <[^>]*> nop
-+0000fac0 <[^>]*> nop
-+0000fac4 <[^>]*> nop
-+0000fac8 <[^>]*> nop
-+0000facc <[^>]*> nop
-+0000fad0 <[^>]*> nop
-+0000fad4 <[^>]*> nop
-+0000fad8 <[^>]*> nop
-+0000fadc <[^>]*> nop
-+0000fae0 <[^>]*> nop
-+0000fae4 <[^>]*> nop
-+0000fae8 <[^>]*> nop
-+0000faec <[^>]*> nop
-+0000faf0 <[^>]*> nop
-+0000faf4 <[^>]*> nop
-+0000faf8 <[^>]*> nop
-+0000fafc <[^>]*> nop
-+0000fb00 <[^>]*> nop
-+0000fb04 <[^>]*> nop
-+0000fb08 <[^>]*> nop
-+0000fb0c <[^>]*> nop
-+0000fb10 <[^>]*> nop
-+0000fb14 <[^>]*> nop
-+0000fb18 <[^>]*> nop
-+0000fb1c <[^>]*> nop
-+0000fb20 <[^>]*> nop
-+0000fb24 <[^>]*> nop
-+0000fb28 <[^>]*> nop
-+0000fb2c <[^>]*> nop
-+0000fb30 <[^>]*> nop
-+0000fb34 <[^>]*> nop
-+0000fb38 <[^>]*> nop
-+0000fb3c <[^>]*> nop
-+0000fb40 <[^>]*> nop
-+0000fb44 <[^>]*> nop
-+0000fb48 <[^>]*> nop
-+0000fb4c <[^>]*> nop
-+0000fb50 <[^>]*> nop
-+0000fb54 <[^>]*> nop
-+0000fb58 <[^>]*> nop
-+0000fb5c <[^>]*> nop
-+0000fb60 <[^>]*> nop
-+0000fb64 <[^>]*> nop
-+0000fb68 <[^>]*> nop
-+0000fb6c <[^>]*> nop
-+0000fb70 <[^>]*> nop
-+0000fb74 <[^>]*> nop
-+0000fb78 <[^>]*> nop
-+0000fb7c <[^>]*> nop
-+0000fb80 <[^>]*> nop
-+0000fb84 <[^>]*> nop
-+0000fb88 <[^>]*> nop
-+0000fb8c <[^>]*> nop
-+0000fb90 <[^>]*> nop
-+0000fb94 <[^>]*> nop
-+0000fb98 <[^>]*> nop
-+0000fb9c <[^>]*> nop
-+0000fba0 <[^>]*> nop
-+0000fba4 <[^>]*> nop
-+0000fba8 <[^>]*> nop
-+0000fbac <[^>]*> nop
-+0000fbb0 <[^>]*> nop
-+0000fbb4 <[^>]*> nop
-+0000fbb8 <[^>]*> nop
-+0000fbbc <[^>]*> nop
-+0000fbc0 <[^>]*> nop
-+0000fbc4 <[^>]*> nop
-+0000fbc8 <[^>]*> nop
-+0000fbcc <[^>]*> nop
-+0000fbd0 <[^>]*> nop
-+0000fbd4 <[^>]*> nop
-+0000fbd8 <[^>]*> nop
-+0000fbdc <[^>]*> nop
-+0000fbe0 <[^>]*> nop
-+0000fbe4 <[^>]*> nop
-+0000fbe8 <[^>]*> nop
-+0000fbec <[^>]*> nop
-+0000fbf0 <[^>]*> nop
-+0000fbf4 <[^>]*> nop
-+0000fbf8 <[^>]*> nop
-+0000fbfc <[^>]*> nop
-+0000fc00 <[^>]*> nop
-+0000fc04 <[^>]*> nop
-+0000fc08 <[^>]*> nop
-+0000fc0c <[^>]*> nop
-+0000fc10 <[^>]*> nop
-+0000fc14 <[^>]*> nop
-+0000fc18 <[^>]*> nop
-+0000fc1c <[^>]*> nop
-+0000fc20 <[^>]*> nop
-+0000fc24 <[^>]*> nop
-+0000fc28 <[^>]*> nop
-+0000fc2c <[^>]*> nop
-+0000fc30 <[^>]*> nop
-+0000fc34 <[^>]*> nop
-+0000fc38 <[^>]*> nop
-+0000fc3c <[^>]*> nop
-+0000fc40 <[^>]*> nop
-+0000fc44 <[^>]*> nop
-+0000fc48 <[^>]*> nop
-+0000fc4c <[^>]*> nop
-+0000fc50 <[^>]*> nop
-+0000fc54 <[^>]*> nop
-+0000fc58 <[^>]*> nop
-+0000fc5c <[^>]*> nop
-+0000fc60 <[^>]*> nop
-+0000fc64 <[^>]*> nop
-+0000fc68 <[^>]*> nop
-+0000fc6c <[^>]*> nop
-+0000fc70 <[^>]*> nop
-+0000fc74 <[^>]*> nop
-+0000fc78 <[^>]*> nop
-+0000fc7c <[^>]*> nop
-+0000fc80 <[^>]*> nop
-+0000fc84 <[^>]*> nop
-+0000fc88 <[^>]*> nop
-+0000fc8c <[^>]*> nop
-+0000fc90 <[^>]*> nop
-+0000fc94 <[^>]*> nop
-+0000fc98 <[^>]*> nop
-+0000fc9c <[^>]*> nop
-+0000fca0 <[^>]*> nop
-+0000fca4 <[^>]*> nop
-+0000fca8 <[^>]*> nop
-+0000fcac <[^>]*> nop
-+0000fcb0 <[^>]*> nop
-+0000fcb4 <[^>]*> nop
-+0000fcb8 <[^>]*> nop
-+0000fcbc <[^>]*> nop
-+0000fcc0 <[^>]*> nop
-+0000fcc4 <[^>]*> nop
-+0000fcc8 <[^>]*> nop
-+0000fccc <[^>]*> nop
-+0000fcd0 <[^>]*> nop
-+0000fcd4 <[^>]*> nop
-+0000fcd8 <[^>]*> nop
-+0000fcdc <[^>]*> nop
-+0000fce0 <[^>]*> nop
-+0000fce4 <[^>]*> nop
-+0000fce8 <[^>]*> nop
-+0000fcec <[^>]*> nop
-+0000fcf0 <[^>]*> nop
-+0000fcf4 <[^>]*> nop
-+0000fcf8 <[^>]*> nop
-+0000fcfc <[^>]*> nop
-+0000fd00 <[^>]*> nop
-+0000fd04 <[^>]*> nop
-+0000fd08 <[^>]*> nop
-+0000fd0c <[^>]*> nop
-+0000fd10 <[^>]*> nop
-+0000fd14 <[^>]*> nop
-+0000fd18 <[^>]*> nop
-+0000fd1c <[^>]*> nop
-+0000fd20 <[^>]*> nop
-+0000fd24 <[^>]*> nop
-+0000fd28 <[^>]*> nop
-+0000fd2c <[^>]*> nop
-+0000fd30 <[^>]*> nop
-+0000fd34 <[^>]*> nop
-+0000fd38 <[^>]*> nop
-+0000fd3c <[^>]*> nop
-+0000fd40 <[^>]*> nop
-+0000fd44 <[^>]*> nop
-+0000fd48 <[^>]*> nop
-+0000fd4c <[^>]*> nop
-+0000fd50 <[^>]*> nop
-+0000fd54 <[^>]*> nop
-+0000fd58 <[^>]*> nop
-+0000fd5c <[^>]*> nop
-+0000fd60 <[^>]*> nop
-+0000fd64 <[^>]*> nop
-+0000fd68 <[^>]*> nop
-+0000fd6c <[^>]*> nop
-+0000fd70 <[^>]*> nop
-+0000fd74 <[^>]*> nop
-+0000fd78 <[^>]*> nop
-+0000fd7c <[^>]*> nop
-+0000fd80 <[^>]*> nop
-+0000fd84 <[^>]*> nop
-+0000fd88 <[^>]*> nop
-+0000fd8c <[^>]*> nop
-+0000fd90 <[^>]*> nop
-+0000fd94 <[^>]*> nop
-+0000fd98 <[^>]*> nop
-+0000fd9c <[^>]*> nop
-+0000fda0 <[^>]*> nop
-+0000fda4 <[^>]*> nop
-+0000fda8 <[^>]*> nop
-+0000fdac <[^>]*> nop
-+0000fdb0 <[^>]*> nop
-+0000fdb4 <[^>]*> nop
-+0000fdb8 <[^>]*> nop
-+0000fdbc <[^>]*> nop
-+0000fdc0 <[^>]*> nop
-+0000fdc4 <[^>]*> nop
-+0000fdc8 <[^>]*> nop
-+0000fdcc <[^>]*> nop
-+0000fdd0 <[^>]*> nop
-+0000fdd4 <[^>]*> nop
-+0000fdd8 <[^>]*> nop
-+0000fddc <[^>]*> nop
-+0000fde0 <[^>]*> nop
-+0000fde4 <[^>]*> nop
-+0000fde8 <[^>]*> nop
-+0000fdec <[^>]*> nop
-+0000fdf0 <[^>]*> nop
-+0000fdf4 <[^>]*> nop
-+0000fdf8 <[^>]*> nop
-+0000fdfc <[^>]*> nop
-+0000fe00 <[^>]*> nop
-+0000fe04 <[^>]*> nop
-+0000fe08 <[^>]*> nop
-+0000fe0c <[^>]*> nop
-+0000fe10 <[^>]*> nop
-+0000fe14 <[^>]*> nop
-+0000fe18 <[^>]*> nop
-+0000fe1c <[^>]*> nop
-+0000fe20 <[^>]*> nop
-+0000fe24 <[^>]*> nop
-+0000fe28 <[^>]*> nop
-+0000fe2c <[^>]*> nop
-+0000fe30 <[^>]*> nop
-+0000fe34 <[^>]*> nop
-+0000fe38 <[^>]*> nop
-+0000fe3c <[^>]*> nop
-+0000fe40 <[^>]*> nop
-+0000fe44 <[^>]*> nop
-+0000fe48 <[^>]*> nop
-+0000fe4c <[^>]*> nop
-+0000fe50 <[^>]*> nop
-+0000fe54 <[^>]*> nop
-+0000fe58 <[^>]*> nop
-+0000fe5c <[^>]*> nop
-+0000fe60 <[^>]*> nop
-+0000fe64 <[^>]*> nop
-+0000fe68 <[^>]*> nop
-+0000fe6c <[^>]*> nop
-+0000fe70 <[^>]*> nop
-+0000fe74 <[^>]*> nop
-+0000fe78 <[^>]*> nop
-+0000fe7c <[^>]*> nop
-+0000fe80 <[^>]*> nop
-+0000fe84 <[^>]*> nop
-+0000fe88 <[^>]*> nop
-+0000fe8c <[^>]*> nop
-+0000fe90 <[^>]*> nop
-+0000fe94 <[^>]*> nop
-+0000fe98 <[^>]*> nop
-+0000fe9c <[^>]*> nop
-+0000fea0 <[^>]*> nop
-+0000fea4 <[^>]*> nop
-+0000fea8 <[^>]*> nop
-+0000feac <[^>]*> nop
-+0000feb0 <[^>]*> nop
-+0000feb4 <[^>]*> nop
-+0000feb8 <[^>]*> nop
-+0000febc <[^>]*> nop
-+0000fec0 <[^>]*> nop
-+0000fec4 <[^>]*> nop
-+0000fec8 <[^>]*> nop
-+0000fecc <[^>]*> nop
-+0000fed0 <[^>]*> nop
-+0000fed4 <[^>]*> nop
-+0000fed8 <[^>]*> nop
-+0000fedc <[^>]*> nop
-+0000fee0 <[^>]*> nop
-+0000fee4 <[^>]*> nop
-+0000fee8 <[^>]*> nop
-+0000feec <[^>]*> nop
-+0000fef0 <[^>]*> nop
-+0000fef4 <[^>]*> nop
-+0000fef8 <[^>]*> nop
-+0000fefc <[^>]*> nop
-+0000ff00 <[^>]*> nop
-+0000ff04 <[^>]*> nop
-+0000ff08 <[^>]*> nop
-+0000ff0c <[^>]*> nop
-+0000ff10 <[^>]*> nop
-+0000ff14 <[^>]*> nop
-+0000ff18 <[^>]*> nop
-+0000ff1c <[^>]*> nop
-+0000ff20 <[^>]*> nop
-+0000ff24 <[^>]*> nop
-+0000ff28 <[^>]*> nop
-+0000ff2c <[^>]*> nop
-+0000ff30 <[^>]*> nop
-+0000ff34 <[^>]*> nop
-+0000ff38 <[^>]*> nop
-+0000ff3c <[^>]*> nop
-+0000ff40 <[^>]*> nop
-+0000ff44 <[^>]*> nop
-+0000ff48 <[^>]*> nop
-+0000ff4c <[^>]*> nop
-+0000ff50 <[^>]*> nop
-+0000ff54 <[^>]*> nop
-+0000ff58 <[^>]*> nop
-+0000ff5c <[^>]*> nop
-+0000ff60 <[^>]*> nop
-+0000ff64 <[^>]*> nop
-+0000ff68 <[^>]*> nop
-+0000ff6c <[^>]*> nop
-+0000ff70 <[^>]*> nop
-+0000ff74 <[^>]*> nop
-+0000ff78 <[^>]*> nop
-+0000ff7c <[^>]*> nop
-+0000ff80 <[^>]*> nop
-+0000ff84 <[^>]*> nop
-+0000ff88 <[^>]*> nop
-+0000ff8c <[^>]*> nop
-+0000ff90 <[^>]*> nop
-+0000ff94 <[^>]*> nop
-+0000ff98 <[^>]*> nop
-+0000ff9c <[^>]*> nop
-+0000ffa0 <[^>]*> nop
-+0000ffa4 <[^>]*> nop
-+0000ffa8 <[^>]*> nop
-+0000ffac <[^>]*> nop
-+0000ffb0 <[^>]*> nop
-+0000ffb4 <[^>]*> nop
-+0000ffb8 <[^>]*> nop
-+0000ffbc <[^>]*> nop
-+0000ffc0 <[^>]*> nop
-+0000ffc4 <[^>]*> nop
-+0000ffc8 <[^>]*> nop
-+0000ffcc <[^>]*> nop
-+0000ffd0 <[^>]*> nop
-+0000ffd4 <[^>]*> nop
-+0000ffd8 <[^>]*> nop
-+0000ffdc <[^>]*> nop
-+0000ffe0 <[^>]*> nop
-+0000ffe4 <[^>]*> nop
-+0000ffe8 <[^>]*> nop
-+0000ffec <[^>]*> nop
-+0000fff0 <[^>]*> nop
-+0000fff4 <[^>]*> nop
-+0000fff8 <[^>]*> nop
-+0000fffc <[^>]*> nop
-+00010000 <[^>]*> bne r2,r3,00010024 <[^>]*>
-+00010004 <[^>]*> nop
-+00010008 <[^>]*> nop
-+0001000c <[^>]*> nop
-+00010010 <[^>]*> nop
-+00010014 <[^>]*> nop
-+00010018 <[^>]*> nop
-+0001001c <[^>]*> nop
-+00010020 <[^>]*> nop
-+00010024 <[^>]*> nop
-+ ...
---- binutils-2.15/gas/testsuite/gas/nios2/relax_cjmp.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_cjmp.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,37 @@
-+# relaxing unconditional jumps
-+
-+.globl text1
-+.section text1, "ax", @progbits
-+
-+ beq r2, r3, on_border
-+ beq r2, r3, out_of_range
-+ nop
-+ nop
-+
-+
-+.align 15
-+ #nop
-+ #nop
-+ #nop
-+on_border:
-+ bne r2, r3, in_range
-+ nop
-+ nop
-+ nop
-+ nop
-+ nop
-+out_of_range:
-+in_range:
-+ nop
-+
-+.globl text2
-+.section text2, "ax", @progbits
-+
-+ bge r2, r3, text1
-+ blt r2, r3, out_of_range
-+ ble r2, r3, sym
-+ nop
-+ nop
-+sym:
-+ nop
-+
---- binutils-2.15/gas/testsuite/gas/nios2/relax_section.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_section.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8206 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 relax_section
-+
-+# Test relaxation of section
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> bne r2,r3,00000010 <in_range-0xc>
-+0+0004 <[^>]*> movhi at,0
-+0+0008 <[^>]*> ori at,at,32780
-+0+000c <[^>]*> jmp at
-+0+0010 <[^>]*> bne r2,r3,0000001c <in_range>
-+0+0014 <[^>]*> nop
-+0+0018 <[^>]*> nop
-+0+001c <[^>]*> nop
-+0+0020 <[^>]*> nop
-+0+0024 <[^>]*> nop
-+0+0028 <[^>]*> nop
-+0+002c <[^>]*> nop
-+0+0030 <[^>]*> nop
-+0+0034 <[^>]*> nop
-+0+0038 <[^>]*> nop
-+0+003c <[^>]*> nop
-+0+0040 <[^>]*> nop
-+0+0044 <[^>]*> nop
-+0+0048 <[^>]*> nop
-+0+004c <[^>]*> nop
-+0+0050 <[^>]*> nop
-+0+0054 <[^>]*> nop
-+0+0058 <[^>]*> nop
-+0+005c <[^>]*> nop
-+0+0060 <[^>]*> nop
-+0+0064 <[^>]*> nop
-+0+0068 <[^>]*> nop
-+0+006c <[^>]*> nop
-+0+0070 <[^>]*> nop
-+0+0074 <[^>]*> nop
-+0+0078 <[^>]*> nop
-+0+007c <[^>]*> nop
-+0+0080 <[^>]*> nop
-+0+0084 <[^>]*> nop
-+0+0088 <[^>]*> nop
-+0+008c <[^>]*> nop
-+0+0090 <[^>]*> nop
-+0+0094 <[^>]*> nop
-+0+0098 <[^>]*> nop
-+0+009c <[^>]*> nop
-+0+00a0 <[^>]*> nop
-+0+00a4 <[^>]*> nop
-+0+00a8 <[^>]*> nop
-+0+00ac <[^>]*> nop
-+0+00b0 <[^>]*> nop
-+0+00b4 <[^>]*> nop
-+0+00b8 <[^>]*> nop
-+0+00bc <[^>]*> nop
-+0+00c0 <[^>]*> nop
-+0+00c4 <[^>]*> nop
-+0+00c8 <[^>]*> nop
-+0+00cc <[^>]*> nop
-+0+00d0 <[^>]*> nop
-+0+00d4 <[^>]*> nop
-+0+00d8 <[^>]*> nop
-+0+00dc <[^>]*> nop
-+0+00e0 <[^>]*> nop
-+0+00e4 <[^>]*> nop
-+0+00e8 <[^>]*> nop
-+0+00ec <[^>]*> nop
-+0+00f0 <[^>]*> nop
-+0+00f4 <[^>]*> nop
-+0+00f8 <[^>]*> nop
-+0+00fc <[^>]*> nop
-+0+0100 <[^>]*> nop
-+0+0104 <[^>]*> nop
-+0+0108 <[^>]*> nop
-+0+010c <[^>]*> nop
-+0+0110 <[^>]*> nop
-+0+0114 <[^>]*> nop
-+0+0118 <[^>]*> nop
-+0+011c <[^>]*> nop
-+0+0120 <[^>]*> nop
-+0+0124 <[^>]*> nop
-+0+0128 <[^>]*> nop
-+0+012c <[^>]*> nop
-+0+0130 <[^>]*> nop
-+0+0134 <[^>]*> nop
-+0+0138 <[^>]*> nop
-+0+013c <[^>]*> nop
-+0+0140 <[^>]*> nop
-+0+0144 <[^>]*> nop
-+0+0148 <[^>]*> nop
-+0+014c <[^>]*> nop
-+0+0150 <[^>]*> nop
-+0+0154 <[^>]*> nop
-+0+0158 <[^>]*> nop
-+0+015c <[^>]*> nop
-+0+0160 <[^>]*> nop
-+0+0164 <[^>]*> nop
-+0+0168 <[^>]*> nop
-+0+016c <[^>]*> nop
-+0+0170 <[^>]*> nop
-+0+0174 <[^>]*> nop
-+0+0178 <[^>]*> nop
-+0+017c <[^>]*> nop
-+0+0180 <[^>]*> nop
-+0+0184 <[^>]*> nop
-+0+0188 <[^>]*> nop
-+0+018c <[^>]*> nop
-+0+0190 <[^>]*> nop
-+0+0194 <[^>]*> nop
-+0+0198 <[^>]*> nop
-+0+019c <[^>]*> nop
-+0+01a0 <[^>]*> nop
-+0+01a4 <[^>]*> nop
-+0+01a8 <[^>]*> nop
-+0+01ac <[^>]*> nop
-+0+01b0 <[^>]*> nop
-+0+01b4 <[^>]*> nop
-+0+01b8 <[^>]*> nop
-+0+01bc <[^>]*> nop
-+0+01c0 <[^>]*> nop
-+0+01c4 <[^>]*> nop
-+0+01c8 <[^>]*> nop
-+0+01cc <[^>]*> nop
-+0+01d0 <[^>]*> nop
-+0+01d4 <[^>]*> nop
-+0+01d8 <[^>]*> nop
-+0+01dc <[^>]*> nop
-+0+01e0 <[^>]*> nop
-+0+01e4 <[^>]*> nop
-+0+01e8 <[^>]*> nop
-+0+01ec <[^>]*> nop
-+0+01f0 <[^>]*> nop
-+0+01f4 <[^>]*> nop
-+0+01f8 <[^>]*> nop
-+0+01fc <[^>]*> nop
-+0+0200 <[^>]*> nop
-+0+0204 <[^>]*> nop
-+0+0208 <[^>]*> nop
-+0+020c <[^>]*> nop
-+0+0210 <[^>]*> nop
-+0+0214 <[^>]*> nop
-+0+0218 <[^>]*> nop
-+0+021c <[^>]*> nop
-+0+0220 <[^>]*> nop
-+0+0224 <[^>]*> nop
-+0+0228 <[^>]*> nop
-+0+022c <[^>]*> nop
-+0+0230 <[^>]*> nop
-+0+0234 <[^>]*> nop
-+0+0238 <[^>]*> nop
-+0+023c <[^>]*> nop
-+0+0240 <[^>]*> nop
-+0+0244 <[^>]*> nop
-+0+0248 <[^>]*> nop
-+0+024c <[^>]*> nop
-+0+0250 <[^>]*> nop
-+0+0254 <[^>]*> nop
-+0+0258 <[^>]*> nop
-+0+025c <[^>]*> nop
-+0+0260 <[^>]*> nop
-+0+0264 <[^>]*> nop
-+0+0268 <[^>]*> nop
-+0+026c <[^>]*> nop
-+0+0270 <[^>]*> nop
-+0+0274 <[^>]*> nop
-+0+0278 <[^>]*> nop
-+0+027c <[^>]*> nop
-+0+0280 <[^>]*> nop
-+0+0284 <[^>]*> nop
-+0+0288 <[^>]*> nop
-+0+028c <[^>]*> nop
-+0+0290 <[^>]*> nop
-+0+0294 <[^>]*> nop
-+0+0298 <[^>]*> nop
-+0+029c <[^>]*> nop
-+0+02a0 <[^>]*> nop
-+0+02a4 <[^>]*> nop
-+0+02a8 <[^>]*> nop
-+0+02ac <[^>]*> nop
-+0+02b0 <[^>]*> nop
-+0+02b4 <[^>]*> nop
-+0+02b8 <[^>]*> nop
-+0+02bc <[^>]*> nop
-+0+02c0 <[^>]*> nop
-+0+02c4 <[^>]*> nop
-+0+02c8 <[^>]*> nop
-+0+02cc <[^>]*> nop
-+0+02d0 <[^>]*> nop
-+0+02d4 <[^>]*> nop
-+0+02d8 <[^>]*> nop
-+0+02dc <[^>]*> nop
-+0+02e0 <[^>]*> nop
-+0+02e4 <[^>]*> nop
-+0+02e8 <[^>]*> nop
-+0+02ec <[^>]*> nop
-+0+02f0 <[^>]*> nop
-+0+02f4 <[^>]*> nop
-+0+02f8 <[^>]*> nop
-+0+02fc <[^>]*> nop
-+0+0300 <[^>]*> nop
-+0+0304 <[^>]*> nop
-+0+0308 <[^>]*> nop
-+0+030c <[^>]*> nop
-+0+0310 <[^>]*> nop
-+0+0314 <[^>]*> nop
-+0+0318 <[^>]*> nop
-+0+031c <[^>]*> nop
-+0+0320 <[^>]*> nop
-+0+0324 <[^>]*> nop
-+0+0328 <[^>]*> nop
-+0+032c <[^>]*> nop
-+0+0330 <[^>]*> nop
-+0+0334 <[^>]*> nop
-+0+0338 <[^>]*> nop
-+0+033c <[^>]*> nop
-+0+0340 <[^>]*> nop
-+0+0344 <[^>]*> nop
-+0+0348 <[^>]*> nop
-+0+034c <[^>]*> nop
-+0+0350 <[^>]*> nop
-+0+0354 <[^>]*> nop
-+0+0358 <[^>]*> nop
-+0+035c <[^>]*> nop
-+0+0360 <[^>]*> nop
-+0+0364 <[^>]*> nop
-+0+0368 <[^>]*> nop
-+0+036c <[^>]*> nop
-+0+0370 <[^>]*> nop
-+0+0374 <[^>]*> nop
-+0+0378 <[^>]*> nop
-+0+037c <[^>]*> nop
-+0+0380 <[^>]*> nop
-+0+0384 <[^>]*> nop
-+0+0388 <[^>]*> nop
-+0+038c <[^>]*> nop
-+0+0390 <[^>]*> nop
-+0+0394 <[^>]*> nop
-+0+0398 <[^>]*> nop
-+0+039c <[^>]*> nop
-+0+03a0 <[^>]*> nop
-+0+03a4 <[^>]*> nop
-+0+03a8 <[^>]*> nop
-+0+03ac <[^>]*> nop
-+0+03b0 <[^>]*> nop
-+0+03b4 <[^>]*> nop
-+0+03b8 <[^>]*> nop
-+0+03bc <[^>]*> nop
-+0+03c0 <[^>]*> nop
-+0+03c4 <[^>]*> nop
-+0+03c8 <[^>]*> nop
-+0+03cc <[^>]*> nop
-+0+03d0 <[^>]*> nop
-+0+03d4 <[^>]*> nop
-+0+03d8 <[^>]*> nop
-+0+03dc <[^>]*> nop
-+0+03e0 <[^>]*> nop
-+0+03e4 <[^>]*> nop
-+0+03e8 <[^>]*> nop
-+0+03ec <[^>]*> nop
-+0+03f0 <[^>]*> nop
-+0+03f4 <[^>]*> nop
-+0+03f8 <[^>]*> nop
-+0+03fc <[^>]*> nop
-+0+0400 <[^>]*> nop
-+0+0404 <[^>]*> nop
-+0+0408 <[^>]*> nop
-+0+040c <[^>]*> nop
-+0+0410 <[^>]*> nop
-+0+0414 <[^>]*> nop
-+0+0418 <[^>]*> nop
-+0+041c <[^>]*> nop
-+0+0420 <[^>]*> nop
-+0+0424 <[^>]*> nop
-+0+0428 <[^>]*> nop
-+0+042c <[^>]*> nop
-+0+0430 <[^>]*> nop
-+0+0434 <[^>]*> nop
-+0+0438 <[^>]*> nop
-+0+043c <[^>]*> nop
-+0+0440 <[^>]*> nop
-+0+0444 <[^>]*> nop
-+0+0448 <[^>]*> nop
-+0+044c <[^>]*> nop
-+0+0450 <[^>]*> nop
-+0+0454 <[^>]*> nop
-+0+0458 <[^>]*> nop
-+0+045c <[^>]*> nop
-+0+0460 <[^>]*> nop
-+0+0464 <[^>]*> nop
-+0+0468 <[^>]*> nop
-+0+046c <[^>]*> nop
-+0+0470 <[^>]*> nop
-+0+0474 <[^>]*> nop
-+0+0478 <[^>]*> nop
-+0+047c <[^>]*> nop
-+0+0480 <[^>]*> nop
-+0+0484 <[^>]*> nop
-+0+0488 <[^>]*> nop
-+0+048c <[^>]*> nop
-+0+0490 <[^>]*> nop
-+0+0494 <[^>]*> nop
-+0+0498 <[^>]*> nop
-+0+049c <[^>]*> nop
-+0+04a0 <[^>]*> nop
-+0+04a4 <[^>]*> nop
-+0+04a8 <[^>]*> nop
-+0+04ac <[^>]*> nop
-+0+04b0 <[^>]*> nop
-+0+04b4 <[^>]*> nop
-+0+04b8 <[^>]*> nop
-+0+04bc <[^>]*> nop
-+0+04c0 <[^>]*> nop
-+0+04c4 <[^>]*> nop
-+0+04c8 <[^>]*> nop
-+0+04cc <[^>]*> nop
-+0+04d0 <[^>]*> nop
-+0+04d4 <[^>]*> nop
-+0+04d8 <[^>]*> nop
-+0+04dc <[^>]*> nop
-+0+04e0 <[^>]*> nop
-+0+04e4 <[^>]*> nop
-+0+04e8 <[^>]*> nop
-+0+04ec <[^>]*> nop
-+0+04f0 <[^>]*> nop
-+0+04f4 <[^>]*> nop
-+0+04f8 <[^>]*> nop
-+0+04fc <[^>]*> nop
-+0+0500 <[^>]*> nop
-+0+0504 <[^>]*> nop
-+0+0508 <[^>]*> nop
-+0+050c <[^>]*> nop
-+0+0510 <[^>]*> nop
-+0+0514 <[^>]*> nop
-+0+0518 <[^>]*> nop
-+0+051c <[^>]*> nop
-+0+0520 <[^>]*> nop
-+0+0524 <[^>]*> nop
-+0+0528 <[^>]*> nop
-+0+052c <[^>]*> nop
-+0+0530 <[^>]*> nop
-+0+0534 <[^>]*> nop
-+0+0538 <[^>]*> nop
-+0+053c <[^>]*> nop
-+0+0540 <[^>]*> nop
-+0+0544 <[^>]*> nop
-+0+0548 <[^>]*> nop
-+0+054c <[^>]*> nop
-+0+0550 <[^>]*> nop
-+0+0554 <[^>]*> nop
-+0+0558 <[^>]*> nop
-+0+055c <[^>]*> nop
-+0+0560 <[^>]*> nop
-+0+0564 <[^>]*> nop
-+0+0568 <[^>]*> nop
-+0+056c <[^>]*> nop
-+0+0570 <[^>]*> nop
-+0+0574 <[^>]*> nop
-+0+0578 <[^>]*> nop
-+0+057c <[^>]*> nop
-+0+0580 <[^>]*> nop
-+0+0584 <[^>]*> nop
-+0+0588 <[^>]*> nop
-+0+058c <[^>]*> nop
-+0+0590 <[^>]*> nop
-+0+0594 <[^>]*> nop
-+0+0598 <[^>]*> nop
-+0+059c <[^>]*> nop
-+0+05a0 <[^>]*> nop
-+0+05a4 <[^>]*> nop
-+0+05a8 <[^>]*> nop
-+0+05ac <[^>]*> nop
-+0+05b0 <[^>]*> nop
-+0+05b4 <[^>]*> nop
-+0+05b8 <[^>]*> nop
-+0+05bc <[^>]*> nop
-+0+05c0 <[^>]*> nop
-+0+05c4 <[^>]*> nop
-+0+05c8 <[^>]*> nop
-+0+05cc <[^>]*> nop
-+0+05d0 <[^>]*> nop
-+0+05d4 <[^>]*> nop
-+0+05d8 <[^>]*> nop
-+0+05dc <[^>]*> nop
-+0+05e0 <[^>]*> nop
-+0+05e4 <[^>]*> nop
-+0+05e8 <[^>]*> nop
-+0+05ec <[^>]*> nop
-+0+05f0 <[^>]*> nop
-+0+05f4 <[^>]*> nop
-+0+05f8 <[^>]*> nop
-+0+05fc <[^>]*> nop
-+0+0600 <[^>]*> nop
-+0+0604 <[^>]*> nop
-+0+0608 <[^>]*> nop
-+0+060c <[^>]*> nop
-+0+0610 <[^>]*> nop
-+0+0614 <[^>]*> nop
-+0+0618 <[^>]*> nop
-+0+061c <[^>]*> nop
-+0+0620 <[^>]*> nop
-+0+0624 <[^>]*> nop
-+0+0628 <[^>]*> nop
-+0+062c <[^>]*> nop
-+0+0630 <[^>]*> nop
-+0+0634 <[^>]*> nop
-+0+0638 <[^>]*> nop
-+0+063c <[^>]*> nop
-+0+0640 <[^>]*> nop
-+0+0644 <[^>]*> nop
-+0+0648 <[^>]*> nop
-+0+064c <[^>]*> nop
-+0+0650 <[^>]*> nop
-+0+0654 <[^>]*> nop
-+0+0658 <[^>]*> nop
-+0+065c <[^>]*> nop
-+0+0660 <[^>]*> nop
-+0+0664 <[^>]*> nop
-+0+0668 <[^>]*> nop
-+0+066c <[^>]*> nop
-+0+0670 <[^>]*> nop
-+0+0674 <[^>]*> nop
-+0+0678 <[^>]*> nop
-+0+067c <[^>]*> nop
-+0+0680 <[^>]*> nop
-+0+0684 <[^>]*> nop
-+0+0688 <[^>]*> nop
-+0+068c <[^>]*> nop
-+0+0690 <[^>]*> nop
-+0+0694 <[^>]*> nop
-+0+0698 <[^>]*> nop
-+0+069c <[^>]*> nop
-+0+06a0 <[^>]*> nop
-+0+06a4 <[^>]*> nop
-+0+06a8 <[^>]*> nop
-+0+06ac <[^>]*> nop
-+0+06b0 <[^>]*> nop
-+0+06b4 <[^>]*> nop
-+0+06b8 <[^>]*> nop
-+0+06bc <[^>]*> nop
-+0+06c0 <[^>]*> nop
-+0+06c4 <[^>]*> nop
-+0+06c8 <[^>]*> nop
-+0+06cc <[^>]*> nop
-+0+06d0 <[^>]*> nop
-+0+06d4 <[^>]*> nop
-+0+06d8 <[^>]*> nop
-+0+06dc <[^>]*> nop
-+0+06e0 <[^>]*> nop
-+0+06e4 <[^>]*> nop
-+0+06e8 <[^>]*> nop
-+0+06ec <[^>]*> nop
-+0+06f0 <[^>]*> nop
-+0+06f4 <[^>]*> nop
-+0+06f8 <[^>]*> nop
-+0+06fc <[^>]*> nop
-+0+0700 <[^>]*> nop
-+0+0704 <[^>]*> nop
-+0+0708 <[^>]*> nop
-+0+070c <[^>]*> nop
-+0+0710 <[^>]*> nop
-+0+0714 <[^>]*> nop
-+0+0718 <[^>]*> nop
-+0+071c <[^>]*> nop
-+0+0720 <[^>]*> nop
-+0+0724 <[^>]*> nop
-+0+0728 <[^>]*> nop
-+0+072c <[^>]*> nop
-+0+0730 <[^>]*> nop
-+0+0734 <[^>]*> nop
-+0+0738 <[^>]*> nop
-+0+073c <[^>]*> nop
-+0+0740 <[^>]*> nop
-+0+0744 <[^>]*> nop
-+0+0748 <[^>]*> nop
-+0+074c <[^>]*> nop
-+0+0750 <[^>]*> nop
-+0+0754 <[^>]*> nop
-+0+0758 <[^>]*> nop
-+0+075c <[^>]*> nop
-+0+0760 <[^>]*> nop
-+0+0764 <[^>]*> nop
-+0+0768 <[^>]*> nop
-+0+076c <[^>]*> nop
-+0+0770 <[^>]*> nop
-+0+0774 <[^>]*> nop
-+0+0778 <[^>]*> nop
-+0+077c <[^>]*> nop
-+0+0780 <[^>]*> nop
-+0+0784 <[^>]*> nop
-+0+0788 <[^>]*> nop
-+0+078c <[^>]*> nop
-+0+0790 <[^>]*> nop
-+0+0794 <[^>]*> nop
-+0+0798 <[^>]*> nop
-+0+079c <[^>]*> nop
-+0+07a0 <[^>]*> nop
-+0+07a4 <[^>]*> nop
-+0+07a8 <[^>]*> nop
-+0+07ac <[^>]*> nop
-+0+07b0 <[^>]*> nop
-+0+07b4 <[^>]*> nop
-+0+07b8 <[^>]*> nop
-+0+07bc <[^>]*> nop
-+0+07c0 <[^>]*> nop
-+0+07c4 <[^>]*> nop
-+0+07c8 <[^>]*> nop
-+0+07cc <[^>]*> nop
-+0+07d0 <[^>]*> nop
-+0+07d4 <[^>]*> nop
-+0+07d8 <[^>]*> nop
-+0+07dc <[^>]*> nop
-+0+07e0 <[^>]*> nop
-+0+07e4 <[^>]*> nop
-+0+07e8 <[^>]*> nop
-+0+07ec <[^>]*> nop
-+0+07f0 <[^>]*> nop
-+0+07f4 <[^>]*> nop
-+0+07f8 <[^>]*> nop
-+0+07fc <[^>]*> nop
-+0+0800 <[^>]*> nop
-+0+0804 <[^>]*> nop
-+0+0808 <[^>]*> nop
-+0+080c <[^>]*> nop
-+0+0810 <[^>]*> nop
-+0+0814 <[^>]*> nop
-+0+0818 <[^>]*> nop
-+0+081c <[^>]*> nop
-+0+0820 <[^>]*> nop
-+0+0824 <[^>]*> nop
-+0+0828 <[^>]*> nop
-+0+082c <[^>]*> nop
-+0+0830 <[^>]*> nop
-+0+0834 <[^>]*> nop
-+0+0838 <[^>]*> nop
-+0+083c <[^>]*> nop
-+0+0840 <[^>]*> nop
-+0+0844 <[^>]*> nop
-+0+0848 <[^>]*> nop
-+0+084c <[^>]*> nop
-+0+0850 <[^>]*> nop
-+0+0854 <[^>]*> nop
-+0+0858 <[^>]*> nop
-+0+085c <[^>]*> nop
-+0+0860 <[^>]*> nop
-+0+0864 <[^>]*> nop
-+0+0868 <[^>]*> nop
-+0+086c <[^>]*> nop
-+0+0870 <[^>]*> nop
-+0+0874 <[^>]*> nop
-+0+0878 <[^>]*> nop
-+0+087c <[^>]*> nop
-+0+0880 <[^>]*> nop
-+0+0884 <[^>]*> nop
-+0+0888 <[^>]*> nop
-+0+088c <[^>]*> nop
-+0+0890 <[^>]*> nop
-+0+0894 <[^>]*> nop
-+0+0898 <[^>]*> nop
-+0+089c <[^>]*> nop
-+0+08a0 <[^>]*> nop
-+0+08a4 <[^>]*> nop
-+0+08a8 <[^>]*> nop
-+0+08ac <[^>]*> nop
-+0+08b0 <[^>]*> nop
-+0+08b4 <[^>]*> nop
-+0+08b8 <[^>]*> nop
-+0+08bc <[^>]*> nop
-+0+08c0 <[^>]*> nop
-+0+08c4 <[^>]*> nop
-+0+08c8 <[^>]*> nop
-+0+08cc <[^>]*> nop
-+0+08d0 <[^>]*> nop
-+0+08d4 <[^>]*> nop
-+0+08d8 <[^>]*> nop
-+0+08dc <[^>]*> nop
-+0+08e0 <[^>]*> nop
-+0+08e4 <[^>]*> nop
-+0+08e8 <[^>]*> nop
-+0+08ec <[^>]*> nop
-+0+08f0 <[^>]*> nop
-+0+08f4 <[^>]*> nop
-+0+08f8 <[^>]*> nop
-+0+08fc <[^>]*> nop
-+0+0900 <[^>]*> nop
-+0+0904 <[^>]*> nop
-+0+0908 <[^>]*> nop
-+0+090c <[^>]*> nop
-+0+0910 <[^>]*> nop
-+0+0914 <[^>]*> nop
-+0+0918 <[^>]*> nop
-+0+091c <[^>]*> nop
-+0+0920 <[^>]*> nop
-+0+0924 <[^>]*> nop
-+0+0928 <[^>]*> nop
-+0+092c <[^>]*> nop
-+0+0930 <[^>]*> nop
-+0+0934 <[^>]*> nop
-+0+0938 <[^>]*> nop
-+0+093c <[^>]*> nop
-+0+0940 <[^>]*> nop
-+0+0944 <[^>]*> nop
-+0+0948 <[^>]*> nop
-+0+094c <[^>]*> nop
-+0+0950 <[^>]*> nop
-+0+0954 <[^>]*> nop
-+0+0958 <[^>]*> nop
-+0+095c <[^>]*> nop
-+0+0960 <[^>]*> nop
-+0+0964 <[^>]*> nop
-+0+0968 <[^>]*> nop
-+0+096c <[^>]*> nop
-+0+0970 <[^>]*> nop
-+0+0974 <[^>]*> nop
-+0+0978 <[^>]*> nop
-+0+097c <[^>]*> nop
-+0+0980 <[^>]*> nop
-+0+0984 <[^>]*> nop
-+0+0988 <[^>]*> nop
-+0+098c <[^>]*> nop
-+0+0990 <[^>]*> nop
-+0+0994 <[^>]*> nop
-+0+0998 <[^>]*> nop
-+0+099c <[^>]*> nop
-+0+09a0 <[^>]*> nop
-+0+09a4 <[^>]*> nop
-+0+09a8 <[^>]*> nop
-+0+09ac <[^>]*> nop
-+0+09b0 <[^>]*> nop
-+0+09b4 <[^>]*> nop
-+0+09b8 <[^>]*> nop
-+0+09bc <[^>]*> nop
-+0+09c0 <[^>]*> nop
-+0+09c4 <[^>]*> nop
-+0+09c8 <[^>]*> nop
-+0+09cc <[^>]*> nop
-+0+09d0 <[^>]*> nop
-+0+09d4 <[^>]*> nop
-+0+09d8 <[^>]*> nop
-+0+09dc <[^>]*> nop
-+0+09e0 <[^>]*> nop
-+0+09e4 <[^>]*> nop
-+0+09e8 <[^>]*> nop
-+0+09ec <[^>]*> nop
-+0+09f0 <[^>]*> nop
-+0+09f4 <[^>]*> nop
-+0+09f8 <[^>]*> nop
-+0+09fc <[^>]*> nop
-+0+0a00 <[^>]*> nop
-+0+0a04 <[^>]*> nop
-+0+0a08 <[^>]*> nop
-+0+0a0c <[^>]*> nop
-+0+0a10 <[^>]*> nop
-+0+0a14 <[^>]*> nop
-+0+0a18 <[^>]*> nop
-+0+0a1c <[^>]*> nop
-+0+0a20 <[^>]*> nop
-+0+0a24 <[^>]*> nop
-+0+0a28 <[^>]*> nop
-+0+0a2c <[^>]*> nop
-+0+0a30 <[^>]*> nop
-+0+0a34 <[^>]*> nop
-+0+0a38 <[^>]*> nop
-+0+0a3c <[^>]*> nop
-+0+0a40 <[^>]*> nop
-+0+0a44 <[^>]*> nop
-+0+0a48 <[^>]*> nop
-+0+0a4c <[^>]*> nop
-+0+0a50 <[^>]*> nop
-+0+0a54 <[^>]*> nop
-+0+0a58 <[^>]*> nop
-+0+0a5c <[^>]*> nop
-+0+0a60 <[^>]*> nop
-+0+0a64 <[^>]*> nop
-+0+0a68 <[^>]*> nop
-+0+0a6c <[^>]*> nop
-+0+0a70 <[^>]*> nop
-+0+0a74 <[^>]*> nop
-+0+0a78 <[^>]*> nop
-+0+0a7c <[^>]*> nop
-+0+0a80 <[^>]*> nop
-+0+0a84 <[^>]*> nop
-+0+0a88 <[^>]*> nop
-+0+0a8c <[^>]*> nop
-+0+0a90 <[^>]*> nop
-+0+0a94 <[^>]*> nop
-+0+0a98 <[^>]*> nop
-+0+0a9c <[^>]*> nop
-+0+0aa0 <[^>]*> nop
-+0+0aa4 <[^>]*> nop
-+0+0aa8 <[^>]*> nop
-+0+0aac <[^>]*> nop
-+0+0ab0 <[^>]*> nop
-+0+0ab4 <[^>]*> nop
-+0+0ab8 <[^>]*> nop
-+0+0abc <[^>]*> nop
-+0+0ac0 <[^>]*> nop
-+0+0ac4 <[^>]*> nop
-+0+0ac8 <[^>]*> nop
-+0+0acc <[^>]*> nop
-+0+0ad0 <[^>]*> nop
-+0+0ad4 <[^>]*> nop
-+0+0ad8 <[^>]*> nop
-+0+0adc <[^>]*> nop
-+0+0ae0 <[^>]*> nop
-+0+0ae4 <[^>]*> nop
-+0+0ae8 <[^>]*> nop
-+0+0aec <[^>]*> nop
-+0+0af0 <[^>]*> nop
-+0+0af4 <[^>]*> nop
-+0+0af8 <[^>]*> nop
-+0+0afc <[^>]*> nop
-+0+0b00 <[^>]*> nop
-+0+0b04 <[^>]*> nop
-+0+0b08 <[^>]*> nop
-+0+0b0c <[^>]*> nop
-+0+0b10 <[^>]*> nop
-+0+0b14 <[^>]*> nop
-+0+0b18 <[^>]*> nop
-+0+0b1c <[^>]*> nop
-+0+0b20 <[^>]*> nop
-+0+0b24 <[^>]*> nop
-+0+0b28 <[^>]*> nop
-+0+0b2c <[^>]*> nop
-+0+0b30 <[^>]*> nop
-+0+0b34 <[^>]*> nop
-+0+0b38 <[^>]*> nop
-+0+0b3c <[^>]*> nop
-+0+0b40 <[^>]*> nop
-+0+0b44 <[^>]*> nop
-+0+0b48 <[^>]*> nop
-+0+0b4c <[^>]*> nop
-+0+0b50 <[^>]*> nop
-+0+0b54 <[^>]*> nop
-+0+0b58 <[^>]*> nop
-+0+0b5c <[^>]*> nop
-+0+0b60 <[^>]*> nop
-+0+0b64 <[^>]*> nop
-+0+0b68 <[^>]*> nop
-+0+0b6c <[^>]*> nop
-+0+0b70 <[^>]*> nop
-+0+0b74 <[^>]*> nop
-+0+0b78 <[^>]*> nop
-+0+0b7c <[^>]*> nop
-+0+0b80 <[^>]*> nop
-+0+0b84 <[^>]*> nop
-+0+0b88 <[^>]*> nop
-+0+0b8c <[^>]*> nop
-+0+0b90 <[^>]*> nop
-+0+0b94 <[^>]*> nop
-+0+0b98 <[^>]*> nop
-+0+0b9c <[^>]*> nop
-+0+0ba0 <[^>]*> nop
-+0+0ba4 <[^>]*> nop
-+0+0ba8 <[^>]*> nop
-+0+0bac <[^>]*> nop
-+0+0bb0 <[^>]*> nop
-+0+0bb4 <[^>]*> nop
-+0+0bb8 <[^>]*> nop
-+0+0bbc <[^>]*> nop
-+0+0bc0 <[^>]*> nop
-+0+0bc4 <[^>]*> nop
-+0+0bc8 <[^>]*> nop
-+0+0bcc <[^>]*> nop
-+0+0bd0 <[^>]*> nop
-+0+0bd4 <[^>]*> nop
-+0+0bd8 <[^>]*> nop
-+0+0bdc <[^>]*> nop
-+0+0be0 <[^>]*> nop
-+0+0be4 <[^>]*> nop
-+0+0be8 <[^>]*> nop
-+0+0bec <[^>]*> nop
-+0+0bf0 <[^>]*> nop
-+0+0bf4 <[^>]*> nop
-+0+0bf8 <[^>]*> nop
-+0+0bfc <[^>]*> nop
-+0+0c00 <[^>]*> nop
-+0+0c04 <[^>]*> nop
-+0+0c08 <[^>]*> nop
-+0+0c0c <[^>]*> nop
-+0+0c10 <[^>]*> nop
-+0+0c14 <[^>]*> nop
-+0+0c18 <[^>]*> nop
-+0+0c1c <[^>]*> nop
-+0+0c20 <[^>]*> nop
-+0+0c24 <[^>]*> nop
-+0+0c28 <[^>]*> nop
-+0+0c2c <[^>]*> nop
-+0+0c30 <[^>]*> nop
-+0+0c34 <[^>]*> nop
-+0+0c38 <[^>]*> nop
-+0+0c3c <[^>]*> nop
-+0+0c40 <[^>]*> nop
-+0+0c44 <[^>]*> nop
-+0+0c48 <[^>]*> nop
-+0+0c4c <[^>]*> nop
-+0+0c50 <[^>]*> nop
-+0+0c54 <[^>]*> nop
-+0+0c58 <[^>]*> nop
-+0+0c5c <[^>]*> nop
-+0+0c60 <[^>]*> nop
-+0+0c64 <[^>]*> nop
-+0+0c68 <[^>]*> nop
-+0+0c6c <[^>]*> nop
-+0+0c70 <[^>]*> nop
-+0+0c74 <[^>]*> nop
-+0+0c78 <[^>]*> nop
-+0+0c7c <[^>]*> nop
-+0+0c80 <[^>]*> nop
-+0+0c84 <[^>]*> nop
-+0+0c88 <[^>]*> nop
-+0+0c8c <[^>]*> nop
-+0+0c90 <[^>]*> nop
-+0+0c94 <[^>]*> nop
-+0+0c98 <[^>]*> nop
-+0+0c9c <[^>]*> nop
-+0+0ca0 <[^>]*> nop
-+0+0ca4 <[^>]*> nop
-+0+0ca8 <[^>]*> nop
-+0+0cac <[^>]*> nop
-+0+0cb0 <[^>]*> nop
-+0+0cb4 <[^>]*> nop
-+0+0cb8 <[^>]*> nop
-+0+0cbc <[^>]*> nop
-+0+0cc0 <[^>]*> nop
-+0+0cc4 <[^>]*> nop
-+0+0cc8 <[^>]*> nop
-+0+0ccc <[^>]*> nop
-+0+0cd0 <[^>]*> nop
-+0+0cd4 <[^>]*> nop
-+0+0cd8 <[^>]*> nop
-+0+0cdc <[^>]*> nop
-+0+0ce0 <[^>]*> nop
-+0+0ce4 <[^>]*> nop
-+0+0ce8 <[^>]*> nop
-+0+0cec <[^>]*> nop
-+0+0cf0 <[^>]*> nop
-+0+0cf4 <[^>]*> nop
-+0+0cf8 <[^>]*> nop
-+0+0cfc <[^>]*> nop
-+0+0d00 <[^>]*> nop
-+0+0d04 <[^>]*> nop
-+0+0d08 <[^>]*> nop
-+0+0d0c <[^>]*> nop
-+0+0d10 <[^>]*> nop
-+0+0d14 <[^>]*> nop
-+0+0d18 <[^>]*> nop
-+0+0d1c <[^>]*> nop
-+0+0d20 <[^>]*> nop
-+0+0d24 <[^>]*> nop
-+0+0d28 <[^>]*> nop
-+0+0d2c <[^>]*> nop
-+0+0d30 <[^>]*> nop
-+0+0d34 <[^>]*> nop
-+0+0d38 <[^>]*> nop
-+0+0d3c <[^>]*> nop
-+0+0d40 <[^>]*> nop
-+0+0d44 <[^>]*> nop
-+0+0d48 <[^>]*> nop
-+0+0d4c <[^>]*> nop
-+0+0d50 <[^>]*> nop
-+0+0d54 <[^>]*> nop
-+0+0d58 <[^>]*> nop
-+0+0d5c <[^>]*> nop
-+0+0d60 <[^>]*> nop
-+0+0d64 <[^>]*> nop
-+0+0d68 <[^>]*> nop
-+0+0d6c <[^>]*> nop
-+0+0d70 <[^>]*> nop
-+0+0d74 <[^>]*> nop
-+0+0d78 <[^>]*> nop
-+0+0d7c <[^>]*> nop
-+0+0d80 <[^>]*> nop
-+0+0d84 <[^>]*> nop
-+0+0d88 <[^>]*> nop
-+0+0d8c <[^>]*> nop
-+0+0d90 <[^>]*> nop
-+0+0d94 <[^>]*> nop
-+0+0d98 <[^>]*> nop
-+0+0d9c <[^>]*> nop
-+0+0da0 <[^>]*> nop
-+0+0da4 <[^>]*> nop
-+0+0da8 <[^>]*> nop
-+0+0dac <[^>]*> nop
-+0+0db0 <[^>]*> nop
-+0+0db4 <[^>]*> nop
-+0+0db8 <[^>]*> nop
-+0+0dbc <[^>]*> nop
-+0+0dc0 <[^>]*> nop
-+0+0dc4 <[^>]*> nop
-+0+0dc8 <[^>]*> nop
-+0+0dcc <[^>]*> nop
-+0+0dd0 <[^>]*> nop
-+0+0dd4 <[^>]*> nop
-+0+0dd8 <[^>]*> nop
-+0+0ddc <[^>]*> nop
-+0+0de0 <[^>]*> nop
-+0+0de4 <[^>]*> nop
-+0+0de8 <[^>]*> nop
-+0+0dec <[^>]*> nop
-+0+0df0 <[^>]*> nop
-+0+0df4 <[^>]*> nop
-+0+0df8 <[^>]*> nop
-+0+0dfc <[^>]*> nop
-+0+0e00 <[^>]*> nop
-+0+0e04 <[^>]*> nop
-+0+0e08 <[^>]*> nop
-+0+0e0c <[^>]*> nop
-+0+0e10 <[^>]*> nop
-+0+0e14 <[^>]*> nop
-+0+0e18 <[^>]*> nop
-+0+0e1c <[^>]*> nop
-+0+0e20 <[^>]*> nop
-+0+0e24 <[^>]*> nop
-+0+0e28 <[^>]*> nop
-+0+0e2c <[^>]*> nop
-+0+0e30 <[^>]*> nop
-+0+0e34 <[^>]*> nop
-+0+0e38 <[^>]*> nop
-+0+0e3c <[^>]*> nop
-+0+0e40 <[^>]*> nop
-+0+0e44 <[^>]*> nop
-+0+0e48 <[^>]*> nop
-+0+0e4c <[^>]*> nop
-+0+0e50 <[^>]*> nop
-+0+0e54 <[^>]*> nop
-+0+0e58 <[^>]*> nop
-+0+0e5c <[^>]*> nop
-+0+0e60 <[^>]*> nop
-+0+0e64 <[^>]*> nop
-+0+0e68 <[^>]*> nop
-+0+0e6c <[^>]*> nop
-+0+0e70 <[^>]*> nop
-+0+0e74 <[^>]*> nop
-+0+0e78 <[^>]*> nop
-+0+0e7c <[^>]*> nop
-+0+0e80 <[^>]*> nop
-+0+0e84 <[^>]*> nop
-+0+0e88 <[^>]*> nop
-+0+0e8c <[^>]*> nop
-+0+0e90 <[^>]*> nop
-+0+0e94 <[^>]*> nop
-+0+0e98 <[^>]*> nop
-+0+0e9c <[^>]*> nop
-+0+0ea0 <[^>]*> nop
-+0+0ea4 <[^>]*> nop
-+0+0ea8 <[^>]*> nop
-+0+0eac <[^>]*> nop
-+0+0eb0 <[^>]*> nop
-+0+0eb4 <[^>]*> nop
-+0+0eb8 <[^>]*> nop
-+0+0ebc <[^>]*> nop
-+0+0ec0 <[^>]*> nop
-+0+0ec4 <[^>]*> nop
-+0+0ec8 <[^>]*> nop
-+0+0ecc <[^>]*> nop
-+0+0ed0 <[^>]*> nop
-+0+0ed4 <[^>]*> nop
-+0+0ed8 <[^>]*> nop
-+0+0edc <[^>]*> nop
-+0+0ee0 <[^>]*> nop
-+0+0ee4 <[^>]*> nop
-+0+0ee8 <[^>]*> nop
-+0+0eec <[^>]*> nop
-+0+0ef0 <[^>]*> nop
-+0+0ef4 <[^>]*> nop
-+0+0ef8 <[^>]*> nop
-+0+0efc <[^>]*> nop
-+0+0f00 <[^>]*> nop
-+0+0f04 <[^>]*> nop
-+0+0f08 <[^>]*> nop
-+0+0f0c <[^>]*> nop
-+0+0f10 <[^>]*> nop
-+0+0f14 <[^>]*> nop
-+0+0f18 <[^>]*> nop
-+0+0f1c <[^>]*> nop
-+0+0f20 <[^>]*> nop
-+0+0f24 <[^>]*> nop
-+0+0f28 <[^>]*> nop
-+0+0f2c <[^>]*> nop
-+0+0f30 <[^>]*> nop
-+0+0f34 <[^>]*> nop
-+0+0f38 <[^>]*> nop
-+0+0f3c <[^>]*> nop
-+0+0f40 <[^>]*> nop
-+0+0f44 <[^>]*> nop
-+0+0f48 <[^>]*> nop
-+0+0f4c <[^>]*> nop
-+0+0f50 <[^>]*> nop
-+0+0f54 <[^>]*> nop
-+0+0f58 <[^>]*> nop
-+0+0f5c <[^>]*> nop
-+0+0f60 <[^>]*> nop
-+0+0f64 <[^>]*> nop
-+0+0f68 <[^>]*> nop
-+0+0f6c <[^>]*> nop
-+0+0f70 <[^>]*> nop
-+0+0f74 <[^>]*> nop
-+0+0f78 <[^>]*> nop
-+0+0f7c <[^>]*> nop
-+0+0f80 <[^>]*> nop
-+0+0f84 <[^>]*> nop
-+0+0f88 <[^>]*> nop
-+0+0f8c <[^>]*> nop
-+0+0f90 <[^>]*> nop
-+0+0f94 <[^>]*> nop
-+0+0f98 <[^>]*> nop
-+0+0f9c <[^>]*> nop
-+0+0fa0 <[^>]*> nop
-+0+0fa4 <[^>]*> nop
-+0+0fa8 <[^>]*> nop
-+0+0fac <[^>]*> nop
-+0+0fb0 <[^>]*> nop
-+0+0fb4 <[^>]*> nop
-+0+0fb8 <[^>]*> nop
-+0+0fbc <[^>]*> nop
-+0+0fc0 <[^>]*> nop
-+0+0fc4 <[^>]*> nop
-+0+0fc8 <[^>]*> nop
-+0+0fcc <[^>]*> nop
-+0+0fd0 <[^>]*> nop
-+0+0fd4 <[^>]*> nop
-+0+0fd8 <[^>]*> nop
-+0+0fdc <[^>]*> nop
-+0+0fe0 <[^>]*> nop
-+0+0fe4 <[^>]*> nop
-+0+0fe8 <[^>]*> nop
-+0+0fec <[^>]*> nop
-+0+0ff0 <[^>]*> nop
-+0+0ff4 <[^>]*> nop
-+0+0ff8 <[^>]*> nop
-+0+0ffc <[^>]*> nop
-+0+1000 <[^>]*> nop
-+0+1004 <[^>]*> nop
-+0+1008 <[^>]*> nop
-+0+100c <[^>]*> nop
-+0+1010 <[^>]*> nop
-+0+1014 <[^>]*> nop
-+0+1018 <[^>]*> nop
-+0+101c <[^>]*> nop
-+0+1020 <[^>]*> nop
-+0+1024 <[^>]*> nop
-+0+1028 <[^>]*> nop
-+0+102c <[^>]*> nop
-+0+1030 <[^>]*> nop
-+0+1034 <[^>]*> nop
-+0+1038 <[^>]*> nop
-+0+103c <[^>]*> nop
-+0+1040 <[^>]*> nop
-+0+1044 <[^>]*> nop
-+0+1048 <[^>]*> nop
-+0+104c <[^>]*> nop
-+0+1050 <[^>]*> nop
-+0+1054 <[^>]*> nop
-+0+1058 <[^>]*> nop
-+0+105c <[^>]*> nop
-+0+1060 <[^>]*> nop
-+0+1064 <[^>]*> nop
-+0+1068 <[^>]*> nop
-+0+106c <[^>]*> nop
-+0+1070 <[^>]*> nop
-+0+1074 <[^>]*> nop
-+0+1078 <[^>]*> nop
-+0+107c <[^>]*> nop
-+0+1080 <[^>]*> nop
-+0+1084 <[^>]*> nop
-+0+1088 <[^>]*> nop
-+0+108c <[^>]*> nop
-+0+1090 <[^>]*> nop
-+0+1094 <[^>]*> nop
-+0+1098 <[^>]*> nop
-+0+109c <[^>]*> nop
-+0+10a0 <[^>]*> nop
-+0+10a4 <[^>]*> nop
-+0+10a8 <[^>]*> nop
-+0+10ac <[^>]*> nop
-+0+10b0 <[^>]*> nop
-+0+10b4 <[^>]*> nop
-+0+10b8 <[^>]*> nop
-+0+10bc <[^>]*> nop
-+0+10c0 <[^>]*> nop
-+0+10c4 <[^>]*> nop
-+0+10c8 <[^>]*> nop
-+0+10cc <[^>]*> nop
-+0+10d0 <[^>]*> nop
-+0+10d4 <[^>]*> nop
-+0+10d8 <[^>]*> nop
-+0+10dc <[^>]*> nop
-+0+10e0 <[^>]*> nop
-+0+10e4 <[^>]*> nop
-+0+10e8 <[^>]*> nop
-+0+10ec <[^>]*> nop
-+0+10f0 <[^>]*> nop
-+0+10f4 <[^>]*> nop
-+0+10f8 <[^>]*> nop
-+0+10fc <[^>]*> nop
-+0+1100 <[^>]*> nop
-+0+1104 <[^>]*> nop
-+0+1108 <[^>]*> nop
-+0+110c <[^>]*> nop
-+0+1110 <[^>]*> nop
-+0+1114 <[^>]*> nop
-+0+1118 <[^>]*> nop
-+0+111c <[^>]*> nop
-+0+1120 <[^>]*> nop
-+0+1124 <[^>]*> nop
-+0+1128 <[^>]*> nop
-+0+112c <[^>]*> nop
-+0+1130 <[^>]*> nop
-+0+1134 <[^>]*> nop
-+0+1138 <[^>]*> nop
-+0+113c <[^>]*> nop
-+0+1140 <[^>]*> nop
-+0+1144 <[^>]*> nop
-+0+1148 <[^>]*> nop
-+0+114c <[^>]*> nop
-+0+1150 <[^>]*> nop
-+0+1154 <[^>]*> nop
-+0+1158 <[^>]*> nop
-+0+115c <[^>]*> nop
-+0+1160 <[^>]*> nop
-+0+1164 <[^>]*> nop
-+0+1168 <[^>]*> nop
-+0+116c <[^>]*> nop
-+0+1170 <[^>]*> nop
-+0+1174 <[^>]*> nop
-+0+1178 <[^>]*> nop
-+0+117c <[^>]*> nop
-+0+1180 <[^>]*> nop
-+0+1184 <[^>]*> nop
-+0+1188 <[^>]*> nop
-+0+118c <[^>]*> nop
-+0+1190 <[^>]*> nop
-+0+1194 <[^>]*> nop
-+0+1198 <[^>]*> nop
-+0+119c <[^>]*> nop
-+0+11a0 <[^>]*> nop
-+0+11a4 <[^>]*> nop
-+0+11a8 <[^>]*> nop
-+0+11ac <[^>]*> nop
-+0+11b0 <[^>]*> nop
-+0+11b4 <[^>]*> nop
-+0+11b8 <[^>]*> nop
-+0+11bc <[^>]*> nop
-+0+11c0 <[^>]*> nop
-+0+11c4 <[^>]*> nop
-+0+11c8 <[^>]*> nop
-+0+11cc <[^>]*> nop
-+0+11d0 <[^>]*> nop
-+0+11d4 <[^>]*> nop
-+0+11d8 <[^>]*> nop
-+0+11dc <[^>]*> nop
-+0+11e0 <[^>]*> nop
-+0+11e4 <[^>]*> nop
-+0+11e8 <[^>]*> nop
-+0+11ec <[^>]*> nop
-+0+11f0 <[^>]*> nop
-+0+11f4 <[^>]*> nop
-+0+11f8 <[^>]*> nop
-+0+11fc <[^>]*> nop
-+0+1200 <[^>]*> nop
-+0+1204 <[^>]*> nop
-+0+1208 <[^>]*> nop
-+0+120c <[^>]*> nop
-+0+1210 <[^>]*> nop
-+0+1214 <[^>]*> nop
-+0+1218 <[^>]*> nop
-+0+121c <[^>]*> nop
-+0+1220 <[^>]*> nop
-+0+1224 <[^>]*> nop
-+0+1228 <[^>]*> nop
-+0+122c <[^>]*> nop
-+0+1230 <[^>]*> nop
-+0+1234 <[^>]*> nop
-+0+1238 <[^>]*> nop
-+0+123c <[^>]*> nop
-+0+1240 <[^>]*> nop
-+0+1244 <[^>]*> nop
-+0+1248 <[^>]*> nop
-+0+124c <[^>]*> nop
-+0+1250 <[^>]*> nop
-+0+1254 <[^>]*> nop
-+0+1258 <[^>]*> nop
-+0+125c <[^>]*> nop
-+0+1260 <[^>]*> nop
-+0+1264 <[^>]*> nop
-+0+1268 <[^>]*> nop
-+0+126c <[^>]*> nop
-+0+1270 <[^>]*> nop
-+0+1274 <[^>]*> nop
-+0+1278 <[^>]*> nop
-+0+127c <[^>]*> nop
-+0+1280 <[^>]*> nop
-+0+1284 <[^>]*> nop
-+0+1288 <[^>]*> nop
-+0+128c <[^>]*> nop
-+0+1290 <[^>]*> nop
-+0+1294 <[^>]*> nop
-+0+1298 <[^>]*> nop
-+0+129c <[^>]*> nop
-+0+12a0 <[^>]*> nop
-+0+12a4 <[^>]*> nop
-+0+12a8 <[^>]*> nop
-+0+12ac <[^>]*> nop
-+0+12b0 <[^>]*> nop
-+0+12b4 <[^>]*> nop
-+0+12b8 <[^>]*> nop
-+0+12bc <[^>]*> nop
-+0+12c0 <[^>]*> nop
-+0+12c4 <[^>]*> nop
-+0+12c8 <[^>]*> nop
-+0+12cc <[^>]*> nop
-+0+12d0 <[^>]*> nop
-+0+12d4 <[^>]*> nop
-+0+12d8 <[^>]*> nop
-+0+12dc <[^>]*> nop
-+0+12e0 <[^>]*> nop
-+0+12e4 <[^>]*> nop
-+0+12e8 <[^>]*> nop
-+0+12ec <[^>]*> nop
-+0+12f0 <[^>]*> nop
-+0+12f4 <[^>]*> nop
-+0+12f8 <[^>]*> nop
-+0+12fc <[^>]*> nop
-+0+1300 <[^>]*> nop
-+0+1304 <[^>]*> nop
-+0+1308 <[^>]*> nop
-+0+130c <[^>]*> nop
-+0+1310 <[^>]*> nop
-+0+1314 <[^>]*> nop
-+0+1318 <[^>]*> nop
-+0+131c <[^>]*> nop
-+0+1320 <[^>]*> nop
-+0+1324 <[^>]*> nop
-+0+1328 <[^>]*> nop
-+0+132c <[^>]*> nop
-+0+1330 <[^>]*> nop
-+0+1334 <[^>]*> nop
-+0+1338 <[^>]*> nop
-+0+133c <[^>]*> nop
-+0+1340 <[^>]*> nop
-+0+1344 <[^>]*> nop
-+0+1348 <[^>]*> nop
-+0+134c <[^>]*> nop
-+0+1350 <[^>]*> nop
-+0+1354 <[^>]*> nop
-+0+1358 <[^>]*> nop
-+0+135c <[^>]*> nop
-+0+1360 <[^>]*> nop
-+0+1364 <[^>]*> nop
-+0+1368 <[^>]*> nop
-+0+136c <[^>]*> nop
-+0+1370 <[^>]*> nop
-+0+1374 <[^>]*> nop
-+0+1378 <[^>]*> nop
-+0+137c <[^>]*> nop
-+0+1380 <[^>]*> nop
-+0+1384 <[^>]*> nop
-+0+1388 <[^>]*> nop
-+0+138c <[^>]*> nop
-+0+1390 <[^>]*> nop
-+0+1394 <[^>]*> nop
-+0+1398 <[^>]*> nop
-+0+139c <[^>]*> nop
-+0+13a0 <[^>]*> nop
-+0+13a4 <[^>]*> nop
-+0+13a8 <[^>]*> nop
-+0+13ac <[^>]*> nop
-+0+13b0 <[^>]*> nop
-+0+13b4 <[^>]*> nop
-+0+13b8 <[^>]*> nop
-+0+13bc <[^>]*> nop
-+0+13c0 <[^>]*> nop
-+0+13c4 <[^>]*> nop
-+0+13c8 <[^>]*> nop
-+0+13cc <[^>]*> nop
-+0+13d0 <[^>]*> nop
-+0+13d4 <[^>]*> nop
-+0+13d8 <[^>]*> nop
-+0+13dc <[^>]*> nop
-+0+13e0 <[^>]*> nop
-+0+13e4 <[^>]*> nop
-+0+13e8 <[^>]*> nop
-+0+13ec <[^>]*> nop
-+0+13f0 <[^>]*> nop
-+0+13f4 <[^>]*> nop
-+0+13f8 <[^>]*> nop
-+0+13fc <[^>]*> nop
-+0+1400 <[^>]*> nop
-+0+1404 <[^>]*> nop
-+0+1408 <[^>]*> nop
-+0+140c <[^>]*> nop
-+0+1410 <[^>]*> nop
-+0+1414 <[^>]*> nop
-+0+1418 <[^>]*> nop
-+0+141c <[^>]*> nop
-+0+1420 <[^>]*> nop
-+0+1424 <[^>]*> nop
-+0+1428 <[^>]*> nop
-+0+142c <[^>]*> nop
-+0+1430 <[^>]*> nop
-+0+1434 <[^>]*> nop
-+0+1438 <[^>]*> nop
-+0+143c <[^>]*> nop
-+0+1440 <[^>]*> nop
-+0+1444 <[^>]*> nop
-+0+1448 <[^>]*> nop
-+0+144c <[^>]*> nop
-+0+1450 <[^>]*> nop
-+0+1454 <[^>]*> nop
-+0+1458 <[^>]*> nop
-+0+145c <[^>]*> nop
-+0+1460 <[^>]*> nop
-+0+1464 <[^>]*> nop
-+0+1468 <[^>]*> nop
-+0+146c <[^>]*> nop
-+0+1470 <[^>]*> nop
-+0+1474 <[^>]*> nop
-+0+1478 <[^>]*> nop
-+0+147c <[^>]*> nop
-+0+1480 <[^>]*> nop
-+0+1484 <[^>]*> nop
-+0+1488 <[^>]*> nop
-+0+148c <[^>]*> nop
-+0+1490 <[^>]*> nop
-+0+1494 <[^>]*> nop
-+0+1498 <[^>]*> nop
-+0+149c <[^>]*> nop
-+0+14a0 <[^>]*> nop
-+0+14a4 <[^>]*> nop
-+0+14a8 <[^>]*> nop
-+0+14ac <[^>]*> nop
-+0+14b0 <[^>]*> nop
-+0+14b4 <[^>]*> nop
-+0+14b8 <[^>]*> nop
-+0+14bc <[^>]*> nop
-+0+14c0 <[^>]*> nop
-+0+14c4 <[^>]*> nop
-+0+14c8 <[^>]*> nop
-+0+14cc <[^>]*> nop
-+0+14d0 <[^>]*> nop
-+0+14d4 <[^>]*> nop
-+0+14d8 <[^>]*> nop
-+0+14dc <[^>]*> nop
-+0+14e0 <[^>]*> nop
-+0+14e4 <[^>]*> nop
-+0+14e8 <[^>]*> nop
-+0+14ec <[^>]*> nop
-+0+14f0 <[^>]*> nop
-+0+14f4 <[^>]*> nop
-+0+14f8 <[^>]*> nop
-+0+14fc <[^>]*> nop
-+0+1500 <[^>]*> nop
-+0+1504 <[^>]*> nop
-+0+1508 <[^>]*> nop
-+0+150c <[^>]*> nop
-+0+1510 <[^>]*> nop
-+0+1514 <[^>]*> nop
-+0+1518 <[^>]*> nop
-+0+151c <[^>]*> nop
-+0+1520 <[^>]*> nop
-+0+1524 <[^>]*> nop
-+0+1528 <[^>]*> nop
-+0+152c <[^>]*> nop
-+0+1530 <[^>]*> nop
-+0+1534 <[^>]*> nop
-+0+1538 <[^>]*> nop
-+0+153c <[^>]*> nop
-+0+1540 <[^>]*> nop
-+0+1544 <[^>]*> nop
-+0+1548 <[^>]*> nop
-+0+154c <[^>]*> nop
-+0+1550 <[^>]*> nop
-+0+1554 <[^>]*> nop
-+0+1558 <[^>]*> nop
-+0+155c <[^>]*> nop
-+0+1560 <[^>]*> nop
-+0+1564 <[^>]*> nop
-+0+1568 <[^>]*> nop
-+0+156c <[^>]*> nop
-+0+1570 <[^>]*> nop
-+0+1574 <[^>]*> nop
-+0+1578 <[^>]*> nop
-+0+157c <[^>]*> nop
-+0+1580 <[^>]*> nop
-+0+1584 <[^>]*> nop
-+0+1588 <[^>]*> nop
-+0+158c <[^>]*> nop
-+0+1590 <[^>]*> nop
-+0+1594 <[^>]*> nop
-+0+1598 <[^>]*> nop
-+0+159c <[^>]*> nop
-+0+15a0 <[^>]*> nop
-+0+15a4 <[^>]*> nop
-+0+15a8 <[^>]*> nop
-+0+15ac <[^>]*> nop
-+0+15b0 <[^>]*> nop
-+0+15b4 <[^>]*> nop
-+0+15b8 <[^>]*> nop
-+0+15bc <[^>]*> nop
-+0+15c0 <[^>]*> nop
-+0+15c4 <[^>]*> nop
-+0+15c8 <[^>]*> nop
-+0+15cc <[^>]*> nop
-+0+15d0 <[^>]*> nop
-+0+15d4 <[^>]*> nop
-+0+15d8 <[^>]*> nop
-+0+15dc <[^>]*> nop
-+0+15e0 <[^>]*> nop
-+0+15e4 <[^>]*> nop
-+0+15e8 <[^>]*> nop
-+0+15ec <[^>]*> nop
-+0+15f0 <[^>]*> nop
-+0+15f4 <[^>]*> nop
-+0+15f8 <[^>]*> nop
-+0+15fc <[^>]*> nop
-+0+1600 <[^>]*> nop
-+0+1604 <[^>]*> nop
-+0+1608 <[^>]*> nop
-+0+160c <[^>]*> nop
-+0+1610 <[^>]*> nop
-+0+1614 <[^>]*> nop
-+0+1618 <[^>]*> nop
-+0+161c <[^>]*> nop
-+0+1620 <[^>]*> nop
-+0+1624 <[^>]*> nop
-+0+1628 <[^>]*> nop
-+0+162c <[^>]*> nop
-+0+1630 <[^>]*> nop
-+0+1634 <[^>]*> nop
-+0+1638 <[^>]*> nop
-+0+163c <[^>]*> nop
-+0+1640 <[^>]*> nop
-+0+1644 <[^>]*> nop
-+0+1648 <[^>]*> nop
-+0+164c <[^>]*> nop
-+0+1650 <[^>]*> nop
-+0+1654 <[^>]*> nop
-+0+1658 <[^>]*> nop
-+0+165c <[^>]*> nop
-+0+1660 <[^>]*> nop
-+0+1664 <[^>]*> nop
-+0+1668 <[^>]*> nop
-+0+166c <[^>]*> nop
-+0+1670 <[^>]*> nop
-+0+1674 <[^>]*> nop
-+0+1678 <[^>]*> nop
-+0+167c <[^>]*> nop
-+0+1680 <[^>]*> nop
-+0+1684 <[^>]*> nop
-+0+1688 <[^>]*> nop
-+0+168c <[^>]*> nop
-+0+1690 <[^>]*> nop
-+0+1694 <[^>]*> nop
-+0+1698 <[^>]*> nop
-+0+169c <[^>]*> nop
-+0+16a0 <[^>]*> nop
-+0+16a4 <[^>]*> nop
-+0+16a8 <[^>]*> nop
-+0+16ac <[^>]*> nop
-+0+16b0 <[^>]*> nop
-+0+16b4 <[^>]*> nop
-+0+16b8 <[^>]*> nop
-+0+16bc <[^>]*> nop
-+0+16c0 <[^>]*> nop
-+0+16c4 <[^>]*> nop
-+0+16c8 <[^>]*> nop
-+0+16cc <[^>]*> nop
-+0+16d0 <[^>]*> nop
-+0+16d4 <[^>]*> nop
-+0+16d8 <[^>]*> nop
-+0+16dc <[^>]*> nop
-+0+16e0 <[^>]*> nop
-+0+16e4 <[^>]*> nop
-+0+16e8 <[^>]*> nop
-+0+16ec <[^>]*> nop
-+0+16f0 <[^>]*> nop
-+0+16f4 <[^>]*> nop
-+0+16f8 <[^>]*> nop
-+0+16fc <[^>]*> nop
-+0+1700 <[^>]*> nop
-+0+1704 <[^>]*> nop
-+0+1708 <[^>]*> nop
-+0+170c <[^>]*> nop
-+0+1710 <[^>]*> nop
-+0+1714 <[^>]*> nop
-+0+1718 <[^>]*> nop
-+0+171c <[^>]*> nop
-+0+1720 <[^>]*> nop
-+0+1724 <[^>]*> nop
-+0+1728 <[^>]*> nop
-+0+172c <[^>]*> nop
-+0+1730 <[^>]*> nop
-+0+1734 <[^>]*> nop
-+0+1738 <[^>]*> nop
-+0+173c <[^>]*> nop
-+0+1740 <[^>]*> nop
-+0+1744 <[^>]*> nop
-+0+1748 <[^>]*> nop
-+0+174c <[^>]*> nop
-+0+1750 <[^>]*> nop
-+0+1754 <[^>]*> nop
-+0+1758 <[^>]*> nop
-+0+175c <[^>]*> nop
-+0+1760 <[^>]*> nop
-+0+1764 <[^>]*> nop
-+0+1768 <[^>]*> nop
-+0+176c <[^>]*> nop
-+0+1770 <[^>]*> nop
-+0+1774 <[^>]*> nop
-+0+1778 <[^>]*> nop
-+0+177c <[^>]*> nop
-+0+1780 <[^>]*> nop
-+0+1784 <[^>]*> nop
-+0+1788 <[^>]*> nop
-+0+178c <[^>]*> nop
-+0+1790 <[^>]*> nop
-+0+1794 <[^>]*> nop
-+0+1798 <[^>]*> nop
-+0+179c <[^>]*> nop
-+0+17a0 <[^>]*> nop
-+0+17a4 <[^>]*> nop
-+0+17a8 <[^>]*> nop
-+0+17ac <[^>]*> nop
-+0+17b0 <[^>]*> nop
-+0+17b4 <[^>]*> nop
-+0+17b8 <[^>]*> nop
-+0+17bc <[^>]*> nop
-+0+17c0 <[^>]*> nop
-+0+17c4 <[^>]*> nop
-+0+17c8 <[^>]*> nop
-+0+17cc <[^>]*> nop
-+0+17d0 <[^>]*> nop
-+0+17d4 <[^>]*> nop
-+0+17d8 <[^>]*> nop
-+0+17dc <[^>]*> nop
-+0+17e0 <[^>]*> nop
-+0+17e4 <[^>]*> nop
-+0+17e8 <[^>]*> nop
-+0+17ec <[^>]*> nop
-+0+17f0 <[^>]*> nop
-+0+17f4 <[^>]*> nop
-+0+17f8 <[^>]*> nop
-+0+17fc <[^>]*> nop
-+0+1800 <[^>]*> nop
-+0+1804 <[^>]*> nop
-+0+1808 <[^>]*> nop
-+0+180c <[^>]*> nop
-+0+1810 <[^>]*> nop
-+0+1814 <[^>]*> nop
-+0+1818 <[^>]*> nop
-+0+181c <[^>]*> nop
-+0+1820 <[^>]*> nop
-+0+1824 <[^>]*> nop
-+0+1828 <[^>]*> nop
-+0+182c <[^>]*> nop
-+0+1830 <[^>]*> nop
-+0+1834 <[^>]*> nop
-+0+1838 <[^>]*> nop
-+0+183c <[^>]*> nop
-+0+1840 <[^>]*> nop
-+0+1844 <[^>]*> nop
-+0+1848 <[^>]*> nop
-+0+184c <[^>]*> nop
-+0+1850 <[^>]*> nop
-+0+1854 <[^>]*> nop
-+0+1858 <[^>]*> nop
-+0+185c <[^>]*> nop
-+0+1860 <[^>]*> nop
-+0+1864 <[^>]*> nop
-+0+1868 <[^>]*> nop
-+0+186c <[^>]*> nop
-+0+1870 <[^>]*> nop
-+0+1874 <[^>]*> nop
-+0+1878 <[^>]*> nop
-+0+187c <[^>]*> nop
-+0+1880 <[^>]*> nop
-+0+1884 <[^>]*> nop
-+0+1888 <[^>]*> nop
-+0+188c <[^>]*> nop
-+0+1890 <[^>]*> nop
-+0+1894 <[^>]*> nop
-+0+1898 <[^>]*> nop
-+0+189c <[^>]*> nop
-+0+18a0 <[^>]*> nop
-+0+18a4 <[^>]*> nop
-+0+18a8 <[^>]*> nop
-+0+18ac <[^>]*> nop
-+0+18b0 <[^>]*> nop
-+0+18b4 <[^>]*> nop
-+0+18b8 <[^>]*> nop
-+0+18bc <[^>]*> nop
-+0+18c0 <[^>]*> nop
-+0+18c4 <[^>]*> nop
-+0+18c8 <[^>]*> nop
-+0+18cc <[^>]*> nop
-+0+18d0 <[^>]*> nop
-+0+18d4 <[^>]*> nop
-+0+18d8 <[^>]*> nop
-+0+18dc <[^>]*> nop
-+0+18e0 <[^>]*> nop
-+0+18e4 <[^>]*> nop
-+0+18e8 <[^>]*> nop
-+0+18ec <[^>]*> nop
-+0+18f0 <[^>]*> nop
-+0+18f4 <[^>]*> nop
-+0+18f8 <[^>]*> nop
-+0+18fc <[^>]*> nop
-+0+1900 <[^>]*> nop
-+0+1904 <[^>]*> nop
-+0+1908 <[^>]*> nop
-+0+190c <[^>]*> nop
-+0+1910 <[^>]*> nop
-+0+1914 <[^>]*> nop
-+0+1918 <[^>]*> nop
-+0+191c <[^>]*> nop
-+0+1920 <[^>]*> nop
-+0+1924 <[^>]*> nop
-+0+1928 <[^>]*> nop
-+0+192c <[^>]*> nop
-+0+1930 <[^>]*> nop
-+0+1934 <[^>]*> nop
-+0+1938 <[^>]*> nop
-+0+193c <[^>]*> nop
-+0+1940 <[^>]*> nop
-+0+1944 <[^>]*> nop
-+0+1948 <[^>]*> nop
-+0+194c <[^>]*> nop
-+0+1950 <[^>]*> nop
-+0+1954 <[^>]*> nop
-+0+1958 <[^>]*> nop
-+0+195c <[^>]*> nop
-+0+1960 <[^>]*> nop
-+0+1964 <[^>]*> nop
-+0+1968 <[^>]*> nop
-+0+196c <[^>]*> nop
-+0+1970 <[^>]*> nop
-+0+1974 <[^>]*> nop
-+0+1978 <[^>]*> nop
-+0+197c <[^>]*> nop
-+0+1980 <[^>]*> nop
-+0+1984 <[^>]*> nop
-+0+1988 <[^>]*> nop
-+0+198c <[^>]*> nop
-+0+1990 <[^>]*> nop
-+0+1994 <[^>]*> nop
-+0+1998 <[^>]*> nop
-+0+199c <[^>]*> nop
-+0+19a0 <[^>]*> nop
-+0+19a4 <[^>]*> nop
-+0+19a8 <[^>]*> nop
-+0+19ac <[^>]*> nop
-+0+19b0 <[^>]*> nop
-+0+19b4 <[^>]*> nop
-+0+19b8 <[^>]*> nop
-+0+19bc <[^>]*> nop
-+0+19c0 <[^>]*> nop
-+0+19c4 <[^>]*> nop
-+0+19c8 <[^>]*> nop
-+0+19cc <[^>]*> nop
-+0+19d0 <[^>]*> nop
-+0+19d4 <[^>]*> nop
-+0+19d8 <[^>]*> nop
-+0+19dc <[^>]*> nop
-+0+19e0 <[^>]*> nop
-+0+19e4 <[^>]*> nop
-+0+19e8 <[^>]*> nop
-+0+19ec <[^>]*> nop
-+0+19f0 <[^>]*> nop
-+0+19f4 <[^>]*> nop
-+0+19f8 <[^>]*> nop
-+0+19fc <[^>]*> nop
-+0+1a00 <[^>]*> nop
-+0+1a04 <[^>]*> nop
-+0+1a08 <[^>]*> nop
-+0+1a0c <[^>]*> nop
-+0+1a10 <[^>]*> nop
-+0+1a14 <[^>]*> nop
-+0+1a18 <[^>]*> nop
-+0+1a1c <[^>]*> nop
-+0+1a20 <[^>]*> nop
-+0+1a24 <[^>]*> nop
-+0+1a28 <[^>]*> nop
-+0+1a2c <[^>]*> nop
-+0+1a30 <[^>]*> nop
-+0+1a34 <[^>]*> nop
-+0+1a38 <[^>]*> nop
-+0+1a3c <[^>]*> nop
-+0+1a40 <[^>]*> nop
-+0+1a44 <[^>]*> nop
-+0+1a48 <[^>]*> nop
-+0+1a4c <[^>]*> nop
-+0+1a50 <[^>]*> nop
-+0+1a54 <[^>]*> nop
-+0+1a58 <[^>]*> nop
-+0+1a5c <[^>]*> nop
-+0+1a60 <[^>]*> nop
-+0+1a64 <[^>]*> nop
-+0+1a68 <[^>]*> nop
-+0+1a6c <[^>]*> nop
-+0+1a70 <[^>]*> nop
-+0+1a74 <[^>]*> nop
-+0+1a78 <[^>]*> nop
-+0+1a7c <[^>]*> nop
-+0+1a80 <[^>]*> nop
-+0+1a84 <[^>]*> nop
-+0+1a88 <[^>]*> nop
-+0+1a8c <[^>]*> nop
-+0+1a90 <[^>]*> nop
-+0+1a94 <[^>]*> nop
-+0+1a98 <[^>]*> nop
-+0+1a9c <[^>]*> nop
-+0+1aa0 <[^>]*> nop
-+0+1aa4 <[^>]*> nop
-+0+1aa8 <[^>]*> nop
-+0+1aac <[^>]*> nop
-+0+1ab0 <[^>]*> nop
-+0+1ab4 <[^>]*> nop
-+0+1ab8 <[^>]*> nop
-+0+1abc <[^>]*> nop
-+0+1ac0 <[^>]*> nop
-+0+1ac4 <[^>]*> nop
-+0+1ac8 <[^>]*> nop
-+0+1acc <[^>]*> nop
-+0+1ad0 <[^>]*> nop
-+0+1ad4 <[^>]*> nop
-+0+1ad8 <[^>]*> nop
-+0+1adc <[^>]*> nop
-+0+1ae0 <[^>]*> nop
-+0+1ae4 <[^>]*> nop
-+0+1ae8 <[^>]*> nop
-+0+1aec <[^>]*> nop
-+0+1af0 <[^>]*> nop
-+0+1af4 <[^>]*> nop
-+0+1af8 <[^>]*> nop
-+0+1afc <[^>]*> nop
-+0+1b00 <[^>]*> nop
-+0+1b04 <[^>]*> nop
-+0+1b08 <[^>]*> nop
-+0+1b0c <[^>]*> nop
-+0+1b10 <[^>]*> nop
-+0+1b14 <[^>]*> nop
-+0+1b18 <[^>]*> nop
-+0+1b1c <[^>]*> nop
-+0+1b20 <[^>]*> nop
-+0+1b24 <[^>]*> nop
-+0+1b28 <[^>]*> nop
-+0+1b2c <[^>]*> nop
-+0+1b30 <[^>]*> nop
-+0+1b34 <[^>]*> nop
-+0+1b38 <[^>]*> nop
-+0+1b3c <[^>]*> nop
-+0+1b40 <[^>]*> nop
-+0+1b44 <[^>]*> nop
-+0+1b48 <[^>]*> nop
-+0+1b4c <[^>]*> nop
-+0+1b50 <[^>]*> nop
-+0+1b54 <[^>]*> nop
-+0+1b58 <[^>]*> nop
-+0+1b5c <[^>]*> nop
-+0+1b60 <[^>]*> nop
-+0+1b64 <[^>]*> nop
-+0+1b68 <[^>]*> nop
-+0+1b6c <[^>]*> nop
-+0+1b70 <[^>]*> nop
-+0+1b74 <[^>]*> nop
-+0+1b78 <[^>]*> nop
-+0+1b7c <[^>]*> nop
-+0+1b80 <[^>]*> nop
-+0+1b84 <[^>]*> nop
-+0+1b88 <[^>]*> nop
-+0+1b8c <[^>]*> nop
-+0+1b90 <[^>]*> nop
-+0+1b94 <[^>]*> nop
-+0+1b98 <[^>]*> nop
-+0+1b9c <[^>]*> nop
-+0+1ba0 <[^>]*> nop
-+0+1ba4 <[^>]*> nop
-+0+1ba8 <[^>]*> nop
-+0+1bac <[^>]*> nop
-+0+1bb0 <[^>]*> nop
-+0+1bb4 <[^>]*> nop
-+0+1bb8 <[^>]*> nop
-+0+1bbc <[^>]*> nop
-+0+1bc0 <[^>]*> nop
-+0+1bc4 <[^>]*> nop
-+0+1bc8 <[^>]*> nop
-+0+1bcc <[^>]*> nop
-+0+1bd0 <[^>]*> nop
-+0+1bd4 <[^>]*> nop
-+0+1bd8 <[^>]*> nop
-+0+1bdc <[^>]*> nop
-+0+1be0 <[^>]*> nop
-+0+1be4 <[^>]*> nop
-+0+1be8 <[^>]*> nop
-+0+1bec <[^>]*> nop
-+0+1bf0 <[^>]*> nop
-+0+1bf4 <[^>]*> nop
-+0+1bf8 <[^>]*> nop
-+0+1bfc <[^>]*> nop
-+0+1c00 <[^>]*> nop
-+0+1c04 <[^>]*> nop
-+0+1c08 <[^>]*> nop
-+0+1c0c <[^>]*> nop
-+0+1c10 <[^>]*> nop
-+0+1c14 <[^>]*> nop
-+0+1c18 <[^>]*> nop
-+0+1c1c <[^>]*> nop
-+0+1c20 <[^>]*> nop
-+0+1c24 <[^>]*> nop
-+0+1c28 <[^>]*> nop
-+0+1c2c <[^>]*> nop
-+0+1c30 <[^>]*> nop
-+0+1c34 <[^>]*> nop
-+0+1c38 <[^>]*> nop
-+0+1c3c <[^>]*> nop
-+0+1c40 <[^>]*> nop
-+0+1c44 <[^>]*> nop
-+0+1c48 <[^>]*> nop
-+0+1c4c <[^>]*> nop
-+0+1c50 <[^>]*> nop
-+0+1c54 <[^>]*> nop
-+0+1c58 <[^>]*> nop
-+0+1c5c <[^>]*> nop
-+0+1c60 <[^>]*> nop
-+0+1c64 <[^>]*> nop
-+0+1c68 <[^>]*> nop
-+0+1c6c <[^>]*> nop
-+0+1c70 <[^>]*> nop
-+0+1c74 <[^>]*> nop
-+0+1c78 <[^>]*> nop
-+0+1c7c <[^>]*> nop
-+0+1c80 <[^>]*> nop
-+0+1c84 <[^>]*> nop
-+0+1c88 <[^>]*> nop
-+0+1c8c <[^>]*> nop
-+0+1c90 <[^>]*> nop
-+0+1c94 <[^>]*> nop
-+0+1c98 <[^>]*> nop
-+0+1c9c <[^>]*> nop
-+0+1ca0 <[^>]*> nop
-+0+1ca4 <[^>]*> nop
-+0+1ca8 <[^>]*> nop
-+0+1cac <[^>]*> nop
-+0+1cb0 <[^>]*> nop
-+0+1cb4 <[^>]*> nop
-+0+1cb8 <[^>]*> nop
-+0+1cbc <[^>]*> nop
-+0+1cc0 <[^>]*> nop
-+0+1cc4 <[^>]*> nop
-+0+1cc8 <[^>]*> nop
-+0+1ccc <[^>]*> nop
-+0+1cd0 <[^>]*> nop
-+0+1cd4 <[^>]*> nop
-+0+1cd8 <[^>]*> nop
-+0+1cdc <[^>]*> nop
-+0+1ce0 <[^>]*> nop
-+0+1ce4 <[^>]*> nop
-+0+1ce8 <[^>]*> nop
-+0+1cec <[^>]*> nop
-+0+1cf0 <[^>]*> nop
-+0+1cf4 <[^>]*> nop
-+0+1cf8 <[^>]*> nop
-+0+1cfc <[^>]*> nop
-+0+1d00 <[^>]*> nop
-+0+1d04 <[^>]*> nop
-+0+1d08 <[^>]*> nop
-+0+1d0c <[^>]*> nop
-+0+1d10 <[^>]*> nop
-+0+1d14 <[^>]*> nop
-+0+1d18 <[^>]*> nop
-+0+1d1c <[^>]*> nop
-+0+1d20 <[^>]*> nop
-+0+1d24 <[^>]*> nop
-+0+1d28 <[^>]*> nop
-+0+1d2c <[^>]*> nop
-+0+1d30 <[^>]*> nop
-+0+1d34 <[^>]*> nop
-+0+1d38 <[^>]*> nop
-+0+1d3c <[^>]*> nop
-+0+1d40 <[^>]*> nop
-+0+1d44 <[^>]*> nop
-+0+1d48 <[^>]*> nop
-+0+1d4c <[^>]*> nop
-+0+1d50 <[^>]*> nop
-+0+1d54 <[^>]*> nop
-+0+1d58 <[^>]*> nop
-+0+1d5c <[^>]*> nop
-+0+1d60 <[^>]*> nop
-+0+1d64 <[^>]*> nop
-+0+1d68 <[^>]*> nop
-+0+1d6c <[^>]*> nop
-+0+1d70 <[^>]*> nop
-+0+1d74 <[^>]*> nop
-+0+1d78 <[^>]*> nop
-+0+1d7c <[^>]*> nop
-+0+1d80 <[^>]*> nop
-+0+1d84 <[^>]*> nop
-+0+1d88 <[^>]*> nop
-+0+1d8c <[^>]*> nop
-+0+1d90 <[^>]*> nop
-+0+1d94 <[^>]*> nop
-+0+1d98 <[^>]*> nop
-+0+1d9c <[^>]*> nop
-+0+1da0 <[^>]*> nop
-+0+1da4 <[^>]*> nop
-+0+1da8 <[^>]*> nop
-+0+1dac <[^>]*> nop
-+0+1db0 <[^>]*> nop
-+0+1db4 <[^>]*> nop
-+0+1db8 <[^>]*> nop
-+0+1dbc <[^>]*> nop
-+0+1dc0 <[^>]*> nop
-+0+1dc4 <[^>]*> nop
-+0+1dc8 <[^>]*> nop
-+0+1dcc <[^>]*> nop
-+0+1dd0 <[^>]*> nop
-+0+1dd4 <[^>]*> nop
-+0+1dd8 <[^>]*> nop
-+0+1ddc <[^>]*> nop
-+0+1de0 <[^>]*> nop
-+0+1de4 <[^>]*> nop
-+0+1de8 <[^>]*> nop
-+0+1dec <[^>]*> nop
-+0+1df0 <[^>]*> nop
-+0+1df4 <[^>]*> nop
-+0+1df8 <[^>]*> nop
-+0+1dfc <[^>]*> nop
-+0+1e00 <[^>]*> nop
-+0+1e04 <[^>]*> nop
-+0+1e08 <[^>]*> nop
-+0+1e0c <[^>]*> nop
-+0+1e10 <[^>]*> nop
-+0+1e14 <[^>]*> nop
-+0+1e18 <[^>]*> nop
-+0+1e1c <[^>]*> nop
-+0+1e20 <[^>]*> nop
-+0+1e24 <[^>]*> nop
-+0+1e28 <[^>]*> nop
-+0+1e2c <[^>]*> nop
-+0+1e30 <[^>]*> nop
-+0+1e34 <[^>]*> nop
-+0+1e38 <[^>]*> nop
-+0+1e3c <[^>]*> nop
-+0+1e40 <[^>]*> nop
-+0+1e44 <[^>]*> nop
-+0+1e48 <[^>]*> nop
-+0+1e4c <[^>]*> nop
-+0+1e50 <[^>]*> nop
-+0+1e54 <[^>]*> nop
-+0+1e58 <[^>]*> nop
-+0+1e5c <[^>]*> nop
-+0+1e60 <[^>]*> nop
-+0+1e64 <[^>]*> nop
-+0+1e68 <[^>]*> nop
-+0+1e6c <[^>]*> nop
-+0+1e70 <[^>]*> nop
-+0+1e74 <[^>]*> nop
-+0+1e78 <[^>]*> nop
-+0+1e7c <[^>]*> nop
-+0+1e80 <[^>]*> nop
-+0+1e84 <[^>]*> nop
-+0+1e88 <[^>]*> nop
-+0+1e8c <[^>]*> nop
-+0+1e90 <[^>]*> nop
-+0+1e94 <[^>]*> nop
-+0+1e98 <[^>]*> nop
-+0+1e9c <[^>]*> nop
-+0+1ea0 <[^>]*> nop
-+0+1ea4 <[^>]*> nop
-+0+1ea8 <[^>]*> nop
-+0+1eac <[^>]*> nop
-+0+1eb0 <[^>]*> nop
-+0+1eb4 <[^>]*> nop
-+0+1eb8 <[^>]*> nop
-+0+1ebc <[^>]*> nop
-+0+1ec0 <[^>]*> nop
-+0+1ec4 <[^>]*> nop
-+0+1ec8 <[^>]*> nop
-+0+1ecc <[^>]*> nop
-+0+1ed0 <[^>]*> nop
-+0+1ed4 <[^>]*> nop
-+0+1ed8 <[^>]*> nop
-+0+1edc <[^>]*> nop
-+0+1ee0 <[^>]*> nop
-+0+1ee4 <[^>]*> nop
-+0+1ee8 <[^>]*> nop
-+0+1eec <[^>]*> nop
-+0+1ef0 <[^>]*> nop
-+0+1ef4 <[^>]*> nop
-+0+1ef8 <[^>]*> nop
-+0+1efc <[^>]*> nop
-+0+1f00 <[^>]*> nop
-+0+1f04 <[^>]*> nop
-+0+1f08 <[^>]*> nop
-+0+1f0c <[^>]*> nop
-+0+1f10 <[^>]*> nop
-+0+1f14 <[^>]*> nop
-+0+1f18 <[^>]*> nop
-+0+1f1c <[^>]*> nop
-+0+1f20 <[^>]*> nop
-+0+1f24 <[^>]*> nop
-+0+1f28 <[^>]*> nop
-+0+1f2c <[^>]*> nop
-+0+1f30 <[^>]*> nop
-+0+1f34 <[^>]*> nop
-+0+1f38 <[^>]*> nop
-+0+1f3c <[^>]*> nop
-+0+1f40 <[^>]*> nop
-+0+1f44 <[^>]*> nop
-+0+1f48 <[^>]*> nop
-+0+1f4c <[^>]*> nop
-+0+1f50 <[^>]*> nop
-+0+1f54 <[^>]*> nop
-+0+1f58 <[^>]*> nop
-+0+1f5c <[^>]*> nop
-+0+1f60 <[^>]*> nop
-+0+1f64 <[^>]*> nop
-+0+1f68 <[^>]*> nop
-+0+1f6c <[^>]*> nop
-+0+1f70 <[^>]*> nop
-+0+1f74 <[^>]*> nop
-+0+1f78 <[^>]*> nop
-+0+1f7c <[^>]*> nop
-+0+1f80 <[^>]*> nop
-+0+1f84 <[^>]*> nop
-+0+1f88 <[^>]*> nop
-+0+1f8c <[^>]*> nop
-+0+1f90 <[^>]*> nop
-+0+1f94 <[^>]*> nop
-+0+1f98 <[^>]*> nop
-+0+1f9c <[^>]*> nop
-+0+1fa0 <[^>]*> nop
-+0+1fa4 <[^>]*> nop
-+0+1fa8 <[^>]*> nop
-+0+1fac <[^>]*> nop
-+0+1fb0 <[^>]*> nop
-+0+1fb4 <[^>]*> nop
-+0+1fb8 <[^>]*> nop
-+0+1fbc <[^>]*> nop
-+0+1fc0 <[^>]*> nop
-+0+1fc4 <[^>]*> nop
-+0+1fc8 <[^>]*> nop
-+0+1fcc <[^>]*> nop
-+0+1fd0 <[^>]*> nop
-+0+1fd4 <[^>]*> nop
-+0+1fd8 <[^>]*> nop
-+0+1fdc <[^>]*> nop
-+0+1fe0 <[^>]*> nop
-+0+1fe4 <[^>]*> nop
-+0+1fe8 <[^>]*> nop
-+0+1fec <[^>]*> nop
-+0+1ff0 <[^>]*> nop
-+0+1ff4 <[^>]*> nop
-+0+1ff8 <[^>]*> nop
-+0+1ffc <[^>]*> nop
-+0+2000 <[^>]*> nop
-+0+2004 <[^>]*> nop
-+0+2008 <[^>]*> nop
-+0+200c <[^>]*> nop
-+0+2010 <[^>]*> nop
-+0+2014 <[^>]*> nop
-+0+2018 <[^>]*> nop
-+0+201c <[^>]*> nop
-+0+2020 <[^>]*> nop
-+0+2024 <[^>]*> nop
-+0+2028 <[^>]*> nop
-+0+202c <[^>]*> nop
-+0+2030 <[^>]*> nop
-+0+2034 <[^>]*> nop
-+0+2038 <[^>]*> nop
-+0+203c <[^>]*> nop
-+0+2040 <[^>]*> nop
-+0+2044 <[^>]*> nop
-+0+2048 <[^>]*> nop
-+0+204c <[^>]*> nop
-+0+2050 <[^>]*> nop
-+0+2054 <[^>]*> nop
-+0+2058 <[^>]*> nop
-+0+205c <[^>]*> nop
-+0+2060 <[^>]*> nop
-+0+2064 <[^>]*> nop
-+0+2068 <[^>]*> nop
-+0+206c <[^>]*> nop
-+0+2070 <[^>]*> nop
-+0+2074 <[^>]*> nop
-+0+2078 <[^>]*> nop
-+0+207c <[^>]*> nop
-+0+2080 <[^>]*> nop
-+0+2084 <[^>]*> nop
-+0+2088 <[^>]*> nop
-+0+208c <[^>]*> nop
-+0+2090 <[^>]*> nop
-+0+2094 <[^>]*> nop
-+0+2098 <[^>]*> nop
-+0+209c <[^>]*> nop
-+0+20a0 <[^>]*> nop
-+0+20a4 <[^>]*> nop
-+0+20a8 <[^>]*> nop
-+0+20ac <[^>]*> nop
-+0+20b0 <[^>]*> nop
-+0+20b4 <[^>]*> nop
-+0+20b8 <[^>]*> nop
-+0+20bc <[^>]*> nop
-+0+20c0 <[^>]*> nop
-+0+20c4 <[^>]*> nop
-+0+20c8 <[^>]*> nop
-+0+20cc <[^>]*> nop
-+0+20d0 <[^>]*> nop
-+0+20d4 <[^>]*> nop
-+0+20d8 <[^>]*> nop
-+0+20dc <[^>]*> nop
-+0+20e0 <[^>]*> nop
-+0+20e4 <[^>]*> nop
-+0+20e8 <[^>]*> nop
-+0+20ec <[^>]*> nop
-+0+20f0 <[^>]*> nop
-+0+20f4 <[^>]*> nop
-+0+20f8 <[^>]*> nop
-+0+20fc <[^>]*> nop
-+0+2100 <[^>]*> nop
-+0+2104 <[^>]*> nop
-+0+2108 <[^>]*> nop
-+0+210c <[^>]*> nop
-+0+2110 <[^>]*> nop
-+0+2114 <[^>]*> nop
-+0+2118 <[^>]*> nop
-+0+211c <[^>]*> nop
-+0+2120 <[^>]*> nop
-+0+2124 <[^>]*> nop
-+0+2128 <[^>]*> nop
-+0+212c <[^>]*> nop
-+0+2130 <[^>]*> nop
-+0+2134 <[^>]*> nop
-+0+2138 <[^>]*> nop
-+0+213c <[^>]*> nop
-+0+2140 <[^>]*> nop
-+0+2144 <[^>]*> nop
-+0+2148 <[^>]*> nop
-+0+214c <[^>]*> nop
-+0+2150 <[^>]*> nop
-+0+2154 <[^>]*> nop
-+0+2158 <[^>]*> nop
-+0+215c <[^>]*> nop
-+0+2160 <[^>]*> nop
-+0+2164 <[^>]*> nop
-+0+2168 <[^>]*> nop
-+0+216c <[^>]*> nop
-+0+2170 <[^>]*> nop
-+0+2174 <[^>]*> nop
-+0+2178 <[^>]*> nop
-+0+217c <[^>]*> nop
-+0+2180 <[^>]*> nop
-+0+2184 <[^>]*> nop
-+0+2188 <[^>]*> nop
-+0+218c <[^>]*> nop
-+0+2190 <[^>]*> nop
-+0+2194 <[^>]*> nop
-+0+2198 <[^>]*> nop
-+0+219c <[^>]*> nop
-+0+21a0 <[^>]*> nop
-+0+21a4 <[^>]*> nop
-+0+21a8 <[^>]*> nop
-+0+21ac <[^>]*> nop
-+0+21b0 <[^>]*> nop
-+0+21b4 <[^>]*> nop
-+0+21b8 <[^>]*> nop
-+0+21bc <[^>]*> nop
-+0+21c0 <[^>]*> nop
-+0+21c4 <[^>]*> nop
-+0+21c8 <[^>]*> nop
-+0+21cc <[^>]*> nop
-+0+21d0 <[^>]*> nop
-+0+21d4 <[^>]*> nop
-+0+21d8 <[^>]*> nop
-+0+21dc <[^>]*> nop
-+0+21e0 <[^>]*> nop
-+0+21e4 <[^>]*> nop
-+0+21e8 <[^>]*> nop
-+0+21ec <[^>]*> nop
-+0+21f0 <[^>]*> nop
-+0+21f4 <[^>]*> nop
-+0+21f8 <[^>]*> nop
-+0+21fc <[^>]*> nop
-+0+2200 <[^>]*> nop
-+0+2204 <[^>]*> nop
-+0+2208 <[^>]*> nop
-+0+220c <[^>]*> nop
-+0+2210 <[^>]*> nop
-+0+2214 <[^>]*> nop
-+0+2218 <[^>]*> nop
-+0+221c <[^>]*> nop
-+0+2220 <[^>]*> nop
-+0+2224 <[^>]*> nop
-+0+2228 <[^>]*> nop
-+0+222c <[^>]*> nop
-+0+2230 <[^>]*> nop
-+0+2234 <[^>]*> nop
-+0+2238 <[^>]*> nop
-+0+223c <[^>]*> nop
-+0+2240 <[^>]*> nop
-+0+2244 <[^>]*> nop
-+0+2248 <[^>]*> nop
-+0+224c <[^>]*> nop
-+0+2250 <[^>]*> nop
-+0+2254 <[^>]*> nop
-+0+2258 <[^>]*> nop
-+0+225c <[^>]*> nop
-+0+2260 <[^>]*> nop
-+0+2264 <[^>]*> nop
-+0+2268 <[^>]*> nop
-+0+226c <[^>]*> nop
-+0+2270 <[^>]*> nop
-+0+2274 <[^>]*> nop
-+0+2278 <[^>]*> nop
-+0+227c <[^>]*> nop
-+0+2280 <[^>]*> nop
-+0+2284 <[^>]*> nop
-+0+2288 <[^>]*> nop
-+0+228c <[^>]*> nop
-+0+2290 <[^>]*> nop
-+0+2294 <[^>]*> nop
-+0+2298 <[^>]*> nop
-+0+229c <[^>]*> nop
-+0+22a0 <[^>]*> nop
-+0+22a4 <[^>]*> nop
-+0+22a8 <[^>]*> nop
-+0+22ac <[^>]*> nop
-+0+22b0 <[^>]*> nop
-+0+22b4 <[^>]*> nop
-+0+22b8 <[^>]*> nop
-+0+22bc <[^>]*> nop
-+0+22c0 <[^>]*> nop
-+0+22c4 <[^>]*> nop
-+0+22c8 <[^>]*> nop
-+0+22cc <[^>]*> nop
-+0+22d0 <[^>]*> nop
-+0+22d4 <[^>]*> nop
-+0+22d8 <[^>]*> nop
-+0+22dc <[^>]*> nop
-+0+22e0 <[^>]*> nop
-+0+22e4 <[^>]*> nop
-+0+22e8 <[^>]*> nop
-+0+22ec <[^>]*> nop
-+0+22f0 <[^>]*> nop
-+0+22f4 <[^>]*> nop
-+0+22f8 <[^>]*> nop
-+0+22fc <[^>]*> nop
-+0+2300 <[^>]*> nop
-+0+2304 <[^>]*> nop
-+0+2308 <[^>]*> nop
-+0+230c <[^>]*> nop
-+0+2310 <[^>]*> nop
-+0+2314 <[^>]*> nop
-+0+2318 <[^>]*> nop
-+0+231c <[^>]*> nop
-+0+2320 <[^>]*> nop
-+0+2324 <[^>]*> nop
-+0+2328 <[^>]*> nop
-+0+232c <[^>]*> nop
-+0+2330 <[^>]*> nop
-+0+2334 <[^>]*> nop
-+0+2338 <[^>]*> nop
-+0+233c <[^>]*> nop
-+0+2340 <[^>]*> nop
-+0+2344 <[^>]*> nop
-+0+2348 <[^>]*> nop
-+0+234c <[^>]*> nop
-+0+2350 <[^>]*> nop
-+0+2354 <[^>]*> nop
-+0+2358 <[^>]*> nop
-+0+235c <[^>]*> nop
-+0+2360 <[^>]*> nop
-+0+2364 <[^>]*> nop
-+0+2368 <[^>]*> nop
-+0+236c <[^>]*> nop
-+0+2370 <[^>]*> nop
-+0+2374 <[^>]*> nop
-+0+2378 <[^>]*> nop
-+0+237c <[^>]*> nop
-+0+2380 <[^>]*> nop
-+0+2384 <[^>]*> nop
-+0+2388 <[^>]*> nop
-+0+238c <[^>]*> nop
-+0+2390 <[^>]*> nop
-+0+2394 <[^>]*> nop
-+0+2398 <[^>]*> nop
-+0+239c <[^>]*> nop
-+0+23a0 <[^>]*> nop
-+0+23a4 <[^>]*> nop
-+0+23a8 <[^>]*> nop
-+0+23ac <[^>]*> nop
-+0+23b0 <[^>]*> nop
-+0+23b4 <[^>]*> nop
-+0+23b8 <[^>]*> nop
-+0+23bc <[^>]*> nop
-+0+23c0 <[^>]*> nop
-+0+23c4 <[^>]*> nop
-+0+23c8 <[^>]*> nop
-+0+23cc <[^>]*> nop
-+0+23d0 <[^>]*> nop
-+0+23d4 <[^>]*> nop
-+0+23d8 <[^>]*> nop
-+0+23dc <[^>]*> nop
-+0+23e0 <[^>]*> nop
-+0+23e4 <[^>]*> nop
-+0+23e8 <[^>]*> nop
-+0+23ec <[^>]*> nop
-+0+23f0 <[^>]*> nop
-+0+23f4 <[^>]*> nop
-+0+23f8 <[^>]*> nop
-+0+23fc <[^>]*> nop
-+0+2400 <[^>]*> nop
-+0+2404 <[^>]*> nop
-+0+2408 <[^>]*> nop
-+0+240c <[^>]*> nop
-+0+2410 <[^>]*> nop
-+0+2414 <[^>]*> nop
-+0+2418 <[^>]*> nop
-+0+241c <[^>]*> nop
-+0+2420 <[^>]*> nop
-+0+2424 <[^>]*> nop
-+0+2428 <[^>]*> nop
-+0+242c <[^>]*> nop
-+0+2430 <[^>]*> nop
-+0+2434 <[^>]*> nop
-+0+2438 <[^>]*> nop
-+0+243c <[^>]*> nop
-+0+2440 <[^>]*> nop
-+0+2444 <[^>]*> nop
-+0+2448 <[^>]*> nop
-+0+244c <[^>]*> nop
-+0+2450 <[^>]*> nop
-+0+2454 <[^>]*> nop
-+0+2458 <[^>]*> nop
-+0+245c <[^>]*> nop
-+0+2460 <[^>]*> nop
-+0+2464 <[^>]*> nop
-+0+2468 <[^>]*> nop
-+0+246c <[^>]*> nop
-+0+2470 <[^>]*> nop
-+0+2474 <[^>]*> nop
-+0+2478 <[^>]*> nop
-+0+247c <[^>]*> nop
-+0+2480 <[^>]*> nop
-+0+2484 <[^>]*> nop
-+0+2488 <[^>]*> nop
-+0+248c <[^>]*> nop
-+0+2490 <[^>]*> nop
-+0+2494 <[^>]*> nop
-+0+2498 <[^>]*> nop
-+0+249c <[^>]*> nop
-+0+24a0 <[^>]*> nop
-+0+24a4 <[^>]*> nop
-+0+24a8 <[^>]*> nop
-+0+24ac <[^>]*> nop
-+0+24b0 <[^>]*> nop
-+0+24b4 <[^>]*> nop
-+0+24b8 <[^>]*> nop
-+0+24bc <[^>]*> nop
-+0+24c0 <[^>]*> nop
-+0+24c4 <[^>]*> nop
-+0+24c8 <[^>]*> nop
-+0+24cc <[^>]*> nop
-+0+24d0 <[^>]*> nop
-+0+24d4 <[^>]*> nop
-+0+24d8 <[^>]*> nop
-+0+24dc <[^>]*> nop
-+0+24e0 <[^>]*> nop
-+0+24e4 <[^>]*> nop
-+0+24e8 <[^>]*> nop
-+0+24ec <[^>]*> nop
-+0+24f0 <[^>]*> nop
-+0+24f4 <[^>]*> nop
-+0+24f8 <[^>]*> nop
-+0+24fc <[^>]*> nop
-+0+2500 <[^>]*> nop
-+0+2504 <[^>]*> nop
-+0+2508 <[^>]*> nop
-+0+250c <[^>]*> nop
-+0+2510 <[^>]*> nop
-+0+2514 <[^>]*> nop
-+0+2518 <[^>]*> nop
-+0+251c <[^>]*> nop
-+0+2520 <[^>]*> nop
-+0+2524 <[^>]*> nop
-+0+2528 <[^>]*> nop
-+0+252c <[^>]*> nop
-+0+2530 <[^>]*> nop
-+0+2534 <[^>]*> nop
-+0+2538 <[^>]*> nop
-+0+253c <[^>]*> nop
-+0+2540 <[^>]*> nop
-+0+2544 <[^>]*> nop
-+0+2548 <[^>]*> nop
-+0+254c <[^>]*> nop
-+0+2550 <[^>]*> nop
-+0+2554 <[^>]*> nop
-+0+2558 <[^>]*> nop
-+0+255c <[^>]*> nop
-+0+2560 <[^>]*> nop
-+0+2564 <[^>]*> nop
-+0+2568 <[^>]*> nop
-+0+256c <[^>]*> nop
-+0+2570 <[^>]*> nop
-+0+2574 <[^>]*> nop
-+0+2578 <[^>]*> nop
-+0+257c <[^>]*> nop
-+0+2580 <[^>]*> nop
-+0+2584 <[^>]*> nop
-+0+2588 <[^>]*> nop
-+0+258c <[^>]*> nop
-+0+2590 <[^>]*> nop
-+0+2594 <[^>]*> nop
-+0+2598 <[^>]*> nop
-+0+259c <[^>]*> nop
-+0+25a0 <[^>]*> nop
-+0+25a4 <[^>]*> nop
-+0+25a8 <[^>]*> nop
-+0+25ac <[^>]*> nop
-+0+25b0 <[^>]*> nop
-+0+25b4 <[^>]*> nop
-+0+25b8 <[^>]*> nop
-+0+25bc <[^>]*> nop
-+0+25c0 <[^>]*> nop
-+0+25c4 <[^>]*> nop
-+0+25c8 <[^>]*> nop
-+0+25cc <[^>]*> nop
-+0+25d0 <[^>]*> nop
-+0+25d4 <[^>]*> nop
-+0+25d8 <[^>]*> nop
-+0+25dc <[^>]*> nop
-+0+25e0 <[^>]*> nop
-+0+25e4 <[^>]*> nop
-+0+25e8 <[^>]*> nop
-+0+25ec <[^>]*> nop
-+0+25f0 <[^>]*> nop
-+0+25f4 <[^>]*> nop
-+0+25f8 <[^>]*> nop
-+0+25fc <[^>]*> nop
-+0+2600 <[^>]*> nop
-+0+2604 <[^>]*> nop
-+0+2608 <[^>]*> nop
-+0+260c <[^>]*> nop
-+0+2610 <[^>]*> nop
-+0+2614 <[^>]*> nop
-+0+2618 <[^>]*> nop
-+0+261c <[^>]*> nop
-+0+2620 <[^>]*> nop
-+0+2624 <[^>]*> nop
-+0+2628 <[^>]*> nop
-+0+262c <[^>]*> nop
-+0+2630 <[^>]*> nop
-+0+2634 <[^>]*> nop
-+0+2638 <[^>]*> nop
-+0+263c <[^>]*> nop
-+0+2640 <[^>]*> nop
-+0+2644 <[^>]*> nop
-+0+2648 <[^>]*> nop
-+0+264c <[^>]*> nop
-+0+2650 <[^>]*> nop
-+0+2654 <[^>]*> nop
-+0+2658 <[^>]*> nop
-+0+265c <[^>]*> nop
-+0+2660 <[^>]*> nop
-+0+2664 <[^>]*> nop
-+0+2668 <[^>]*> nop
-+0+266c <[^>]*> nop
-+0+2670 <[^>]*> nop
-+0+2674 <[^>]*> nop
-+0+2678 <[^>]*> nop
-+0+267c <[^>]*> nop
-+0+2680 <[^>]*> nop
-+0+2684 <[^>]*> nop
-+0+2688 <[^>]*> nop
-+0+268c <[^>]*> nop
-+0+2690 <[^>]*> nop
-+0+2694 <[^>]*> nop
-+0+2698 <[^>]*> nop
-+0+269c <[^>]*> nop
-+0+26a0 <[^>]*> nop
-+0+26a4 <[^>]*> nop
-+0+26a8 <[^>]*> nop
-+0+26ac <[^>]*> nop
-+0+26b0 <[^>]*> nop
-+0+26b4 <[^>]*> nop
-+0+26b8 <[^>]*> nop
-+0+26bc <[^>]*> nop
-+0+26c0 <[^>]*> nop
-+0+26c4 <[^>]*> nop
-+0+26c8 <[^>]*> nop
-+0+26cc <[^>]*> nop
-+0+26d0 <[^>]*> nop
-+0+26d4 <[^>]*> nop
-+0+26d8 <[^>]*> nop
-+0+26dc <[^>]*> nop
-+0+26e0 <[^>]*> nop
-+0+26e4 <[^>]*> nop
-+0+26e8 <[^>]*> nop
-+0+26ec <[^>]*> nop
-+0+26f0 <[^>]*> nop
-+0+26f4 <[^>]*> nop
-+0+26f8 <[^>]*> nop
-+0+26fc <[^>]*> nop
-+0+2700 <[^>]*> nop
-+0+2704 <[^>]*> nop
-+0+2708 <[^>]*> nop
-+0+270c <[^>]*> nop
-+0+2710 <[^>]*> nop
-+0+2714 <[^>]*> nop
-+0+2718 <[^>]*> nop
-+0+271c <[^>]*> nop
-+0+2720 <[^>]*> nop
-+0+2724 <[^>]*> nop
-+0+2728 <[^>]*> nop
-+0+272c <[^>]*> nop
-+0+2730 <[^>]*> nop
-+0+2734 <[^>]*> nop
-+0+2738 <[^>]*> nop
-+0+273c <[^>]*> nop
-+0+2740 <[^>]*> nop
-+0+2744 <[^>]*> nop
-+0+2748 <[^>]*> nop
-+0+274c <[^>]*> nop
-+0+2750 <[^>]*> nop
-+0+2754 <[^>]*> nop
-+0+2758 <[^>]*> nop
-+0+275c <[^>]*> nop
-+0+2760 <[^>]*> nop
-+0+2764 <[^>]*> nop
-+0+2768 <[^>]*> nop
-+0+276c <[^>]*> nop
-+0+2770 <[^>]*> nop
-+0+2774 <[^>]*> nop
-+0+2778 <[^>]*> nop
-+0+277c <[^>]*> nop
-+0+2780 <[^>]*> nop
-+0+2784 <[^>]*> nop
-+0+2788 <[^>]*> nop
-+0+278c <[^>]*> nop
-+0+2790 <[^>]*> nop
-+0+2794 <[^>]*> nop
-+0+2798 <[^>]*> nop
-+0+279c <[^>]*> nop
-+0+27a0 <[^>]*> nop
-+0+27a4 <[^>]*> nop
-+0+27a8 <[^>]*> nop
-+0+27ac <[^>]*> nop
-+0+27b0 <[^>]*> nop
-+0+27b4 <[^>]*> nop
-+0+27b8 <[^>]*> nop
-+0+27bc <[^>]*> nop
-+0+27c0 <[^>]*> nop
-+0+27c4 <[^>]*> nop
-+0+27c8 <[^>]*> nop
-+0+27cc <[^>]*> nop
-+0+27d0 <[^>]*> nop
-+0+27d4 <[^>]*> nop
-+0+27d8 <[^>]*> nop
-+0+27dc <[^>]*> nop
-+0+27e0 <[^>]*> nop
-+0+27e4 <[^>]*> nop
-+0+27e8 <[^>]*> nop
-+0+27ec <[^>]*> nop
-+0+27f0 <[^>]*> nop
-+0+27f4 <[^>]*> nop
-+0+27f8 <[^>]*> nop
-+0+27fc <[^>]*> nop
-+0+2800 <[^>]*> nop
-+0+2804 <[^>]*> nop
-+0+2808 <[^>]*> nop
-+0+280c <[^>]*> nop
-+0+2810 <[^>]*> nop
-+0+2814 <[^>]*> nop
-+0+2818 <[^>]*> nop
-+0+281c <[^>]*> nop
-+0+2820 <[^>]*> nop
-+0+2824 <[^>]*> nop
-+0+2828 <[^>]*> nop
-+0+282c <[^>]*> nop
-+0+2830 <[^>]*> nop
-+0+2834 <[^>]*> nop
-+0+2838 <[^>]*> nop
-+0+283c <[^>]*> nop
-+0+2840 <[^>]*> nop
-+0+2844 <[^>]*> nop
-+0+2848 <[^>]*> nop
-+0+284c <[^>]*> nop
-+0+2850 <[^>]*> nop
-+0+2854 <[^>]*> nop
-+0+2858 <[^>]*> nop
-+0+285c <[^>]*> nop
-+0+2860 <[^>]*> nop
-+0+2864 <[^>]*> nop
-+0+2868 <[^>]*> nop
-+0+286c <[^>]*> nop
-+0+2870 <[^>]*> nop
-+0+2874 <[^>]*> nop
-+0+2878 <[^>]*> nop
-+0+287c <[^>]*> nop
-+0+2880 <[^>]*> nop
-+0+2884 <[^>]*> nop
-+0+2888 <[^>]*> nop
-+0+288c <[^>]*> nop
-+0+2890 <[^>]*> nop
-+0+2894 <[^>]*> nop
-+0+2898 <[^>]*> nop
-+0+289c <[^>]*> nop
-+0+28a0 <[^>]*> nop
-+0+28a4 <[^>]*> nop
-+0+28a8 <[^>]*> nop
-+0+28ac <[^>]*> nop
-+0+28b0 <[^>]*> nop
-+0+28b4 <[^>]*> nop
-+0+28b8 <[^>]*> nop
-+0+28bc <[^>]*> nop
-+0+28c0 <[^>]*> nop
-+0+28c4 <[^>]*> nop
-+0+28c8 <[^>]*> nop
-+0+28cc <[^>]*> nop
-+0+28d0 <[^>]*> nop
-+0+28d4 <[^>]*> nop
-+0+28d8 <[^>]*> nop
-+0+28dc <[^>]*> nop
-+0+28e0 <[^>]*> nop
-+0+28e4 <[^>]*> nop
-+0+28e8 <[^>]*> nop
-+0+28ec <[^>]*> nop
-+0+28f0 <[^>]*> nop
-+0+28f4 <[^>]*> nop
-+0+28f8 <[^>]*> nop
-+0+28fc <[^>]*> nop
-+0+2900 <[^>]*> nop
-+0+2904 <[^>]*> nop
-+0+2908 <[^>]*> nop
-+0+290c <[^>]*> nop
-+0+2910 <[^>]*> nop
-+0+2914 <[^>]*> nop
-+0+2918 <[^>]*> nop
-+0+291c <[^>]*> nop
-+0+2920 <[^>]*> nop
-+0+2924 <[^>]*> nop
-+0+2928 <[^>]*> nop
-+0+292c <[^>]*> nop
-+0+2930 <[^>]*> nop
-+0+2934 <[^>]*> nop
-+0+2938 <[^>]*> nop
-+0+293c <[^>]*> nop
-+0+2940 <[^>]*> nop
-+0+2944 <[^>]*> nop
-+0+2948 <[^>]*> nop
-+0+294c <[^>]*> nop
-+0+2950 <[^>]*> nop
-+0+2954 <[^>]*> nop
-+0+2958 <[^>]*> nop
-+0+295c <[^>]*> nop
-+0+2960 <[^>]*> nop
-+0+2964 <[^>]*> nop
-+0+2968 <[^>]*> nop
-+0+296c <[^>]*> nop
-+0+2970 <[^>]*> nop
-+0+2974 <[^>]*> nop
-+0+2978 <[^>]*> nop
-+0+297c <[^>]*> nop
-+0+2980 <[^>]*> nop
-+0+2984 <[^>]*> nop
-+0+2988 <[^>]*> nop
-+0+298c <[^>]*> nop
-+0+2990 <[^>]*> nop
-+0+2994 <[^>]*> nop
-+0+2998 <[^>]*> nop
-+0+299c <[^>]*> nop
-+0+29a0 <[^>]*> nop
-+0+29a4 <[^>]*> nop
-+0+29a8 <[^>]*> nop
-+0+29ac <[^>]*> nop
-+0+29b0 <[^>]*> nop
-+0+29b4 <[^>]*> nop
-+0+29b8 <[^>]*> nop
-+0+29bc <[^>]*> nop
-+0+29c0 <[^>]*> nop
-+0+29c4 <[^>]*> nop
-+0+29c8 <[^>]*> nop
-+0+29cc <[^>]*> nop
-+0+29d0 <[^>]*> nop
-+0+29d4 <[^>]*> nop
-+0+29d8 <[^>]*> nop
-+0+29dc <[^>]*> nop
-+0+29e0 <[^>]*> nop
-+0+29e4 <[^>]*> nop
-+0+29e8 <[^>]*> nop
-+0+29ec <[^>]*> nop
-+0+29f0 <[^>]*> nop
-+0+29f4 <[^>]*> nop
-+0+29f8 <[^>]*> nop
-+0+29fc <[^>]*> nop
-+0+2a00 <[^>]*> nop
-+0+2a04 <[^>]*> nop
-+0+2a08 <[^>]*> nop
-+0+2a0c <[^>]*> nop
-+0+2a10 <[^>]*> nop
-+0+2a14 <[^>]*> nop
-+0+2a18 <[^>]*> nop
-+0+2a1c <[^>]*> nop
-+0+2a20 <[^>]*> nop
-+0+2a24 <[^>]*> nop
-+0+2a28 <[^>]*> nop
-+0+2a2c <[^>]*> nop
-+0+2a30 <[^>]*> nop
-+0+2a34 <[^>]*> nop
-+0+2a38 <[^>]*> nop
-+0+2a3c <[^>]*> nop
-+0+2a40 <[^>]*> nop
-+0+2a44 <[^>]*> nop
-+0+2a48 <[^>]*> nop
-+0+2a4c <[^>]*> nop
-+0+2a50 <[^>]*> nop
-+0+2a54 <[^>]*> nop
-+0+2a58 <[^>]*> nop
-+0+2a5c <[^>]*> nop
-+0+2a60 <[^>]*> nop
-+0+2a64 <[^>]*> nop
-+0+2a68 <[^>]*> nop
-+0+2a6c <[^>]*> nop
-+0+2a70 <[^>]*> nop
-+0+2a74 <[^>]*> nop
-+0+2a78 <[^>]*> nop
-+0+2a7c <[^>]*> nop
-+0+2a80 <[^>]*> nop
-+0+2a84 <[^>]*> nop
-+0+2a88 <[^>]*> nop
-+0+2a8c <[^>]*> nop
-+0+2a90 <[^>]*> nop
-+0+2a94 <[^>]*> nop
-+0+2a98 <[^>]*> nop
-+0+2a9c <[^>]*> nop
-+0+2aa0 <[^>]*> nop
-+0+2aa4 <[^>]*> nop
-+0+2aa8 <[^>]*> nop
-+0+2aac <[^>]*> nop
-+0+2ab0 <[^>]*> nop
-+0+2ab4 <[^>]*> nop
-+0+2ab8 <[^>]*> nop
-+0+2abc <[^>]*> nop
-+0+2ac0 <[^>]*> nop
-+0+2ac4 <[^>]*> nop
-+0+2ac8 <[^>]*> nop
-+0+2acc <[^>]*> nop
-+0+2ad0 <[^>]*> nop
-+0+2ad4 <[^>]*> nop
-+0+2ad8 <[^>]*> nop
-+0+2adc <[^>]*> nop
-+0+2ae0 <[^>]*> nop
-+0+2ae4 <[^>]*> nop
-+0+2ae8 <[^>]*> nop
-+0+2aec <[^>]*> nop
-+0+2af0 <[^>]*> nop
-+0+2af4 <[^>]*> nop
-+0+2af8 <[^>]*> nop
-+0+2afc <[^>]*> nop
-+0+2b00 <[^>]*> nop
-+0+2b04 <[^>]*> nop
-+0+2b08 <[^>]*> nop
-+0+2b0c <[^>]*> nop
-+0+2b10 <[^>]*> nop
-+0+2b14 <[^>]*> nop
-+0+2b18 <[^>]*> nop
-+0+2b1c <[^>]*> nop
-+0+2b20 <[^>]*> nop
-+0+2b24 <[^>]*> nop
-+0+2b28 <[^>]*> nop
-+0+2b2c <[^>]*> nop
-+0+2b30 <[^>]*> nop
-+0+2b34 <[^>]*> nop
-+0+2b38 <[^>]*> nop
-+0+2b3c <[^>]*> nop
-+0+2b40 <[^>]*> nop
-+0+2b44 <[^>]*> nop
-+0+2b48 <[^>]*> nop
-+0+2b4c <[^>]*> nop
-+0+2b50 <[^>]*> nop
-+0+2b54 <[^>]*> nop
-+0+2b58 <[^>]*> nop
-+0+2b5c <[^>]*> nop
-+0+2b60 <[^>]*> nop
-+0+2b64 <[^>]*> nop
-+0+2b68 <[^>]*> nop
-+0+2b6c <[^>]*> nop
-+0+2b70 <[^>]*> nop
-+0+2b74 <[^>]*> nop
-+0+2b78 <[^>]*> nop
-+0+2b7c <[^>]*> nop
-+0+2b80 <[^>]*> nop
-+0+2b84 <[^>]*> nop
-+0+2b88 <[^>]*> nop
-+0+2b8c <[^>]*> nop
-+0+2b90 <[^>]*> nop
-+0+2b94 <[^>]*> nop
-+0+2b98 <[^>]*> nop
-+0+2b9c <[^>]*> nop
-+0+2ba0 <[^>]*> nop
-+0+2ba4 <[^>]*> nop
-+0+2ba8 <[^>]*> nop
-+0+2bac <[^>]*> nop
-+0+2bb0 <[^>]*> nop
-+0+2bb4 <[^>]*> nop
-+0+2bb8 <[^>]*> nop
-+0+2bbc <[^>]*> nop
-+0+2bc0 <[^>]*> nop
-+0+2bc4 <[^>]*> nop
-+0+2bc8 <[^>]*> nop
-+0+2bcc <[^>]*> nop
-+0+2bd0 <[^>]*> nop
-+0+2bd4 <[^>]*> nop
-+0+2bd8 <[^>]*> nop
-+0+2bdc <[^>]*> nop
-+0+2be0 <[^>]*> nop
-+0+2be4 <[^>]*> nop
-+0+2be8 <[^>]*> nop
-+0+2bec <[^>]*> nop
-+0+2bf0 <[^>]*> nop
-+0+2bf4 <[^>]*> nop
-+0+2bf8 <[^>]*> nop
-+0+2bfc <[^>]*> nop
-+0+2c00 <[^>]*> nop
-+0+2c04 <[^>]*> nop
-+0+2c08 <[^>]*> nop
-+0+2c0c <[^>]*> nop
-+0+2c10 <[^>]*> nop
-+0+2c14 <[^>]*> nop
-+0+2c18 <[^>]*> nop
-+0+2c1c <[^>]*> nop
-+0+2c20 <[^>]*> nop
-+0+2c24 <[^>]*> nop
-+0+2c28 <[^>]*> nop
-+0+2c2c <[^>]*> nop
-+0+2c30 <[^>]*> nop
-+0+2c34 <[^>]*> nop
-+0+2c38 <[^>]*> nop
-+0+2c3c <[^>]*> nop
-+0+2c40 <[^>]*> nop
-+0+2c44 <[^>]*> nop
-+0+2c48 <[^>]*> nop
-+0+2c4c <[^>]*> nop
-+0+2c50 <[^>]*> nop
-+0+2c54 <[^>]*> nop
-+0+2c58 <[^>]*> nop
-+0+2c5c <[^>]*> nop
-+0+2c60 <[^>]*> nop
-+0+2c64 <[^>]*> nop
-+0+2c68 <[^>]*> nop
-+0+2c6c <[^>]*> nop
-+0+2c70 <[^>]*> nop
-+0+2c74 <[^>]*> nop
-+0+2c78 <[^>]*> nop
-+0+2c7c <[^>]*> nop
-+0+2c80 <[^>]*> nop
-+0+2c84 <[^>]*> nop
-+0+2c88 <[^>]*> nop
-+0+2c8c <[^>]*> nop
-+0+2c90 <[^>]*> nop
-+0+2c94 <[^>]*> nop
-+0+2c98 <[^>]*> nop
-+0+2c9c <[^>]*> nop
-+0+2ca0 <[^>]*> nop
-+0+2ca4 <[^>]*> nop
-+0+2ca8 <[^>]*> nop
-+0+2cac <[^>]*> nop
-+0+2cb0 <[^>]*> nop
-+0+2cb4 <[^>]*> nop
-+0+2cb8 <[^>]*> nop
-+0+2cbc <[^>]*> nop
-+0+2cc0 <[^>]*> nop
-+0+2cc4 <[^>]*> nop
-+0+2cc8 <[^>]*> nop
-+0+2ccc <[^>]*> nop
-+0+2cd0 <[^>]*> nop
-+0+2cd4 <[^>]*> nop
-+0+2cd8 <[^>]*> nop
-+0+2cdc <[^>]*> nop
-+0+2ce0 <[^>]*> nop
-+0+2ce4 <[^>]*> nop
-+0+2ce8 <[^>]*> nop
-+0+2cec <[^>]*> nop
-+0+2cf0 <[^>]*> nop
-+0+2cf4 <[^>]*> nop
-+0+2cf8 <[^>]*> nop
-+0+2cfc <[^>]*> nop
-+0+2d00 <[^>]*> nop
-+0+2d04 <[^>]*> nop
-+0+2d08 <[^>]*> nop
-+0+2d0c <[^>]*> nop
-+0+2d10 <[^>]*> nop
-+0+2d14 <[^>]*> nop
-+0+2d18 <[^>]*> nop
-+0+2d1c <[^>]*> nop
-+0+2d20 <[^>]*> nop
-+0+2d24 <[^>]*> nop
-+0+2d28 <[^>]*> nop
-+0+2d2c <[^>]*> nop
-+0+2d30 <[^>]*> nop
-+0+2d34 <[^>]*> nop
-+0+2d38 <[^>]*> nop
-+0+2d3c <[^>]*> nop
-+0+2d40 <[^>]*> nop
-+0+2d44 <[^>]*> nop
-+0+2d48 <[^>]*> nop
-+0+2d4c <[^>]*> nop
-+0+2d50 <[^>]*> nop
-+0+2d54 <[^>]*> nop
-+0+2d58 <[^>]*> nop
-+0+2d5c <[^>]*> nop
-+0+2d60 <[^>]*> nop
-+0+2d64 <[^>]*> nop
-+0+2d68 <[^>]*> nop
-+0+2d6c <[^>]*> nop
-+0+2d70 <[^>]*> nop
-+0+2d74 <[^>]*> nop
-+0+2d78 <[^>]*> nop
-+0+2d7c <[^>]*> nop
-+0+2d80 <[^>]*> nop
-+0+2d84 <[^>]*> nop
-+0+2d88 <[^>]*> nop
-+0+2d8c <[^>]*> nop
-+0+2d90 <[^>]*> nop
-+0+2d94 <[^>]*> nop
-+0+2d98 <[^>]*> nop
-+0+2d9c <[^>]*> nop
-+0+2da0 <[^>]*> nop
-+0+2da4 <[^>]*> nop
-+0+2da8 <[^>]*> nop
-+0+2dac <[^>]*> nop
-+0+2db0 <[^>]*> nop
-+0+2db4 <[^>]*> nop
-+0+2db8 <[^>]*> nop
-+0+2dbc <[^>]*> nop
-+0+2dc0 <[^>]*> nop
-+0+2dc4 <[^>]*> nop
-+0+2dc8 <[^>]*> nop
-+0+2dcc <[^>]*> nop
-+0+2dd0 <[^>]*> nop
-+0+2dd4 <[^>]*> nop
-+0+2dd8 <[^>]*> nop
-+0+2ddc <[^>]*> nop
-+0+2de0 <[^>]*> nop
-+0+2de4 <[^>]*> nop
-+0+2de8 <[^>]*> nop
-+0+2dec <[^>]*> nop
-+0+2df0 <[^>]*> nop
-+0+2df4 <[^>]*> nop
-+0+2df8 <[^>]*> nop
-+0+2dfc <[^>]*> nop
-+0+2e00 <[^>]*> nop
-+0+2e04 <[^>]*> nop
-+0+2e08 <[^>]*> nop
-+0+2e0c <[^>]*> nop
-+0+2e10 <[^>]*> nop
-+0+2e14 <[^>]*> nop
-+0+2e18 <[^>]*> nop
-+0+2e1c <[^>]*> nop
-+0+2e20 <[^>]*> nop
-+0+2e24 <[^>]*> nop
-+0+2e28 <[^>]*> nop
-+0+2e2c <[^>]*> nop
-+0+2e30 <[^>]*> nop
-+0+2e34 <[^>]*> nop
-+0+2e38 <[^>]*> nop
-+0+2e3c <[^>]*> nop
-+0+2e40 <[^>]*> nop
-+0+2e44 <[^>]*> nop
-+0+2e48 <[^>]*> nop
-+0+2e4c <[^>]*> nop
-+0+2e50 <[^>]*> nop
-+0+2e54 <[^>]*> nop
-+0+2e58 <[^>]*> nop
-+0+2e5c <[^>]*> nop
-+0+2e60 <[^>]*> nop
-+0+2e64 <[^>]*> nop
-+0+2e68 <[^>]*> nop
-+0+2e6c <[^>]*> nop
-+0+2e70 <[^>]*> nop
-+0+2e74 <[^>]*> nop
-+0+2e78 <[^>]*> nop
-+0+2e7c <[^>]*> nop
-+0+2e80 <[^>]*> nop
-+0+2e84 <[^>]*> nop
-+0+2e88 <[^>]*> nop
-+0+2e8c <[^>]*> nop
-+0+2e90 <[^>]*> nop
-+0+2e94 <[^>]*> nop
-+0+2e98 <[^>]*> nop
-+0+2e9c <[^>]*> nop
-+0+2ea0 <[^>]*> nop
-+0+2ea4 <[^>]*> nop
-+0+2ea8 <[^>]*> nop
-+0+2eac <[^>]*> nop
-+0+2eb0 <[^>]*> nop
-+0+2eb4 <[^>]*> nop
-+0+2eb8 <[^>]*> nop
-+0+2ebc <[^>]*> nop
-+0+2ec0 <[^>]*> nop
-+0+2ec4 <[^>]*> nop
-+0+2ec8 <[^>]*> nop
-+0+2ecc <[^>]*> nop
-+0+2ed0 <[^>]*> nop
-+0+2ed4 <[^>]*> nop
-+0+2ed8 <[^>]*> nop
-+0+2edc <[^>]*> nop
-+0+2ee0 <[^>]*> nop
-+0+2ee4 <[^>]*> nop
-+0+2ee8 <[^>]*> nop
-+0+2eec <[^>]*> nop
-+0+2ef0 <[^>]*> nop
-+0+2ef4 <[^>]*> nop
-+0+2ef8 <[^>]*> nop
-+0+2efc <[^>]*> nop
-+0+2f00 <[^>]*> nop
-+0+2f04 <[^>]*> nop
-+0+2f08 <[^>]*> nop
-+0+2f0c <[^>]*> nop
-+0+2f10 <[^>]*> nop
-+0+2f14 <[^>]*> nop
-+0+2f18 <[^>]*> nop
-+0+2f1c <[^>]*> nop
-+0+2f20 <[^>]*> nop
-+0+2f24 <[^>]*> nop
-+0+2f28 <[^>]*> nop
-+0+2f2c <[^>]*> nop
-+0+2f30 <[^>]*> nop
-+0+2f34 <[^>]*> nop
-+0+2f38 <[^>]*> nop
-+0+2f3c <[^>]*> nop
-+0+2f40 <[^>]*> nop
-+0+2f44 <[^>]*> nop
-+0+2f48 <[^>]*> nop
-+0+2f4c <[^>]*> nop
-+0+2f50 <[^>]*> nop
-+0+2f54 <[^>]*> nop
-+0+2f58 <[^>]*> nop
-+0+2f5c <[^>]*> nop
-+0+2f60 <[^>]*> nop
-+0+2f64 <[^>]*> nop
-+0+2f68 <[^>]*> nop
-+0+2f6c <[^>]*> nop
-+0+2f70 <[^>]*> nop
-+0+2f74 <[^>]*> nop
-+0+2f78 <[^>]*> nop
-+0+2f7c <[^>]*> nop
-+0+2f80 <[^>]*> nop
-+0+2f84 <[^>]*> nop
-+0+2f88 <[^>]*> nop
-+0+2f8c <[^>]*> nop
-+0+2f90 <[^>]*> nop
-+0+2f94 <[^>]*> nop
-+0+2f98 <[^>]*> nop
-+0+2f9c <[^>]*> nop
-+0+2fa0 <[^>]*> nop
-+0+2fa4 <[^>]*> nop
-+0+2fa8 <[^>]*> nop
-+0+2fac <[^>]*> nop
-+0+2fb0 <[^>]*> nop
-+0+2fb4 <[^>]*> nop
-+0+2fb8 <[^>]*> nop
-+0+2fbc <[^>]*> nop
-+0+2fc0 <[^>]*> nop
-+0+2fc4 <[^>]*> nop
-+0+2fc8 <[^>]*> nop
-+0+2fcc <[^>]*> nop
-+0+2fd0 <[^>]*> nop
-+0+2fd4 <[^>]*> nop
-+0+2fd8 <[^>]*> nop
-+0+2fdc <[^>]*> nop
-+0+2fe0 <[^>]*> nop
-+0+2fe4 <[^>]*> nop
-+0+2fe8 <[^>]*> nop
-+0+2fec <[^>]*> nop
-+0+2ff0 <[^>]*> nop
-+0+2ff4 <[^>]*> nop
-+0+2ff8 <[^>]*> nop
-+0+2ffc <[^>]*> nop
-+0+3000 <[^>]*> nop
-+0+3004 <[^>]*> nop
-+0+3008 <[^>]*> nop
-+0+300c <[^>]*> nop
-+0+3010 <[^>]*> nop
-+0+3014 <[^>]*> nop
-+0+3018 <[^>]*> nop
-+0+301c <[^>]*> nop
-+0+3020 <[^>]*> nop
-+0+3024 <[^>]*> nop
-+0+3028 <[^>]*> nop
-+0+302c <[^>]*> nop
-+0+3030 <[^>]*> nop
-+0+3034 <[^>]*> nop
-+0+3038 <[^>]*> nop
-+0+303c <[^>]*> nop
-+0+3040 <[^>]*> nop
-+0+3044 <[^>]*> nop
-+0+3048 <[^>]*> nop
-+0+304c <[^>]*> nop
-+0+3050 <[^>]*> nop
-+0+3054 <[^>]*> nop
-+0+3058 <[^>]*> nop
-+0+305c <[^>]*> nop
-+0+3060 <[^>]*> nop
-+0+3064 <[^>]*> nop
-+0+3068 <[^>]*> nop
-+0+306c <[^>]*> nop
-+0+3070 <[^>]*> nop
-+0+3074 <[^>]*> nop
-+0+3078 <[^>]*> nop
-+0+307c <[^>]*> nop
-+0+3080 <[^>]*> nop
-+0+3084 <[^>]*> nop
-+0+3088 <[^>]*> nop
-+0+308c <[^>]*> nop
-+0+3090 <[^>]*> nop
-+0+3094 <[^>]*> nop
-+0+3098 <[^>]*> nop
-+0+309c <[^>]*> nop
-+0+30a0 <[^>]*> nop
-+0+30a4 <[^>]*> nop
-+0+30a8 <[^>]*> nop
-+0+30ac <[^>]*> nop
-+0+30b0 <[^>]*> nop
-+0+30b4 <[^>]*> nop
-+0+30b8 <[^>]*> nop
-+0+30bc <[^>]*> nop
-+0+30c0 <[^>]*> nop
-+0+30c4 <[^>]*> nop
-+0+30c8 <[^>]*> nop
-+0+30cc <[^>]*> nop
-+0+30d0 <[^>]*> nop
-+0+30d4 <[^>]*> nop
-+0+30d8 <[^>]*> nop
-+0+30dc <[^>]*> nop
-+0+30e0 <[^>]*> nop
-+0+30e4 <[^>]*> nop
-+0+30e8 <[^>]*> nop
-+0+30ec <[^>]*> nop
-+0+30f0 <[^>]*> nop
-+0+30f4 <[^>]*> nop
-+0+30f8 <[^>]*> nop
-+0+30fc <[^>]*> nop
-+0+3100 <[^>]*> nop
-+0+3104 <[^>]*> nop
-+0+3108 <[^>]*> nop
-+0+310c <[^>]*> nop
-+0+3110 <[^>]*> nop
-+0+3114 <[^>]*> nop
-+0+3118 <[^>]*> nop
-+0+311c <[^>]*> nop
-+0+3120 <[^>]*> nop
-+0+3124 <[^>]*> nop
-+0+3128 <[^>]*> nop
-+0+312c <[^>]*> nop
-+0+3130 <[^>]*> nop
-+0+3134 <[^>]*> nop
-+0+3138 <[^>]*> nop
-+0+313c <[^>]*> nop
-+0+3140 <[^>]*> nop
-+0+3144 <[^>]*> nop
-+0+3148 <[^>]*> nop
-+0+314c <[^>]*> nop
-+0+3150 <[^>]*> nop
-+0+3154 <[^>]*> nop
-+0+3158 <[^>]*> nop
-+0+315c <[^>]*> nop
-+0+3160 <[^>]*> nop
-+0+3164 <[^>]*> nop
-+0+3168 <[^>]*> nop
-+0+316c <[^>]*> nop
-+0+3170 <[^>]*> nop
-+0+3174 <[^>]*> nop
-+0+3178 <[^>]*> nop
-+0+317c <[^>]*> nop
-+0+3180 <[^>]*> nop
-+0+3184 <[^>]*> nop
-+0+3188 <[^>]*> nop
-+0+318c <[^>]*> nop
-+0+3190 <[^>]*> nop
-+0+3194 <[^>]*> nop
-+0+3198 <[^>]*> nop
-+0+319c <[^>]*> nop
-+0+31a0 <[^>]*> nop
-+0+31a4 <[^>]*> nop
-+0+31a8 <[^>]*> nop
-+0+31ac <[^>]*> nop
-+0+31b0 <[^>]*> nop
-+0+31b4 <[^>]*> nop
-+0+31b8 <[^>]*> nop
-+0+31bc <[^>]*> nop
-+0+31c0 <[^>]*> nop
-+0+31c4 <[^>]*> nop
-+0+31c8 <[^>]*> nop
-+0+31cc <[^>]*> nop
-+0+31d0 <[^>]*> nop
-+0+31d4 <[^>]*> nop
-+0+31d8 <[^>]*> nop
-+0+31dc <[^>]*> nop
-+0+31e0 <[^>]*> nop
-+0+31e4 <[^>]*> nop
-+0+31e8 <[^>]*> nop
-+0+31ec <[^>]*> nop
-+0+31f0 <[^>]*> nop
-+0+31f4 <[^>]*> nop
-+0+31f8 <[^>]*> nop
-+0+31fc <[^>]*> nop
-+0+3200 <[^>]*> nop
-+0+3204 <[^>]*> nop
-+0+3208 <[^>]*> nop
-+0+320c <[^>]*> nop
-+0+3210 <[^>]*> nop
-+0+3214 <[^>]*> nop
-+0+3218 <[^>]*> nop
-+0+321c <[^>]*> nop
-+0+3220 <[^>]*> nop
-+0+3224 <[^>]*> nop
-+0+3228 <[^>]*> nop
-+0+322c <[^>]*> nop
-+0+3230 <[^>]*> nop
-+0+3234 <[^>]*> nop
-+0+3238 <[^>]*> nop
-+0+323c <[^>]*> nop
-+0+3240 <[^>]*> nop
-+0+3244 <[^>]*> nop
-+0+3248 <[^>]*> nop
-+0+324c <[^>]*> nop
-+0+3250 <[^>]*> nop
-+0+3254 <[^>]*> nop
-+0+3258 <[^>]*> nop
-+0+325c <[^>]*> nop
-+0+3260 <[^>]*> nop
-+0+3264 <[^>]*> nop
-+0+3268 <[^>]*> nop
-+0+326c <[^>]*> nop
-+0+3270 <[^>]*> nop
-+0+3274 <[^>]*> nop
-+0+3278 <[^>]*> nop
-+0+327c <[^>]*> nop
-+0+3280 <[^>]*> nop
-+0+3284 <[^>]*> nop
-+0+3288 <[^>]*> nop
-+0+328c <[^>]*> nop
-+0+3290 <[^>]*> nop
-+0+3294 <[^>]*> nop
-+0+3298 <[^>]*> nop
-+0+329c <[^>]*> nop
-+0+32a0 <[^>]*> nop
-+0+32a4 <[^>]*> nop
-+0+32a8 <[^>]*> nop
-+0+32ac <[^>]*> nop
-+0+32b0 <[^>]*> nop
-+0+32b4 <[^>]*> nop
-+0+32b8 <[^>]*> nop
-+0+32bc <[^>]*> nop
-+0+32c0 <[^>]*> nop
-+0+32c4 <[^>]*> nop
-+0+32c8 <[^>]*> nop
-+0+32cc <[^>]*> nop
-+0+32d0 <[^>]*> nop
-+0+32d4 <[^>]*> nop
-+0+32d8 <[^>]*> nop
-+0+32dc <[^>]*> nop
-+0+32e0 <[^>]*> nop
-+0+32e4 <[^>]*> nop
-+0+32e8 <[^>]*> nop
-+0+32ec <[^>]*> nop
-+0+32f0 <[^>]*> nop
-+0+32f4 <[^>]*> nop
-+0+32f8 <[^>]*> nop
-+0+32fc <[^>]*> nop
-+0+3300 <[^>]*> nop
-+0+3304 <[^>]*> nop
-+0+3308 <[^>]*> nop
-+0+330c <[^>]*> nop
-+0+3310 <[^>]*> nop
-+0+3314 <[^>]*> nop
-+0+3318 <[^>]*> nop
-+0+331c <[^>]*> nop
-+0+3320 <[^>]*> nop
-+0+3324 <[^>]*> nop
-+0+3328 <[^>]*> nop
-+0+332c <[^>]*> nop
-+0+3330 <[^>]*> nop
-+0+3334 <[^>]*> nop
-+0+3338 <[^>]*> nop
-+0+333c <[^>]*> nop
-+0+3340 <[^>]*> nop
-+0+3344 <[^>]*> nop
-+0+3348 <[^>]*> nop
-+0+334c <[^>]*> nop
-+0+3350 <[^>]*> nop
-+0+3354 <[^>]*> nop
-+0+3358 <[^>]*> nop
-+0+335c <[^>]*> nop
-+0+3360 <[^>]*> nop
-+0+3364 <[^>]*> nop
-+0+3368 <[^>]*> nop
-+0+336c <[^>]*> nop
-+0+3370 <[^>]*> nop
-+0+3374 <[^>]*> nop
-+0+3378 <[^>]*> nop
-+0+337c <[^>]*> nop
-+0+3380 <[^>]*> nop
-+0+3384 <[^>]*> nop
-+0+3388 <[^>]*> nop
-+0+338c <[^>]*> nop
-+0+3390 <[^>]*> nop
-+0+3394 <[^>]*> nop
-+0+3398 <[^>]*> nop
-+0+339c <[^>]*> nop
-+0+33a0 <[^>]*> nop
-+0+33a4 <[^>]*> nop
-+0+33a8 <[^>]*> nop
-+0+33ac <[^>]*> nop
-+0+33b0 <[^>]*> nop
-+0+33b4 <[^>]*> nop
-+0+33b8 <[^>]*> nop
-+0+33bc <[^>]*> nop
-+0+33c0 <[^>]*> nop
-+0+33c4 <[^>]*> nop
-+0+33c8 <[^>]*> nop
-+0+33cc <[^>]*> nop
-+0+33d0 <[^>]*> nop
-+0+33d4 <[^>]*> nop
-+0+33d8 <[^>]*> nop
-+0+33dc <[^>]*> nop
-+0+33e0 <[^>]*> nop
-+0+33e4 <[^>]*> nop
-+0+33e8 <[^>]*> nop
-+0+33ec <[^>]*> nop
-+0+33f0 <[^>]*> nop
-+0+33f4 <[^>]*> nop
-+0+33f8 <[^>]*> nop
-+0+33fc <[^>]*> nop
-+0+3400 <[^>]*> nop
-+0+3404 <[^>]*> nop
-+0+3408 <[^>]*> nop
-+0+340c <[^>]*> nop
-+0+3410 <[^>]*> nop
-+0+3414 <[^>]*> nop
-+0+3418 <[^>]*> nop
-+0+341c <[^>]*> nop
-+0+3420 <[^>]*> nop
-+0+3424 <[^>]*> nop
-+0+3428 <[^>]*> nop
-+0+342c <[^>]*> nop
-+0+3430 <[^>]*> nop
-+0+3434 <[^>]*> nop
-+0+3438 <[^>]*> nop
-+0+343c <[^>]*> nop
-+0+3440 <[^>]*> nop
-+0+3444 <[^>]*> nop
-+0+3448 <[^>]*> nop
-+0+344c <[^>]*> nop
-+0+3450 <[^>]*> nop
-+0+3454 <[^>]*> nop
-+0+3458 <[^>]*> nop
-+0+345c <[^>]*> nop
-+0+3460 <[^>]*> nop
-+0+3464 <[^>]*> nop
-+0+3468 <[^>]*> nop
-+0+346c <[^>]*> nop
-+0+3470 <[^>]*> nop
-+0+3474 <[^>]*> nop
-+0+3478 <[^>]*> nop
-+0+347c <[^>]*> nop
-+0+3480 <[^>]*> nop
-+0+3484 <[^>]*> nop
-+0+3488 <[^>]*> nop
-+0+348c <[^>]*> nop
-+0+3490 <[^>]*> nop
-+0+3494 <[^>]*> nop
-+0+3498 <[^>]*> nop
-+0+349c <[^>]*> nop
-+0+34a0 <[^>]*> nop
-+0+34a4 <[^>]*> nop
-+0+34a8 <[^>]*> nop
-+0+34ac <[^>]*> nop
-+0+34b0 <[^>]*> nop
-+0+34b4 <[^>]*> nop
-+0+34b8 <[^>]*> nop
-+0+34bc <[^>]*> nop
-+0+34c0 <[^>]*> nop
-+0+34c4 <[^>]*> nop
-+0+34c8 <[^>]*> nop
-+0+34cc <[^>]*> nop
-+0+34d0 <[^>]*> nop
-+0+34d4 <[^>]*> nop
-+0+34d8 <[^>]*> nop
-+0+34dc <[^>]*> nop
-+0+34e0 <[^>]*> nop
-+0+34e4 <[^>]*> nop
-+0+34e8 <[^>]*> nop
-+0+34ec <[^>]*> nop
-+0+34f0 <[^>]*> nop
-+0+34f4 <[^>]*> nop
-+0+34f8 <[^>]*> nop
-+0+34fc <[^>]*> nop
-+0+3500 <[^>]*> nop
-+0+3504 <[^>]*> nop
-+0+3508 <[^>]*> nop
-+0+350c <[^>]*> nop
-+0+3510 <[^>]*> nop
-+0+3514 <[^>]*> nop
-+0+3518 <[^>]*> nop
-+0+351c <[^>]*> nop
-+0+3520 <[^>]*> nop
-+0+3524 <[^>]*> nop
-+0+3528 <[^>]*> nop
-+0+352c <[^>]*> nop
-+0+3530 <[^>]*> nop
-+0+3534 <[^>]*> nop
-+0+3538 <[^>]*> nop
-+0+353c <[^>]*> nop
-+0+3540 <[^>]*> nop
-+0+3544 <[^>]*> nop
-+0+3548 <[^>]*> nop
-+0+354c <[^>]*> nop
-+0+3550 <[^>]*> nop
-+0+3554 <[^>]*> nop
-+0+3558 <[^>]*> nop
-+0+355c <[^>]*> nop
-+0+3560 <[^>]*> nop
-+0+3564 <[^>]*> nop
-+0+3568 <[^>]*> nop
-+0+356c <[^>]*> nop
-+0+3570 <[^>]*> nop
-+0+3574 <[^>]*> nop
-+0+3578 <[^>]*> nop
-+0+357c <[^>]*> nop
-+0+3580 <[^>]*> nop
-+0+3584 <[^>]*> nop
-+0+3588 <[^>]*> nop
-+0+358c <[^>]*> nop
-+0+3590 <[^>]*> nop
-+0+3594 <[^>]*> nop
-+0+3598 <[^>]*> nop
-+0+359c <[^>]*> nop
-+0+35a0 <[^>]*> nop
-+0+35a4 <[^>]*> nop
-+0+35a8 <[^>]*> nop
-+0+35ac <[^>]*> nop
-+0+35b0 <[^>]*> nop
-+0+35b4 <[^>]*> nop
-+0+35b8 <[^>]*> nop
-+0+35bc <[^>]*> nop
-+0+35c0 <[^>]*> nop
-+0+35c4 <[^>]*> nop
-+0+35c8 <[^>]*> nop
-+0+35cc <[^>]*> nop
-+0+35d0 <[^>]*> nop
-+0+35d4 <[^>]*> nop
-+0+35d8 <[^>]*> nop
-+0+35dc <[^>]*> nop
-+0+35e0 <[^>]*> nop
-+0+35e4 <[^>]*> nop
-+0+35e8 <[^>]*> nop
-+0+35ec <[^>]*> nop
-+0+35f0 <[^>]*> nop
-+0+35f4 <[^>]*> nop
-+0+35f8 <[^>]*> nop
-+0+35fc <[^>]*> nop
-+0+3600 <[^>]*> nop
-+0+3604 <[^>]*> nop
-+0+3608 <[^>]*> nop
-+0+360c <[^>]*> nop
-+0+3610 <[^>]*> nop
-+0+3614 <[^>]*> nop
-+0+3618 <[^>]*> nop
-+0+361c <[^>]*> nop
-+0+3620 <[^>]*> nop
-+0+3624 <[^>]*> nop
-+0+3628 <[^>]*> nop
-+0+362c <[^>]*> nop
-+0+3630 <[^>]*> nop
-+0+3634 <[^>]*> nop
-+0+3638 <[^>]*> nop
-+0+363c <[^>]*> nop
-+0+3640 <[^>]*> nop
-+0+3644 <[^>]*> nop
-+0+3648 <[^>]*> nop
-+0+364c <[^>]*> nop
-+0+3650 <[^>]*> nop
-+0+3654 <[^>]*> nop
-+0+3658 <[^>]*> nop
-+0+365c <[^>]*> nop
-+0+3660 <[^>]*> nop
-+0+3664 <[^>]*> nop
-+0+3668 <[^>]*> nop
-+0+366c <[^>]*> nop
-+0+3670 <[^>]*> nop
-+0+3674 <[^>]*> nop
-+0+3678 <[^>]*> nop
-+0+367c <[^>]*> nop
-+0+3680 <[^>]*> nop
-+0+3684 <[^>]*> nop
-+0+3688 <[^>]*> nop
-+0+368c <[^>]*> nop
-+0+3690 <[^>]*> nop
-+0+3694 <[^>]*> nop
-+0+3698 <[^>]*> nop
-+0+369c <[^>]*> nop
-+0+36a0 <[^>]*> nop
-+0+36a4 <[^>]*> nop
-+0+36a8 <[^>]*> nop
-+0+36ac <[^>]*> nop
-+0+36b0 <[^>]*> nop
-+0+36b4 <[^>]*> nop
-+0+36b8 <[^>]*> nop
-+0+36bc <[^>]*> nop
-+0+36c0 <[^>]*> nop
-+0+36c4 <[^>]*> nop
-+0+36c8 <[^>]*> nop
-+0+36cc <[^>]*> nop
-+0+36d0 <[^>]*> nop
-+0+36d4 <[^>]*> nop
-+0+36d8 <[^>]*> nop
-+0+36dc <[^>]*> nop
-+0+36e0 <[^>]*> nop
-+0+36e4 <[^>]*> nop
-+0+36e8 <[^>]*> nop
-+0+36ec <[^>]*> nop
-+0+36f0 <[^>]*> nop
-+0+36f4 <[^>]*> nop
-+0+36f8 <[^>]*> nop
-+0+36fc <[^>]*> nop
-+0+3700 <[^>]*> nop
-+0+3704 <[^>]*> nop
-+0+3708 <[^>]*> nop
-+0+370c <[^>]*> nop
-+0+3710 <[^>]*> nop
-+0+3714 <[^>]*> nop
-+0+3718 <[^>]*> nop
-+0+371c <[^>]*> nop
-+0+3720 <[^>]*> nop
-+0+3724 <[^>]*> nop
-+0+3728 <[^>]*> nop
-+0+372c <[^>]*> nop
-+0+3730 <[^>]*> nop
-+0+3734 <[^>]*> nop
-+0+3738 <[^>]*> nop
-+0+373c <[^>]*> nop
-+0+3740 <[^>]*> nop
-+0+3744 <[^>]*> nop
-+0+3748 <[^>]*> nop
-+0+374c <[^>]*> nop
-+0+3750 <[^>]*> nop
-+0+3754 <[^>]*> nop
-+0+3758 <[^>]*> nop
-+0+375c <[^>]*> nop
-+0+3760 <[^>]*> nop
-+0+3764 <[^>]*> nop
-+0+3768 <[^>]*> nop
-+0+376c <[^>]*> nop
-+0+3770 <[^>]*> nop
-+0+3774 <[^>]*> nop
-+0+3778 <[^>]*> nop
-+0+377c <[^>]*> nop
-+0+3780 <[^>]*> nop
-+0+3784 <[^>]*> nop
-+0+3788 <[^>]*> nop
-+0+378c <[^>]*> nop
-+0+3790 <[^>]*> nop
-+0+3794 <[^>]*> nop
-+0+3798 <[^>]*> nop
-+0+379c <[^>]*> nop
-+0+37a0 <[^>]*> nop
-+0+37a4 <[^>]*> nop
-+0+37a8 <[^>]*> nop
-+0+37ac <[^>]*> nop
-+0+37b0 <[^>]*> nop
-+0+37b4 <[^>]*> nop
-+0+37b8 <[^>]*> nop
-+0+37bc <[^>]*> nop
-+0+37c0 <[^>]*> nop
-+0+37c4 <[^>]*> nop
-+0+37c8 <[^>]*> nop
-+0+37cc <[^>]*> nop
-+0+37d0 <[^>]*> nop
-+0+37d4 <[^>]*> nop
-+0+37d8 <[^>]*> nop
-+0+37dc <[^>]*> nop
-+0+37e0 <[^>]*> nop
-+0+37e4 <[^>]*> nop
-+0+37e8 <[^>]*> nop
-+0+37ec <[^>]*> nop
-+0+37f0 <[^>]*> nop
-+0+37f4 <[^>]*> nop
-+0+37f8 <[^>]*> nop
-+0+37fc <[^>]*> nop
-+0+3800 <[^>]*> nop
-+0+3804 <[^>]*> nop
-+0+3808 <[^>]*> nop
-+0+380c <[^>]*> nop
-+0+3810 <[^>]*> nop
-+0+3814 <[^>]*> nop
-+0+3818 <[^>]*> nop
-+0+381c <[^>]*> nop
-+0+3820 <[^>]*> nop
-+0+3824 <[^>]*> nop
-+0+3828 <[^>]*> nop
-+0+382c <[^>]*> nop
-+0+3830 <[^>]*> nop
-+0+3834 <[^>]*> nop
-+0+3838 <[^>]*> nop
-+0+383c <[^>]*> nop
-+0+3840 <[^>]*> nop
-+0+3844 <[^>]*> nop
-+0+3848 <[^>]*> nop
-+0+384c <[^>]*> nop
-+0+3850 <[^>]*> nop
-+0+3854 <[^>]*> nop
-+0+3858 <[^>]*> nop
-+0+385c <[^>]*> nop
-+0+3860 <[^>]*> nop
-+0+3864 <[^>]*> nop
-+0+3868 <[^>]*> nop
-+0+386c <[^>]*> nop
-+0+3870 <[^>]*> nop
-+0+3874 <[^>]*> nop
-+0+3878 <[^>]*> nop
-+0+387c <[^>]*> nop
-+0+3880 <[^>]*> nop
-+0+3884 <[^>]*> nop
-+0+3888 <[^>]*> nop
-+0+388c <[^>]*> nop
-+0+3890 <[^>]*> nop
-+0+3894 <[^>]*> nop
-+0+3898 <[^>]*> nop
-+0+389c <[^>]*> nop
-+0+38a0 <[^>]*> nop
-+0+38a4 <[^>]*> nop
-+0+38a8 <[^>]*> nop
-+0+38ac <[^>]*> nop
-+0+38b0 <[^>]*> nop
-+0+38b4 <[^>]*> nop
-+0+38b8 <[^>]*> nop
-+0+38bc <[^>]*> nop
-+0+38c0 <[^>]*> nop
-+0+38c4 <[^>]*> nop
-+0+38c8 <[^>]*> nop
-+0+38cc <[^>]*> nop
-+0+38d0 <[^>]*> nop
-+0+38d4 <[^>]*> nop
-+0+38d8 <[^>]*> nop
-+0+38dc <[^>]*> nop
-+0+38e0 <[^>]*> nop
-+0+38e4 <[^>]*> nop
-+0+38e8 <[^>]*> nop
-+0+38ec <[^>]*> nop
-+0+38f0 <[^>]*> nop
-+0+38f4 <[^>]*> nop
-+0+38f8 <[^>]*> nop
-+0+38fc <[^>]*> nop
-+0+3900 <[^>]*> nop
-+0+3904 <[^>]*> nop
-+0+3908 <[^>]*> nop
-+0+390c <[^>]*> nop
-+0+3910 <[^>]*> nop
-+0+3914 <[^>]*> nop
-+0+3918 <[^>]*> nop
-+0+391c <[^>]*> nop
-+0+3920 <[^>]*> nop
-+0+3924 <[^>]*> nop
-+0+3928 <[^>]*> nop
-+0+392c <[^>]*> nop
-+0+3930 <[^>]*> nop
-+0+3934 <[^>]*> nop
-+0+3938 <[^>]*> nop
-+0+393c <[^>]*> nop
-+0+3940 <[^>]*> nop
-+0+3944 <[^>]*> nop
-+0+3948 <[^>]*> nop
-+0+394c <[^>]*> nop
-+0+3950 <[^>]*> nop
-+0+3954 <[^>]*> nop
-+0+3958 <[^>]*> nop
-+0+395c <[^>]*> nop
-+0+3960 <[^>]*> nop
-+0+3964 <[^>]*> nop
-+0+3968 <[^>]*> nop
-+0+396c <[^>]*> nop
-+0+3970 <[^>]*> nop
-+0+3974 <[^>]*> nop
-+0+3978 <[^>]*> nop
-+0+397c <[^>]*> nop
-+0+3980 <[^>]*> nop
-+0+3984 <[^>]*> nop
-+0+3988 <[^>]*> nop
-+0+398c <[^>]*> nop
-+0+3990 <[^>]*> nop
-+0+3994 <[^>]*> nop
-+0+3998 <[^>]*> nop
-+0+399c <[^>]*> nop
-+0+39a0 <[^>]*> nop
-+0+39a4 <[^>]*> nop
-+0+39a8 <[^>]*> nop
-+0+39ac <[^>]*> nop
-+0+39b0 <[^>]*> nop
-+0+39b4 <[^>]*> nop
-+0+39b8 <[^>]*> nop
-+0+39bc <[^>]*> nop
-+0+39c0 <[^>]*> nop
-+0+39c4 <[^>]*> nop
-+0+39c8 <[^>]*> nop
-+0+39cc <[^>]*> nop
-+0+39d0 <[^>]*> nop
-+0+39d4 <[^>]*> nop
-+0+39d8 <[^>]*> nop
-+0+39dc <[^>]*> nop
-+0+39e0 <[^>]*> nop
-+0+39e4 <[^>]*> nop
-+0+39e8 <[^>]*> nop
-+0+39ec <[^>]*> nop
-+0+39f0 <[^>]*> nop
-+0+39f4 <[^>]*> nop
-+0+39f8 <[^>]*> nop
-+0+39fc <[^>]*> nop
-+0+3a00 <[^>]*> nop
-+0+3a04 <[^>]*> nop
-+0+3a08 <[^>]*> nop
-+0+3a0c <[^>]*> nop
-+0+3a10 <[^>]*> nop
-+0+3a14 <[^>]*> nop
-+0+3a18 <[^>]*> nop
-+0+3a1c <[^>]*> nop
-+0+3a20 <[^>]*> nop
-+0+3a24 <[^>]*> nop
-+0+3a28 <[^>]*> nop
-+0+3a2c <[^>]*> nop
-+0+3a30 <[^>]*> nop
-+0+3a34 <[^>]*> nop
-+0+3a38 <[^>]*> nop
-+0+3a3c <[^>]*> nop
-+0+3a40 <[^>]*> nop
-+0+3a44 <[^>]*> nop
-+0+3a48 <[^>]*> nop
-+0+3a4c <[^>]*> nop
-+0+3a50 <[^>]*> nop
-+0+3a54 <[^>]*> nop
-+0+3a58 <[^>]*> nop
-+0+3a5c <[^>]*> nop
-+0+3a60 <[^>]*> nop
-+0+3a64 <[^>]*> nop
-+0+3a68 <[^>]*> nop
-+0+3a6c <[^>]*> nop
-+0+3a70 <[^>]*> nop
-+0+3a74 <[^>]*> nop
-+0+3a78 <[^>]*> nop
-+0+3a7c <[^>]*> nop
-+0+3a80 <[^>]*> nop
-+0+3a84 <[^>]*> nop
-+0+3a88 <[^>]*> nop
-+0+3a8c <[^>]*> nop
-+0+3a90 <[^>]*> nop
-+0+3a94 <[^>]*> nop
-+0+3a98 <[^>]*> nop
-+0+3a9c <[^>]*> nop
-+0+3aa0 <[^>]*> nop
-+0+3aa4 <[^>]*> nop
-+0+3aa8 <[^>]*> nop
-+0+3aac <[^>]*> nop
-+0+3ab0 <[^>]*> nop
-+0+3ab4 <[^>]*> nop
-+0+3ab8 <[^>]*> nop
-+0+3abc <[^>]*> nop
-+0+3ac0 <[^>]*> nop
-+0+3ac4 <[^>]*> nop
-+0+3ac8 <[^>]*> nop
-+0+3acc <[^>]*> nop
-+0+3ad0 <[^>]*> nop
-+0+3ad4 <[^>]*> nop
-+0+3ad8 <[^>]*> nop
-+0+3adc <[^>]*> nop
-+0+3ae0 <[^>]*> nop
-+0+3ae4 <[^>]*> nop
-+0+3ae8 <[^>]*> nop
-+0+3aec <[^>]*> nop
-+0+3af0 <[^>]*> nop
-+0+3af4 <[^>]*> nop
-+0+3af8 <[^>]*> nop
-+0+3afc <[^>]*> nop
-+0+3b00 <[^>]*> nop
-+0+3b04 <[^>]*> nop
-+0+3b08 <[^>]*> nop
-+0+3b0c <[^>]*> nop
-+0+3b10 <[^>]*> nop
-+0+3b14 <[^>]*> nop
-+0+3b18 <[^>]*> nop
-+0+3b1c <[^>]*> nop
-+0+3b20 <[^>]*> nop
-+0+3b24 <[^>]*> nop
-+0+3b28 <[^>]*> nop
-+0+3b2c <[^>]*> nop
-+0+3b30 <[^>]*> nop
-+0+3b34 <[^>]*> nop
-+0+3b38 <[^>]*> nop
-+0+3b3c <[^>]*> nop
-+0+3b40 <[^>]*> nop
-+0+3b44 <[^>]*> nop
-+0+3b48 <[^>]*> nop
-+0+3b4c <[^>]*> nop
-+0+3b50 <[^>]*> nop
-+0+3b54 <[^>]*> nop
-+0+3b58 <[^>]*> nop
-+0+3b5c <[^>]*> nop
-+0+3b60 <[^>]*> nop
-+0+3b64 <[^>]*> nop
-+0+3b68 <[^>]*> nop
-+0+3b6c <[^>]*> nop
-+0+3b70 <[^>]*> nop
-+0+3b74 <[^>]*> nop
-+0+3b78 <[^>]*> nop
-+0+3b7c <[^>]*> nop
-+0+3b80 <[^>]*> nop
-+0+3b84 <[^>]*> nop
-+0+3b88 <[^>]*> nop
-+0+3b8c <[^>]*> nop
-+0+3b90 <[^>]*> nop
-+0+3b94 <[^>]*> nop
-+0+3b98 <[^>]*> nop
-+0+3b9c <[^>]*> nop
-+0+3ba0 <[^>]*> nop
-+0+3ba4 <[^>]*> nop
-+0+3ba8 <[^>]*> nop
-+0+3bac <[^>]*> nop
-+0+3bb0 <[^>]*> nop
-+0+3bb4 <[^>]*> nop
-+0+3bb8 <[^>]*> nop
-+0+3bbc <[^>]*> nop
-+0+3bc0 <[^>]*> nop
-+0+3bc4 <[^>]*> nop
-+0+3bc8 <[^>]*> nop
-+0+3bcc <[^>]*> nop
-+0+3bd0 <[^>]*> nop
-+0+3bd4 <[^>]*> nop
-+0+3bd8 <[^>]*> nop
-+0+3bdc <[^>]*> nop
-+0+3be0 <[^>]*> nop
-+0+3be4 <[^>]*> nop
-+0+3be8 <[^>]*> nop
-+0+3bec <[^>]*> nop
-+0+3bf0 <[^>]*> nop
-+0+3bf4 <[^>]*> nop
-+0+3bf8 <[^>]*> nop
-+0+3bfc <[^>]*> nop
-+0+3c00 <[^>]*> nop
-+0+3c04 <[^>]*> nop
-+0+3c08 <[^>]*> nop
-+0+3c0c <[^>]*> nop
-+0+3c10 <[^>]*> nop
-+0+3c14 <[^>]*> nop
-+0+3c18 <[^>]*> nop
-+0+3c1c <[^>]*> nop
-+0+3c20 <[^>]*> nop
-+0+3c24 <[^>]*> nop
-+0+3c28 <[^>]*> nop
-+0+3c2c <[^>]*> nop
-+0+3c30 <[^>]*> nop
-+0+3c34 <[^>]*> nop
-+0+3c38 <[^>]*> nop
-+0+3c3c <[^>]*> nop
-+0+3c40 <[^>]*> nop
-+0+3c44 <[^>]*> nop
-+0+3c48 <[^>]*> nop
-+0+3c4c <[^>]*> nop
-+0+3c50 <[^>]*> nop
-+0+3c54 <[^>]*> nop
-+0+3c58 <[^>]*> nop
-+0+3c5c <[^>]*> nop
-+0+3c60 <[^>]*> nop
-+0+3c64 <[^>]*> nop
-+0+3c68 <[^>]*> nop
-+0+3c6c <[^>]*> nop
-+0+3c70 <[^>]*> nop
-+0+3c74 <[^>]*> nop
-+0+3c78 <[^>]*> nop
-+0+3c7c <[^>]*> nop
-+0+3c80 <[^>]*> nop
-+0+3c84 <[^>]*> nop
-+0+3c88 <[^>]*> nop
-+0+3c8c <[^>]*> nop
-+0+3c90 <[^>]*> nop
-+0+3c94 <[^>]*> nop
-+0+3c98 <[^>]*> nop
-+0+3c9c <[^>]*> nop
-+0+3ca0 <[^>]*> nop
-+0+3ca4 <[^>]*> nop
-+0+3ca8 <[^>]*> nop
-+0+3cac <[^>]*> nop
-+0+3cb0 <[^>]*> nop
-+0+3cb4 <[^>]*> nop
-+0+3cb8 <[^>]*> nop
-+0+3cbc <[^>]*> nop
-+0+3cc0 <[^>]*> nop
-+0+3cc4 <[^>]*> nop
-+0+3cc8 <[^>]*> nop
-+0+3ccc <[^>]*> nop
-+0+3cd0 <[^>]*> nop
-+0+3cd4 <[^>]*> nop
-+0+3cd8 <[^>]*> nop
-+0+3cdc <[^>]*> nop
-+0+3ce0 <[^>]*> nop
-+0+3ce4 <[^>]*> nop
-+0+3ce8 <[^>]*> nop
-+0+3cec <[^>]*> nop
-+0+3cf0 <[^>]*> nop
-+0+3cf4 <[^>]*> nop
-+0+3cf8 <[^>]*> nop
-+0+3cfc <[^>]*> nop
-+0+3d00 <[^>]*> nop
-+0+3d04 <[^>]*> nop
-+0+3d08 <[^>]*> nop
-+0+3d0c <[^>]*> nop
-+0+3d10 <[^>]*> nop
-+0+3d14 <[^>]*> nop
-+0+3d18 <[^>]*> nop
-+0+3d1c <[^>]*> nop
-+0+3d20 <[^>]*> nop
-+0+3d24 <[^>]*> nop
-+0+3d28 <[^>]*> nop
-+0+3d2c <[^>]*> nop
-+0+3d30 <[^>]*> nop
-+0+3d34 <[^>]*> nop
-+0+3d38 <[^>]*> nop
-+0+3d3c <[^>]*> nop
-+0+3d40 <[^>]*> nop
-+0+3d44 <[^>]*> nop
-+0+3d48 <[^>]*> nop
-+0+3d4c <[^>]*> nop
-+0+3d50 <[^>]*> nop
-+0+3d54 <[^>]*> nop
-+0+3d58 <[^>]*> nop
-+0+3d5c <[^>]*> nop
-+0+3d60 <[^>]*> nop
-+0+3d64 <[^>]*> nop
-+0+3d68 <[^>]*> nop
-+0+3d6c <[^>]*> nop
-+0+3d70 <[^>]*> nop
-+0+3d74 <[^>]*> nop
-+0+3d78 <[^>]*> nop
-+0+3d7c <[^>]*> nop
-+0+3d80 <[^>]*> nop
-+0+3d84 <[^>]*> nop
-+0+3d88 <[^>]*> nop
-+0+3d8c <[^>]*> nop
-+0+3d90 <[^>]*> nop
-+0+3d94 <[^>]*> nop
-+0+3d98 <[^>]*> nop
-+0+3d9c <[^>]*> nop
-+0+3da0 <[^>]*> nop
-+0+3da4 <[^>]*> nop
-+0+3da8 <[^>]*> nop
-+0+3dac <[^>]*> nop
-+0+3db0 <[^>]*> nop
-+0+3db4 <[^>]*> nop
-+0+3db8 <[^>]*> nop
-+0+3dbc <[^>]*> nop
-+0+3dc0 <[^>]*> nop
-+0+3dc4 <[^>]*> nop
-+0+3dc8 <[^>]*> nop
-+0+3dcc <[^>]*> nop
-+0+3dd0 <[^>]*> nop
-+0+3dd4 <[^>]*> nop
-+0+3dd8 <[^>]*> nop
-+0+3ddc <[^>]*> nop
-+0+3de0 <[^>]*> nop
-+0+3de4 <[^>]*> nop
-+0+3de8 <[^>]*> nop
-+0+3dec <[^>]*> nop
-+0+3df0 <[^>]*> nop
-+0+3df4 <[^>]*> nop
-+0+3df8 <[^>]*> nop
-+0+3dfc <[^>]*> nop
-+0+3e00 <[^>]*> nop
-+0+3e04 <[^>]*> nop
-+0+3e08 <[^>]*> nop
-+0+3e0c <[^>]*> nop
-+0+3e10 <[^>]*> nop
-+0+3e14 <[^>]*> nop
-+0+3e18 <[^>]*> nop
-+0+3e1c <[^>]*> nop
-+0+3e20 <[^>]*> nop
-+0+3e24 <[^>]*> nop
-+0+3e28 <[^>]*> nop
-+0+3e2c <[^>]*> nop
-+0+3e30 <[^>]*> nop
-+0+3e34 <[^>]*> nop
-+0+3e38 <[^>]*> nop
-+0+3e3c <[^>]*> nop
-+0+3e40 <[^>]*> nop
-+0+3e44 <[^>]*> nop
-+0+3e48 <[^>]*> nop
-+0+3e4c <[^>]*> nop
-+0+3e50 <[^>]*> nop
-+0+3e54 <[^>]*> nop
-+0+3e58 <[^>]*> nop
-+0+3e5c <[^>]*> nop
-+0+3e60 <[^>]*> nop
-+0+3e64 <[^>]*> nop
-+0+3e68 <[^>]*> nop
-+0+3e6c <[^>]*> nop
-+0+3e70 <[^>]*> nop
-+0+3e74 <[^>]*> nop
-+0+3e78 <[^>]*> nop
-+0+3e7c <[^>]*> nop
-+0+3e80 <[^>]*> nop
-+0+3e84 <[^>]*> nop
-+0+3e88 <[^>]*> nop
-+0+3e8c <[^>]*> nop
-+0+3e90 <[^>]*> nop
-+0+3e94 <[^>]*> nop
-+0+3e98 <[^>]*> nop
-+0+3e9c <[^>]*> nop
-+0+3ea0 <[^>]*> nop
-+0+3ea4 <[^>]*> nop
-+0+3ea8 <[^>]*> nop
-+0+3eac <[^>]*> nop
-+0+3eb0 <[^>]*> nop
-+0+3eb4 <[^>]*> nop
-+0+3eb8 <[^>]*> nop
-+0+3ebc <[^>]*> nop
-+0+3ec0 <[^>]*> nop
-+0+3ec4 <[^>]*> nop
-+0+3ec8 <[^>]*> nop
-+0+3ecc <[^>]*> nop
-+0+3ed0 <[^>]*> nop
-+0+3ed4 <[^>]*> nop
-+0+3ed8 <[^>]*> nop
-+0+3edc <[^>]*> nop
-+0+3ee0 <[^>]*> nop
-+0+3ee4 <[^>]*> nop
-+0+3ee8 <[^>]*> nop
-+0+3eec <[^>]*> nop
-+0+3ef0 <[^>]*> nop
-+0+3ef4 <[^>]*> nop
-+0+3ef8 <[^>]*> nop
-+0+3efc <[^>]*> nop
-+0+3f00 <[^>]*> nop
-+0+3f04 <[^>]*> nop
-+0+3f08 <[^>]*> nop
-+0+3f0c <[^>]*> nop
-+0+3f10 <[^>]*> nop
-+0+3f14 <[^>]*> nop
-+0+3f18 <[^>]*> nop
-+0+3f1c <[^>]*> nop
-+0+3f20 <[^>]*> nop
-+0+3f24 <[^>]*> nop
-+0+3f28 <[^>]*> nop
-+0+3f2c <[^>]*> nop
-+0+3f30 <[^>]*> nop
-+0+3f34 <[^>]*> nop
-+0+3f38 <[^>]*> nop
-+0+3f3c <[^>]*> nop
-+0+3f40 <[^>]*> nop
-+0+3f44 <[^>]*> nop
-+0+3f48 <[^>]*> nop
-+0+3f4c <[^>]*> nop
-+0+3f50 <[^>]*> nop
-+0+3f54 <[^>]*> nop
-+0+3f58 <[^>]*> nop
-+0+3f5c <[^>]*> nop
-+0+3f60 <[^>]*> nop
-+0+3f64 <[^>]*> nop
-+0+3f68 <[^>]*> nop
-+0+3f6c <[^>]*> nop
-+0+3f70 <[^>]*> nop
-+0+3f74 <[^>]*> nop
-+0+3f78 <[^>]*> nop
-+0+3f7c <[^>]*> nop
-+0+3f80 <[^>]*> nop
-+0+3f84 <[^>]*> nop
-+0+3f88 <[^>]*> nop
-+0+3f8c <[^>]*> nop
-+0+3f90 <[^>]*> nop
-+0+3f94 <[^>]*> nop
-+0+3f98 <[^>]*> nop
-+0+3f9c <[^>]*> nop
-+0+3fa0 <[^>]*> nop
-+0+3fa4 <[^>]*> nop
-+0+3fa8 <[^>]*> nop
-+0+3fac <[^>]*> nop
-+0+3fb0 <[^>]*> nop
-+0+3fb4 <[^>]*> nop
-+0+3fb8 <[^>]*> nop
-+0+3fbc <[^>]*> nop
-+0+3fc0 <[^>]*> nop
-+0+3fc4 <[^>]*> nop
-+0+3fc8 <[^>]*> nop
-+0+3fcc <[^>]*> nop
-+0+3fd0 <[^>]*> nop
-+0+3fd4 <[^>]*> nop
-+0+3fd8 <[^>]*> nop
-+0+3fdc <[^>]*> nop
-+0+3fe0 <[^>]*> nop
-+0+3fe4 <[^>]*> nop
-+0+3fe8 <[^>]*> nop
-+0+3fec <[^>]*> nop
-+0+3ff0 <[^>]*> nop
-+0+3ff4 <[^>]*> nop
-+0+3ff8 <[^>]*> nop
-+0+3ffc <[^>]*> nop
-+0+4000 <[^>]*> nop
-+0+4004 <[^>]*> nop
-+0+4008 <[^>]*> nop
-+0+400c <[^>]*> nop
-+0+4010 <[^>]*> nop
-+0+4014 <[^>]*> nop
-+0+4018 <[^>]*> nop
-+0+401c <[^>]*> nop
-+0+4020 <[^>]*> nop
-+0+4024 <[^>]*> nop
-+0+4028 <[^>]*> nop
-+0+402c <[^>]*> nop
-+0+4030 <[^>]*> nop
-+0+4034 <[^>]*> nop
-+0+4038 <[^>]*> nop
-+0+403c <[^>]*> nop
-+0+4040 <[^>]*> nop
-+0+4044 <[^>]*> nop
-+0+4048 <[^>]*> nop
-+0+404c <[^>]*> nop
-+0+4050 <[^>]*> nop
-+0+4054 <[^>]*> nop
-+0+4058 <[^>]*> nop
-+0+405c <[^>]*> nop
-+0+4060 <[^>]*> nop
-+0+4064 <[^>]*> nop
-+0+4068 <[^>]*> nop
-+0+406c <[^>]*> nop
-+0+4070 <[^>]*> nop
-+0+4074 <[^>]*> nop
-+0+4078 <[^>]*> nop
-+0+407c <[^>]*> nop
-+0+4080 <[^>]*> nop
-+0+4084 <[^>]*> nop
-+0+4088 <[^>]*> nop
-+0+408c <[^>]*> nop
-+0+4090 <[^>]*> nop
-+0+4094 <[^>]*> nop
-+0+4098 <[^>]*> nop
-+0+409c <[^>]*> nop
-+0+40a0 <[^>]*> nop
-+0+40a4 <[^>]*> nop
-+0+40a8 <[^>]*> nop
-+0+40ac <[^>]*> nop
-+0+40b0 <[^>]*> nop
-+0+40b4 <[^>]*> nop
-+0+40b8 <[^>]*> nop
-+0+40bc <[^>]*> nop
-+0+40c0 <[^>]*> nop
-+0+40c4 <[^>]*> nop
-+0+40c8 <[^>]*> nop
-+0+40cc <[^>]*> nop
-+0+40d0 <[^>]*> nop
-+0+40d4 <[^>]*> nop
-+0+40d8 <[^>]*> nop
-+0+40dc <[^>]*> nop
-+0+40e0 <[^>]*> nop
-+0+40e4 <[^>]*> nop
-+0+40e8 <[^>]*> nop
-+0+40ec <[^>]*> nop
-+0+40f0 <[^>]*> nop
-+0+40f4 <[^>]*> nop
-+0+40f8 <[^>]*> nop
-+0+40fc <[^>]*> nop
-+0+4100 <[^>]*> nop
-+0+4104 <[^>]*> nop
-+0+4108 <[^>]*> nop
-+0+410c <[^>]*> nop
-+0+4110 <[^>]*> nop
-+0+4114 <[^>]*> nop
-+0+4118 <[^>]*> nop
-+0+411c <[^>]*> nop
-+0+4120 <[^>]*> nop
-+0+4124 <[^>]*> nop
-+0+4128 <[^>]*> nop
-+0+412c <[^>]*> nop
-+0+4130 <[^>]*> nop
-+0+4134 <[^>]*> nop
-+0+4138 <[^>]*> nop
-+0+413c <[^>]*> nop
-+0+4140 <[^>]*> nop
-+0+4144 <[^>]*> nop
-+0+4148 <[^>]*> nop
-+0+414c <[^>]*> nop
-+0+4150 <[^>]*> nop
-+0+4154 <[^>]*> nop
-+0+4158 <[^>]*> nop
-+0+415c <[^>]*> nop
-+0+4160 <[^>]*> nop
-+0+4164 <[^>]*> nop
-+0+4168 <[^>]*> nop
-+0+416c <[^>]*> nop
-+0+4170 <[^>]*> nop
-+0+4174 <[^>]*> nop
-+0+4178 <[^>]*> nop
-+0+417c <[^>]*> nop
-+0+4180 <[^>]*> nop
-+0+4184 <[^>]*> nop
-+0+4188 <[^>]*> nop
-+0+418c <[^>]*> nop
-+0+4190 <[^>]*> nop
-+0+4194 <[^>]*> nop
-+0+4198 <[^>]*> nop
-+0+419c <[^>]*> nop
-+0+41a0 <[^>]*> nop
-+0+41a4 <[^>]*> nop
-+0+41a8 <[^>]*> nop
-+0+41ac <[^>]*> nop
-+0+41b0 <[^>]*> nop
-+0+41b4 <[^>]*> nop
-+0+41b8 <[^>]*> nop
-+0+41bc <[^>]*> nop
-+0+41c0 <[^>]*> nop
-+0+41c4 <[^>]*> nop
-+0+41c8 <[^>]*> nop
-+0+41cc <[^>]*> nop
-+0+41d0 <[^>]*> nop
-+0+41d4 <[^>]*> nop
-+0+41d8 <[^>]*> nop
-+0+41dc <[^>]*> nop
-+0+41e0 <[^>]*> nop
-+0+41e4 <[^>]*> nop
-+0+41e8 <[^>]*> nop
-+0+41ec <[^>]*> nop
-+0+41f0 <[^>]*> nop
-+0+41f4 <[^>]*> nop
-+0+41f8 <[^>]*> nop
-+0+41fc <[^>]*> nop
-+0+4200 <[^>]*> nop
-+0+4204 <[^>]*> nop
-+0+4208 <[^>]*> nop
-+0+420c <[^>]*> nop
-+0+4210 <[^>]*> nop
-+0+4214 <[^>]*> nop
-+0+4218 <[^>]*> nop
-+0+421c <[^>]*> nop
-+0+4220 <[^>]*> nop
-+0+4224 <[^>]*> nop
-+0+4228 <[^>]*> nop
-+0+422c <[^>]*> nop
-+0+4230 <[^>]*> nop
-+0+4234 <[^>]*> nop
-+0+4238 <[^>]*> nop
-+0+423c <[^>]*> nop
-+0+4240 <[^>]*> nop
-+0+4244 <[^>]*> nop
-+0+4248 <[^>]*> nop
-+0+424c <[^>]*> nop
-+0+4250 <[^>]*> nop
-+0+4254 <[^>]*> nop
-+0+4258 <[^>]*> nop
-+0+425c <[^>]*> nop
-+0+4260 <[^>]*> nop
-+0+4264 <[^>]*> nop
-+0+4268 <[^>]*> nop
-+0+426c <[^>]*> nop
-+0+4270 <[^>]*> nop
-+0+4274 <[^>]*> nop
-+0+4278 <[^>]*> nop
-+0+427c <[^>]*> nop
-+0+4280 <[^>]*> nop
-+0+4284 <[^>]*> nop
-+0+4288 <[^>]*> nop
-+0+428c <[^>]*> nop
-+0+4290 <[^>]*> nop
-+0+4294 <[^>]*> nop
-+0+4298 <[^>]*> nop
-+0+429c <[^>]*> nop
-+0+42a0 <[^>]*> nop
-+0+42a4 <[^>]*> nop
-+0+42a8 <[^>]*> nop
-+0+42ac <[^>]*> nop
-+0+42b0 <[^>]*> nop
-+0+42b4 <[^>]*> nop
-+0+42b8 <[^>]*> nop
-+0+42bc <[^>]*> nop
-+0+42c0 <[^>]*> nop
-+0+42c4 <[^>]*> nop
-+0+42c8 <[^>]*> nop
-+0+42cc <[^>]*> nop
-+0+42d0 <[^>]*> nop
-+0+42d4 <[^>]*> nop
-+0+42d8 <[^>]*> nop
-+0+42dc <[^>]*> nop
-+0+42e0 <[^>]*> nop
-+0+42e4 <[^>]*> nop
-+0+42e8 <[^>]*> nop
-+0+42ec <[^>]*> nop
-+0+42f0 <[^>]*> nop
-+0+42f4 <[^>]*> nop
-+0+42f8 <[^>]*> nop
-+0+42fc <[^>]*> nop
-+0+4300 <[^>]*> nop
-+0+4304 <[^>]*> nop
-+0+4308 <[^>]*> nop
-+0+430c <[^>]*> nop
-+0+4310 <[^>]*> nop
-+0+4314 <[^>]*> nop
-+0+4318 <[^>]*> nop
-+0+431c <[^>]*> nop
-+0+4320 <[^>]*> nop
-+0+4324 <[^>]*> nop
-+0+4328 <[^>]*> nop
-+0+432c <[^>]*> nop
-+0+4330 <[^>]*> nop
-+0+4334 <[^>]*> nop
-+0+4338 <[^>]*> nop
-+0+433c <[^>]*> nop
-+0+4340 <[^>]*> nop
-+0+4344 <[^>]*> nop
-+0+4348 <[^>]*> nop
-+0+434c <[^>]*> nop
-+0+4350 <[^>]*> nop
-+0+4354 <[^>]*> nop
-+0+4358 <[^>]*> nop
-+0+435c <[^>]*> nop
-+0+4360 <[^>]*> nop
-+0+4364 <[^>]*> nop
-+0+4368 <[^>]*> nop
-+0+436c <[^>]*> nop
-+0+4370 <[^>]*> nop
-+0+4374 <[^>]*> nop
-+0+4378 <[^>]*> nop
-+0+437c <[^>]*> nop
-+0+4380 <[^>]*> nop
-+0+4384 <[^>]*> nop
-+0+4388 <[^>]*> nop
-+0+438c <[^>]*> nop
-+0+4390 <[^>]*> nop
-+0+4394 <[^>]*> nop
-+0+4398 <[^>]*> nop
-+0+439c <[^>]*> nop
-+0+43a0 <[^>]*> nop
-+0+43a4 <[^>]*> nop
-+0+43a8 <[^>]*> nop
-+0+43ac <[^>]*> nop
-+0+43b0 <[^>]*> nop
-+0+43b4 <[^>]*> nop
-+0+43b8 <[^>]*> nop
-+0+43bc <[^>]*> nop
-+0+43c0 <[^>]*> nop
-+0+43c4 <[^>]*> nop
-+0+43c8 <[^>]*> nop
-+0+43cc <[^>]*> nop
-+0+43d0 <[^>]*> nop
-+0+43d4 <[^>]*> nop
-+0+43d8 <[^>]*> nop
-+0+43dc <[^>]*> nop
-+0+43e0 <[^>]*> nop
-+0+43e4 <[^>]*> nop
-+0+43e8 <[^>]*> nop
-+0+43ec <[^>]*> nop
-+0+43f0 <[^>]*> nop
-+0+43f4 <[^>]*> nop
-+0+43f8 <[^>]*> nop
-+0+43fc <[^>]*> nop
-+0+4400 <[^>]*> nop
-+0+4404 <[^>]*> nop
-+0+4408 <[^>]*> nop
-+0+440c <[^>]*> nop
-+0+4410 <[^>]*> nop
-+0+4414 <[^>]*> nop
-+0+4418 <[^>]*> nop
-+0+441c <[^>]*> nop
-+0+4420 <[^>]*> nop
-+0+4424 <[^>]*> nop
-+0+4428 <[^>]*> nop
-+0+442c <[^>]*> nop
-+0+4430 <[^>]*> nop
-+0+4434 <[^>]*> nop
-+0+4438 <[^>]*> nop
-+0+443c <[^>]*> nop
-+0+4440 <[^>]*> nop
-+0+4444 <[^>]*> nop
-+0+4448 <[^>]*> nop
-+0+444c <[^>]*> nop
-+0+4450 <[^>]*> nop
-+0+4454 <[^>]*> nop
-+0+4458 <[^>]*> nop
-+0+445c <[^>]*> nop
-+0+4460 <[^>]*> nop
-+0+4464 <[^>]*> nop
-+0+4468 <[^>]*> nop
-+0+446c <[^>]*> nop
-+0+4470 <[^>]*> nop
-+0+4474 <[^>]*> nop
-+0+4478 <[^>]*> nop
-+0+447c <[^>]*> nop
-+0+4480 <[^>]*> nop
-+0+4484 <[^>]*> nop
-+0+4488 <[^>]*> nop
-+0+448c <[^>]*> nop
-+0+4490 <[^>]*> nop
-+0+4494 <[^>]*> nop
-+0+4498 <[^>]*> nop
-+0+449c <[^>]*> nop
-+0+44a0 <[^>]*> nop
-+0+44a4 <[^>]*> nop
-+0+44a8 <[^>]*> nop
-+0+44ac <[^>]*> nop
-+0+44b0 <[^>]*> nop
-+0+44b4 <[^>]*> nop
-+0+44b8 <[^>]*> nop
-+0+44bc <[^>]*> nop
-+0+44c0 <[^>]*> nop
-+0+44c4 <[^>]*> nop
-+0+44c8 <[^>]*> nop
-+0+44cc <[^>]*> nop
-+0+44d0 <[^>]*> nop
-+0+44d4 <[^>]*> nop
-+0+44d8 <[^>]*> nop
-+0+44dc <[^>]*> nop
-+0+44e0 <[^>]*> nop
-+0+44e4 <[^>]*> nop
-+0+44e8 <[^>]*> nop
-+0+44ec <[^>]*> nop
-+0+44f0 <[^>]*> nop
-+0+44f4 <[^>]*> nop
-+0+44f8 <[^>]*> nop
-+0+44fc <[^>]*> nop
-+0+4500 <[^>]*> nop
-+0+4504 <[^>]*> nop
-+0+4508 <[^>]*> nop
-+0+450c <[^>]*> nop
-+0+4510 <[^>]*> nop
-+0+4514 <[^>]*> nop
-+0+4518 <[^>]*> nop
-+0+451c <[^>]*> nop
-+0+4520 <[^>]*> nop
-+0+4524 <[^>]*> nop
-+0+4528 <[^>]*> nop
-+0+452c <[^>]*> nop
-+0+4530 <[^>]*> nop
-+0+4534 <[^>]*> nop
-+0+4538 <[^>]*> nop
-+0+453c <[^>]*> nop
-+0+4540 <[^>]*> nop
-+0+4544 <[^>]*> nop
-+0+4548 <[^>]*> nop
-+0+454c <[^>]*> nop
-+0+4550 <[^>]*> nop
-+0+4554 <[^>]*> nop
-+0+4558 <[^>]*> nop
-+0+455c <[^>]*> nop
-+0+4560 <[^>]*> nop
-+0+4564 <[^>]*> nop
-+0+4568 <[^>]*> nop
-+0+456c <[^>]*> nop
-+0+4570 <[^>]*> nop
-+0+4574 <[^>]*> nop
-+0+4578 <[^>]*> nop
-+0+457c <[^>]*> nop
-+0+4580 <[^>]*> nop
-+0+4584 <[^>]*> nop
-+0+4588 <[^>]*> nop
-+0+458c <[^>]*> nop
-+0+4590 <[^>]*> nop
-+0+4594 <[^>]*> nop
-+0+4598 <[^>]*> nop
-+0+459c <[^>]*> nop
-+0+45a0 <[^>]*> nop
-+0+45a4 <[^>]*> nop
-+0+45a8 <[^>]*> nop
-+0+45ac <[^>]*> nop
-+0+45b0 <[^>]*> nop
-+0+45b4 <[^>]*> nop
-+0+45b8 <[^>]*> nop
-+0+45bc <[^>]*> nop
-+0+45c0 <[^>]*> nop
-+0+45c4 <[^>]*> nop
-+0+45c8 <[^>]*> nop
-+0+45cc <[^>]*> nop
-+0+45d0 <[^>]*> nop
-+0+45d4 <[^>]*> nop
-+0+45d8 <[^>]*> nop
-+0+45dc <[^>]*> nop
-+0+45e0 <[^>]*> nop
-+0+45e4 <[^>]*> nop
-+0+45e8 <[^>]*> nop
-+0+45ec <[^>]*> nop
-+0+45f0 <[^>]*> nop
-+0+45f4 <[^>]*> nop
-+0+45f8 <[^>]*> nop
-+0+45fc <[^>]*> nop
-+0+4600 <[^>]*> nop
-+0+4604 <[^>]*> nop
-+0+4608 <[^>]*> nop
-+0+460c <[^>]*> nop
-+0+4610 <[^>]*> nop
-+0+4614 <[^>]*> nop
-+0+4618 <[^>]*> nop
-+0+461c <[^>]*> nop
-+0+4620 <[^>]*> nop
-+0+4624 <[^>]*> nop
-+0+4628 <[^>]*> nop
-+0+462c <[^>]*> nop
-+0+4630 <[^>]*> nop
-+0+4634 <[^>]*> nop
-+0+4638 <[^>]*> nop
-+0+463c <[^>]*> nop
-+0+4640 <[^>]*> nop
-+0+4644 <[^>]*> nop
-+0+4648 <[^>]*> nop
-+0+464c <[^>]*> nop
-+0+4650 <[^>]*> nop
-+0+4654 <[^>]*> nop
-+0+4658 <[^>]*> nop
-+0+465c <[^>]*> nop
-+0+4660 <[^>]*> nop
-+0+4664 <[^>]*> nop
-+0+4668 <[^>]*> nop
-+0+466c <[^>]*> nop
-+0+4670 <[^>]*> nop
-+0+4674 <[^>]*> nop
-+0+4678 <[^>]*> nop
-+0+467c <[^>]*> nop
-+0+4680 <[^>]*> nop
-+0+4684 <[^>]*> nop
-+0+4688 <[^>]*> nop
-+0+468c <[^>]*> nop
-+0+4690 <[^>]*> nop
-+0+4694 <[^>]*> nop
-+0+4698 <[^>]*> nop
-+0+469c <[^>]*> nop
-+0+46a0 <[^>]*> nop
-+0+46a4 <[^>]*> nop
-+0+46a8 <[^>]*> nop
-+0+46ac <[^>]*> nop
-+0+46b0 <[^>]*> nop
-+0+46b4 <[^>]*> nop
-+0+46b8 <[^>]*> nop
-+0+46bc <[^>]*> nop
-+0+46c0 <[^>]*> nop
-+0+46c4 <[^>]*> nop
-+0+46c8 <[^>]*> nop
-+0+46cc <[^>]*> nop
-+0+46d0 <[^>]*> nop
-+0+46d4 <[^>]*> nop
-+0+46d8 <[^>]*> nop
-+0+46dc <[^>]*> nop
-+0+46e0 <[^>]*> nop
-+0+46e4 <[^>]*> nop
-+0+46e8 <[^>]*> nop
-+0+46ec <[^>]*> nop
-+0+46f0 <[^>]*> nop
-+0+46f4 <[^>]*> nop
-+0+46f8 <[^>]*> nop
-+0+46fc <[^>]*> nop
-+0+4700 <[^>]*> nop
-+0+4704 <[^>]*> nop
-+0+4708 <[^>]*> nop
-+0+470c <[^>]*> nop
-+0+4710 <[^>]*> nop
-+0+4714 <[^>]*> nop
-+0+4718 <[^>]*> nop
-+0+471c <[^>]*> nop
-+0+4720 <[^>]*> nop
-+0+4724 <[^>]*> nop
-+0+4728 <[^>]*> nop
-+0+472c <[^>]*> nop
-+0+4730 <[^>]*> nop
-+0+4734 <[^>]*> nop
-+0+4738 <[^>]*> nop
-+0+473c <[^>]*> nop
-+0+4740 <[^>]*> nop
-+0+4744 <[^>]*> nop
-+0+4748 <[^>]*> nop
-+0+474c <[^>]*> nop
-+0+4750 <[^>]*> nop
-+0+4754 <[^>]*> nop
-+0+4758 <[^>]*> nop
-+0+475c <[^>]*> nop
-+0+4760 <[^>]*> nop
-+0+4764 <[^>]*> nop
-+0+4768 <[^>]*> nop
-+0+476c <[^>]*> nop
-+0+4770 <[^>]*> nop
-+0+4774 <[^>]*> nop
-+0+4778 <[^>]*> nop
-+0+477c <[^>]*> nop
-+0+4780 <[^>]*> nop
-+0+4784 <[^>]*> nop
-+0+4788 <[^>]*> nop
-+0+478c <[^>]*> nop
-+0+4790 <[^>]*> nop
-+0+4794 <[^>]*> nop
-+0+4798 <[^>]*> nop
-+0+479c <[^>]*> nop
-+0+47a0 <[^>]*> nop
-+0+47a4 <[^>]*> nop
-+0+47a8 <[^>]*> nop
-+0+47ac <[^>]*> nop
-+0+47b0 <[^>]*> nop
-+0+47b4 <[^>]*> nop
-+0+47b8 <[^>]*> nop
-+0+47bc <[^>]*> nop
-+0+47c0 <[^>]*> nop
-+0+47c4 <[^>]*> nop
-+0+47c8 <[^>]*> nop
-+0+47cc <[^>]*> nop
-+0+47d0 <[^>]*> nop
-+0+47d4 <[^>]*> nop
-+0+47d8 <[^>]*> nop
-+0+47dc <[^>]*> nop
-+0+47e0 <[^>]*> nop
-+0+47e4 <[^>]*> nop
-+0+47e8 <[^>]*> nop
-+0+47ec <[^>]*> nop
-+0+47f0 <[^>]*> nop
-+0+47f4 <[^>]*> nop
-+0+47f8 <[^>]*> nop
-+0+47fc <[^>]*> nop
-+0+4800 <[^>]*> nop
-+0+4804 <[^>]*> nop
-+0+4808 <[^>]*> nop
-+0+480c <[^>]*> nop
-+0+4810 <[^>]*> nop
-+0+4814 <[^>]*> nop
-+0+4818 <[^>]*> nop
-+0+481c <[^>]*> nop
-+0+4820 <[^>]*> nop
-+0+4824 <[^>]*> nop
-+0+4828 <[^>]*> nop
-+0+482c <[^>]*> nop
-+0+4830 <[^>]*> nop
-+0+4834 <[^>]*> nop
-+0+4838 <[^>]*> nop
-+0+483c <[^>]*> nop
-+0+4840 <[^>]*> nop
-+0+4844 <[^>]*> nop
-+0+4848 <[^>]*> nop
-+0+484c <[^>]*> nop
-+0+4850 <[^>]*> nop
-+0+4854 <[^>]*> nop
-+0+4858 <[^>]*> nop
-+0+485c <[^>]*> nop
-+0+4860 <[^>]*> nop
-+0+4864 <[^>]*> nop
-+0+4868 <[^>]*> nop
-+0+486c <[^>]*> nop
-+0+4870 <[^>]*> nop
-+0+4874 <[^>]*> nop
-+0+4878 <[^>]*> nop
-+0+487c <[^>]*> nop
-+0+4880 <[^>]*> nop
-+0+4884 <[^>]*> nop
-+0+4888 <[^>]*> nop
-+0+488c <[^>]*> nop
-+0+4890 <[^>]*> nop
-+0+4894 <[^>]*> nop
-+0+4898 <[^>]*> nop
-+0+489c <[^>]*> nop
-+0+48a0 <[^>]*> nop
-+0+48a4 <[^>]*> nop
-+0+48a8 <[^>]*> nop
-+0+48ac <[^>]*> nop
-+0+48b0 <[^>]*> nop
-+0+48b4 <[^>]*> nop
-+0+48b8 <[^>]*> nop
-+0+48bc <[^>]*> nop
-+0+48c0 <[^>]*> nop
-+0+48c4 <[^>]*> nop
-+0+48c8 <[^>]*> nop
-+0+48cc <[^>]*> nop
-+0+48d0 <[^>]*> nop
-+0+48d4 <[^>]*> nop
-+0+48d8 <[^>]*> nop
-+0+48dc <[^>]*> nop
-+0+48e0 <[^>]*> nop
-+0+48e4 <[^>]*> nop
-+0+48e8 <[^>]*> nop
-+0+48ec <[^>]*> nop
-+0+48f0 <[^>]*> nop
-+0+48f4 <[^>]*> nop
-+0+48f8 <[^>]*> nop
-+0+48fc <[^>]*> nop
-+0+4900 <[^>]*> nop
-+0+4904 <[^>]*> nop
-+0+4908 <[^>]*> nop
-+0+490c <[^>]*> nop
-+0+4910 <[^>]*> nop
-+0+4914 <[^>]*> nop
-+0+4918 <[^>]*> nop
-+0+491c <[^>]*> nop
-+0+4920 <[^>]*> nop
-+0+4924 <[^>]*> nop
-+0+4928 <[^>]*> nop
-+0+492c <[^>]*> nop
-+0+4930 <[^>]*> nop
-+0+4934 <[^>]*> nop
-+0+4938 <[^>]*> nop
-+0+493c <[^>]*> nop
-+0+4940 <[^>]*> nop
-+0+4944 <[^>]*> nop
-+0+4948 <[^>]*> nop
-+0+494c <[^>]*> nop
-+0+4950 <[^>]*> nop
-+0+4954 <[^>]*> nop
-+0+4958 <[^>]*> nop
-+0+495c <[^>]*> nop
-+0+4960 <[^>]*> nop
-+0+4964 <[^>]*> nop
-+0+4968 <[^>]*> nop
-+0+496c <[^>]*> nop
-+0+4970 <[^>]*> nop
-+0+4974 <[^>]*> nop
-+0+4978 <[^>]*> nop
-+0+497c <[^>]*> nop
-+0+4980 <[^>]*> nop
-+0+4984 <[^>]*> nop
-+0+4988 <[^>]*> nop
-+0+498c <[^>]*> nop
-+0+4990 <[^>]*> nop
-+0+4994 <[^>]*> nop
-+0+4998 <[^>]*> nop
-+0+499c <[^>]*> nop
-+0+49a0 <[^>]*> nop
-+0+49a4 <[^>]*> nop
-+0+49a8 <[^>]*> nop
-+0+49ac <[^>]*> nop
-+0+49b0 <[^>]*> nop
-+0+49b4 <[^>]*> nop
-+0+49b8 <[^>]*> nop
-+0+49bc <[^>]*> nop
-+0+49c0 <[^>]*> nop
-+0+49c4 <[^>]*> nop
-+0+49c8 <[^>]*> nop
-+0+49cc <[^>]*> nop
-+0+49d0 <[^>]*> nop
-+0+49d4 <[^>]*> nop
-+0+49d8 <[^>]*> nop
-+0+49dc <[^>]*> nop
-+0+49e0 <[^>]*> nop
-+0+49e4 <[^>]*> nop
-+0+49e8 <[^>]*> nop
-+0+49ec <[^>]*> nop
-+0+49f0 <[^>]*> nop
-+0+49f4 <[^>]*> nop
-+0+49f8 <[^>]*> nop
-+0+49fc <[^>]*> nop
-+0+4a00 <[^>]*> nop
-+0+4a04 <[^>]*> nop
-+0+4a08 <[^>]*> nop
-+0+4a0c <[^>]*> nop
-+0+4a10 <[^>]*> nop
-+0+4a14 <[^>]*> nop
-+0+4a18 <[^>]*> nop
-+0+4a1c <[^>]*> nop
-+0+4a20 <[^>]*> nop
-+0+4a24 <[^>]*> nop
-+0+4a28 <[^>]*> nop
-+0+4a2c <[^>]*> nop
-+0+4a30 <[^>]*> nop
-+0+4a34 <[^>]*> nop
-+0+4a38 <[^>]*> nop
-+0+4a3c <[^>]*> nop
-+0+4a40 <[^>]*> nop
-+0+4a44 <[^>]*> nop
-+0+4a48 <[^>]*> nop
-+0+4a4c <[^>]*> nop
-+0+4a50 <[^>]*> nop
-+0+4a54 <[^>]*> nop
-+0+4a58 <[^>]*> nop
-+0+4a5c <[^>]*> nop
-+0+4a60 <[^>]*> nop
-+0+4a64 <[^>]*> nop
-+0+4a68 <[^>]*> nop
-+0+4a6c <[^>]*> nop
-+0+4a70 <[^>]*> nop
-+0+4a74 <[^>]*> nop
-+0+4a78 <[^>]*> nop
-+0+4a7c <[^>]*> nop
-+0+4a80 <[^>]*> nop
-+0+4a84 <[^>]*> nop
-+0+4a88 <[^>]*> nop
-+0+4a8c <[^>]*> nop
-+0+4a90 <[^>]*> nop
-+0+4a94 <[^>]*> nop
-+0+4a98 <[^>]*> nop
-+0+4a9c <[^>]*> nop
-+0+4aa0 <[^>]*> nop
-+0+4aa4 <[^>]*> nop
-+0+4aa8 <[^>]*> nop
-+0+4aac <[^>]*> nop
-+0+4ab0 <[^>]*> nop
-+0+4ab4 <[^>]*> nop
-+0+4ab8 <[^>]*> nop
-+0+4abc <[^>]*> nop
-+0+4ac0 <[^>]*> nop
-+0+4ac4 <[^>]*> nop
-+0+4ac8 <[^>]*> nop
-+0+4acc <[^>]*> nop
-+0+4ad0 <[^>]*> nop
-+0+4ad4 <[^>]*> nop
-+0+4ad8 <[^>]*> nop
-+0+4adc <[^>]*> nop
-+0+4ae0 <[^>]*> nop
-+0+4ae4 <[^>]*> nop
-+0+4ae8 <[^>]*> nop
-+0+4aec <[^>]*> nop
-+0+4af0 <[^>]*> nop
-+0+4af4 <[^>]*> nop
-+0+4af8 <[^>]*> nop
-+0+4afc <[^>]*> nop
-+0+4b00 <[^>]*> nop
-+0+4b04 <[^>]*> nop
-+0+4b08 <[^>]*> nop
-+0+4b0c <[^>]*> nop
-+0+4b10 <[^>]*> nop
-+0+4b14 <[^>]*> nop
-+0+4b18 <[^>]*> nop
-+0+4b1c <[^>]*> nop
-+0+4b20 <[^>]*> nop
-+0+4b24 <[^>]*> nop
-+0+4b28 <[^>]*> nop
-+0+4b2c <[^>]*> nop
-+0+4b30 <[^>]*> nop
-+0+4b34 <[^>]*> nop
-+0+4b38 <[^>]*> nop
-+0+4b3c <[^>]*> nop
-+0+4b40 <[^>]*> nop
-+0+4b44 <[^>]*> nop
-+0+4b48 <[^>]*> nop
-+0+4b4c <[^>]*> nop
-+0+4b50 <[^>]*> nop
-+0+4b54 <[^>]*> nop
-+0+4b58 <[^>]*> nop
-+0+4b5c <[^>]*> nop
-+0+4b60 <[^>]*> nop
-+0+4b64 <[^>]*> nop
-+0+4b68 <[^>]*> nop
-+0+4b6c <[^>]*> nop
-+0+4b70 <[^>]*> nop
-+0+4b74 <[^>]*> nop
-+0+4b78 <[^>]*> nop
-+0+4b7c <[^>]*> nop
-+0+4b80 <[^>]*> nop
-+0+4b84 <[^>]*> nop
-+0+4b88 <[^>]*> nop
-+0+4b8c <[^>]*> nop
-+0+4b90 <[^>]*> nop
-+0+4b94 <[^>]*> nop
-+0+4b98 <[^>]*> nop
-+0+4b9c <[^>]*> nop
-+0+4ba0 <[^>]*> nop
-+0+4ba4 <[^>]*> nop
-+0+4ba8 <[^>]*> nop
-+0+4bac <[^>]*> nop
-+0+4bb0 <[^>]*> nop
-+0+4bb4 <[^>]*> nop
-+0+4bb8 <[^>]*> nop
-+0+4bbc <[^>]*> nop
-+0+4bc0 <[^>]*> nop
-+0+4bc4 <[^>]*> nop
-+0+4bc8 <[^>]*> nop
-+0+4bcc <[^>]*> nop
-+0+4bd0 <[^>]*> nop
-+0+4bd4 <[^>]*> nop
-+0+4bd8 <[^>]*> nop
-+0+4bdc <[^>]*> nop
-+0+4be0 <[^>]*> nop
-+0+4be4 <[^>]*> nop
-+0+4be8 <[^>]*> nop
-+0+4bec <[^>]*> nop
-+0+4bf0 <[^>]*> nop
-+0+4bf4 <[^>]*> nop
-+0+4bf8 <[^>]*> nop
-+0+4bfc <[^>]*> nop
-+0+4c00 <[^>]*> nop
-+0+4c04 <[^>]*> nop
-+0+4c08 <[^>]*> nop
-+0+4c0c <[^>]*> nop
-+0+4c10 <[^>]*> nop
-+0+4c14 <[^>]*> nop
-+0+4c18 <[^>]*> nop
-+0+4c1c <[^>]*> nop
-+0+4c20 <[^>]*> nop
-+0+4c24 <[^>]*> nop
-+0+4c28 <[^>]*> nop
-+0+4c2c <[^>]*> nop
-+0+4c30 <[^>]*> nop
-+0+4c34 <[^>]*> nop
-+0+4c38 <[^>]*> nop
-+0+4c3c <[^>]*> nop
-+0+4c40 <[^>]*> nop
-+0+4c44 <[^>]*> nop
-+0+4c48 <[^>]*> nop
-+0+4c4c <[^>]*> nop
-+0+4c50 <[^>]*> nop
-+0+4c54 <[^>]*> nop
-+0+4c58 <[^>]*> nop
-+0+4c5c <[^>]*> nop
-+0+4c60 <[^>]*> nop
-+0+4c64 <[^>]*> nop
-+0+4c68 <[^>]*> nop
-+0+4c6c <[^>]*> nop
-+0+4c70 <[^>]*> nop
-+0+4c74 <[^>]*> nop
-+0+4c78 <[^>]*> nop
-+0+4c7c <[^>]*> nop
-+0+4c80 <[^>]*> nop
-+0+4c84 <[^>]*> nop
-+0+4c88 <[^>]*> nop
-+0+4c8c <[^>]*> nop
-+0+4c90 <[^>]*> nop
-+0+4c94 <[^>]*> nop
-+0+4c98 <[^>]*> nop
-+0+4c9c <[^>]*> nop
-+0+4ca0 <[^>]*> nop
-+0+4ca4 <[^>]*> nop
-+0+4ca8 <[^>]*> nop
-+0+4cac <[^>]*> nop
-+0+4cb0 <[^>]*> nop
-+0+4cb4 <[^>]*> nop
-+0+4cb8 <[^>]*> nop
-+0+4cbc <[^>]*> nop
-+0+4cc0 <[^>]*> nop
-+0+4cc4 <[^>]*> nop
-+0+4cc8 <[^>]*> nop
-+0+4ccc <[^>]*> nop
-+0+4cd0 <[^>]*> nop
-+0+4cd4 <[^>]*> nop
-+0+4cd8 <[^>]*> nop
-+0+4cdc <[^>]*> nop
-+0+4ce0 <[^>]*> nop
-+0+4ce4 <[^>]*> nop
-+0+4ce8 <[^>]*> nop
-+0+4cec <[^>]*> nop
-+0+4cf0 <[^>]*> nop
-+0+4cf4 <[^>]*> nop
-+0+4cf8 <[^>]*> nop
-+0+4cfc <[^>]*> nop
-+0+4d00 <[^>]*> nop
-+0+4d04 <[^>]*> nop
-+0+4d08 <[^>]*> nop
-+0+4d0c <[^>]*> nop
-+0+4d10 <[^>]*> nop
-+0+4d14 <[^>]*> nop
-+0+4d18 <[^>]*> nop
-+0+4d1c <[^>]*> nop
-+0+4d20 <[^>]*> nop
-+0+4d24 <[^>]*> nop
-+0+4d28 <[^>]*> nop
-+0+4d2c <[^>]*> nop
-+0+4d30 <[^>]*> nop
-+0+4d34 <[^>]*> nop
-+0+4d38 <[^>]*> nop
-+0+4d3c <[^>]*> nop
-+0+4d40 <[^>]*> nop
-+0+4d44 <[^>]*> nop
-+0+4d48 <[^>]*> nop
-+0+4d4c <[^>]*> nop
-+0+4d50 <[^>]*> nop
-+0+4d54 <[^>]*> nop
-+0+4d58 <[^>]*> nop
-+0+4d5c <[^>]*> nop
-+0+4d60 <[^>]*> nop
-+0+4d64 <[^>]*> nop
-+0+4d68 <[^>]*> nop
-+0+4d6c <[^>]*> nop
-+0+4d70 <[^>]*> nop
-+0+4d74 <[^>]*> nop
-+0+4d78 <[^>]*> nop
-+0+4d7c <[^>]*> nop
-+0+4d80 <[^>]*> nop
-+0+4d84 <[^>]*> nop
-+0+4d88 <[^>]*> nop
-+0+4d8c <[^>]*> nop
-+0+4d90 <[^>]*> nop
-+0+4d94 <[^>]*> nop
-+0+4d98 <[^>]*> nop
-+0+4d9c <[^>]*> nop
-+0+4da0 <[^>]*> nop
-+0+4da4 <[^>]*> nop
-+0+4da8 <[^>]*> nop
-+0+4dac <[^>]*> nop
-+0+4db0 <[^>]*> nop
-+0+4db4 <[^>]*> nop
-+0+4db8 <[^>]*> nop
-+0+4dbc <[^>]*> nop
-+0+4dc0 <[^>]*> nop
-+0+4dc4 <[^>]*> nop
-+0+4dc8 <[^>]*> nop
-+0+4dcc <[^>]*> nop
-+0+4dd0 <[^>]*> nop
-+0+4dd4 <[^>]*> nop
-+0+4dd8 <[^>]*> nop
-+0+4ddc <[^>]*> nop
-+0+4de0 <[^>]*> nop
-+0+4de4 <[^>]*> nop
-+0+4de8 <[^>]*> nop
-+0+4dec <[^>]*> nop
-+0+4df0 <[^>]*> nop
-+0+4df4 <[^>]*> nop
-+0+4df8 <[^>]*> nop
-+0+4dfc <[^>]*> nop
-+0+4e00 <[^>]*> nop
-+0+4e04 <[^>]*> nop
-+0+4e08 <[^>]*> nop
-+0+4e0c <[^>]*> nop
-+0+4e10 <[^>]*> nop
-+0+4e14 <[^>]*> nop
-+0+4e18 <[^>]*> nop
-+0+4e1c <[^>]*> nop
-+0+4e20 <[^>]*> nop
-+0+4e24 <[^>]*> nop
-+0+4e28 <[^>]*> nop
-+0+4e2c <[^>]*> nop
-+0+4e30 <[^>]*> nop
-+0+4e34 <[^>]*> nop
-+0+4e38 <[^>]*> nop
-+0+4e3c <[^>]*> nop
-+0+4e40 <[^>]*> nop
-+0+4e44 <[^>]*> nop
-+0+4e48 <[^>]*> nop
-+0+4e4c <[^>]*> nop
-+0+4e50 <[^>]*> nop
-+0+4e54 <[^>]*> nop
-+0+4e58 <[^>]*> nop
-+0+4e5c <[^>]*> nop
-+0+4e60 <[^>]*> nop
-+0+4e64 <[^>]*> nop
-+0+4e68 <[^>]*> nop
-+0+4e6c <[^>]*> nop
-+0+4e70 <[^>]*> nop
-+0+4e74 <[^>]*> nop
-+0+4e78 <[^>]*> nop
-+0+4e7c <[^>]*> nop
-+0+4e80 <[^>]*> nop
-+0+4e84 <[^>]*> nop
-+0+4e88 <[^>]*> nop
-+0+4e8c <[^>]*> nop
-+0+4e90 <[^>]*> nop
-+0+4e94 <[^>]*> nop
-+0+4e98 <[^>]*> nop
-+0+4e9c <[^>]*> nop
-+0+4ea0 <[^>]*> nop
-+0+4ea4 <[^>]*> nop
-+0+4ea8 <[^>]*> nop
-+0+4eac <[^>]*> nop
-+0+4eb0 <[^>]*> nop
-+0+4eb4 <[^>]*> nop
-+0+4eb8 <[^>]*> nop
-+0+4ebc <[^>]*> nop
-+0+4ec0 <[^>]*> nop
-+0+4ec4 <[^>]*> nop
-+0+4ec8 <[^>]*> nop
-+0+4ecc <[^>]*> nop
-+0+4ed0 <[^>]*> nop
-+0+4ed4 <[^>]*> nop
-+0+4ed8 <[^>]*> nop
-+0+4edc <[^>]*> nop
-+0+4ee0 <[^>]*> nop
-+0+4ee4 <[^>]*> nop
-+0+4ee8 <[^>]*> nop
-+0+4eec <[^>]*> nop
-+0+4ef0 <[^>]*> nop
-+0+4ef4 <[^>]*> nop
-+0+4ef8 <[^>]*> nop
-+0+4efc <[^>]*> nop
-+0+4f00 <[^>]*> nop
-+0+4f04 <[^>]*> nop
-+0+4f08 <[^>]*> nop
-+0+4f0c <[^>]*> nop
-+0+4f10 <[^>]*> nop
-+0+4f14 <[^>]*> nop
-+0+4f18 <[^>]*> nop
-+0+4f1c <[^>]*> nop
-+0+4f20 <[^>]*> nop
-+0+4f24 <[^>]*> nop
-+0+4f28 <[^>]*> nop
-+0+4f2c <[^>]*> nop
-+0+4f30 <[^>]*> nop
-+0+4f34 <[^>]*> nop
-+0+4f38 <[^>]*> nop
-+0+4f3c <[^>]*> nop
-+0+4f40 <[^>]*> nop
-+0+4f44 <[^>]*> nop
-+0+4f48 <[^>]*> nop
-+0+4f4c <[^>]*> nop
-+0+4f50 <[^>]*> nop
-+0+4f54 <[^>]*> nop
-+0+4f58 <[^>]*> nop
-+0+4f5c <[^>]*> nop
-+0+4f60 <[^>]*> nop
-+0+4f64 <[^>]*> nop
-+0+4f68 <[^>]*> nop
-+0+4f6c <[^>]*> nop
-+0+4f70 <[^>]*> nop
-+0+4f74 <[^>]*> nop
-+0+4f78 <[^>]*> nop
-+0+4f7c <[^>]*> nop
-+0+4f80 <[^>]*> nop
-+0+4f84 <[^>]*> nop
-+0+4f88 <[^>]*> nop
-+0+4f8c <[^>]*> nop
-+0+4f90 <[^>]*> nop
-+0+4f94 <[^>]*> nop
-+0+4f98 <[^>]*> nop
-+0+4f9c <[^>]*> nop
-+0+4fa0 <[^>]*> nop
-+0+4fa4 <[^>]*> nop
-+0+4fa8 <[^>]*> nop
-+0+4fac <[^>]*> nop
-+0+4fb0 <[^>]*> nop
-+0+4fb4 <[^>]*> nop
-+0+4fb8 <[^>]*> nop
-+0+4fbc <[^>]*> nop
-+0+4fc0 <[^>]*> nop
-+0+4fc4 <[^>]*> nop
-+0+4fc8 <[^>]*> nop
-+0+4fcc <[^>]*> nop
-+0+4fd0 <[^>]*> nop
-+0+4fd4 <[^>]*> nop
-+0+4fd8 <[^>]*> nop
-+0+4fdc <[^>]*> nop
-+0+4fe0 <[^>]*> nop
-+0+4fe4 <[^>]*> nop
-+0+4fe8 <[^>]*> nop
-+0+4fec <[^>]*> nop
-+0+4ff0 <[^>]*> nop
-+0+4ff4 <[^>]*> nop
-+0+4ff8 <[^>]*> nop
-+0+4ffc <[^>]*> nop
-+0+5000 <[^>]*> nop
-+0+5004 <[^>]*> nop
-+0+5008 <[^>]*> nop
-+0+500c <[^>]*> nop
-+0+5010 <[^>]*> nop
-+0+5014 <[^>]*> nop
-+0+5018 <[^>]*> nop
-+0+501c <[^>]*> nop
-+0+5020 <[^>]*> nop
-+0+5024 <[^>]*> nop
-+0+5028 <[^>]*> nop
-+0+502c <[^>]*> nop
-+0+5030 <[^>]*> nop
-+0+5034 <[^>]*> nop
-+0+5038 <[^>]*> nop
-+0+503c <[^>]*> nop
-+0+5040 <[^>]*> nop
-+0+5044 <[^>]*> nop
-+0+5048 <[^>]*> nop
-+0+504c <[^>]*> nop
-+0+5050 <[^>]*> nop
-+0+5054 <[^>]*> nop
-+0+5058 <[^>]*> nop
-+0+505c <[^>]*> nop
-+0+5060 <[^>]*> nop
-+0+5064 <[^>]*> nop
-+0+5068 <[^>]*> nop
-+0+506c <[^>]*> nop
-+0+5070 <[^>]*> nop
-+0+5074 <[^>]*> nop
-+0+5078 <[^>]*> nop
-+0+507c <[^>]*> nop
-+0+5080 <[^>]*> nop
-+0+5084 <[^>]*> nop
-+0+5088 <[^>]*> nop
-+0+508c <[^>]*> nop
-+0+5090 <[^>]*> nop
-+0+5094 <[^>]*> nop
-+0+5098 <[^>]*> nop
-+0+509c <[^>]*> nop
-+0+50a0 <[^>]*> nop
-+0+50a4 <[^>]*> nop
-+0+50a8 <[^>]*> nop
-+0+50ac <[^>]*> nop
-+0+50b0 <[^>]*> nop
-+0+50b4 <[^>]*> nop
-+0+50b8 <[^>]*> nop
-+0+50bc <[^>]*> nop
-+0+50c0 <[^>]*> nop
-+0+50c4 <[^>]*> nop
-+0+50c8 <[^>]*> nop
-+0+50cc <[^>]*> nop
-+0+50d0 <[^>]*> nop
-+0+50d4 <[^>]*> nop
-+0+50d8 <[^>]*> nop
-+0+50dc <[^>]*> nop
-+0+50e0 <[^>]*> nop
-+0+50e4 <[^>]*> nop
-+0+50e8 <[^>]*> nop
-+0+50ec <[^>]*> nop
-+0+50f0 <[^>]*> nop
-+0+50f4 <[^>]*> nop
-+0+50f8 <[^>]*> nop
-+0+50fc <[^>]*> nop
-+0+5100 <[^>]*> nop
-+0+5104 <[^>]*> nop
-+0+5108 <[^>]*> nop
-+0+510c <[^>]*> nop
-+0+5110 <[^>]*> nop
-+0+5114 <[^>]*> nop
-+0+5118 <[^>]*> nop
-+0+511c <[^>]*> nop
-+0+5120 <[^>]*> nop
-+0+5124 <[^>]*> nop
-+0+5128 <[^>]*> nop
-+0+512c <[^>]*> nop
-+0+5130 <[^>]*> nop
-+0+5134 <[^>]*> nop
-+0+5138 <[^>]*> nop
-+0+513c <[^>]*> nop
-+0+5140 <[^>]*> nop
-+0+5144 <[^>]*> nop
-+0+5148 <[^>]*> nop
-+0+514c <[^>]*> nop
-+0+5150 <[^>]*> nop
-+0+5154 <[^>]*> nop
-+0+5158 <[^>]*> nop
-+0+515c <[^>]*> nop
-+0+5160 <[^>]*> nop
-+0+5164 <[^>]*> nop
-+0+5168 <[^>]*> nop
-+0+516c <[^>]*> nop
-+0+5170 <[^>]*> nop
-+0+5174 <[^>]*> nop
-+0+5178 <[^>]*> nop
-+0+517c <[^>]*> nop
-+0+5180 <[^>]*> nop
-+0+5184 <[^>]*> nop
-+0+5188 <[^>]*> nop
-+0+518c <[^>]*> nop
-+0+5190 <[^>]*> nop
-+0+5194 <[^>]*> nop
-+0+5198 <[^>]*> nop
-+0+519c <[^>]*> nop
-+0+51a0 <[^>]*> nop
-+0+51a4 <[^>]*> nop
-+0+51a8 <[^>]*> nop
-+0+51ac <[^>]*> nop
-+0+51b0 <[^>]*> nop
-+0+51b4 <[^>]*> nop
-+0+51b8 <[^>]*> nop
-+0+51bc <[^>]*> nop
-+0+51c0 <[^>]*> nop
-+0+51c4 <[^>]*> nop
-+0+51c8 <[^>]*> nop
-+0+51cc <[^>]*> nop
-+0+51d0 <[^>]*> nop
-+0+51d4 <[^>]*> nop
-+0+51d8 <[^>]*> nop
-+0+51dc <[^>]*> nop
-+0+51e0 <[^>]*> nop
-+0+51e4 <[^>]*> nop
-+0+51e8 <[^>]*> nop
-+0+51ec <[^>]*> nop
-+0+51f0 <[^>]*> nop
-+0+51f4 <[^>]*> nop
-+0+51f8 <[^>]*> nop
-+0+51fc <[^>]*> nop
-+0+5200 <[^>]*> nop
-+0+5204 <[^>]*> nop
-+0+5208 <[^>]*> nop
-+0+520c <[^>]*> nop
-+0+5210 <[^>]*> nop
-+0+5214 <[^>]*> nop
-+0+5218 <[^>]*> nop
-+0+521c <[^>]*> nop
-+0+5220 <[^>]*> nop
-+0+5224 <[^>]*> nop
-+0+5228 <[^>]*> nop
-+0+522c <[^>]*> nop
-+0+5230 <[^>]*> nop
-+0+5234 <[^>]*> nop
-+0+5238 <[^>]*> nop
-+0+523c <[^>]*> nop
-+0+5240 <[^>]*> nop
-+0+5244 <[^>]*> nop
-+0+5248 <[^>]*> nop
-+0+524c <[^>]*> nop
-+0+5250 <[^>]*> nop
-+0+5254 <[^>]*> nop
-+0+5258 <[^>]*> nop
-+0+525c <[^>]*> nop
-+0+5260 <[^>]*> nop
-+0+5264 <[^>]*> nop
-+0+5268 <[^>]*> nop
-+0+526c <[^>]*> nop
-+0+5270 <[^>]*> nop
-+0+5274 <[^>]*> nop
-+0+5278 <[^>]*> nop
-+0+527c <[^>]*> nop
-+0+5280 <[^>]*> nop
-+0+5284 <[^>]*> nop
-+0+5288 <[^>]*> nop
-+0+528c <[^>]*> nop
-+0+5290 <[^>]*> nop
-+0+5294 <[^>]*> nop
-+0+5298 <[^>]*> nop
-+0+529c <[^>]*> nop
-+0+52a0 <[^>]*> nop
-+0+52a4 <[^>]*> nop
-+0+52a8 <[^>]*> nop
-+0+52ac <[^>]*> nop
-+0+52b0 <[^>]*> nop
-+0+52b4 <[^>]*> nop
-+0+52b8 <[^>]*> nop
-+0+52bc <[^>]*> nop
-+0+52c0 <[^>]*> nop
-+0+52c4 <[^>]*> nop
-+0+52c8 <[^>]*> nop
-+0+52cc <[^>]*> nop
-+0+52d0 <[^>]*> nop
-+0+52d4 <[^>]*> nop
-+0+52d8 <[^>]*> nop
-+0+52dc <[^>]*> nop
-+0+52e0 <[^>]*> nop
-+0+52e4 <[^>]*> nop
-+0+52e8 <[^>]*> nop
-+0+52ec <[^>]*> nop
-+0+52f0 <[^>]*> nop
-+0+52f4 <[^>]*> nop
-+0+52f8 <[^>]*> nop
-+0+52fc <[^>]*> nop
-+0+5300 <[^>]*> nop
-+0+5304 <[^>]*> nop
-+0+5308 <[^>]*> nop
-+0+530c <[^>]*> nop
-+0+5310 <[^>]*> nop
-+0+5314 <[^>]*> nop
-+0+5318 <[^>]*> nop
-+0+531c <[^>]*> nop
-+0+5320 <[^>]*> nop
-+0+5324 <[^>]*> nop
-+0+5328 <[^>]*> nop
-+0+532c <[^>]*> nop
-+0+5330 <[^>]*> nop
-+0+5334 <[^>]*> nop
-+0+5338 <[^>]*> nop
-+0+533c <[^>]*> nop
-+0+5340 <[^>]*> nop
-+0+5344 <[^>]*> nop
-+0+5348 <[^>]*> nop
-+0+534c <[^>]*> nop
-+0+5350 <[^>]*> nop
-+0+5354 <[^>]*> nop
-+0+5358 <[^>]*> nop
-+0+535c <[^>]*> nop
-+0+5360 <[^>]*> nop
-+0+5364 <[^>]*> nop
-+0+5368 <[^>]*> nop
-+0+536c <[^>]*> nop
-+0+5370 <[^>]*> nop
-+0+5374 <[^>]*> nop
-+0+5378 <[^>]*> nop
-+0+537c <[^>]*> nop
-+0+5380 <[^>]*> nop
-+0+5384 <[^>]*> nop
-+0+5388 <[^>]*> nop
-+0+538c <[^>]*> nop
-+0+5390 <[^>]*> nop
-+0+5394 <[^>]*> nop
-+0+5398 <[^>]*> nop
-+0+539c <[^>]*> nop
-+0+53a0 <[^>]*> nop
-+0+53a4 <[^>]*> nop
-+0+53a8 <[^>]*> nop
-+0+53ac <[^>]*> nop
-+0+53b0 <[^>]*> nop
-+0+53b4 <[^>]*> nop
-+0+53b8 <[^>]*> nop
-+0+53bc <[^>]*> nop
-+0+53c0 <[^>]*> nop
-+0+53c4 <[^>]*> nop
-+0+53c8 <[^>]*> nop
-+0+53cc <[^>]*> nop
-+0+53d0 <[^>]*> nop
-+0+53d4 <[^>]*> nop
-+0+53d8 <[^>]*> nop
-+0+53dc <[^>]*> nop
-+0+53e0 <[^>]*> nop
-+0+53e4 <[^>]*> nop
-+0+53e8 <[^>]*> nop
-+0+53ec <[^>]*> nop
-+0+53f0 <[^>]*> nop
-+0+53f4 <[^>]*> nop
-+0+53f8 <[^>]*> nop
-+0+53fc <[^>]*> nop
-+0+5400 <[^>]*> nop
-+0+5404 <[^>]*> nop
-+0+5408 <[^>]*> nop
-+0+540c <[^>]*> nop
-+0+5410 <[^>]*> nop
-+0+5414 <[^>]*> nop
-+0+5418 <[^>]*> nop
-+0+541c <[^>]*> nop
-+0+5420 <[^>]*> nop
-+0+5424 <[^>]*> nop
-+0+5428 <[^>]*> nop
-+0+542c <[^>]*> nop
-+0+5430 <[^>]*> nop
-+0+5434 <[^>]*> nop
-+0+5438 <[^>]*> nop
-+0+543c <[^>]*> nop
-+0+5440 <[^>]*> nop
-+0+5444 <[^>]*> nop
-+0+5448 <[^>]*> nop
-+0+544c <[^>]*> nop
-+0+5450 <[^>]*> nop
-+0+5454 <[^>]*> nop
-+0+5458 <[^>]*> nop
-+0+545c <[^>]*> nop
-+0+5460 <[^>]*> nop
-+0+5464 <[^>]*> nop
-+0+5468 <[^>]*> nop
-+0+546c <[^>]*> nop
-+0+5470 <[^>]*> nop
-+0+5474 <[^>]*> nop
-+0+5478 <[^>]*> nop
-+0+547c <[^>]*> nop
-+0+5480 <[^>]*> nop
-+0+5484 <[^>]*> nop
-+0+5488 <[^>]*> nop
-+0+548c <[^>]*> nop
-+0+5490 <[^>]*> nop
-+0+5494 <[^>]*> nop
-+0+5498 <[^>]*> nop
-+0+549c <[^>]*> nop
-+0+54a0 <[^>]*> nop
-+0+54a4 <[^>]*> nop
-+0+54a8 <[^>]*> nop
-+0+54ac <[^>]*> nop
-+0+54b0 <[^>]*> nop
-+0+54b4 <[^>]*> nop
-+0+54b8 <[^>]*> nop
-+0+54bc <[^>]*> nop
-+0+54c0 <[^>]*> nop
-+0+54c4 <[^>]*> nop
-+0+54c8 <[^>]*> nop
-+0+54cc <[^>]*> nop
-+0+54d0 <[^>]*> nop
-+0+54d4 <[^>]*> nop
-+0+54d8 <[^>]*> nop
-+0+54dc <[^>]*> nop
-+0+54e0 <[^>]*> nop
-+0+54e4 <[^>]*> nop
-+0+54e8 <[^>]*> nop
-+0+54ec <[^>]*> nop
-+0+54f0 <[^>]*> nop
-+0+54f4 <[^>]*> nop
-+0+54f8 <[^>]*> nop
-+0+54fc <[^>]*> nop
-+0+5500 <[^>]*> nop
-+0+5504 <[^>]*> nop
-+0+5508 <[^>]*> nop
-+0+550c <[^>]*> nop
-+0+5510 <[^>]*> nop
-+0+5514 <[^>]*> nop
-+0+5518 <[^>]*> nop
-+0+551c <[^>]*> nop
-+0+5520 <[^>]*> nop
-+0+5524 <[^>]*> nop
-+0+5528 <[^>]*> nop
-+0+552c <[^>]*> nop
-+0+5530 <[^>]*> nop
-+0+5534 <[^>]*> nop
-+0+5538 <[^>]*> nop
-+0+553c <[^>]*> nop
-+0+5540 <[^>]*> nop
-+0+5544 <[^>]*> nop
-+0+5548 <[^>]*> nop
-+0+554c <[^>]*> nop
-+0+5550 <[^>]*> nop
-+0+5554 <[^>]*> nop
-+0+5558 <[^>]*> nop
-+0+555c <[^>]*> nop
-+0+5560 <[^>]*> nop
-+0+5564 <[^>]*> nop
-+0+5568 <[^>]*> nop
-+0+556c <[^>]*> nop
-+0+5570 <[^>]*> nop
-+0+5574 <[^>]*> nop
-+0+5578 <[^>]*> nop
-+0+557c <[^>]*> nop
-+0+5580 <[^>]*> nop
-+0+5584 <[^>]*> nop
-+0+5588 <[^>]*> nop
-+0+558c <[^>]*> nop
-+0+5590 <[^>]*> nop
-+0+5594 <[^>]*> nop
-+0+5598 <[^>]*> nop
-+0+559c <[^>]*> nop
-+0+55a0 <[^>]*> nop
-+0+55a4 <[^>]*> nop
-+0+55a8 <[^>]*> nop
-+0+55ac <[^>]*> nop
-+0+55b0 <[^>]*> nop
-+0+55b4 <[^>]*> nop
-+0+55b8 <[^>]*> nop
-+0+55bc <[^>]*> nop
-+0+55c0 <[^>]*> nop
-+0+55c4 <[^>]*> nop
-+0+55c8 <[^>]*> nop
-+0+55cc <[^>]*> nop
-+0+55d0 <[^>]*> nop
-+0+55d4 <[^>]*> nop
-+0+55d8 <[^>]*> nop
-+0+55dc <[^>]*> nop
-+0+55e0 <[^>]*> nop
-+0+55e4 <[^>]*> nop
-+0+55e8 <[^>]*> nop
-+0+55ec <[^>]*> nop
-+0+55f0 <[^>]*> nop
-+0+55f4 <[^>]*> nop
-+0+55f8 <[^>]*> nop
-+0+55fc <[^>]*> nop
-+0+5600 <[^>]*> nop
-+0+5604 <[^>]*> nop
-+0+5608 <[^>]*> nop
-+0+560c <[^>]*> nop
-+0+5610 <[^>]*> nop
-+0+5614 <[^>]*> nop
-+0+5618 <[^>]*> nop
-+0+561c <[^>]*> nop
-+0+5620 <[^>]*> nop
-+0+5624 <[^>]*> nop
-+0+5628 <[^>]*> nop
-+0+562c <[^>]*> nop
-+0+5630 <[^>]*> nop
-+0+5634 <[^>]*> nop
-+0+5638 <[^>]*> nop
-+0+563c <[^>]*> nop
-+0+5640 <[^>]*> nop
-+0+5644 <[^>]*> nop
-+0+5648 <[^>]*> nop
-+0+564c <[^>]*> nop
-+0+5650 <[^>]*> nop
-+0+5654 <[^>]*> nop
-+0+5658 <[^>]*> nop
-+0+565c <[^>]*> nop
-+0+5660 <[^>]*> nop
-+0+5664 <[^>]*> nop
-+0+5668 <[^>]*> nop
-+0+566c <[^>]*> nop
-+0+5670 <[^>]*> nop
-+0+5674 <[^>]*> nop
-+0+5678 <[^>]*> nop
-+0+567c <[^>]*> nop
-+0+5680 <[^>]*> nop
-+0+5684 <[^>]*> nop
-+0+5688 <[^>]*> nop
-+0+568c <[^>]*> nop
-+0+5690 <[^>]*> nop
-+0+5694 <[^>]*> nop
-+0+5698 <[^>]*> nop
-+0+569c <[^>]*> nop
-+0+56a0 <[^>]*> nop
-+0+56a4 <[^>]*> nop
-+0+56a8 <[^>]*> nop
-+0+56ac <[^>]*> nop
-+0+56b0 <[^>]*> nop
-+0+56b4 <[^>]*> nop
-+0+56b8 <[^>]*> nop
-+0+56bc <[^>]*> nop
-+0+56c0 <[^>]*> nop
-+0+56c4 <[^>]*> nop
-+0+56c8 <[^>]*> nop
-+0+56cc <[^>]*> nop
-+0+56d0 <[^>]*> nop
-+0+56d4 <[^>]*> nop
-+0+56d8 <[^>]*> nop
-+0+56dc <[^>]*> nop
-+0+56e0 <[^>]*> nop
-+0+56e4 <[^>]*> nop
-+0+56e8 <[^>]*> nop
-+0+56ec <[^>]*> nop
-+0+56f0 <[^>]*> nop
-+0+56f4 <[^>]*> nop
-+0+56f8 <[^>]*> nop
-+0+56fc <[^>]*> nop
-+0+5700 <[^>]*> nop
-+0+5704 <[^>]*> nop
-+0+5708 <[^>]*> nop
-+0+570c <[^>]*> nop
-+0+5710 <[^>]*> nop
-+0+5714 <[^>]*> nop
-+0+5718 <[^>]*> nop
-+0+571c <[^>]*> nop
-+0+5720 <[^>]*> nop
-+0+5724 <[^>]*> nop
-+0+5728 <[^>]*> nop
-+0+572c <[^>]*> nop
-+0+5730 <[^>]*> nop
-+0+5734 <[^>]*> nop
-+0+5738 <[^>]*> nop
-+0+573c <[^>]*> nop
-+0+5740 <[^>]*> nop
-+0+5744 <[^>]*> nop
-+0+5748 <[^>]*> nop
-+0+574c <[^>]*> nop
-+0+5750 <[^>]*> nop
-+0+5754 <[^>]*> nop
-+0+5758 <[^>]*> nop
-+0+575c <[^>]*> nop
-+0+5760 <[^>]*> nop
-+0+5764 <[^>]*> nop
-+0+5768 <[^>]*> nop
-+0+576c <[^>]*> nop
-+0+5770 <[^>]*> nop
-+0+5774 <[^>]*> nop
-+0+5778 <[^>]*> nop
-+0+577c <[^>]*> nop
-+0+5780 <[^>]*> nop
-+0+5784 <[^>]*> nop
-+0+5788 <[^>]*> nop
-+0+578c <[^>]*> nop
-+0+5790 <[^>]*> nop
-+0+5794 <[^>]*> nop
-+0+5798 <[^>]*> nop
-+0+579c <[^>]*> nop
-+0+57a0 <[^>]*> nop
-+0+57a4 <[^>]*> nop
-+0+57a8 <[^>]*> nop
-+0+57ac <[^>]*> nop
-+0+57b0 <[^>]*> nop
-+0+57b4 <[^>]*> nop
-+0+57b8 <[^>]*> nop
-+0+57bc <[^>]*> nop
-+0+57c0 <[^>]*> nop
-+0+57c4 <[^>]*> nop
-+0+57c8 <[^>]*> nop
-+0+57cc <[^>]*> nop
-+0+57d0 <[^>]*> nop
-+0+57d4 <[^>]*> nop
-+0+57d8 <[^>]*> nop
-+0+57dc <[^>]*> nop
-+0+57e0 <[^>]*> nop
-+0+57e4 <[^>]*> nop
-+0+57e8 <[^>]*> nop
-+0+57ec <[^>]*> nop
-+0+57f0 <[^>]*> nop
-+0+57f4 <[^>]*> nop
-+0+57f8 <[^>]*> nop
-+0+57fc <[^>]*> nop
-+0+5800 <[^>]*> nop
-+0+5804 <[^>]*> nop
-+0+5808 <[^>]*> nop
-+0+580c <[^>]*> nop
-+0+5810 <[^>]*> nop
-+0+5814 <[^>]*> nop
-+0+5818 <[^>]*> nop
-+0+581c <[^>]*> nop
-+0+5820 <[^>]*> nop
-+0+5824 <[^>]*> nop
-+0+5828 <[^>]*> nop
-+0+582c <[^>]*> nop
-+0+5830 <[^>]*> nop
-+0+5834 <[^>]*> nop
-+0+5838 <[^>]*> nop
-+0+583c <[^>]*> nop
-+0+5840 <[^>]*> nop
-+0+5844 <[^>]*> nop
-+0+5848 <[^>]*> nop
-+0+584c <[^>]*> nop
-+0+5850 <[^>]*> nop
-+0+5854 <[^>]*> nop
-+0+5858 <[^>]*> nop
-+0+585c <[^>]*> nop
-+0+5860 <[^>]*> nop
-+0+5864 <[^>]*> nop
-+0+5868 <[^>]*> nop
-+0+586c <[^>]*> nop
-+0+5870 <[^>]*> nop
-+0+5874 <[^>]*> nop
-+0+5878 <[^>]*> nop
-+0+587c <[^>]*> nop
-+0+5880 <[^>]*> nop
-+0+5884 <[^>]*> nop
-+0+5888 <[^>]*> nop
-+0+588c <[^>]*> nop
-+0+5890 <[^>]*> nop
-+0+5894 <[^>]*> nop
-+0+5898 <[^>]*> nop
-+0+589c <[^>]*> nop
-+0+58a0 <[^>]*> nop
-+0+58a4 <[^>]*> nop
-+0+58a8 <[^>]*> nop
-+0+58ac <[^>]*> nop
-+0+58b0 <[^>]*> nop
-+0+58b4 <[^>]*> nop
-+0+58b8 <[^>]*> nop
-+0+58bc <[^>]*> nop
-+0+58c0 <[^>]*> nop
-+0+58c4 <[^>]*> nop
-+0+58c8 <[^>]*> nop
-+0+58cc <[^>]*> nop
-+0+58d0 <[^>]*> nop
-+0+58d4 <[^>]*> nop
-+0+58d8 <[^>]*> nop
-+0+58dc <[^>]*> nop
-+0+58e0 <[^>]*> nop
-+0+58e4 <[^>]*> nop
-+0+58e8 <[^>]*> nop
-+0+58ec <[^>]*> nop
-+0+58f0 <[^>]*> nop
-+0+58f4 <[^>]*> nop
-+0+58f8 <[^>]*> nop
-+0+58fc <[^>]*> nop
-+0+5900 <[^>]*> nop
-+0+5904 <[^>]*> nop
-+0+5908 <[^>]*> nop
-+0+590c <[^>]*> nop
-+0+5910 <[^>]*> nop
-+0+5914 <[^>]*> nop
-+0+5918 <[^>]*> nop
-+0+591c <[^>]*> nop
-+0+5920 <[^>]*> nop
-+0+5924 <[^>]*> nop
-+0+5928 <[^>]*> nop
-+0+592c <[^>]*> nop
-+0+5930 <[^>]*> nop
-+0+5934 <[^>]*> nop
-+0+5938 <[^>]*> nop
-+0+593c <[^>]*> nop
-+0+5940 <[^>]*> nop
-+0+5944 <[^>]*> nop
-+0+5948 <[^>]*> nop
-+0+594c <[^>]*> nop
-+0+5950 <[^>]*> nop
-+0+5954 <[^>]*> nop
-+0+5958 <[^>]*> nop
-+0+595c <[^>]*> nop
-+0+5960 <[^>]*> nop
-+0+5964 <[^>]*> nop
-+0+5968 <[^>]*> nop
-+0+596c <[^>]*> nop
-+0+5970 <[^>]*> nop
-+0+5974 <[^>]*> nop
-+0+5978 <[^>]*> nop
-+0+597c <[^>]*> nop
-+0+5980 <[^>]*> nop
-+0+5984 <[^>]*> nop
-+0+5988 <[^>]*> nop
-+0+598c <[^>]*> nop
-+0+5990 <[^>]*> nop
-+0+5994 <[^>]*> nop
-+0+5998 <[^>]*> nop
-+0+599c <[^>]*> nop
-+0+59a0 <[^>]*> nop
-+0+59a4 <[^>]*> nop
-+0+59a8 <[^>]*> nop
-+0+59ac <[^>]*> nop
-+0+59b0 <[^>]*> nop
-+0+59b4 <[^>]*> nop
-+0+59b8 <[^>]*> nop
-+0+59bc <[^>]*> nop
-+0+59c0 <[^>]*> nop
-+0+59c4 <[^>]*> nop
-+0+59c8 <[^>]*> nop
-+0+59cc <[^>]*> nop
-+0+59d0 <[^>]*> nop
-+0+59d4 <[^>]*> nop
-+0+59d8 <[^>]*> nop
-+0+59dc <[^>]*> nop
-+0+59e0 <[^>]*> nop
-+0+59e4 <[^>]*> nop
-+0+59e8 <[^>]*> nop
-+0+59ec <[^>]*> nop
-+0+59f0 <[^>]*> nop
-+0+59f4 <[^>]*> nop
-+0+59f8 <[^>]*> nop
-+0+59fc <[^>]*> nop
-+0+5a00 <[^>]*> nop
-+0+5a04 <[^>]*> nop
-+0+5a08 <[^>]*> nop
-+0+5a0c <[^>]*> nop
-+0+5a10 <[^>]*> nop
-+0+5a14 <[^>]*> nop
-+0+5a18 <[^>]*> nop
-+0+5a1c <[^>]*> nop
-+0+5a20 <[^>]*> nop
-+0+5a24 <[^>]*> nop
-+0+5a28 <[^>]*> nop
-+0+5a2c <[^>]*> nop
-+0+5a30 <[^>]*> nop
-+0+5a34 <[^>]*> nop
-+0+5a38 <[^>]*> nop
-+0+5a3c <[^>]*> nop
-+0+5a40 <[^>]*> nop
-+0+5a44 <[^>]*> nop
-+0+5a48 <[^>]*> nop
-+0+5a4c <[^>]*> nop
-+0+5a50 <[^>]*> nop
-+0+5a54 <[^>]*> nop
-+0+5a58 <[^>]*> nop
-+0+5a5c <[^>]*> nop
-+0+5a60 <[^>]*> nop
-+0+5a64 <[^>]*> nop
-+0+5a68 <[^>]*> nop
-+0+5a6c <[^>]*> nop
-+0+5a70 <[^>]*> nop
-+0+5a74 <[^>]*> nop
-+0+5a78 <[^>]*> nop
-+0+5a7c <[^>]*> nop
-+0+5a80 <[^>]*> nop
-+0+5a84 <[^>]*> nop
-+0+5a88 <[^>]*> nop
-+0+5a8c <[^>]*> nop
-+0+5a90 <[^>]*> nop
-+0+5a94 <[^>]*> nop
-+0+5a98 <[^>]*> nop
-+0+5a9c <[^>]*> nop
-+0+5aa0 <[^>]*> nop
-+0+5aa4 <[^>]*> nop
-+0+5aa8 <[^>]*> nop
-+0+5aac <[^>]*> nop
-+0+5ab0 <[^>]*> nop
-+0+5ab4 <[^>]*> nop
-+0+5ab8 <[^>]*> nop
-+0+5abc <[^>]*> nop
-+0+5ac0 <[^>]*> nop
-+0+5ac4 <[^>]*> nop
-+0+5ac8 <[^>]*> nop
-+0+5acc <[^>]*> nop
-+0+5ad0 <[^>]*> nop
-+0+5ad4 <[^>]*> nop
-+0+5ad8 <[^>]*> nop
-+0+5adc <[^>]*> nop
-+0+5ae0 <[^>]*> nop
-+0+5ae4 <[^>]*> nop
-+0+5ae8 <[^>]*> nop
-+0+5aec <[^>]*> nop
-+0+5af0 <[^>]*> nop
-+0+5af4 <[^>]*> nop
-+0+5af8 <[^>]*> nop
-+0+5afc <[^>]*> nop
-+0+5b00 <[^>]*> nop
-+0+5b04 <[^>]*> nop
-+0+5b08 <[^>]*> nop
-+0+5b0c <[^>]*> nop
-+0+5b10 <[^>]*> nop
-+0+5b14 <[^>]*> nop
-+0+5b18 <[^>]*> nop
-+0+5b1c <[^>]*> nop
-+0+5b20 <[^>]*> nop
-+0+5b24 <[^>]*> nop
-+0+5b28 <[^>]*> nop
-+0+5b2c <[^>]*> nop
-+0+5b30 <[^>]*> nop
-+0+5b34 <[^>]*> nop
-+0+5b38 <[^>]*> nop
-+0+5b3c <[^>]*> nop
-+0+5b40 <[^>]*> nop
-+0+5b44 <[^>]*> nop
-+0+5b48 <[^>]*> nop
-+0+5b4c <[^>]*> nop
-+0+5b50 <[^>]*> nop
-+0+5b54 <[^>]*> nop
-+0+5b58 <[^>]*> nop
-+0+5b5c <[^>]*> nop
-+0+5b60 <[^>]*> nop
-+0+5b64 <[^>]*> nop
-+0+5b68 <[^>]*> nop
-+0+5b6c <[^>]*> nop
-+0+5b70 <[^>]*> nop
-+0+5b74 <[^>]*> nop
-+0+5b78 <[^>]*> nop
-+0+5b7c <[^>]*> nop
-+0+5b80 <[^>]*> nop
-+0+5b84 <[^>]*> nop
-+0+5b88 <[^>]*> nop
-+0+5b8c <[^>]*> nop
-+0+5b90 <[^>]*> nop
-+0+5b94 <[^>]*> nop
-+0+5b98 <[^>]*> nop
-+0+5b9c <[^>]*> nop
-+0+5ba0 <[^>]*> nop
-+0+5ba4 <[^>]*> nop
-+0+5ba8 <[^>]*> nop
-+0+5bac <[^>]*> nop
-+0+5bb0 <[^>]*> nop
-+0+5bb4 <[^>]*> nop
-+0+5bb8 <[^>]*> nop
-+0+5bbc <[^>]*> nop
-+0+5bc0 <[^>]*> nop
-+0+5bc4 <[^>]*> nop
-+0+5bc8 <[^>]*> nop
-+0+5bcc <[^>]*> nop
-+0+5bd0 <[^>]*> nop
-+0+5bd4 <[^>]*> nop
-+0+5bd8 <[^>]*> nop
-+0+5bdc <[^>]*> nop
-+0+5be0 <[^>]*> nop
-+0+5be4 <[^>]*> nop
-+0+5be8 <[^>]*> nop
-+0+5bec <[^>]*> nop
-+0+5bf0 <[^>]*> nop
-+0+5bf4 <[^>]*> nop
-+0+5bf8 <[^>]*> nop
-+0+5bfc <[^>]*> nop
-+0+5c00 <[^>]*> nop
-+0+5c04 <[^>]*> nop
-+0+5c08 <[^>]*> nop
-+0+5c0c <[^>]*> nop
-+0+5c10 <[^>]*> nop
-+0+5c14 <[^>]*> nop
-+0+5c18 <[^>]*> nop
-+0+5c1c <[^>]*> nop
-+0+5c20 <[^>]*> nop
-+0+5c24 <[^>]*> nop
-+0+5c28 <[^>]*> nop
-+0+5c2c <[^>]*> nop
-+0+5c30 <[^>]*> nop
-+0+5c34 <[^>]*> nop
-+0+5c38 <[^>]*> nop
-+0+5c3c <[^>]*> nop
-+0+5c40 <[^>]*> nop
-+0+5c44 <[^>]*> nop
-+0+5c48 <[^>]*> nop
-+0+5c4c <[^>]*> nop
-+0+5c50 <[^>]*> nop
-+0+5c54 <[^>]*> nop
-+0+5c58 <[^>]*> nop
-+0+5c5c <[^>]*> nop
-+0+5c60 <[^>]*> nop
-+0+5c64 <[^>]*> nop
-+0+5c68 <[^>]*> nop
-+0+5c6c <[^>]*> nop
-+0+5c70 <[^>]*> nop
-+0+5c74 <[^>]*> nop
-+0+5c78 <[^>]*> nop
-+0+5c7c <[^>]*> nop
-+0+5c80 <[^>]*> nop
-+0+5c84 <[^>]*> nop
-+0+5c88 <[^>]*> nop
-+0+5c8c <[^>]*> nop
-+0+5c90 <[^>]*> nop
-+0+5c94 <[^>]*> nop
-+0+5c98 <[^>]*> nop
-+0+5c9c <[^>]*> nop
-+0+5ca0 <[^>]*> nop
-+0+5ca4 <[^>]*> nop
-+0+5ca8 <[^>]*> nop
-+0+5cac <[^>]*> nop
-+0+5cb0 <[^>]*> nop
-+0+5cb4 <[^>]*> nop
-+0+5cb8 <[^>]*> nop
-+0+5cbc <[^>]*> nop
-+0+5cc0 <[^>]*> nop
-+0+5cc4 <[^>]*> nop
-+0+5cc8 <[^>]*> nop
-+0+5ccc <[^>]*> nop
-+0+5cd0 <[^>]*> nop
-+0+5cd4 <[^>]*> nop
-+0+5cd8 <[^>]*> nop
-+0+5cdc <[^>]*> nop
-+0+5ce0 <[^>]*> nop
-+0+5ce4 <[^>]*> nop
-+0+5ce8 <[^>]*> nop
-+0+5cec <[^>]*> nop
-+0+5cf0 <[^>]*> nop
-+0+5cf4 <[^>]*> nop
-+0+5cf8 <[^>]*> nop
-+0+5cfc <[^>]*> nop
-+0+5d00 <[^>]*> nop
-+0+5d04 <[^>]*> nop
-+0+5d08 <[^>]*> nop
-+0+5d0c <[^>]*> nop
-+0+5d10 <[^>]*> nop
-+0+5d14 <[^>]*> nop
-+0+5d18 <[^>]*> nop
-+0+5d1c <[^>]*> nop
-+0+5d20 <[^>]*> nop
-+0+5d24 <[^>]*> nop
-+0+5d28 <[^>]*> nop
-+0+5d2c <[^>]*> nop
-+0+5d30 <[^>]*> nop
-+0+5d34 <[^>]*> nop
-+0+5d38 <[^>]*> nop
-+0+5d3c <[^>]*> nop
-+0+5d40 <[^>]*> nop
-+0+5d44 <[^>]*> nop
-+0+5d48 <[^>]*> nop
-+0+5d4c <[^>]*> nop
-+0+5d50 <[^>]*> nop
-+0+5d54 <[^>]*> nop
-+0+5d58 <[^>]*> nop
-+0+5d5c <[^>]*> nop
-+0+5d60 <[^>]*> nop
-+0+5d64 <[^>]*> nop
-+0+5d68 <[^>]*> nop
-+0+5d6c <[^>]*> nop
-+0+5d70 <[^>]*> nop
-+0+5d74 <[^>]*> nop
-+0+5d78 <[^>]*> nop
-+0+5d7c <[^>]*> nop
-+0+5d80 <[^>]*> nop
-+0+5d84 <[^>]*> nop
-+0+5d88 <[^>]*> nop
-+0+5d8c <[^>]*> nop
-+0+5d90 <[^>]*> nop
-+0+5d94 <[^>]*> nop
-+0+5d98 <[^>]*> nop
-+0+5d9c <[^>]*> nop
-+0+5da0 <[^>]*> nop
-+0+5da4 <[^>]*> nop
-+0+5da8 <[^>]*> nop
-+0+5dac <[^>]*> nop
-+0+5db0 <[^>]*> nop
-+0+5db4 <[^>]*> nop
-+0+5db8 <[^>]*> nop
-+0+5dbc <[^>]*> nop
-+0+5dc0 <[^>]*> nop
-+0+5dc4 <[^>]*> nop
-+0+5dc8 <[^>]*> nop
-+0+5dcc <[^>]*> nop
-+0+5dd0 <[^>]*> nop
-+0+5dd4 <[^>]*> nop
-+0+5dd8 <[^>]*> nop
-+0+5ddc <[^>]*> nop
-+0+5de0 <[^>]*> nop
-+0+5de4 <[^>]*> nop
-+0+5de8 <[^>]*> nop
-+0+5dec <[^>]*> nop
-+0+5df0 <[^>]*> nop
-+0+5df4 <[^>]*> nop
-+0+5df8 <[^>]*> nop
-+0+5dfc <[^>]*> nop
-+0+5e00 <[^>]*> nop
-+0+5e04 <[^>]*> nop
-+0+5e08 <[^>]*> nop
-+0+5e0c <[^>]*> nop
-+0+5e10 <[^>]*> nop
-+0+5e14 <[^>]*> nop
-+0+5e18 <[^>]*> nop
-+0+5e1c <[^>]*> nop
-+0+5e20 <[^>]*> nop
-+0+5e24 <[^>]*> nop
-+0+5e28 <[^>]*> nop
-+0+5e2c <[^>]*> nop
-+0+5e30 <[^>]*> nop
-+0+5e34 <[^>]*> nop
-+0+5e38 <[^>]*> nop
-+0+5e3c <[^>]*> nop
-+0+5e40 <[^>]*> nop
-+0+5e44 <[^>]*> nop
-+0+5e48 <[^>]*> nop
-+0+5e4c <[^>]*> nop
-+0+5e50 <[^>]*> nop
-+0+5e54 <[^>]*> nop
-+0+5e58 <[^>]*> nop
-+0+5e5c <[^>]*> nop
-+0+5e60 <[^>]*> nop
-+0+5e64 <[^>]*> nop
-+0+5e68 <[^>]*> nop
-+0+5e6c <[^>]*> nop
-+0+5e70 <[^>]*> nop
-+0+5e74 <[^>]*> nop
-+0+5e78 <[^>]*> nop
-+0+5e7c <[^>]*> nop
-+0+5e80 <[^>]*> nop
-+0+5e84 <[^>]*> nop
-+0+5e88 <[^>]*> nop
-+0+5e8c <[^>]*> nop
-+0+5e90 <[^>]*> nop
-+0+5e94 <[^>]*> nop
-+0+5e98 <[^>]*> nop
-+0+5e9c <[^>]*> nop
-+0+5ea0 <[^>]*> nop
-+0+5ea4 <[^>]*> nop
-+0+5ea8 <[^>]*> nop
-+0+5eac <[^>]*> nop
-+0+5eb0 <[^>]*> nop
-+0+5eb4 <[^>]*> nop
-+0+5eb8 <[^>]*> nop
-+0+5ebc <[^>]*> nop
-+0+5ec0 <[^>]*> nop
-+0+5ec4 <[^>]*> nop
-+0+5ec8 <[^>]*> nop
-+0+5ecc <[^>]*> nop
-+0+5ed0 <[^>]*> nop
-+0+5ed4 <[^>]*> nop
-+0+5ed8 <[^>]*> nop
-+0+5edc <[^>]*> nop
-+0+5ee0 <[^>]*> nop
-+0+5ee4 <[^>]*> nop
-+0+5ee8 <[^>]*> nop
-+0+5eec <[^>]*> nop
-+0+5ef0 <[^>]*> nop
-+0+5ef4 <[^>]*> nop
-+0+5ef8 <[^>]*> nop
-+0+5efc <[^>]*> nop
-+0+5f00 <[^>]*> nop
-+0+5f04 <[^>]*> nop
-+0+5f08 <[^>]*> nop
-+0+5f0c <[^>]*> nop
-+0+5f10 <[^>]*> nop
-+0+5f14 <[^>]*> nop
-+0+5f18 <[^>]*> nop
-+0+5f1c <[^>]*> nop
-+0+5f20 <[^>]*> nop
-+0+5f24 <[^>]*> nop
-+0+5f28 <[^>]*> nop
-+0+5f2c <[^>]*> nop
-+0+5f30 <[^>]*> nop
-+0+5f34 <[^>]*> nop
-+0+5f38 <[^>]*> nop
-+0+5f3c <[^>]*> nop
-+0+5f40 <[^>]*> nop
-+0+5f44 <[^>]*> nop
-+0+5f48 <[^>]*> nop
-+0+5f4c <[^>]*> nop
-+0+5f50 <[^>]*> nop
-+0+5f54 <[^>]*> nop
-+0+5f58 <[^>]*> nop
-+0+5f5c <[^>]*> nop
-+0+5f60 <[^>]*> nop
-+0+5f64 <[^>]*> nop
-+0+5f68 <[^>]*> nop
-+0+5f6c <[^>]*> nop
-+0+5f70 <[^>]*> nop
-+0+5f74 <[^>]*> nop
-+0+5f78 <[^>]*> nop
-+0+5f7c <[^>]*> nop
-+0+5f80 <[^>]*> nop
-+0+5f84 <[^>]*> nop
-+0+5f88 <[^>]*> nop
-+0+5f8c <[^>]*> nop
-+0+5f90 <[^>]*> nop
-+0+5f94 <[^>]*> nop
-+0+5f98 <[^>]*> nop
-+0+5f9c <[^>]*> nop
-+0+5fa0 <[^>]*> nop
-+0+5fa4 <[^>]*> nop
-+0+5fa8 <[^>]*> nop
-+0+5fac <[^>]*> nop
-+0+5fb0 <[^>]*> nop
-+0+5fb4 <[^>]*> nop
-+0+5fb8 <[^>]*> nop
-+0+5fbc <[^>]*> nop
-+0+5fc0 <[^>]*> nop
-+0+5fc4 <[^>]*> nop
-+0+5fc8 <[^>]*> nop
-+0+5fcc <[^>]*> nop
-+0+5fd0 <[^>]*> nop
-+0+5fd4 <[^>]*> nop
-+0+5fd8 <[^>]*> nop
-+0+5fdc <[^>]*> nop
-+0+5fe0 <[^>]*> nop
-+0+5fe4 <[^>]*> nop
-+0+5fe8 <[^>]*> nop
-+0+5fec <[^>]*> nop
-+0+5ff0 <[^>]*> nop
-+0+5ff4 <[^>]*> nop
-+0+5ff8 <[^>]*> nop
-+0+5ffc <[^>]*> nop
-+0+6000 <[^>]*> nop
-+0+6004 <[^>]*> nop
-+0+6008 <[^>]*> nop
-+0+600c <[^>]*> nop
-+0+6010 <[^>]*> nop
-+0+6014 <[^>]*> nop
-+0+6018 <[^>]*> nop
-+0+601c <[^>]*> nop
-+0+6020 <[^>]*> nop
-+0+6024 <[^>]*> nop
-+0+6028 <[^>]*> nop
-+0+602c <[^>]*> nop
-+0+6030 <[^>]*> nop
-+0+6034 <[^>]*> nop
-+0+6038 <[^>]*> nop
-+0+603c <[^>]*> nop
-+0+6040 <[^>]*> nop
-+0+6044 <[^>]*> nop
-+0+6048 <[^>]*> nop
-+0+604c <[^>]*> nop
-+0+6050 <[^>]*> nop
-+0+6054 <[^>]*> nop
-+0+6058 <[^>]*> nop
-+0+605c <[^>]*> nop
-+0+6060 <[^>]*> nop
-+0+6064 <[^>]*> nop
-+0+6068 <[^>]*> nop
-+0+606c <[^>]*> nop
-+0+6070 <[^>]*> nop
-+0+6074 <[^>]*> nop
-+0+6078 <[^>]*> nop
-+0+607c <[^>]*> nop
-+0+6080 <[^>]*> nop
-+0+6084 <[^>]*> nop
-+0+6088 <[^>]*> nop
-+0+608c <[^>]*> nop
-+0+6090 <[^>]*> nop
-+0+6094 <[^>]*> nop
-+0+6098 <[^>]*> nop
-+0+609c <[^>]*> nop
-+0+60a0 <[^>]*> nop
-+0+60a4 <[^>]*> nop
-+0+60a8 <[^>]*> nop
-+0+60ac <[^>]*> nop
-+0+60b0 <[^>]*> nop
-+0+60b4 <[^>]*> nop
-+0+60b8 <[^>]*> nop
-+0+60bc <[^>]*> nop
-+0+60c0 <[^>]*> nop
-+0+60c4 <[^>]*> nop
-+0+60c8 <[^>]*> nop
-+0+60cc <[^>]*> nop
-+0+60d0 <[^>]*> nop
-+0+60d4 <[^>]*> nop
-+0+60d8 <[^>]*> nop
-+0+60dc <[^>]*> nop
-+0+60e0 <[^>]*> nop
-+0+60e4 <[^>]*> nop
-+0+60e8 <[^>]*> nop
-+0+60ec <[^>]*> nop
-+0+60f0 <[^>]*> nop
-+0+60f4 <[^>]*> nop
-+0+60f8 <[^>]*> nop
-+0+60fc <[^>]*> nop
-+0+6100 <[^>]*> nop
-+0+6104 <[^>]*> nop
-+0+6108 <[^>]*> nop
-+0+610c <[^>]*> nop
-+0+6110 <[^>]*> nop
-+0+6114 <[^>]*> nop
-+0+6118 <[^>]*> nop
-+0+611c <[^>]*> nop
-+0+6120 <[^>]*> nop
-+0+6124 <[^>]*> nop
-+0+6128 <[^>]*> nop
-+0+612c <[^>]*> nop
-+0+6130 <[^>]*> nop
-+0+6134 <[^>]*> nop
-+0+6138 <[^>]*> nop
-+0+613c <[^>]*> nop
-+0+6140 <[^>]*> nop
-+0+6144 <[^>]*> nop
-+0+6148 <[^>]*> nop
-+0+614c <[^>]*> nop
-+0+6150 <[^>]*> nop
-+0+6154 <[^>]*> nop
-+0+6158 <[^>]*> nop
-+0+615c <[^>]*> nop
-+0+6160 <[^>]*> nop
-+0+6164 <[^>]*> nop
-+0+6168 <[^>]*> nop
-+0+616c <[^>]*> nop
-+0+6170 <[^>]*> nop
-+0+6174 <[^>]*> nop
-+0+6178 <[^>]*> nop
-+0+617c <[^>]*> nop
-+0+6180 <[^>]*> nop
-+0+6184 <[^>]*> nop
-+0+6188 <[^>]*> nop
-+0+618c <[^>]*> nop
-+0+6190 <[^>]*> nop
-+0+6194 <[^>]*> nop
-+0+6198 <[^>]*> nop
-+0+619c <[^>]*> nop
-+0+61a0 <[^>]*> nop
-+0+61a4 <[^>]*> nop
-+0+61a8 <[^>]*> nop
-+0+61ac <[^>]*> nop
-+0+61b0 <[^>]*> nop
-+0+61b4 <[^>]*> nop
-+0+61b8 <[^>]*> nop
-+0+61bc <[^>]*> nop
-+0+61c0 <[^>]*> nop
-+0+61c4 <[^>]*> nop
-+0+61c8 <[^>]*> nop
-+0+61cc <[^>]*> nop
-+0+61d0 <[^>]*> nop
-+0+61d4 <[^>]*> nop
-+0+61d8 <[^>]*> nop
-+0+61dc <[^>]*> nop
-+0+61e0 <[^>]*> nop
-+0+61e4 <[^>]*> nop
-+0+61e8 <[^>]*> nop
-+0+61ec <[^>]*> nop
-+0+61f0 <[^>]*> nop
-+0+61f4 <[^>]*> nop
-+0+61f8 <[^>]*> nop
-+0+61fc <[^>]*> nop
-+0+6200 <[^>]*> nop
-+0+6204 <[^>]*> nop
-+0+6208 <[^>]*> nop
-+0+620c <[^>]*> nop
-+0+6210 <[^>]*> nop
-+0+6214 <[^>]*> nop
-+0+6218 <[^>]*> nop
-+0+621c <[^>]*> nop
-+0+6220 <[^>]*> nop
-+0+6224 <[^>]*> nop
-+0+6228 <[^>]*> nop
-+0+622c <[^>]*> nop
-+0+6230 <[^>]*> nop
-+0+6234 <[^>]*> nop
-+0+6238 <[^>]*> nop
-+0+623c <[^>]*> nop
-+0+6240 <[^>]*> nop
-+0+6244 <[^>]*> nop
-+0+6248 <[^>]*> nop
-+0+624c <[^>]*> nop
-+0+6250 <[^>]*> nop
-+0+6254 <[^>]*> nop
-+0+6258 <[^>]*> nop
-+0+625c <[^>]*> nop
-+0+6260 <[^>]*> nop
-+0+6264 <[^>]*> nop
-+0+6268 <[^>]*> nop
-+0+626c <[^>]*> nop
-+0+6270 <[^>]*> nop
-+0+6274 <[^>]*> nop
-+0+6278 <[^>]*> nop
-+0+627c <[^>]*> nop
-+0+6280 <[^>]*> nop
-+0+6284 <[^>]*> nop
-+0+6288 <[^>]*> nop
-+0+628c <[^>]*> nop
-+0+6290 <[^>]*> nop
-+0+6294 <[^>]*> nop
-+0+6298 <[^>]*> nop
-+0+629c <[^>]*> nop
-+0+62a0 <[^>]*> nop
-+0+62a4 <[^>]*> nop
-+0+62a8 <[^>]*> nop
-+0+62ac <[^>]*> nop
-+0+62b0 <[^>]*> nop
-+0+62b4 <[^>]*> nop
-+0+62b8 <[^>]*> nop
-+0+62bc <[^>]*> nop
-+0+62c0 <[^>]*> nop
-+0+62c4 <[^>]*> nop
-+0+62c8 <[^>]*> nop
-+0+62cc <[^>]*> nop
-+0+62d0 <[^>]*> nop
-+0+62d4 <[^>]*> nop
-+0+62d8 <[^>]*> nop
-+0+62dc <[^>]*> nop
-+0+62e0 <[^>]*> nop
-+0+62e4 <[^>]*> nop
-+0+62e8 <[^>]*> nop
-+0+62ec <[^>]*> nop
-+0+62f0 <[^>]*> nop
-+0+62f4 <[^>]*> nop
-+0+62f8 <[^>]*> nop
-+0+62fc <[^>]*> nop
-+0+6300 <[^>]*> nop
-+0+6304 <[^>]*> nop
-+0+6308 <[^>]*> nop
-+0+630c <[^>]*> nop
-+0+6310 <[^>]*> nop
-+0+6314 <[^>]*> nop
-+0+6318 <[^>]*> nop
-+0+631c <[^>]*> nop
-+0+6320 <[^>]*> nop
-+0+6324 <[^>]*> nop
-+0+6328 <[^>]*> nop
-+0+632c <[^>]*> nop
-+0+6330 <[^>]*> nop
-+0+6334 <[^>]*> nop
-+0+6338 <[^>]*> nop
-+0+633c <[^>]*> nop
-+0+6340 <[^>]*> nop
-+0+6344 <[^>]*> nop
-+0+6348 <[^>]*> nop
-+0+634c <[^>]*> nop
-+0+6350 <[^>]*> nop
-+0+6354 <[^>]*> nop
-+0+6358 <[^>]*> nop
-+0+635c <[^>]*> nop
-+0+6360 <[^>]*> nop
-+0+6364 <[^>]*> nop
-+0+6368 <[^>]*> nop
-+0+636c <[^>]*> nop
-+0+6370 <[^>]*> nop
-+0+6374 <[^>]*> nop
-+0+6378 <[^>]*> nop
-+0+637c <[^>]*> nop
-+0+6380 <[^>]*> nop
-+0+6384 <[^>]*> nop
-+0+6388 <[^>]*> nop
-+0+638c <[^>]*> nop
-+0+6390 <[^>]*> nop
-+0+6394 <[^>]*> nop
-+0+6398 <[^>]*> nop
-+0+639c <[^>]*> nop
-+0+63a0 <[^>]*> nop
-+0+63a4 <[^>]*> nop
-+0+63a8 <[^>]*> nop
-+0+63ac <[^>]*> nop
-+0+63b0 <[^>]*> nop
-+0+63b4 <[^>]*> nop
-+0+63b8 <[^>]*> nop
-+0+63bc <[^>]*> nop
-+0+63c0 <[^>]*> nop
-+0+63c4 <[^>]*> nop
-+0+63c8 <[^>]*> nop
-+0+63cc <[^>]*> nop
-+0+63d0 <[^>]*> nop
-+0+63d4 <[^>]*> nop
-+0+63d8 <[^>]*> nop
-+0+63dc <[^>]*> nop
-+0+63e0 <[^>]*> nop
-+0+63e4 <[^>]*> nop
-+0+63e8 <[^>]*> nop
-+0+63ec <[^>]*> nop
-+0+63f0 <[^>]*> nop
-+0+63f4 <[^>]*> nop
-+0+63f8 <[^>]*> nop
-+0+63fc <[^>]*> nop
-+0+6400 <[^>]*> nop
-+0+6404 <[^>]*> nop
-+0+6408 <[^>]*> nop
-+0+640c <[^>]*> nop
-+0+6410 <[^>]*> nop
-+0+6414 <[^>]*> nop
-+0+6418 <[^>]*> nop
-+0+641c <[^>]*> nop
-+0+6420 <[^>]*> nop
-+0+6424 <[^>]*> nop
-+0+6428 <[^>]*> nop
-+0+642c <[^>]*> nop
-+0+6430 <[^>]*> nop
-+0+6434 <[^>]*> nop
-+0+6438 <[^>]*> nop
-+0+643c <[^>]*> nop
-+0+6440 <[^>]*> nop
-+0+6444 <[^>]*> nop
-+0+6448 <[^>]*> nop
-+0+644c <[^>]*> nop
-+0+6450 <[^>]*> nop
-+0+6454 <[^>]*> nop
-+0+6458 <[^>]*> nop
-+0+645c <[^>]*> nop
-+0+6460 <[^>]*> nop
-+0+6464 <[^>]*> nop
-+0+6468 <[^>]*> nop
-+0+646c <[^>]*> nop
-+0+6470 <[^>]*> nop
-+0+6474 <[^>]*> nop
-+0+6478 <[^>]*> nop
-+0+647c <[^>]*> nop
-+0+6480 <[^>]*> nop
-+0+6484 <[^>]*> nop
-+0+6488 <[^>]*> nop
-+0+648c <[^>]*> nop
-+0+6490 <[^>]*> nop
-+0+6494 <[^>]*> nop
-+0+6498 <[^>]*> nop
-+0+649c <[^>]*> nop
-+0+64a0 <[^>]*> nop
-+0+64a4 <[^>]*> nop
-+0+64a8 <[^>]*> nop
-+0+64ac <[^>]*> nop
-+0+64b0 <[^>]*> nop
-+0+64b4 <[^>]*> nop
-+0+64b8 <[^>]*> nop
-+0+64bc <[^>]*> nop
-+0+64c0 <[^>]*> nop
-+0+64c4 <[^>]*> nop
-+0+64c8 <[^>]*> nop
-+0+64cc <[^>]*> nop
-+0+64d0 <[^>]*> nop
-+0+64d4 <[^>]*> nop
-+0+64d8 <[^>]*> nop
-+0+64dc <[^>]*> nop
-+0+64e0 <[^>]*> nop
-+0+64e4 <[^>]*> nop
-+0+64e8 <[^>]*> nop
-+0+64ec <[^>]*> nop
-+0+64f0 <[^>]*> nop
-+0+64f4 <[^>]*> nop
-+0+64f8 <[^>]*> nop
-+0+64fc <[^>]*> nop
-+0+6500 <[^>]*> nop
-+0+6504 <[^>]*> nop
-+0+6508 <[^>]*> nop
-+0+650c <[^>]*> nop
-+0+6510 <[^>]*> nop
-+0+6514 <[^>]*> nop
-+0+6518 <[^>]*> nop
-+0+651c <[^>]*> nop
-+0+6520 <[^>]*> nop
-+0+6524 <[^>]*> nop
-+0+6528 <[^>]*> nop
-+0+652c <[^>]*> nop
-+0+6530 <[^>]*> nop
-+0+6534 <[^>]*> nop
-+0+6538 <[^>]*> nop
-+0+653c <[^>]*> nop
-+0+6540 <[^>]*> nop
-+0+6544 <[^>]*> nop
-+0+6548 <[^>]*> nop
-+0+654c <[^>]*> nop
-+0+6550 <[^>]*> nop
-+0+6554 <[^>]*> nop
-+0+6558 <[^>]*> nop
-+0+655c <[^>]*> nop
-+0+6560 <[^>]*> nop
-+0+6564 <[^>]*> nop
-+0+6568 <[^>]*> nop
-+0+656c <[^>]*> nop
-+0+6570 <[^>]*> nop
-+0+6574 <[^>]*> nop
-+0+6578 <[^>]*> nop
-+0+657c <[^>]*> nop
-+0+6580 <[^>]*> nop
-+0+6584 <[^>]*> nop
-+0+6588 <[^>]*> nop
-+0+658c <[^>]*> nop
-+0+6590 <[^>]*> nop
-+0+6594 <[^>]*> nop
-+0+6598 <[^>]*> nop
-+0+659c <[^>]*> nop
-+0+65a0 <[^>]*> nop
-+0+65a4 <[^>]*> nop
-+0+65a8 <[^>]*> nop
-+0+65ac <[^>]*> nop
-+0+65b0 <[^>]*> nop
-+0+65b4 <[^>]*> nop
-+0+65b8 <[^>]*> nop
-+0+65bc <[^>]*> nop
-+0+65c0 <[^>]*> nop
-+0+65c4 <[^>]*> nop
-+0+65c8 <[^>]*> nop
-+0+65cc <[^>]*> nop
-+0+65d0 <[^>]*> nop
-+0+65d4 <[^>]*> nop
-+0+65d8 <[^>]*> nop
-+0+65dc <[^>]*> nop
-+0+65e0 <[^>]*> nop
-+0+65e4 <[^>]*> nop
-+0+65e8 <[^>]*> nop
-+0+65ec <[^>]*> nop
-+0+65f0 <[^>]*> nop
-+0+65f4 <[^>]*> nop
-+0+65f8 <[^>]*> nop
-+0+65fc <[^>]*> nop
-+0+6600 <[^>]*> nop
-+0+6604 <[^>]*> nop
-+0+6608 <[^>]*> nop
-+0+660c <[^>]*> nop
-+0+6610 <[^>]*> nop
-+0+6614 <[^>]*> nop
-+0+6618 <[^>]*> nop
-+0+661c <[^>]*> nop
-+0+6620 <[^>]*> nop
-+0+6624 <[^>]*> nop
-+0+6628 <[^>]*> nop
-+0+662c <[^>]*> nop
-+0+6630 <[^>]*> nop
-+0+6634 <[^>]*> nop
-+0+6638 <[^>]*> nop
-+0+663c <[^>]*> nop
-+0+6640 <[^>]*> nop
-+0+6644 <[^>]*> nop
-+0+6648 <[^>]*> nop
-+0+664c <[^>]*> nop
-+0+6650 <[^>]*> nop
-+0+6654 <[^>]*> nop
-+0+6658 <[^>]*> nop
-+0+665c <[^>]*> nop
-+0+6660 <[^>]*> nop
-+0+6664 <[^>]*> nop
-+0+6668 <[^>]*> nop
-+0+666c <[^>]*> nop
-+0+6670 <[^>]*> nop
-+0+6674 <[^>]*> nop
-+0+6678 <[^>]*> nop
-+0+667c <[^>]*> nop
-+0+6680 <[^>]*> nop
-+0+6684 <[^>]*> nop
-+0+6688 <[^>]*> nop
-+0+668c <[^>]*> nop
-+0+6690 <[^>]*> nop
-+0+6694 <[^>]*> nop
-+0+6698 <[^>]*> nop
-+0+669c <[^>]*> nop
-+0+66a0 <[^>]*> nop
-+0+66a4 <[^>]*> nop
-+0+66a8 <[^>]*> nop
-+0+66ac <[^>]*> nop
-+0+66b0 <[^>]*> nop
-+0+66b4 <[^>]*> nop
-+0+66b8 <[^>]*> nop
-+0+66bc <[^>]*> nop
-+0+66c0 <[^>]*> nop
-+0+66c4 <[^>]*> nop
-+0+66c8 <[^>]*> nop
-+0+66cc <[^>]*> nop
-+0+66d0 <[^>]*> nop
-+0+66d4 <[^>]*> nop
-+0+66d8 <[^>]*> nop
-+0+66dc <[^>]*> nop
-+0+66e0 <[^>]*> nop
-+0+66e4 <[^>]*> nop
-+0+66e8 <[^>]*> nop
-+0+66ec <[^>]*> nop
-+0+66f0 <[^>]*> nop
-+0+66f4 <[^>]*> nop
-+0+66f8 <[^>]*> nop
-+0+66fc <[^>]*> nop
-+0+6700 <[^>]*> nop
-+0+6704 <[^>]*> nop
-+0+6708 <[^>]*> nop
-+0+670c <[^>]*> nop
-+0+6710 <[^>]*> nop
-+0+6714 <[^>]*> nop
-+0+6718 <[^>]*> nop
-+0+671c <[^>]*> nop
-+0+6720 <[^>]*> nop
-+0+6724 <[^>]*> nop
-+0+6728 <[^>]*> nop
-+0+672c <[^>]*> nop
-+0+6730 <[^>]*> nop
-+0+6734 <[^>]*> nop
-+0+6738 <[^>]*> nop
-+0+673c <[^>]*> nop
-+0+6740 <[^>]*> nop
-+0+6744 <[^>]*> nop
-+0+6748 <[^>]*> nop
-+0+674c <[^>]*> nop
-+0+6750 <[^>]*> nop
-+0+6754 <[^>]*> nop
-+0+6758 <[^>]*> nop
-+0+675c <[^>]*> nop
-+0+6760 <[^>]*> nop
-+0+6764 <[^>]*> nop
-+0+6768 <[^>]*> nop
-+0+676c <[^>]*> nop
-+0+6770 <[^>]*> nop
-+0+6774 <[^>]*> nop
-+0+6778 <[^>]*> nop
-+0+677c <[^>]*> nop
-+0+6780 <[^>]*> nop
-+0+6784 <[^>]*> nop
-+0+6788 <[^>]*> nop
-+0+678c <[^>]*> nop
-+0+6790 <[^>]*> nop
-+0+6794 <[^>]*> nop
-+0+6798 <[^>]*> nop
-+0+679c <[^>]*> nop
-+0+67a0 <[^>]*> nop
-+0+67a4 <[^>]*> nop
-+0+67a8 <[^>]*> nop
-+0+67ac <[^>]*> nop
-+0+67b0 <[^>]*> nop
-+0+67b4 <[^>]*> nop
-+0+67b8 <[^>]*> nop
-+0+67bc <[^>]*> nop
-+0+67c0 <[^>]*> nop
-+0+67c4 <[^>]*> nop
-+0+67c8 <[^>]*> nop
-+0+67cc <[^>]*> nop
-+0+67d0 <[^>]*> nop
-+0+67d4 <[^>]*> nop
-+0+67d8 <[^>]*> nop
-+0+67dc <[^>]*> nop
-+0+67e0 <[^>]*> nop
-+0+67e4 <[^>]*> nop
-+0+67e8 <[^>]*> nop
-+0+67ec <[^>]*> nop
-+0+67f0 <[^>]*> nop
-+0+67f4 <[^>]*> nop
-+0+67f8 <[^>]*> nop
-+0+67fc <[^>]*> nop
-+0+6800 <[^>]*> nop
-+0+6804 <[^>]*> nop
-+0+6808 <[^>]*> nop
-+0+680c <[^>]*> nop
-+0+6810 <[^>]*> nop
-+0+6814 <[^>]*> nop
-+0+6818 <[^>]*> nop
-+0+681c <[^>]*> nop
-+0+6820 <[^>]*> nop
-+0+6824 <[^>]*> nop
-+0+6828 <[^>]*> nop
-+0+682c <[^>]*> nop
-+0+6830 <[^>]*> nop
-+0+6834 <[^>]*> nop
-+0+6838 <[^>]*> nop
-+0+683c <[^>]*> nop
-+0+6840 <[^>]*> nop
-+0+6844 <[^>]*> nop
-+0+6848 <[^>]*> nop
-+0+684c <[^>]*> nop
-+0+6850 <[^>]*> nop
-+0+6854 <[^>]*> nop
-+0+6858 <[^>]*> nop
-+0+685c <[^>]*> nop
-+0+6860 <[^>]*> nop
-+0+6864 <[^>]*> nop
-+0+6868 <[^>]*> nop
-+0+686c <[^>]*> nop
-+0+6870 <[^>]*> nop
-+0+6874 <[^>]*> nop
-+0+6878 <[^>]*> nop
-+0+687c <[^>]*> nop
-+0+6880 <[^>]*> nop
-+0+6884 <[^>]*> nop
-+0+6888 <[^>]*> nop
-+0+688c <[^>]*> nop
-+0+6890 <[^>]*> nop
-+0+6894 <[^>]*> nop
-+0+6898 <[^>]*> nop
-+0+689c <[^>]*> nop
-+0+68a0 <[^>]*> nop
-+0+68a4 <[^>]*> nop
-+0+68a8 <[^>]*> nop
-+0+68ac <[^>]*> nop
-+0+68b0 <[^>]*> nop
-+0+68b4 <[^>]*> nop
-+0+68b8 <[^>]*> nop
-+0+68bc <[^>]*> nop
-+0+68c0 <[^>]*> nop
-+0+68c4 <[^>]*> nop
-+0+68c8 <[^>]*> nop
-+0+68cc <[^>]*> nop
-+0+68d0 <[^>]*> nop
-+0+68d4 <[^>]*> nop
-+0+68d8 <[^>]*> nop
-+0+68dc <[^>]*> nop
-+0+68e0 <[^>]*> nop
-+0+68e4 <[^>]*> nop
-+0+68e8 <[^>]*> nop
-+0+68ec <[^>]*> nop
-+0+68f0 <[^>]*> nop
-+0+68f4 <[^>]*> nop
-+0+68f8 <[^>]*> nop
-+0+68fc <[^>]*> nop
-+0+6900 <[^>]*> nop
-+0+6904 <[^>]*> nop
-+0+6908 <[^>]*> nop
-+0+690c <[^>]*> nop
-+0+6910 <[^>]*> nop
-+0+6914 <[^>]*> nop
-+0+6918 <[^>]*> nop
-+0+691c <[^>]*> nop
-+0+6920 <[^>]*> nop
-+0+6924 <[^>]*> nop
-+0+6928 <[^>]*> nop
-+0+692c <[^>]*> nop
-+0+6930 <[^>]*> nop
-+0+6934 <[^>]*> nop
-+0+6938 <[^>]*> nop
-+0+693c <[^>]*> nop
-+0+6940 <[^>]*> nop
-+0+6944 <[^>]*> nop
-+0+6948 <[^>]*> nop
-+0+694c <[^>]*> nop
-+0+6950 <[^>]*> nop
-+0+6954 <[^>]*> nop
-+0+6958 <[^>]*> nop
-+0+695c <[^>]*> nop
-+0+6960 <[^>]*> nop
-+0+6964 <[^>]*> nop
-+0+6968 <[^>]*> nop
-+0+696c <[^>]*> nop
-+0+6970 <[^>]*> nop
-+0+6974 <[^>]*> nop
-+0+6978 <[^>]*> nop
-+0+697c <[^>]*> nop
-+0+6980 <[^>]*> nop
-+0+6984 <[^>]*> nop
-+0+6988 <[^>]*> nop
-+0+698c <[^>]*> nop
-+0+6990 <[^>]*> nop
-+0+6994 <[^>]*> nop
-+0+6998 <[^>]*> nop
-+0+699c <[^>]*> nop
-+0+69a0 <[^>]*> nop
-+0+69a4 <[^>]*> nop
-+0+69a8 <[^>]*> nop
-+0+69ac <[^>]*> nop
-+0+69b0 <[^>]*> nop
-+0+69b4 <[^>]*> nop
-+0+69b8 <[^>]*> nop
-+0+69bc <[^>]*> nop
-+0+69c0 <[^>]*> nop
-+0+69c4 <[^>]*> nop
-+0+69c8 <[^>]*> nop
-+0+69cc <[^>]*> nop
-+0+69d0 <[^>]*> nop
-+0+69d4 <[^>]*> nop
-+0+69d8 <[^>]*> nop
-+0+69dc <[^>]*> nop
-+0+69e0 <[^>]*> nop
-+0+69e4 <[^>]*> nop
-+0+69e8 <[^>]*> nop
-+0+69ec <[^>]*> nop
-+0+69f0 <[^>]*> nop
-+0+69f4 <[^>]*> nop
-+0+69f8 <[^>]*> nop
-+0+69fc <[^>]*> nop
-+0+6a00 <[^>]*> nop
-+0+6a04 <[^>]*> nop
-+0+6a08 <[^>]*> nop
-+0+6a0c <[^>]*> nop
-+0+6a10 <[^>]*> nop
-+0+6a14 <[^>]*> nop
-+0+6a18 <[^>]*> nop
-+0+6a1c <[^>]*> nop
-+0+6a20 <[^>]*> nop
-+0+6a24 <[^>]*> nop
-+0+6a28 <[^>]*> nop
-+0+6a2c <[^>]*> nop
-+0+6a30 <[^>]*> nop
-+0+6a34 <[^>]*> nop
-+0+6a38 <[^>]*> nop
-+0+6a3c <[^>]*> nop
-+0+6a40 <[^>]*> nop
-+0+6a44 <[^>]*> nop
-+0+6a48 <[^>]*> nop
-+0+6a4c <[^>]*> nop
-+0+6a50 <[^>]*> nop
-+0+6a54 <[^>]*> nop
-+0+6a58 <[^>]*> nop
-+0+6a5c <[^>]*> nop
-+0+6a60 <[^>]*> nop
-+0+6a64 <[^>]*> nop
-+0+6a68 <[^>]*> nop
-+0+6a6c <[^>]*> nop
-+0+6a70 <[^>]*> nop
-+0+6a74 <[^>]*> nop
-+0+6a78 <[^>]*> nop
-+0+6a7c <[^>]*> nop
-+0+6a80 <[^>]*> nop
-+0+6a84 <[^>]*> nop
-+0+6a88 <[^>]*> nop
-+0+6a8c <[^>]*> nop
-+0+6a90 <[^>]*> nop
-+0+6a94 <[^>]*> nop
-+0+6a98 <[^>]*> nop
-+0+6a9c <[^>]*> nop
-+0+6aa0 <[^>]*> nop
-+0+6aa4 <[^>]*> nop
-+0+6aa8 <[^>]*> nop
-+0+6aac <[^>]*> nop
-+0+6ab0 <[^>]*> nop
-+0+6ab4 <[^>]*> nop
-+0+6ab8 <[^>]*> nop
-+0+6abc <[^>]*> nop
-+0+6ac0 <[^>]*> nop
-+0+6ac4 <[^>]*> nop
-+0+6ac8 <[^>]*> nop
-+0+6acc <[^>]*> nop
-+0+6ad0 <[^>]*> nop
-+0+6ad4 <[^>]*> nop
-+0+6ad8 <[^>]*> nop
-+0+6adc <[^>]*> nop
-+0+6ae0 <[^>]*> nop
-+0+6ae4 <[^>]*> nop
-+0+6ae8 <[^>]*> nop
-+0+6aec <[^>]*> nop
-+0+6af0 <[^>]*> nop
-+0+6af4 <[^>]*> nop
-+0+6af8 <[^>]*> nop
-+0+6afc <[^>]*> nop
-+0+6b00 <[^>]*> nop
-+0+6b04 <[^>]*> nop
-+0+6b08 <[^>]*> nop
-+0+6b0c <[^>]*> nop
-+0+6b10 <[^>]*> nop
-+0+6b14 <[^>]*> nop
-+0+6b18 <[^>]*> nop
-+0+6b1c <[^>]*> nop
-+0+6b20 <[^>]*> nop
-+0+6b24 <[^>]*> nop
-+0+6b28 <[^>]*> nop
-+0+6b2c <[^>]*> nop
-+0+6b30 <[^>]*> nop
-+0+6b34 <[^>]*> nop
-+0+6b38 <[^>]*> nop
-+0+6b3c <[^>]*> nop
-+0+6b40 <[^>]*> nop
-+0+6b44 <[^>]*> nop
-+0+6b48 <[^>]*> nop
-+0+6b4c <[^>]*> nop
-+0+6b50 <[^>]*> nop
-+0+6b54 <[^>]*> nop
-+0+6b58 <[^>]*> nop
-+0+6b5c <[^>]*> nop
-+0+6b60 <[^>]*> nop
-+0+6b64 <[^>]*> nop
-+0+6b68 <[^>]*> nop
-+0+6b6c <[^>]*> nop
-+0+6b70 <[^>]*> nop
-+0+6b74 <[^>]*> nop
-+0+6b78 <[^>]*> nop
-+0+6b7c <[^>]*> nop
-+0+6b80 <[^>]*> nop
-+0+6b84 <[^>]*> nop
-+0+6b88 <[^>]*> nop
-+0+6b8c <[^>]*> nop
-+0+6b90 <[^>]*> nop
-+0+6b94 <[^>]*> nop
-+0+6b98 <[^>]*> nop
-+0+6b9c <[^>]*> nop
-+0+6ba0 <[^>]*> nop
-+0+6ba4 <[^>]*> nop
-+0+6ba8 <[^>]*> nop
-+0+6bac <[^>]*> nop
-+0+6bb0 <[^>]*> nop
-+0+6bb4 <[^>]*> nop
-+0+6bb8 <[^>]*> nop
-+0+6bbc <[^>]*> nop
-+0+6bc0 <[^>]*> nop
-+0+6bc4 <[^>]*> nop
-+0+6bc8 <[^>]*> nop
-+0+6bcc <[^>]*> nop
-+0+6bd0 <[^>]*> nop
-+0+6bd4 <[^>]*> nop
-+0+6bd8 <[^>]*> nop
-+0+6bdc <[^>]*> nop
-+0+6be0 <[^>]*> nop
-+0+6be4 <[^>]*> nop
-+0+6be8 <[^>]*> nop
-+0+6bec <[^>]*> nop
-+0+6bf0 <[^>]*> nop
-+0+6bf4 <[^>]*> nop
-+0+6bf8 <[^>]*> nop
-+0+6bfc <[^>]*> nop
-+0+6c00 <[^>]*> nop
-+0+6c04 <[^>]*> nop
-+0+6c08 <[^>]*> nop
-+0+6c0c <[^>]*> nop
-+0+6c10 <[^>]*> nop
-+0+6c14 <[^>]*> nop
-+0+6c18 <[^>]*> nop
-+0+6c1c <[^>]*> nop
-+0+6c20 <[^>]*> nop
-+0+6c24 <[^>]*> nop
-+0+6c28 <[^>]*> nop
-+0+6c2c <[^>]*> nop
-+0+6c30 <[^>]*> nop
-+0+6c34 <[^>]*> nop
-+0+6c38 <[^>]*> nop
-+0+6c3c <[^>]*> nop
-+0+6c40 <[^>]*> nop
-+0+6c44 <[^>]*> nop
-+0+6c48 <[^>]*> nop
-+0+6c4c <[^>]*> nop
-+0+6c50 <[^>]*> nop
-+0+6c54 <[^>]*> nop
-+0+6c58 <[^>]*> nop
-+0+6c5c <[^>]*> nop
-+0+6c60 <[^>]*> nop
-+0+6c64 <[^>]*> nop
-+0+6c68 <[^>]*> nop
-+0+6c6c <[^>]*> nop
-+0+6c70 <[^>]*> nop
-+0+6c74 <[^>]*> nop
-+0+6c78 <[^>]*> nop
-+0+6c7c <[^>]*> nop
-+0+6c80 <[^>]*> nop
-+0+6c84 <[^>]*> nop
-+0+6c88 <[^>]*> nop
-+0+6c8c <[^>]*> nop
-+0+6c90 <[^>]*> nop
-+0+6c94 <[^>]*> nop
-+0+6c98 <[^>]*> nop
-+0+6c9c <[^>]*> nop
-+0+6ca0 <[^>]*> nop
-+0+6ca4 <[^>]*> nop
-+0+6ca8 <[^>]*> nop
-+0+6cac <[^>]*> nop
-+0+6cb0 <[^>]*> nop
-+0+6cb4 <[^>]*> nop
-+0+6cb8 <[^>]*> nop
-+0+6cbc <[^>]*> nop
-+0+6cc0 <[^>]*> nop
-+0+6cc4 <[^>]*> nop
-+0+6cc8 <[^>]*> nop
-+0+6ccc <[^>]*> nop
-+0+6cd0 <[^>]*> nop
-+0+6cd4 <[^>]*> nop
-+0+6cd8 <[^>]*> nop
-+0+6cdc <[^>]*> nop
-+0+6ce0 <[^>]*> nop
-+0+6ce4 <[^>]*> nop
-+0+6ce8 <[^>]*> nop
-+0+6cec <[^>]*> nop
-+0+6cf0 <[^>]*> nop
-+0+6cf4 <[^>]*> nop
-+0+6cf8 <[^>]*> nop
-+0+6cfc <[^>]*> nop
-+0+6d00 <[^>]*> nop
-+0+6d04 <[^>]*> nop
-+0+6d08 <[^>]*> nop
-+0+6d0c <[^>]*> nop
-+0+6d10 <[^>]*> nop
-+0+6d14 <[^>]*> nop
-+0+6d18 <[^>]*> nop
-+0+6d1c <[^>]*> nop
-+0+6d20 <[^>]*> nop
-+0+6d24 <[^>]*> nop
-+0+6d28 <[^>]*> nop
-+0+6d2c <[^>]*> nop
-+0+6d30 <[^>]*> nop
-+0+6d34 <[^>]*> nop
-+0+6d38 <[^>]*> nop
-+0+6d3c <[^>]*> nop
-+0+6d40 <[^>]*> nop
-+0+6d44 <[^>]*> nop
-+0+6d48 <[^>]*> nop
-+0+6d4c <[^>]*> nop
-+0+6d50 <[^>]*> nop
-+0+6d54 <[^>]*> nop
-+0+6d58 <[^>]*> nop
-+0+6d5c <[^>]*> nop
-+0+6d60 <[^>]*> nop
-+0+6d64 <[^>]*> nop
-+0+6d68 <[^>]*> nop
-+0+6d6c <[^>]*> nop
-+0+6d70 <[^>]*> nop
-+0+6d74 <[^>]*> nop
-+0+6d78 <[^>]*> nop
-+0+6d7c <[^>]*> nop
-+0+6d80 <[^>]*> nop
-+0+6d84 <[^>]*> nop
-+0+6d88 <[^>]*> nop
-+0+6d8c <[^>]*> nop
-+0+6d90 <[^>]*> nop
-+0+6d94 <[^>]*> nop
-+0+6d98 <[^>]*> nop
-+0+6d9c <[^>]*> nop
-+0+6da0 <[^>]*> nop
-+0+6da4 <[^>]*> nop
-+0+6da8 <[^>]*> nop
-+0+6dac <[^>]*> nop
-+0+6db0 <[^>]*> nop
-+0+6db4 <[^>]*> nop
-+0+6db8 <[^>]*> nop
-+0+6dbc <[^>]*> nop
-+0+6dc0 <[^>]*> nop
-+0+6dc4 <[^>]*> nop
-+0+6dc8 <[^>]*> nop
-+0+6dcc <[^>]*> nop
-+0+6dd0 <[^>]*> nop
-+0+6dd4 <[^>]*> nop
-+0+6dd8 <[^>]*> nop
-+0+6ddc <[^>]*> nop
-+0+6de0 <[^>]*> nop
-+0+6de4 <[^>]*> nop
-+0+6de8 <[^>]*> nop
-+0+6dec <[^>]*> nop
-+0+6df0 <[^>]*> nop
-+0+6df4 <[^>]*> nop
-+0+6df8 <[^>]*> nop
-+0+6dfc <[^>]*> nop
-+0+6e00 <[^>]*> nop
-+0+6e04 <[^>]*> nop
-+0+6e08 <[^>]*> nop
-+0+6e0c <[^>]*> nop
-+0+6e10 <[^>]*> nop
-+0+6e14 <[^>]*> nop
-+0+6e18 <[^>]*> nop
-+0+6e1c <[^>]*> nop
-+0+6e20 <[^>]*> nop
-+0+6e24 <[^>]*> nop
-+0+6e28 <[^>]*> nop
-+0+6e2c <[^>]*> nop
-+0+6e30 <[^>]*> nop
-+0+6e34 <[^>]*> nop
-+0+6e38 <[^>]*> nop
-+0+6e3c <[^>]*> nop
-+0+6e40 <[^>]*> nop
-+0+6e44 <[^>]*> nop
-+0+6e48 <[^>]*> nop
-+0+6e4c <[^>]*> nop
-+0+6e50 <[^>]*> nop
-+0+6e54 <[^>]*> nop
-+0+6e58 <[^>]*> nop
-+0+6e5c <[^>]*> nop
-+0+6e60 <[^>]*> nop
-+0+6e64 <[^>]*> nop
-+0+6e68 <[^>]*> nop
-+0+6e6c <[^>]*> nop
-+0+6e70 <[^>]*> nop
-+0+6e74 <[^>]*> nop
-+0+6e78 <[^>]*> nop
-+0+6e7c <[^>]*> nop
-+0+6e80 <[^>]*> nop
-+0+6e84 <[^>]*> nop
-+0+6e88 <[^>]*> nop
-+0+6e8c <[^>]*> nop
-+0+6e90 <[^>]*> nop
-+0+6e94 <[^>]*> nop
-+0+6e98 <[^>]*> nop
-+0+6e9c <[^>]*> nop
-+0+6ea0 <[^>]*> nop
-+0+6ea4 <[^>]*> nop
-+0+6ea8 <[^>]*> nop
-+0+6eac <[^>]*> nop
-+0+6eb0 <[^>]*> nop
-+0+6eb4 <[^>]*> nop
-+0+6eb8 <[^>]*> nop
-+0+6ebc <[^>]*> nop
-+0+6ec0 <[^>]*> nop
-+0+6ec4 <[^>]*> nop
-+0+6ec8 <[^>]*> nop
-+0+6ecc <[^>]*> nop
-+0+6ed0 <[^>]*> nop
-+0+6ed4 <[^>]*> nop
-+0+6ed8 <[^>]*> nop
-+0+6edc <[^>]*> nop
-+0+6ee0 <[^>]*> nop
-+0+6ee4 <[^>]*> nop
-+0+6ee8 <[^>]*> nop
-+0+6eec <[^>]*> nop
-+0+6ef0 <[^>]*> nop
-+0+6ef4 <[^>]*> nop
-+0+6ef8 <[^>]*> nop
-+0+6efc <[^>]*> nop
-+0+6f00 <[^>]*> nop
-+0+6f04 <[^>]*> nop
-+0+6f08 <[^>]*> nop
-+0+6f0c <[^>]*> nop
-+0+6f10 <[^>]*> nop
-+0+6f14 <[^>]*> nop
-+0+6f18 <[^>]*> nop
-+0+6f1c <[^>]*> nop
-+0+6f20 <[^>]*> nop
-+0+6f24 <[^>]*> nop
-+0+6f28 <[^>]*> nop
-+0+6f2c <[^>]*> nop
-+0+6f30 <[^>]*> nop
-+0+6f34 <[^>]*> nop
-+0+6f38 <[^>]*> nop
-+0+6f3c <[^>]*> nop
-+0+6f40 <[^>]*> nop
-+0+6f44 <[^>]*> nop
-+0+6f48 <[^>]*> nop
-+0+6f4c <[^>]*> nop
-+0+6f50 <[^>]*> nop
-+0+6f54 <[^>]*> nop
-+0+6f58 <[^>]*> nop
-+0+6f5c <[^>]*> nop
-+0+6f60 <[^>]*> nop
-+0+6f64 <[^>]*> nop
-+0+6f68 <[^>]*> nop
-+0+6f6c <[^>]*> nop
-+0+6f70 <[^>]*> nop
-+0+6f74 <[^>]*> nop
-+0+6f78 <[^>]*> nop
-+0+6f7c <[^>]*> nop
-+0+6f80 <[^>]*> nop
-+0+6f84 <[^>]*> nop
-+0+6f88 <[^>]*> nop
-+0+6f8c <[^>]*> nop
-+0+6f90 <[^>]*> nop
-+0+6f94 <[^>]*> nop
-+0+6f98 <[^>]*> nop
-+0+6f9c <[^>]*> nop
-+0+6fa0 <[^>]*> nop
-+0+6fa4 <[^>]*> nop
-+0+6fa8 <[^>]*> nop
-+0+6fac <[^>]*> nop
-+0+6fb0 <[^>]*> nop
-+0+6fb4 <[^>]*> nop
-+0+6fb8 <[^>]*> nop
-+0+6fbc <[^>]*> nop
-+0+6fc0 <[^>]*> nop
-+0+6fc4 <[^>]*> nop
-+0+6fc8 <[^>]*> nop
-+0+6fcc <[^>]*> nop
-+0+6fd0 <[^>]*> nop
-+0+6fd4 <[^>]*> nop
-+0+6fd8 <[^>]*> nop
-+0+6fdc <[^>]*> nop
-+0+6fe0 <[^>]*> nop
-+0+6fe4 <[^>]*> nop
-+0+6fe8 <[^>]*> nop
-+0+6fec <[^>]*> nop
-+0+6ff0 <[^>]*> nop
-+0+6ff4 <[^>]*> nop
-+0+6ff8 <[^>]*> nop
-+0+6ffc <[^>]*> nop
-+0+7000 <[^>]*> nop
-+0+7004 <[^>]*> nop
-+0+7008 <[^>]*> nop
-+0+700c <[^>]*> nop
-+0+7010 <[^>]*> nop
-+0+7014 <[^>]*> nop
-+0+7018 <[^>]*> nop
-+0+701c <[^>]*> nop
-+0+7020 <[^>]*> nop
-+0+7024 <[^>]*> nop
-+0+7028 <[^>]*> nop
-+0+702c <[^>]*> nop
-+0+7030 <[^>]*> nop
-+0+7034 <[^>]*> nop
-+0+7038 <[^>]*> nop
-+0+703c <[^>]*> nop
-+0+7040 <[^>]*> nop
-+0+7044 <[^>]*> nop
-+0+7048 <[^>]*> nop
-+0+704c <[^>]*> nop
-+0+7050 <[^>]*> nop
-+0+7054 <[^>]*> nop
-+0+7058 <[^>]*> nop
-+0+705c <[^>]*> nop
-+0+7060 <[^>]*> nop
-+0+7064 <[^>]*> nop
-+0+7068 <[^>]*> nop
-+0+706c <[^>]*> nop
-+0+7070 <[^>]*> nop
-+0+7074 <[^>]*> nop
-+0+7078 <[^>]*> nop
-+0+707c <[^>]*> nop
-+0+7080 <[^>]*> nop
-+0+7084 <[^>]*> nop
-+0+7088 <[^>]*> nop
-+0+708c <[^>]*> nop
-+0+7090 <[^>]*> nop
-+0+7094 <[^>]*> nop
-+0+7098 <[^>]*> nop
-+0+709c <[^>]*> nop
-+0+70a0 <[^>]*> nop
-+0+70a4 <[^>]*> nop
-+0+70a8 <[^>]*> nop
-+0+70ac <[^>]*> nop
-+0+70b0 <[^>]*> nop
-+0+70b4 <[^>]*> nop
-+0+70b8 <[^>]*> nop
-+0+70bc <[^>]*> nop
-+0+70c0 <[^>]*> nop
-+0+70c4 <[^>]*> nop
-+0+70c8 <[^>]*> nop
-+0+70cc <[^>]*> nop
-+0+70d0 <[^>]*> nop
-+0+70d4 <[^>]*> nop
-+0+70d8 <[^>]*> nop
-+0+70dc <[^>]*> nop
-+0+70e0 <[^>]*> nop
-+0+70e4 <[^>]*> nop
-+0+70e8 <[^>]*> nop
-+0+70ec <[^>]*> nop
-+0+70f0 <[^>]*> nop
-+0+70f4 <[^>]*> nop
-+0+70f8 <[^>]*> nop
-+0+70fc <[^>]*> nop
-+0+7100 <[^>]*> nop
-+0+7104 <[^>]*> nop
-+0+7108 <[^>]*> nop
-+0+710c <[^>]*> nop
-+0+7110 <[^>]*> nop
-+0+7114 <[^>]*> nop
-+0+7118 <[^>]*> nop
-+0+711c <[^>]*> nop
-+0+7120 <[^>]*> nop
-+0+7124 <[^>]*> nop
-+0+7128 <[^>]*> nop
-+0+712c <[^>]*> nop
-+0+7130 <[^>]*> nop
-+0+7134 <[^>]*> nop
-+0+7138 <[^>]*> nop
-+0+713c <[^>]*> nop
-+0+7140 <[^>]*> nop
-+0+7144 <[^>]*> nop
-+0+7148 <[^>]*> nop
-+0+714c <[^>]*> nop
-+0+7150 <[^>]*> nop
-+0+7154 <[^>]*> nop
-+0+7158 <[^>]*> nop
-+0+715c <[^>]*> nop
-+0+7160 <[^>]*> nop
-+0+7164 <[^>]*> nop
-+0+7168 <[^>]*> nop
-+0+716c <[^>]*> nop
-+0+7170 <[^>]*> nop
-+0+7174 <[^>]*> nop
-+0+7178 <[^>]*> nop
-+0+717c <[^>]*> nop
-+0+7180 <[^>]*> nop
-+0+7184 <[^>]*> nop
-+0+7188 <[^>]*> nop
-+0+718c <[^>]*> nop
-+0+7190 <[^>]*> nop
-+0+7194 <[^>]*> nop
-+0+7198 <[^>]*> nop
-+0+719c <[^>]*> nop
-+0+71a0 <[^>]*> nop
-+0+71a4 <[^>]*> nop
-+0+71a8 <[^>]*> nop
-+0+71ac <[^>]*> nop
-+0+71b0 <[^>]*> nop
-+0+71b4 <[^>]*> nop
-+0+71b8 <[^>]*> nop
-+0+71bc <[^>]*> nop
-+0+71c0 <[^>]*> nop
-+0+71c4 <[^>]*> nop
-+0+71c8 <[^>]*> nop
-+0+71cc <[^>]*> nop
-+0+71d0 <[^>]*> nop
-+0+71d4 <[^>]*> nop
-+0+71d8 <[^>]*> nop
-+0+71dc <[^>]*> nop
-+0+71e0 <[^>]*> nop
-+0+71e4 <[^>]*> nop
-+0+71e8 <[^>]*> nop
-+0+71ec <[^>]*> nop
-+0+71f0 <[^>]*> nop
-+0+71f4 <[^>]*> nop
-+0+71f8 <[^>]*> nop
-+0+71fc <[^>]*> nop
-+0+7200 <[^>]*> nop
-+0+7204 <[^>]*> nop
-+0+7208 <[^>]*> nop
-+0+720c <[^>]*> nop
-+0+7210 <[^>]*> nop
-+0+7214 <[^>]*> nop
-+0+7218 <[^>]*> nop
-+0+721c <[^>]*> nop
-+0+7220 <[^>]*> nop
-+0+7224 <[^>]*> nop
-+0+7228 <[^>]*> nop
-+0+722c <[^>]*> nop
-+0+7230 <[^>]*> nop
-+0+7234 <[^>]*> nop
-+0+7238 <[^>]*> nop
-+0+723c <[^>]*> nop
-+0+7240 <[^>]*> nop
-+0+7244 <[^>]*> nop
-+0+7248 <[^>]*> nop
-+0+724c <[^>]*> nop
-+0+7250 <[^>]*> nop
-+0+7254 <[^>]*> nop
-+0+7258 <[^>]*> nop
-+0+725c <[^>]*> nop
-+0+7260 <[^>]*> nop
-+0+7264 <[^>]*> nop
-+0+7268 <[^>]*> nop
-+0+726c <[^>]*> nop
-+0+7270 <[^>]*> nop
-+0+7274 <[^>]*> nop
-+0+7278 <[^>]*> nop
-+0+727c <[^>]*> nop
-+0+7280 <[^>]*> nop
-+0+7284 <[^>]*> nop
-+0+7288 <[^>]*> nop
-+0+728c <[^>]*> nop
-+0+7290 <[^>]*> nop
-+0+7294 <[^>]*> nop
-+0+7298 <[^>]*> nop
-+0+729c <[^>]*> nop
-+0+72a0 <[^>]*> nop
-+0+72a4 <[^>]*> nop
-+0+72a8 <[^>]*> nop
-+0+72ac <[^>]*> nop
-+0+72b0 <[^>]*> nop
-+0+72b4 <[^>]*> nop
-+0+72b8 <[^>]*> nop
-+0+72bc <[^>]*> nop
-+0+72c0 <[^>]*> nop
-+0+72c4 <[^>]*> nop
-+0+72c8 <[^>]*> nop
-+0+72cc <[^>]*> nop
-+0+72d0 <[^>]*> nop
-+0+72d4 <[^>]*> nop
-+0+72d8 <[^>]*> nop
-+0+72dc <[^>]*> nop
-+0+72e0 <[^>]*> nop
-+0+72e4 <[^>]*> nop
-+0+72e8 <[^>]*> nop
-+0+72ec <[^>]*> nop
-+0+72f0 <[^>]*> nop
-+0+72f4 <[^>]*> nop
-+0+72f8 <[^>]*> nop
-+0+72fc <[^>]*> nop
-+0+7300 <[^>]*> nop
-+0+7304 <[^>]*> nop
-+0+7308 <[^>]*> nop
-+0+730c <[^>]*> nop
-+0+7310 <[^>]*> nop
-+0+7314 <[^>]*> nop
-+0+7318 <[^>]*> nop
-+0+731c <[^>]*> nop
-+0+7320 <[^>]*> nop
-+0+7324 <[^>]*> nop
-+0+7328 <[^>]*> nop
-+0+732c <[^>]*> nop
-+0+7330 <[^>]*> nop
-+0+7334 <[^>]*> nop
-+0+7338 <[^>]*> nop
-+0+733c <[^>]*> nop
-+0+7340 <[^>]*> nop
-+0+7344 <[^>]*> nop
-+0+7348 <[^>]*> nop
-+0+734c <[^>]*> nop
-+0+7350 <[^>]*> nop
-+0+7354 <[^>]*> nop
-+0+7358 <[^>]*> nop
-+0+735c <[^>]*> nop
-+0+7360 <[^>]*> nop
-+0+7364 <[^>]*> nop
-+0+7368 <[^>]*> nop
-+0+736c <[^>]*> nop
-+0+7370 <[^>]*> nop
-+0+7374 <[^>]*> nop
-+0+7378 <[^>]*> nop
-+0+737c <[^>]*> nop
-+0+7380 <[^>]*> nop
-+0+7384 <[^>]*> nop
-+0+7388 <[^>]*> nop
-+0+738c <[^>]*> nop
-+0+7390 <[^>]*> nop
-+0+7394 <[^>]*> nop
-+0+7398 <[^>]*> nop
-+0+739c <[^>]*> nop
-+0+73a0 <[^>]*> nop
-+0+73a4 <[^>]*> nop
-+0+73a8 <[^>]*> nop
-+0+73ac <[^>]*> nop
-+0+73b0 <[^>]*> nop
-+0+73b4 <[^>]*> nop
-+0+73b8 <[^>]*> nop
-+0+73bc <[^>]*> nop
-+0+73c0 <[^>]*> nop
-+0+73c4 <[^>]*> nop
-+0+73c8 <[^>]*> nop
-+0+73cc <[^>]*> nop
-+0+73d0 <[^>]*> nop
-+0+73d4 <[^>]*> nop
-+0+73d8 <[^>]*> nop
-+0+73dc <[^>]*> nop
-+0+73e0 <[^>]*> nop
-+0+73e4 <[^>]*> nop
-+0+73e8 <[^>]*> nop
-+0+73ec <[^>]*> nop
-+0+73f0 <[^>]*> nop
-+0+73f4 <[^>]*> nop
-+0+73f8 <[^>]*> nop
-+0+73fc <[^>]*> nop
-+0+7400 <[^>]*> nop
-+0+7404 <[^>]*> nop
-+0+7408 <[^>]*> nop
-+0+740c <[^>]*> nop
-+0+7410 <[^>]*> nop
-+0+7414 <[^>]*> nop
-+0+7418 <[^>]*> nop
-+0+741c <[^>]*> nop
-+0+7420 <[^>]*> nop
-+0+7424 <[^>]*> nop
-+0+7428 <[^>]*> nop
-+0+742c <[^>]*> nop
-+0+7430 <[^>]*> nop
-+0+7434 <[^>]*> nop
-+0+7438 <[^>]*> nop
-+0+743c <[^>]*> nop
-+0+7440 <[^>]*> nop
-+0+7444 <[^>]*> nop
-+0+7448 <[^>]*> nop
-+0+744c <[^>]*> nop
-+0+7450 <[^>]*> nop
-+0+7454 <[^>]*> nop
-+0+7458 <[^>]*> nop
-+0+745c <[^>]*> nop
-+0+7460 <[^>]*> nop
-+0+7464 <[^>]*> nop
-+0+7468 <[^>]*> nop
-+0+746c <[^>]*> nop
-+0+7470 <[^>]*> nop
-+0+7474 <[^>]*> nop
-+0+7478 <[^>]*> nop
-+0+747c <[^>]*> nop
-+0+7480 <[^>]*> nop
-+0+7484 <[^>]*> nop
-+0+7488 <[^>]*> nop
-+0+748c <[^>]*> nop
-+0+7490 <[^>]*> nop
-+0+7494 <[^>]*> nop
-+0+7498 <[^>]*> nop
-+0+749c <[^>]*> nop
-+0+74a0 <[^>]*> nop
-+0+74a4 <[^>]*> nop
-+0+74a8 <[^>]*> nop
-+0+74ac <[^>]*> nop
-+0+74b0 <[^>]*> nop
-+0+74b4 <[^>]*> nop
-+0+74b8 <[^>]*> nop
-+0+74bc <[^>]*> nop
-+0+74c0 <[^>]*> nop
-+0+74c4 <[^>]*> nop
-+0+74c8 <[^>]*> nop
-+0+74cc <[^>]*> nop
-+0+74d0 <[^>]*> nop
-+0+74d4 <[^>]*> nop
-+0+74d8 <[^>]*> nop
-+0+74dc <[^>]*> nop
-+0+74e0 <[^>]*> nop
-+0+74e4 <[^>]*> nop
-+0+74e8 <[^>]*> nop
-+0+74ec <[^>]*> nop
-+0+74f0 <[^>]*> nop
-+0+74f4 <[^>]*> nop
-+0+74f8 <[^>]*> nop
-+0+74fc <[^>]*> nop
-+0+7500 <[^>]*> nop
-+0+7504 <[^>]*> nop
-+0+7508 <[^>]*> nop
-+0+750c <[^>]*> nop
-+0+7510 <[^>]*> nop
-+0+7514 <[^>]*> nop
-+0+7518 <[^>]*> nop
-+0+751c <[^>]*> nop
-+0+7520 <[^>]*> nop
-+0+7524 <[^>]*> nop
-+0+7528 <[^>]*> nop
-+0+752c <[^>]*> nop
-+0+7530 <[^>]*> nop
-+0+7534 <[^>]*> nop
-+0+7538 <[^>]*> nop
-+0+753c <[^>]*> nop
-+0+7540 <[^>]*> nop
-+0+7544 <[^>]*> nop
-+0+7548 <[^>]*> nop
-+0+754c <[^>]*> nop
-+0+7550 <[^>]*> nop
-+0+7554 <[^>]*> nop
-+0+7558 <[^>]*> nop
-+0+755c <[^>]*> nop
-+0+7560 <[^>]*> nop
-+0+7564 <[^>]*> nop
-+0+7568 <[^>]*> nop
-+0+756c <[^>]*> nop
-+0+7570 <[^>]*> nop
-+0+7574 <[^>]*> nop
-+0+7578 <[^>]*> nop
-+0+757c <[^>]*> nop
-+0+7580 <[^>]*> nop
-+0+7584 <[^>]*> nop
-+0+7588 <[^>]*> nop
-+0+758c <[^>]*> nop
-+0+7590 <[^>]*> nop
-+0+7594 <[^>]*> nop
-+0+7598 <[^>]*> nop
-+0+759c <[^>]*> nop
-+0+75a0 <[^>]*> nop
-+0+75a4 <[^>]*> nop
-+0+75a8 <[^>]*> nop
-+0+75ac <[^>]*> nop
-+0+75b0 <[^>]*> nop
-+0+75b4 <[^>]*> nop
-+0+75b8 <[^>]*> nop
-+0+75bc <[^>]*> nop
-+0+75c0 <[^>]*> nop
-+0+75c4 <[^>]*> nop
-+0+75c8 <[^>]*> nop
-+0+75cc <[^>]*> nop
-+0+75d0 <[^>]*> nop
-+0+75d4 <[^>]*> nop
-+0+75d8 <[^>]*> nop
-+0+75dc <[^>]*> nop
-+0+75e0 <[^>]*> nop
-+0+75e4 <[^>]*> nop
-+0+75e8 <[^>]*> nop
-+0+75ec <[^>]*> nop
-+0+75f0 <[^>]*> nop
-+0+75f4 <[^>]*> nop
-+0+75f8 <[^>]*> nop
-+0+75fc <[^>]*> nop
-+0+7600 <[^>]*> nop
-+0+7604 <[^>]*> nop
-+0+7608 <[^>]*> nop
-+0+760c <[^>]*> nop
-+0+7610 <[^>]*> nop
-+0+7614 <[^>]*> nop
-+0+7618 <[^>]*> nop
-+0+761c <[^>]*> nop
-+0+7620 <[^>]*> nop
-+0+7624 <[^>]*> nop
-+0+7628 <[^>]*> nop
-+0+762c <[^>]*> nop
-+0+7630 <[^>]*> nop
-+0+7634 <[^>]*> nop
-+0+7638 <[^>]*> nop
-+0+763c <[^>]*> nop
-+0+7640 <[^>]*> nop
-+0+7644 <[^>]*> nop
-+0+7648 <[^>]*> nop
-+0+764c <[^>]*> nop
-+0+7650 <[^>]*> nop
-+0+7654 <[^>]*> nop
-+0+7658 <[^>]*> nop
-+0+765c <[^>]*> nop
-+0+7660 <[^>]*> nop
-+0+7664 <[^>]*> nop
-+0+7668 <[^>]*> nop
-+0+766c <[^>]*> nop
-+0+7670 <[^>]*> nop
-+0+7674 <[^>]*> nop
-+0+7678 <[^>]*> nop
-+0+767c <[^>]*> nop
-+0+7680 <[^>]*> nop
-+0+7684 <[^>]*> nop
-+0+7688 <[^>]*> nop
-+0+768c <[^>]*> nop
-+0+7690 <[^>]*> nop
-+0+7694 <[^>]*> nop
-+0+7698 <[^>]*> nop
-+0+769c <[^>]*> nop
-+0+76a0 <[^>]*> nop
-+0+76a4 <[^>]*> nop
-+0+76a8 <[^>]*> nop
-+0+76ac <[^>]*> nop
-+0+76b0 <[^>]*> nop
-+0+76b4 <[^>]*> nop
-+0+76b8 <[^>]*> nop
-+0+76bc <[^>]*> nop
-+0+76c0 <[^>]*> nop
-+0+76c4 <[^>]*> nop
-+0+76c8 <[^>]*> nop
-+0+76cc <[^>]*> nop
-+0+76d0 <[^>]*> nop
-+0+76d4 <[^>]*> nop
-+0+76d8 <[^>]*> nop
-+0+76dc <[^>]*> nop
-+0+76e0 <[^>]*> nop
-+0+76e4 <[^>]*> nop
-+0+76e8 <[^>]*> nop
-+0+76ec <[^>]*> nop
-+0+76f0 <[^>]*> nop
-+0+76f4 <[^>]*> nop
-+0+76f8 <[^>]*> nop
-+0+76fc <[^>]*> nop
-+0+7700 <[^>]*> nop
-+0+7704 <[^>]*> nop
-+0+7708 <[^>]*> nop
-+0+770c <[^>]*> nop
-+0+7710 <[^>]*> nop
-+0+7714 <[^>]*> nop
-+0+7718 <[^>]*> nop
-+0+771c <[^>]*> nop
-+0+7720 <[^>]*> nop
-+0+7724 <[^>]*> nop
-+0+7728 <[^>]*> nop
-+0+772c <[^>]*> nop
-+0+7730 <[^>]*> nop
-+0+7734 <[^>]*> nop
-+0+7738 <[^>]*> nop
-+0+773c <[^>]*> nop
-+0+7740 <[^>]*> nop
-+0+7744 <[^>]*> nop
-+0+7748 <[^>]*> nop
-+0+774c <[^>]*> nop
-+0+7750 <[^>]*> nop
-+0+7754 <[^>]*> nop
-+0+7758 <[^>]*> nop
-+0+775c <[^>]*> nop
-+0+7760 <[^>]*> nop
-+0+7764 <[^>]*> nop
-+0+7768 <[^>]*> nop
-+0+776c <[^>]*> nop
-+0+7770 <[^>]*> nop
-+0+7774 <[^>]*> nop
-+0+7778 <[^>]*> nop
-+0+777c <[^>]*> nop
-+0+7780 <[^>]*> nop
-+0+7784 <[^>]*> nop
-+0+7788 <[^>]*> nop
-+0+778c <[^>]*> nop
-+0+7790 <[^>]*> nop
-+0+7794 <[^>]*> nop
-+0+7798 <[^>]*> nop
-+0+779c <[^>]*> nop
-+0+77a0 <[^>]*> nop
-+0+77a4 <[^>]*> nop
-+0+77a8 <[^>]*> nop
-+0+77ac <[^>]*> nop
-+0+77b0 <[^>]*> nop
-+0+77b4 <[^>]*> nop
-+0+77b8 <[^>]*> nop
-+0+77bc <[^>]*> nop
-+0+77c0 <[^>]*> nop
-+0+77c4 <[^>]*> nop
-+0+77c8 <[^>]*> nop
-+0+77cc <[^>]*> nop
-+0+77d0 <[^>]*> nop
-+0+77d4 <[^>]*> nop
-+0+77d8 <[^>]*> nop
-+0+77dc <[^>]*> nop
-+0+77e0 <[^>]*> nop
-+0+77e4 <[^>]*> nop
-+0+77e8 <[^>]*> nop
-+0+77ec <[^>]*> nop
-+0+77f0 <[^>]*> nop
-+0+77f4 <[^>]*> nop
-+0+77f8 <[^>]*> nop
-+0+77fc <[^>]*> nop
-+0+7800 <[^>]*> nop
-+0+7804 <[^>]*> nop
-+0+7808 <[^>]*> nop
-+0+780c <[^>]*> nop
-+0+7810 <[^>]*> nop
-+0+7814 <[^>]*> nop
-+0+7818 <[^>]*> nop
-+0+781c <[^>]*> nop
-+0+7820 <[^>]*> nop
-+0+7824 <[^>]*> nop
-+0+7828 <[^>]*> nop
-+0+782c <[^>]*> nop
-+0+7830 <[^>]*> nop
-+0+7834 <[^>]*> nop
-+0+7838 <[^>]*> nop
-+0+783c <[^>]*> nop
-+0+7840 <[^>]*> nop
-+0+7844 <[^>]*> nop
-+0+7848 <[^>]*> nop
-+0+784c <[^>]*> nop
-+0+7850 <[^>]*> nop
-+0+7854 <[^>]*> nop
-+0+7858 <[^>]*> nop
-+0+785c <[^>]*> nop
-+0+7860 <[^>]*> nop
-+0+7864 <[^>]*> nop
-+0+7868 <[^>]*> nop
-+0+786c <[^>]*> nop
-+0+7870 <[^>]*> nop
-+0+7874 <[^>]*> nop
-+0+7878 <[^>]*> nop
-+0+787c <[^>]*> nop
-+0+7880 <[^>]*> nop
-+0+7884 <[^>]*> nop
-+0+7888 <[^>]*> nop
-+0+788c <[^>]*> nop
-+0+7890 <[^>]*> nop
-+0+7894 <[^>]*> nop
-+0+7898 <[^>]*> nop
-+0+789c <[^>]*> nop
-+0+78a0 <[^>]*> nop
-+0+78a4 <[^>]*> nop
-+0+78a8 <[^>]*> nop
-+0+78ac <[^>]*> nop
-+0+78b0 <[^>]*> nop
-+0+78b4 <[^>]*> nop
-+0+78b8 <[^>]*> nop
-+0+78bc <[^>]*> nop
-+0+78c0 <[^>]*> nop
-+0+78c4 <[^>]*> nop
-+0+78c8 <[^>]*> nop
-+0+78cc <[^>]*> nop
-+0+78d0 <[^>]*> nop
-+0+78d4 <[^>]*> nop
-+0+78d8 <[^>]*> nop
-+0+78dc <[^>]*> nop
-+0+78e0 <[^>]*> nop
-+0+78e4 <[^>]*> nop
-+0+78e8 <[^>]*> nop
-+0+78ec <[^>]*> nop
-+0+78f0 <[^>]*> nop
-+0+78f4 <[^>]*> nop
-+0+78f8 <[^>]*> nop
-+0+78fc <[^>]*> nop
-+0+7900 <[^>]*> nop
-+0+7904 <[^>]*> nop
-+0+7908 <[^>]*> nop
-+0+790c <[^>]*> nop
-+0+7910 <[^>]*> nop
-+0+7914 <[^>]*> nop
-+0+7918 <[^>]*> nop
-+0+791c <[^>]*> nop
-+0+7920 <[^>]*> nop
-+0+7924 <[^>]*> nop
-+0+7928 <[^>]*> nop
-+0+792c <[^>]*> nop
-+0+7930 <[^>]*> nop
-+0+7934 <[^>]*> nop
-+0+7938 <[^>]*> nop
-+0+793c <[^>]*> nop
-+0+7940 <[^>]*> nop
-+0+7944 <[^>]*> nop
-+0+7948 <[^>]*> nop
-+0+794c <[^>]*> nop
-+0+7950 <[^>]*> nop
-+0+7954 <[^>]*> nop
-+0+7958 <[^>]*> nop
-+0+795c <[^>]*> nop
-+0+7960 <[^>]*> nop
-+0+7964 <[^>]*> nop
-+0+7968 <[^>]*> nop
-+0+796c <[^>]*> nop
-+0+7970 <[^>]*> nop
-+0+7974 <[^>]*> nop
-+0+7978 <[^>]*> nop
-+0+797c <[^>]*> nop
-+0+7980 <[^>]*> nop
-+0+7984 <[^>]*> nop
-+0+7988 <[^>]*> nop
-+0+798c <[^>]*> nop
-+0+7990 <[^>]*> nop
-+0+7994 <[^>]*> nop
-+0+7998 <[^>]*> nop
-+0+799c <[^>]*> nop
-+0+79a0 <[^>]*> nop
-+0+79a4 <[^>]*> nop
-+0+79a8 <[^>]*> nop
-+0+79ac <[^>]*> nop
-+0+79b0 <[^>]*> nop
-+0+79b4 <[^>]*> nop
-+0+79b8 <[^>]*> nop
-+0+79bc <[^>]*> nop
-+0+79c0 <[^>]*> nop
-+0+79c4 <[^>]*> nop
-+0+79c8 <[^>]*> nop
-+0+79cc <[^>]*> nop
-+0+79d0 <[^>]*> nop
-+0+79d4 <[^>]*> nop
-+0+79d8 <[^>]*> nop
-+0+79dc <[^>]*> nop
-+0+79e0 <[^>]*> nop
-+0+79e4 <[^>]*> nop
-+0+79e8 <[^>]*> nop
-+0+79ec <[^>]*> nop
-+0+79f0 <[^>]*> nop
-+0+79f4 <[^>]*> nop
-+0+79f8 <[^>]*> nop
-+0+79fc <[^>]*> nop
-+0+7a00 <[^>]*> nop
-+0+7a04 <[^>]*> nop
-+0+7a08 <[^>]*> nop
-+0+7a0c <[^>]*> nop
-+0+7a10 <[^>]*> nop
-+0+7a14 <[^>]*> nop
-+0+7a18 <[^>]*> nop
-+0+7a1c <[^>]*> nop
-+0+7a20 <[^>]*> nop
-+0+7a24 <[^>]*> nop
-+0+7a28 <[^>]*> nop
-+0+7a2c <[^>]*> nop
-+0+7a30 <[^>]*> nop
-+0+7a34 <[^>]*> nop
-+0+7a38 <[^>]*> nop
-+0+7a3c <[^>]*> nop
-+0+7a40 <[^>]*> nop
-+0+7a44 <[^>]*> nop
-+0+7a48 <[^>]*> nop
-+0+7a4c <[^>]*> nop
-+0+7a50 <[^>]*> nop
-+0+7a54 <[^>]*> nop
-+0+7a58 <[^>]*> nop
-+0+7a5c <[^>]*> nop
-+0+7a60 <[^>]*> nop
-+0+7a64 <[^>]*> nop
-+0+7a68 <[^>]*> nop
-+0+7a6c <[^>]*> nop
-+0+7a70 <[^>]*> nop
-+0+7a74 <[^>]*> nop
-+0+7a78 <[^>]*> nop
-+0+7a7c <[^>]*> nop
-+0+7a80 <[^>]*> nop
-+0+7a84 <[^>]*> nop
-+0+7a88 <[^>]*> nop
-+0+7a8c <[^>]*> nop
-+0+7a90 <[^>]*> nop
-+0+7a94 <[^>]*> nop
-+0+7a98 <[^>]*> nop
-+0+7a9c <[^>]*> nop
-+0+7aa0 <[^>]*> nop
-+0+7aa4 <[^>]*> nop
-+0+7aa8 <[^>]*> nop
-+0+7aac <[^>]*> nop
-+0+7ab0 <[^>]*> nop
-+0+7ab4 <[^>]*> nop
-+0+7ab8 <[^>]*> nop
-+0+7abc <[^>]*> nop
-+0+7ac0 <[^>]*> nop
-+0+7ac4 <[^>]*> nop
-+0+7ac8 <[^>]*> nop
-+0+7acc <[^>]*> nop
-+0+7ad0 <[^>]*> nop
-+0+7ad4 <[^>]*> nop
-+0+7ad8 <[^>]*> nop
-+0+7adc <[^>]*> nop
-+0+7ae0 <[^>]*> nop
-+0+7ae4 <[^>]*> nop
-+0+7ae8 <[^>]*> nop
-+0+7aec <[^>]*> nop
-+0+7af0 <[^>]*> nop
-+0+7af4 <[^>]*> nop
-+0+7af8 <[^>]*> nop
-+0+7afc <[^>]*> nop
-+0+7b00 <[^>]*> nop
-+0+7b04 <[^>]*> nop
-+0+7b08 <[^>]*> nop
-+0+7b0c <[^>]*> nop
-+0+7b10 <[^>]*> nop
-+0+7b14 <[^>]*> nop
-+0+7b18 <[^>]*> nop
-+0+7b1c <[^>]*> nop
-+0+7b20 <[^>]*> nop
-+0+7b24 <[^>]*> nop
-+0+7b28 <[^>]*> nop
-+0+7b2c <[^>]*> nop
-+0+7b30 <[^>]*> nop
-+0+7b34 <[^>]*> nop
-+0+7b38 <[^>]*> nop
-+0+7b3c <[^>]*> nop
-+0+7b40 <[^>]*> nop
-+0+7b44 <[^>]*> nop
-+0+7b48 <[^>]*> nop
-+0+7b4c <[^>]*> nop
-+0+7b50 <[^>]*> nop
-+0+7b54 <[^>]*> nop
-+0+7b58 <[^>]*> nop
-+0+7b5c <[^>]*> nop
-+0+7b60 <[^>]*> nop
-+0+7b64 <[^>]*> nop
-+0+7b68 <[^>]*> nop
-+0+7b6c <[^>]*> nop
-+0+7b70 <[^>]*> nop
-+0+7b74 <[^>]*> nop
-+0+7b78 <[^>]*> nop
-+0+7b7c <[^>]*> nop
-+0+7b80 <[^>]*> nop
-+0+7b84 <[^>]*> nop
-+0+7b88 <[^>]*> nop
-+0+7b8c <[^>]*> nop
-+0+7b90 <[^>]*> nop
-+0+7b94 <[^>]*> nop
-+0+7b98 <[^>]*> nop
-+0+7b9c <[^>]*> nop
-+0+7ba0 <[^>]*> nop
-+0+7ba4 <[^>]*> nop
-+0+7ba8 <[^>]*> nop
-+0+7bac <[^>]*> nop
-+0+7bb0 <[^>]*> nop
-+0+7bb4 <[^>]*> nop
-+0+7bb8 <[^>]*> nop
-+0+7bbc <[^>]*> nop
-+0+7bc0 <[^>]*> nop
-+0+7bc4 <[^>]*> nop
-+0+7bc8 <[^>]*> nop
-+0+7bcc <[^>]*> nop
-+0+7bd0 <[^>]*> nop
-+0+7bd4 <[^>]*> nop
-+0+7bd8 <[^>]*> nop
-+0+7bdc <[^>]*> nop
-+0+7be0 <[^>]*> nop
-+0+7be4 <[^>]*> nop
-+0+7be8 <[^>]*> nop
-+0+7bec <[^>]*> nop
-+0+7bf0 <[^>]*> nop
-+0+7bf4 <[^>]*> nop
-+0+7bf8 <[^>]*> nop
-+0+7bfc <[^>]*> nop
-+0+7c00 <[^>]*> nop
-+0+7c04 <[^>]*> nop
-+0+7c08 <[^>]*> nop
-+0+7c0c <[^>]*> nop
-+0+7c10 <[^>]*> nop
-+0+7c14 <[^>]*> nop
-+0+7c18 <[^>]*> nop
-+0+7c1c <[^>]*> nop
-+0+7c20 <[^>]*> nop
-+0+7c24 <[^>]*> nop
-+0+7c28 <[^>]*> nop
-+0+7c2c <[^>]*> nop
-+0+7c30 <[^>]*> nop
-+0+7c34 <[^>]*> nop
-+0+7c38 <[^>]*> nop
-+0+7c3c <[^>]*> nop
-+0+7c40 <[^>]*> nop
-+0+7c44 <[^>]*> nop
-+0+7c48 <[^>]*> nop
-+0+7c4c <[^>]*> nop
-+0+7c50 <[^>]*> nop
-+0+7c54 <[^>]*> nop
-+0+7c58 <[^>]*> nop
-+0+7c5c <[^>]*> nop
-+0+7c60 <[^>]*> nop
-+0+7c64 <[^>]*> nop
-+0+7c68 <[^>]*> nop
-+0+7c6c <[^>]*> nop
-+0+7c70 <[^>]*> nop
-+0+7c74 <[^>]*> nop
-+0+7c78 <[^>]*> nop
-+0+7c7c <[^>]*> nop
-+0+7c80 <[^>]*> nop
-+0+7c84 <[^>]*> nop
-+0+7c88 <[^>]*> nop
-+0+7c8c <[^>]*> nop
-+0+7c90 <[^>]*> nop
-+0+7c94 <[^>]*> nop
-+0+7c98 <[^>]*> nop
-+0+7c9c <[^>]*> nop
-+0+7ca0 <[^>]*> nop
-+0+7ca4 <[^>]*> nop
-+0+7ca8 <[^>]*> nop
-+0+7cac <[^>]*> nop
-+0+7cb0 <[^>]*> nop
-+0+7cb4 <[^>]*> nop
-+0+7cb8 <[^>]*> nop
-+0+7cbc <[^>]*> nop
-+0+7cc0 <[^>]*> nop
-+0+7cc4 <[^>]*> nop
-+0+7cc8 <[^>]*> nop
-+0+7ccc <[^>]*> nop
-+0+7cd0 <[^>]*> nop
-+0+7cd4 <[^>]*> nop
-+0+7cd8 <[^>]*> nop
-+0+7cdc <[^>]*> nop
-+0+7ce0 <[^>]*> nop
-+0+7ce4 <[^>]*> nop
-+0+7ce8 <[^>]*> nop
-+0+7cec <[^>]*> nop
-+0+7cf0 <[^>]*> nop
-+0+7cf4 <[^>]*> nop
-+0+7cf8 <[^>]*> nop
-+0+7cfc <[^>]*> nop
-+0+7d00 <[^>]*> nop
-+0+7d04 <[^>]*> nop
-+0+7d08 <[^>]*> nop
-+0+7d0c <[^>]*> nop
-+0+7d10 <[^>]*> nop
-+0+7d14 <[^>]*> nop
-+0+7d18 <[^>]*> nop
-+0+7d1c <[^>]*> nop
-+0+7d20 <[^>]*> nop
-+0+7d24 <[^>]*> nop
-+0+7d28 <[^>]*> nop
-+0+7d2c <[^>]*> nop
-+0+7d30 <[^>]*> nop
-+0+7d34 <[^>]*> nop
-+0+7d38 <[^>]*> nop
-+0+7d3c <[^>]*> nop
-+0+7d40 <[^>]*> nop
-+0+7d44 <[^>]*> nop
-+0+7d48 <[^>]*> nop
-+0+7d4c <[^>]*> nop
-+0+7d50 <[^>]*> nop
-+0+7d54 <[^>]*> nop
-+0+7d58 <[^>]*> nop
-+0+7d5c <[^>]*> nop
-+0+7d60 <[^>]*> nop
-+0+7d64 <[^>]*> nop
-+0+7d68 <[^>]*> nop
-+0+7d6c <[^>]*> nop
-+0+7d70 <[^>]*> nop
-+0+7d74 <[^>]*> nop
-+0+7d78 <[^>]*> nop
-+0+7d7c <[^>]*> nop
-+0+7d80 <[^>]*> nop
-+0+7d84 <[^>]*> nop
-+0+7d88 <[^>]*> nop
-+0+7d8c <[^>]*> nop
-+0+7d90 <[^>]*> nop
-+0+7d94 <[^>]*> nop
-+0+7d98 <[^>]*> nop
-+0+7d9c <[^>]*> nop
-+0+7da0 <[^>]*> nop
-+0+7da4 <[^>]*> nop
-+0+7da8 <[^>]*> nop
-+0+7dac <[^>]*> nop
-+0+7db0 <[^>]*> nop
-+0+7db4 <[^>]*> nop
-+0+7db8 <[^>]*> nop
-+0+7dbc <[^>]*> nop
-+0+7dc0 <[^>]*> nop
-+0+7dc4 <[^>]*> nop
-+0+7dc8 <[^>]*> nop
-+0+7dcc <[^>]*> nop
-+0+7dd0 <[^>]*> nop
-+0+7dd4 <[^>]*> nop
-+0+7dd8 <[^>]*> nop
-+0+7ddc <[^>]*> nop
-+0+7de0 <[^>]*> nop
-+0+7de4 <[^>]*> nop
-+0+7de8 <[^>]*> nop
-+0+7dec <[^>]*> nop
-+0+7df0 <[^>]*> nop
-+0+7df4 <[^>]*> nop
-+0+7df8 <[^>]*> nop
-+0+7dfc <[^>]*> nop
-+0+7e00 <[^>]*> nop
-+0+7e04 <[^>]*> nop
-+0+7e08 <[^>]*> nop
-+0+7e0c <[^>]*> nop
-+0+7e10 <[^>]*> nop
-+0+7e14 <[^>]*> nop
-+0+7e18 <[^>]*> nop
-+0+7e1c <[^>]*> nop
-+0+7e20 <[^>]*> nop
-+0+7e24 <[^>]*> nop
-+0+7e28 <[^>]*> nop
-+0+7e2c <[^>]*> nop
-+0+7e30 <[^>]*> nop
-+0+7e34 <[^>]*> nop
-+0+7e38 <[^>]*> nop
-+0+7e3c <[^>]*> nop
-+0+7e40 <[^>]*> nop
-+0+7e44 <[^>]*> nop
-+0+7e48 <[^>]*> nop
-+0+7e4c <[^>]*> nop
-+0+7e50 <[^>]*> nop
-+0+7e54 <[^>]*> nop
-+0+7e58 <[^>]*> nop
-+0+7e5c <[^>]*> nop
-+0+7e60 <[^>]*> nop
-+0+7e64 <[^>]*> nop
-+0+7e68 <[^>]*> nop
-+0+7e6c <[^>]*> nop
-+0+7e70 <[^>]*> nop
-+0+7e74 <[^>]*> nop
-+0+7e78 <[^>]*> nop
-+0+7e7c <[^>]*> nop
-+0+7e80 <[^>]*> nop
-+0+7e84 <[^>]*> nop
-+0+7e88 <[^>]*> nop
-+0+7e8c <[^>]*> nop
-+0+7e90 <[^>]*> nop
-+0+7e94 <[^>]*> nop
-+0+7e98 <[^>]*> nop
-+0+7e9c <[^>]*> nop
-+0+7ea0 <[^>]*> nop
-+0+7ea4 <[^>]*> nop
-+0+7ea8 <[^>]*> nop
-+0+7eac <[^>]*> nop
-+0+7eb0 <[^>]*> nop
-+0+7eb4 <[^>]*> nop
-+0+7eb8 <[^>]*> nop
-+0+7ebc <[^>]*> nop
-+0+7ec0 <[^>]*> nop
-+0+7ec4 <[^>]*> nop
-+0+7ec8 <[^>]*> nop
-+0+7ecc <[^>]*> nop
-+0+7ed0 <[^>]*> nop
-+0+7ed4 <[^>]*> nop
-+0+7ed8 <[^>]*> nop
-+0+7edc <[^>]*> nop
-+0+7ee0 <[^>]*> nop
-+0+7ee4 <[^>]*> nop
-+0+7ee8 <[^>]*> nop
-+0+7eec <[^>]*> nop
-+0+7ef0 <[^>]*> nop
-+0+7ef4 <[^>]*> nop
-+0+7ef8 <[^>]*> nop
-+0+7efc <[^>]*> nop
-+0+7f00 <[^>]*> nop
-+0+7f04 <[^>]*> nop
-+0+7f08 <[^>]*> nop
-+0+7f0c <[^>]*> nop
-+0+7f10 <[^>]*> nop
-+0+7f14 <[^>]*> nop
-+0+7f18 <[^>]*> nop
-+0+7f1c <[^>]*> nop
-+0+7f20 <[^>]*> nop
-+0+7f24 <[^>]*> nop
-+0+7f28 <[^>]*> nop
-+0+7f2c <[^>]*> nop
-+0+7f30 <[^>]*> nop
-+0+7f34 <[^>]*> nop
-+0+7f38 <[^>]*> nop
-+0+7f3c <[^>]*> nop
-+0+7f40 <[^>]*> nop
-+0+7f44 <[^>]*> nop
-+0+7f48 <[^>]*> nop
-+0+7f4c <[^>]*> nop
-+0+7f50 <[^>]*> nop
-+0+7f54 <[^>]*> nop
-+0+7f58 <[^>]*> nop
-+0+7f5c <[^>]*> nop
-+0+7f60 <[^>]*> nop
-+0+7f64 <[^>]*> nop
-+0+7f68 <[^>]*> nop
-+0+7f6c <[^>]*> nop
-+0+7f70 <[^>]*> nop
-+0+7f74 <[^>]*> nop
-+0+7f78 <[^>]*> nop
-+0+7f7c <[^>]*> nop
-+0+7f80 <[^>]*> nop
-+0+7f84 <[^>]*> nop
-+0+7f88 <[^>]*> nop
-+0+7f8c <[^>]*> nop
-+0+7f90 <[^>]*> nop
-+0+7f94 <[^>]*> nop
-+0+7f98 <[^>]*> nop
-+0+7f9c <[^>]*> nop
-+0+7fa0 <[^>]*> nop
-+0+7fa4 <[^>]*> nop
-+0+7fa8 <[^>]*> nop
-+0+7fac <[^>]*> nop
-+0+7fb0 <[^>]*> nop
-+0+7fb4 <[^>]*> nop
-+0+7fb8 <[^>]*> nop
-+0+7fbc <[^>]*> nop
-+0+7fc0 <[^>]*> nop
-+0+7fc4 <[^>]*> nop
-+0+7fc8 <[^>]*> nop
-+0+7fcc <[^>]*> nop
-+0+7fd0 <[^>]*> nop
-+0+7fd4 <[^>]*> nop
-+0+7fd8 <[^>]*> nop
-+0+7fdc <[^>]*> nop
-+0+7fe0 <[^>]*> nop
-+0+7fe4 <[^>]*> nop
-+0+7fe8 <[^>]*> nop
-+0+7fec <[^>]*> nop
-+0+7ff0 <[^>]*> nop
-+0+7ff4 <[^>]*> nop
-+0+7ff8 <[^>]*> nop
-+0+7ffc <[^>]*> nop
-+0+8000 <[^>]*> movhi at,0
-+0+8004 <[^>]*> ori at,at,0
-+0+8008 <[^>]*> jmp at
-+0+800c <out_of_range> nop
-+ ...
-+
---- binutils-2.15/gas/testsuite/gas/nios2/relax_section.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_section.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+ beq r2, r3, out_of_range
-+ bne r2, r3, in_range
-+ nop
-+ nop
-+in_range:
-+ nop
-+.align 15
-+ br 0
-+out_of_range:
-+ nop
---- binutils-2.15/gas/testsuite/gas/nios2/relax_ujmp.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_ujmp.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8221 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 relax_ujmp
-+
-+# Test relaxation of unconditional jumps
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section text2:
-+00000000 <[^>]*> br 00008000 <[^>]*>
-+00000004 <[^>]*> nop
-+00000008 <[^>]*> nop
-+0000000c <[^>]*> movhi at,1
-+00000010 <[^>]*> ori at,at,24
-+00000014 <[^>]*> jmp at
-+00000018 <[^>]*> br 0000002c <[^>]*>
-+0000001c <[^>]*> nop
-+00000020 <[^>]*> nop
-+00000024 <[^>]*> nop
-+00000028 <[^>]*> nop
-+0000002c <[^>]*> nop
-+Disassembly of section text1:
-+00008000 <[^>]*> br 00010000 <[^>]*>
-+00008004 <[^>]*> nop
-+00008008 <[^>]*> nop
-+0000800c <[^>]*> movhi at,1
-+00008010 <[^>]*> ori at,at,24
-+00008014 <[^>]*> jmp at
-+00008018 <[^>]*> nop
-+0000801c <[^>]*> nop
-+00008020 <[^>]*> nop
-+00008024 <[^>]*> nop
-+00008028 <[^>]*> nop
-+0000802c <[^>]*> nop
-+00008030 <[^>]*> nop
-+00008034 <[^>]*> nop
-+00008038 <[^>]*> nop
-+0000803c <[^>]*> nop
-+00008040 <[^>]*> nop
-+00008044 <[^>]*> nop
-+00008048 <[^>]*> nop
-+0000804c <[^>]*> nop
-+00008050 <[^>]*> nop
-+00008054 <[^>]*> nop
-+00008058 <[^>]*> nop
-+0000805c <[^>]*> nop
-+00008060 <[^>]*> nop
-+00008064 <[^>]*> nop
-+00008068 <[^>]*> nop
-+0000806c <[^>]*> nop
-+00008070 <[^>]*> nop
-+00008074 <[^>]*> nop
-+00008078 <[^>]*> nop
-+0000807c <[^>]*> nop
-+00008080 <[^>]*> nop
-+00008084 <[^>]*> nop
-+00008088 <[^>]*> nop
-+0000808c <[^>]*> nop
-+00008090 <[^>]*> nop
-+00008094 <[^>]*> nop
-+00008098 <[^>]*> nop
-+0000809c <[^>]*> nop
-+000080a0 <[^>]*> nop
-+000080a4 <[^>]*> nop
-+000080a8 <[^>]*> nop
-+000080ac <[^>]*> nop
-+000080b0 <[^>]*> nop
-+000080b4 <[^>]*> nop
-+000080b8 <[^>]*> nop
-+000080bc <[^>]*> nop
-+000080c0 <[^>]*> nop
-+000080c4 <[^>]*> nop
-+000080c8 <[^>]*> nop
-+000080cc <[^>]*> nop
-+000080d0 <[^>]*> nop
-+000080d4 <[^>]*> nop
-+000080d8 <[^>]*> nop
-+000080dc <[^>]*> nop
-+000080e0 <[^>]*> nop
-+000080e4 <[^>]*> nop
-+000080e8 <[^>]*> nop
-+000080ec <[^>]*> nop
-+000080f0 <[^>]*> nop
-+000080f4 <[^>]*> nop
-+000080f8 <[^>]*> nop
-+000080fc <[^>]*> nop
-+00008100 <[^>]*> nop
-+00008104 <[^>]*> nop
-+00008108 <[^>]*> nop
-+0000810c <[^>]*> nop
-+00008110 <[^>]*> nop
-+00008114 <[^>]*> nop
-+00008118 <[^>]*> nop
-+0000811c <[^>]*> nop
-+00008120 <[^>]*> nop
-+00008124 <[^>]*> nop
-+00008128 <[^>]*> nop
-+0000812c <[^>]*> nop
-+00008130 <[^>]*> nop
-+00008134 <[^>]*> nop
-+00008138 <[^>]*> nop
-+0000813c <[^>]*> nop
-+00008140 <[^>]*> nop
-+00008144 <[^>]*> nop
-+00008148 <[^>]*> nop
-+0000814c <[^>]*> nop
-+00008150 <[^>]*> nop
-+00008154 <[^>]*> nop
-+00008158 <[^>]*> nop
-+0000815c <[^>]*> nop
-+00008160 <[^>]*> nop
-+00008164 <[^>]*> nop
-+00008168 <[^>]*> nop
-+0000816c <[^>]*> nop
-+00008170 <[^>]*> nop
-+00008174 <[^>]*> nop
-+00008178 <[^>]*> nop
-+0000817c <[^>]*> nop
-+00008180 <[^>]*> nop
-+00008184 <[^>]*> nop
-+00008188 <[^>]*> nop
-+0000818c <[^>]*> nop
-+00008190 <[^>]*> nop
-+00008194 <[^>]*> nop
-+00008198 <[^>]*> nop
-+0000819c <[^>]*> nop
-+000081a0 <[^>]*> nop
-+000081a4 <[^>]*> nop
-+000081a8 <[^>]*> nop
-+000081ac <[^>]*> nop
-+000081b0 <[^>]*> nop
-+000081b4 <[^>]*> nop
-+000081b8 <[^>]*> nop
-+000081bc <[^>]*> nop
-+000081c0 <[^>]*> nop
-+000081c4 <[^>]*> nop
-+000081c8 <[^>]*> nop
-+000081cc <[^>]*> nop
-+000081d0 <[^>]*> nop
-+000081d4 <[^>]*> nop
-+000081d8 <[^>]*> nop
-+000081dc <[^>]*> nop
-+000081e0 <[^>]*> nop
-+000081e4 <[^>]*> nop
-+000081e8 <[^>]*> nop
-+000081ec <[^>]*> nop
-+000081f0 <[^>]*> nop
-+000081f4 <[^>]*> nop
-+000081f8 <[^>]*> nop
-+000081fc <[^>]*> nop
-+00008200 <[^>]*> nop
-+00008204 <[^>]*> nop
-+00008208 <[^>]*> nop
-+0000820c <[^>]*> nop
-+00008210 <[^>]*> nop
-+00008214 <[^>]*> nop
-+00008218 <[^>]*> nop
-+0000821c <[^>]*> nop
-+00008220 <[^>]*> nop
-+00008224 <[^>]*> nop
-+00008228 <[^>]*> nop
-+0000822c <[^>]*> nop
-+00008230 <[^>]*> nop
-+00008234 <[^>]*> nop
-+00008238 <[^>]*> nop
-+0000823c <[^>]*> nop
-+00008240 <[^>]*> nop
-+00008244 <[^>]*> nop
-+00008248 <[^>]*> nop
-+0000824c <[^>]*> nop
-+00008250 <[^>]*> nop
-+00008254 <[^>]*> nop
-+00008258 <[^>]*> nop
-+0000825c <[^>]*> nop
-+00008260 <[^>]*> nop
-+00008264 <[^>]*> nop
-+00008268 <[^>]*> nop
-+0000826c <[^>]*> nop
-+00008270 <[^>]*> nop
-+00008274 <[^>]*> nop
-+00008278 <[^>]*> nop
-+0000827c <[^>]*> nop
-+00008280 <[^>]*> nop
-+00008284 <[^>]*> nop
-+00008288 <[^>]*> nop
-+0000828c <[^>]*> nop
-+00008290 <[^>]*> nop
-+00008294 <[^>]*> nop
-+00008298 <[^>]*> nop
-+0000829c <[^>]*> nop
-+000082a0 <[^>]*> nop
-+000082a4 <[^>]*> nop
-+000082a8 <[^>]*> nop
-+000082ac <[^>]*> nop
-+000082b0 <[^>]*> nop
-+000082b4 <[^>]*> nop
-+000082b8 <[^>]*> nop
-+000082bc <[^>]*> nop
-+000082c0 <[^>]*> nop
-+000082c4 <[^>]*> nop
-+000082c8 <[^>]*> nop
-+000082cc <[^>]*> nop
-+000082d0 <[^>]*> nop
-+000082d4 <[^>]*> nop
-+000082d8 <[^>]*> nop
-+000082dc <[^>]*> nop
-+000082e0 <[^>]*> nop
-+000082e4 <[^>]*> nop
-+000082e8 <[^>]*> nop
-+000082ec <[^>]*> nop
-+000082f0 <[^>]*> nop
-+000082f4 <[^>]*> nop
-+000082f8 <[^>]*> nop
-+000082fc <[^>]*> nop
-+00008300 <[^>]*> nop
-+00008304 <[^>]*> nop
-+00008308 <[^>]*> nop
-+0000830c <[^>]*> nop
-+00008310 <[^>]*> nop
-+00008314 <[^>]*> nop
-+00008318 <[^>]*> nop
-+0000831c <[^>]*> nop
-+00008320 <[^>]*> nop
-+00008324 <[^>]*> nop
-+00008328 <[^>]*> nop
-+0000832c <[^>]*> nop
-+00008330 <[^>]*> nop
-+00008334 <[^>]*> nop
-+00008338 <[^>]*> nop
-+0000833c <[^>]*> nop
-+00008340 <[^>]*> nop
-+00008344 <[^>]*> nop
-+00008348 <[^>]*> nop
-+0000834c <[^>]*> nop
-+00008350 <[^>]*> nop
-+00008354 <[^>]*> nop
-+00008358 <[^>]*> nop
-+0000835c <[^>]*> nop
-+00008360 <[^>]*> nop
-+00008364 <[^>]*> nop
-+00008368 <[^>]*> nop
-+0000836c <[^>]*> nop
-+00008370 <[^>]*> nop
-+00008374 <[^>]*> nop
-+00008378 <[^>]*> nop
-+0000837c <[^>]*> nop
-+00008380 <[^>]*> nop
-+00008384 <[^>]*> nop
-+00008388 <[^>]*> nop
-+0000838c <[^>]*> nop
-+00008390 <[^>]*> nop
-+00008394 <[^>]*> nop
-+00008398 <[^>]*> nop
-+0000839c <[^>]*> nop
-+000083a0 <[^>]*> nop
-+000083a4 <[^>]*> nop
-+000083a8 <[^>]*> nop
-+000083ac <[^>]*> nop
-+000083b0 <[^>]*> nop
-+000083b4 <[^>]*> nop
-+000083b8 <[^>]*> nop
-+000083bc <[^>]*> nop
-+000083c0 <[^>]*> nop
-+000083c4 <[^>]*> nop
-+000083c8 <[^>]*> nop
-+000083cc <[^>]*> nop
-+000083d0 <[^>]*> nop
-+000083d4 <[^>]*> nop
-+000083d8 <[^>]*> nop
-+000083dc <[^>]*> nop
-+000083e0 <[^>]*> nop
-+000083e4 <[^>]*> nop
-+000083e8 <[^>]*> nop
-+000083ec <[^>]*> nop
-+000083f0 <[^>]*> nop
-+000083f4 <[^>]*> nop
-+000083f8 <[^>]*> nop
-+000083fc <[^>]*> nop
-+00008400 <[^>]*> nop
-+00008404 <[^>]*> nop
-+00008408 <[^>]*> nop
-+0000840c <[^>]*> nop
-+00008410 <[^>]*> nop
-+00008414 <[^>]*> nop
-+00008418 <[^>]*> nop
-+0000841c <[^>]*> nop
-+00008420 <[^>]*> nop
-+00008424 <[^>]*> nop
-+00008428 <[^>]*> nop
-+0000842c <[^>]*> nop
-+00008430 <[^>]*> nop
-+00008434 <[^>]*> nop
-+00008438 <[^>]*> nop
-+0000843c <[^>]*> nop
-+00008440 <[^>]*> nop
-+00008444 <[^>]*> nop
-+00008448 <[^>]*> nop
-+0000844c <[^>]*> nop
-+00008450 <[^>]*> nop
-+00008454 <[^>]*> nop
-+00008458 <[^>]*> nop
-+0000845c <[^>]*> nop
-+00008460 <[^>]*> nop
-+00008464 <[^>]*> nop
-+00008468 <[^>]*> nop
-+0000846c <[^>]*> nop
-+00008470 <[^>]*> nop
-+00008474 <[^>]*> nop
-+00008478 <[^>]*> nop
-+0000847c <[^>]*> nop
-+00008480 <[^>]*> nop
-+00008484 <[^>]*> nop
-+00008488 <[^>]*> nop
-+0000848c <[^>]*> nop
-+00008490 <[^>]*> nop
-+00008494 <[^>]*> nop
-+00008498 <[^>]*> nop
-+0000849c <[^>]*> nop
-+000084a0 <[^>]*> nop
-+000084a4 <[^>]*> nop
-+000084a8 <[^>]*> nop
-+000084ac <[^>]*> nop
-+000084b0 <[^>]*> nop
-+000084b4 <[^>]*> nop
-+000084b8 <[^>]*> nop
-+000084bc <[^>]*> nop
-+000084c0 <[^>]*> nop
-+000084c4 <[^>]*> nop
-+000084c8 <[^>]*> nop
-+000084cc <[^>]*> nop
-+000084d0 <[^>]*> nop
-+000084d4 <[^>]*> nop
-+000084d8 <[^>]*> nop
-+000084dc <[^>]*> nop
-+000084e0 <[^>]*> nop
-+000084e4 <[^>]*> nop
-+000084e8 <[^>]*> nop
-+000084ec <[^>]*> nop
-+000084f0 <[^>]*> nop
-+000084f4 <[^>]*> nop
-+000084f8 <[^>]*> nop
-+000084fc <[^>]*> nop
-+00008500 <[^>]*> nop
-+00008504 <[^>]*> nop
-+00008508 <[^>]*> nop
-+0000850c <[^>]*> nop
-+00008510 <[^>]*> nop
-+00008514 <[^>]*> nop
-+00008518 <[^>]*> nop
-+0000851c <[^>]*> nop
-+00008520 <[^>]*> nop
-+00008524 <[^>]*> nop
-+00008528 <[^>]*> nop
-+0000852c <[^>]*> nop
-+00008530 <[^>]*> nop
-+00008534 <[^>]*> nop
-+00008538 <[^>]*> nop
-+0000853c <[^>]*> nop
-+00008540 <[^>]*> nop
-+00008544 <[^>]*> nop
-+00008548 <[^>]*> nop
-+0000854c <[^>]*> nop
-+00008550 <[^>]*> nop
-+00008554 <[^>]*> nop
-+00008558 <[^>]*> nop
-+0000855c <[^>]*> nop
-+00008560 <[^>]*> nop
-+00008564 <[^>]*> nop
-+00008568 <[^>]*> nop
-+0000856c <[^>]*> nop
-+00008570 <[^>]*> nop
-+00008574 <[^>]*> nop
-+00008578 <[^>]*> nop
-+0000857c <[^>]*> nop
-+00008580 <[^>]*> nop
-+00008584 <[^>]*> nop
-+00008588 <[^>]*> nop
-+0000858c <[^>]*> nop
-+00008590 <[^>]*> nop
-+00008594 <[^>]*> nop
-+00008598 <[^>]*> nop
-+0000859c <[^>]*> nop
-+000085a0 <[^>]*> nop
-+000085a4 <[^>]*> nop
-+000085a8 <[^>]*> nop
-+000085ac <[^>]*> nop
-+000085b0 <[^>]*> nop
-+000085b4 <[^>]*> nop
-+000085b8 <[^>]*> nop
-+000085bc <[^>]*> nop
-+000085c0 <[^>]*> nop
-+000085c4 <[^>]*> nop
-+000085c8 <[^>]*> nop
-+000085cc <[^>]*> nop
-+000085d0 <[^>]*> nop
-+000085d4 <[^>]*> nop
-+000085d8 <[^>]*> nop
-+000085dc <[^>]*> nop
-+000085e0 <[^>]*> nop
-+000085e4 <[^>]*> nop
-+000085e8 <[^>]*> nop
-+000085ec <[^>]*> nop
-+000085f0 <[^>]*> nop
-+000085f4 <[^>]*> nop
-+000085f8 <[^>]*> nop
-+000085fc <[^>]*> nop
-+00008600 <[^>]*> nop
-+00008604 <[^>]*> nop
-+00008608 <[^>]*> nop
-+0000860c <[^>]*> nop
-+00008610 <[^>]*> nop
-+00008614 <[^>]*> nop
-+00008618 <[^>]*> nop
-+0000861c <[^>]*> nop
-+00008620 <[^>]*> nop
-+00008624 <[^>]*> nop
-+00008628 <[^>]*> nop
-+0000862c <[^>]*> nop
-+00008630 <[^>]*> nop
-+00008634 <[^>]*> nop
-+00008638 <[^>]*> nop
-+0000863c <[^>]*> nop
-+00008640 <[^>]*> nop
-+00008644 <[^>]*> nop
-+00008648 <[^>]*> nop
-+0000864c <[^>]*> nop
-+00008650 <[^>]*> nop
-+00008654 <[^>]*> nop
-+00008658 <[^>]*> nop
-+0000865c <[^>]*> nop
-+00008660 <[^>]*> nop
-+00008664 <[^>]*> nop
-+00008668 <[^>]*> nop
-+0000866c <[^>]*> nop
-+00008670 <[^>]*> nop
-+00008674 <[^>]*> nop
-+00008678 <[^>]*> nop
-+0000867c <[^>]*> nop
-+00008680 <[^>]*> nop
-+00008684 <[^>]*> nop
-+00008688 <[^>]*> nop
-+0000868c <[^>]*> nop
-+00008690 <[^>]*> nop
-+00008694 <[^>]*> nop
-+00008698 <[^>]*> nop
-+0000869c <[^>]*> nop
-+000086a0 <[^>]*> nop
-+000086a4 <[^>]*> nop
-+000086a8 <[^>]*> nop
-+000086ac <[^>]*> nop
-+000086b0 <[^>]*> nop
-+000086b4 <[^>]*> nop
-+000086b8 <[^>]*> nop
-+000086bc <[^>]*> nop
-+000086c0 <[^>]*> nop
-+000086c4 <[^>]*> nop
-+000086c8 <[^>]*> nop
-+000086cc <[^>]*> nop
-+000086d0 <[^>]*> nop
-+000086d4 <[^>]*> nop
-+000086d8 <[^>]*> nop
-+000086dc <[^>]*> nop
-+000086e0 <[^>]*> nop
-+000086e4 <[^>]*> nop
-+000086e8 <[^>]*> nop
-+000086ec <[^>]*> nop
-+000086f0 <[^>]*> nop
-+000086f4 <[^>]*> nop
-+000086f8 <[^>]*> nop
-+000086fc <[^>]*> nop
-+00008700 <[^>]*> nop
-+00008704 <[^>]*> nop
-+00008708 <[^>]*> nop
-+0000870c <[^>]*> nop
-+00008710 <[^>]*> nop
-+00008714 <[^>]*> nop
-+00008718 <[^>]*> nop
-+0000871c <[^>]*> nop
-+00008720 <[^>]*> nop
-+00008724 <[^>]*> nop
-+00008728 <[^>]*> nop
-+0000872c <[^>]*> nop
-+00008730 <[^>]*> nop
-+00008734 <[^>]*> nop
-+00008738 <[^>]*> nop
-+0000873c <[^>]*> nop
-+00008740 <[^>]*> nop
-+00008744 <[^>]*> nop
-+00008748 <[^>]*> nop
-+0000874c <[^>]*> nop
-+00008750 <[^>]*> nop
-+00008754 <[^>]*> nop
-+00008758 <[^>]*> nop
-+0000875c <[^>]*> nop
-+00008760 <[^>]*> nop
-+00008764 <[^>]*> nop
-+00008768 <[^>]*> nop
-+0000876c <[^>]*> nop
-+00008770 <[^>]*> nop
-+00008774 <[^>]*> nop
-+00008778 <[^>]*> nop
-+0000877c <[^>]*> nop
-+00008780 <[^>]*> nop
-+00008784 <[^>]*> nop
-+00008788 <[^>]*> nop
-+0000878c <[^>]*> nop
-+00008790 <[^>]*> nop
-+00008794 <[^>]*> nop
-+00008798 <[^>]*> nop
-+0000879c <[^>]*> nop
-+000087a0 <[^>]*> nop
-+000087a4 <[^>]*> nop
-+000087a8 <[^>]*> nop
-+000087ac <[^>]*> nop
-+000087b0 <[^>]*> nop
-+000087b4 <[^>]*> nop
-+000087b8 <[^>]*> nop
-+000087bc <[^>]*> nop
-+000087c0 <[^>]*> nop
-+000087c4 <[^>]*> nop
-+000087c8 <[^>]*> nop
-+000087cc <[^>]*> nop
-+000087d0 <[^>]*> nop
-+000087d4 <[^>]*> nop
-+000087d8 <[^>]*> nop
-+000087dc <[^>]*> nop
-+000087e0 <[^>]*> nop
-+000087e4 <[^>]*> nop
-+000087e8 <[^>]*> nop
-+000087ec <[^>]*> nop
-+000087f0 <[^>]*> nop
-+000087f4 <[^>]*> nop
-+000087f8 <[^>]*> nop
-+000087fc <[^>]*> nop
-+00008800 <[^>]*> nop
-+00008804 <[^>]*> nop
-+00008808 <[^>]*> nop
-+0000880c <[^>]*> nop
-+00008810 <[^>]*> nop
-+00008814 <[^>]*> nop
-+00008818 <[^>]*> nop
-+0000881c <[^>]*> nop
-+00008820 <[^>]*> nop
-+00008824 <[^>]*> nop
-+00008828 <[^>]*> nop
-+0000882c <[^>]*> nop
-+00008830 <[^>]*> nop
-+00008834 <[^>]*> nop
-+00008838 <[^>]*> nop
-+0000883c <[^>]*> nop
-+00008840 <[^>]*> nop
-+00008844 <[^>]*> nop
-+00008848 <[^>]*> nop
-+0000884c <[^>]*> nop
-+00008850 <[^>]*> nop
-+00008854 <[^>]*> nop
-+00008858 <[^>]*> nop
-+0000885c <[^>]*> nop
-+00008860 <[^>]*> nop
-+00008864 <[^>]*> nop
-+00008868 <[^>]*> nop
-+0000886c <[^>]*> nop
-+00008870 <[^>]*> nop
-+00008874 <[^>]*> nop
-+00008878 <[^>]*> nop
-+0000887c <[^>]*> nop
-+00008880 <[^>]*> nop
-+00008884 <[^>]*> nop
-+00008888 <[^>]*> nop
-+0000888c <[^>]*> nop
-+00008890 <[^>]*> nop
-+00008894 <[^>]*> nop
-+00008898 <[^>]*> nop
-+0000889c <[^>]*> nop
-+000088a0 <[^>]*> nop
-+000088a4 <[^>]*> nop
-+000088a8 <[^>]*> nop
-+000088ac <[^>]*> nop
-+000088b0 <[^>]*> nop
-+000088b4 <[^>]*> nop
-+000088b8 <[^>]*> nop
-+000088bc <[^>]*> nop
-+000088c0 <[^>]*> nop
-+000088c4 <[^>]*> nop
-+000088c8 <[^>]*> nop
-+000088cc <[^>]*> nop
-+000088d0 <[^>]*> nop
-+000088d4 <[^>]*> nop
-+000088d8 <[^>]*> nop
-+000088dc <[^>]*> nop
-+000088e0 <[^>]*> nop
-+000088e4 <[^>]*> nop
-+000088e8 <[^>]*> nop
-+000088ec <[^>]*> nop
-+000088f0 <[^>]*> nop
-+000088f4 <[^>]*> nop
-+000088f8 <[^>]*> nop
-+000088fc <[^>]*> nop
-+00008900 <[^>]*> nop
-+00008904 <[^>]*> nop
-+00008908 <[^>]*> nop
-+0000890c <[^>]*> nop
-+00008910 <[^>]*> nop
-+00008914 <[^>]*> nop
-+00008918 <[^>]*> nop
-+0000891c <[^>]*> nop
-+00008920 <[^>]*> nop
-+00008924 <[^>]*> nop
-+00008928 <[^>]*> nop
-+0000892c <[^>]*> nop
-+00008930 <[^>]*> nop
-+00008934 <[^>]*> nop
-+00008938 <[^>]*> nop
-+0000893c <[^>]*> nop
-+00008940 <[^>]*> nop
-+00008944 <[^>]*> nop
-+00008948 <[^>]*> nop
-+0000894c <[^>]*> nop
-+00008950 <[^>]*> nop
-+00008954 <[^>]*> nop
-+00008958 <[^>]*> nop
-+0000895c <[^>]*> nop
-+00008960 <[^>]*> nop
-+00008964 <[^>]*> nop
-+00008968 <[^>]*> nop
-+0000896c <[^>]*> nop
-+00008970 <[^>]*> nop
-+00008974 <[^>]*> nop
-+00008978 <[^>]*> nop
-+0000897c <[^>]*> nop
-+00008980 <[^>]*> nop
-+00008984 <[^>]*> nop
-+00008988 <[^>]*> nop
-+0000898c <[^>]*> nop
-+00008990 <[^>]*> nop
-+00008994 <[^>]*> nop
-+00008998 <[^>]*> nop
-+0000899c <[^>]*> nop
-+000089a0 <[^>]*> nop
-+000089a4 <[^>]*> nop
-+000089a8 <[^>]*> nop
-+000089ac <[^>]*> nop
-+000089b0 <[^>]*> nop
-+000089b4 <[^>]*> nop
-+000089b8 <[^>]*> nop
-+000089bc <[^>]*> nop
-+000089c0 <[^>]*> nop
-+000089c4 <[^>]*> nop
-+000089c8 <[^>]*> nop
-+000089cc <[^>]*> nop
-+000089d0 <[^>]*> nop
-+000089d4 <[^>]*> nop
-+000089d8 <[^>]*> nop
-+000089dc <[^>]*> nop
-+000089e0 <[^>]*> nop
-+000089e4 <[^>]*> nop
-+000089e8 <[^>]*> nop
-+000089ec <[^>]*> nop
-+000089f0 <[^>]*> nop
-+000089f4 <[^>]*> nop
-+000089f8 <[^>]*> nop
-+000089fc <[^>]*> nop
-+00008a00 <[^>]*> nop
-+00008a04 <[^>]*> nop
-+00008a08 <[^>]*> nop
-+00008a0c <[^>]*> nop
-+00008a10 <[^>]*> nop
-+00008a14 <[^>]*> nop
-+00008a18 <[^>]*> nop
-+00008a1c <[^>]*> nop
-+00008a20 <[^>]*> nop
-+00008a24 <[^>]*> nop
-+00008a28 <[^>]*> nop
-+00008a2c <[^>]*> nop
-+00008a30 <[^>]*> nop
-+00008a34 <[^>]*> nop
-+00008a38 <[^>]*> nop
-+00008a3c <[^>]*> nop
-+00008a40 <[^>]*> nop
-+00008a44 <[^>]*> nop
-+00008a48 <[^>]*> nop
-+00008a4c <[^>]*> nop
-+00008a50 <[^>]*> nop
-+00008a54 <[^>]*> nop
-+00008a58 <[^>]*> nop
-+00008a5c <[^>]*> nop
-+00008a60 <[^>]*> nop
-+00008a64 <[^>]*> nop
-+00008a68 <[^>]*> nop
-+00008a6c <[^>]*> nop
-+00008a70 <[^>]*> nop
-+00008a74 <[^>]*> nop
-+00008a78 <[^>]*> nop
-+00008a7c <[^>]*> nop
-+00008a80 <[^>]*> nop
-+00008a84 <[^>]*> nop
-+00008a88 <[^>]*> nop
-+00008a8c <[^>]*> nop
-+00008a90 <[^>]*> nop
-+00008a94 <[^>]*> nop
-+00008a98 <[^>]*> nop
-+00008a9c <[^>]*> nop
-+00008aa0 <[^>]*> nop
-+00008aa4 <[^>]*> nop
-+00008aa8 <[^>]*> nop
-+00008aac <[^>]*> nop
-+00008ab0 <[^>]*> nop
-+00008ab4 <[^>]*> nop
-+00008ab8 <[^>]*> nop
-+00008abc <[^>]*> nop
-+00008ac0 <[^>]*> nop
-+00008ac4 <[^>]*> nop
-+00008ac8 <[^>]*> nop
-+00008acc <[^>]*> nop
-+00008ad0 <[^>]*> nop
-+00008ad4 <[^>]*> nop
-+00008ad8 <[^>]*> nop
-+00008adc <[^>]*> nop
-+00008ae0 <[^>]*> nop
-+00008ae4 <[^>]*> nop
-+00008ae8 <[^>]*> nop
-+00008aec <[^>]*> nop
-+00008af0 <[^>]*> nop
-+00008af4 <[^>]*> nop
-+00008af8 <[^>]*> nop
-+00008afc <[^>]*> nop
-+00008b00 <[^>]*> nop
-+00008b04 <[^>]*> nop
-+00008b08 <[^>]*> nop
-+00008b0c <[^>]*> nop
-+00008b10 <[^>]*> nop
-+00008b14 <[^>]*> nop
-+00008b18 <[^>]*> nop
-+00008b1c <[^>]*> nop
-+00008b20 <[^>]*> nop
-+00008b24 <[^>]*> nop
-+00008b28 <[^>]*> nop
-+00008b2c <[^>]*> nop
-+00008b30 <[^>]*> nop
-+00008b34 <[^>]*> nop
-+00008b38 <[^>]*> nop
-+00008b3c <[^>]*> nop
-+00008b40 <[^>]*> nop
-+00008b44 <[^>]*> nop
-+00008b48 <[^>]*> nop
-+00008b4c <[^>]*> nop
-+00008b50 <[^>]*> nop
-+00008b54 <[^>]*> nop
-+00008b58 <[^>]*> nop
-+00008b5c <[^>]*> nop
-+00008b60 <[^>]*> nop
-+00008b64 <[^>]*> nop
-+00008b68 <[^>]*> nop
-+00008b6c <[^>]*> nop
-+00008b70 <[^>]*> nop
-+00008b74 <[^>]*> nop
-+00008b78 <[^>]*> nop
-+00008b7c <[^>]*> nop
-+00008b80 <[^>]*> nop
-+00008b84 <[^>]*> nop
-+00008b88 <[^>]*> nop
-+00008b8c <[^>]*> nop
-+00008b90 <[^>]*> nop
-+00008b94 <[^>]*> nop
-+00008b98 <[^>]*> nop
-+00008b9c <[^>]*> nop
-+00008ba0 <[^>]*> nop
-+00008ba4 <[^>]*> nop
-+00008ba8 <[^>]*> nop
-+00008bac <[^>]*> nop
-+00008bb0 <[^>]*> nop
-+00008bb4 <[^>]*> nop
-+00008bb8 <[^>]*> nop
-+00008bbc <[^>]*> nop
-+00008bc0 <[^>]*> nop
-+00008bc4 <[^>]*> nop
-+00008bc8 <[^>]*> nop
-+00008bcc <[^>]*> nop
-+00008bd0 <[^>]*> nop
-+00008bd4 <[^>]*> nop
-+00008bd8 <[^>]*> nop
-+00008bdc <[^>]*> nop
-+00008be0 <[^>]*> nop
-+00008be4 <[^>]*> nop
-+00008be8 <[^>]*> nop
-+00008bec <[^>]*> nop
-+00008bf0 <[^>]*> nop
-+00008bf4 <[^>]*> nop
-+00008bf8 <[^>]*> nop
-+00008bfc <[^>]*> nop
-+00008c00 <[^>]*> nop
-+00008c04 <[^>]*> nop
-+00008c08 <[^>]*> nop
-+00008c0c <[^>]*> nop
-+00008c10 <[^>]*> nop
-+00008c14 <[^>]*> nop
-+00008c18 <[^>]*> nop
-+00008c1c <[^>]*> nop
-+00008c20 <[^>]*> nop
-+00008c24 <[^>]*> nop
-+00008c28 <[^>]*> nop
-+00008c2c <[^>]*> nop
-+00008c30 <[^>]*> nop
-+00008c34 <[^>]*> nop
-+00008c38 <[^>]*> nop
-+00008c3c <[^>]*> nop
-+00008c40 <[^>]*> nop
-+00008c44 <[^>]*> nop
-+00008c48 <[^>]*> nop
-+00008c4c <[^>]*> nop
-+00008c50 <[^>]*> nop
-+00008c54 <[^>]*> nop
-+00008c58 <[^>]*> nop
-+00008c5c <[^>]*> nop
-+00008c60 <[^>]*> nop
-+00008c64 <[^>]*> nop
-+00008c68 <[^>]*> nop
-+00008c6c <[^>]*> nop
-+00008c70 <[^>]*> nop
-+00008c74 <[^>]*> nop
-+00008c78 <[^>]*> nop
-+00008c7c <[^>]*> nop
-+00008c80 <[^>]*> nop
-+00008c84 <[^>]*> nop
-+00008c88 <[^>]*> nop
-+00008c8c <[^>]*> nop
-+00008c90 <[^>]*> nop
-+00008c94 <[^>]*> nop
-+00008c98 <[^>]*> nop
-+00008c9c <[^>]*> nop
-+00008ca0 <[^>]*> nop
-+00008ca4 <[^>]*> nop
-+00008ca8 <[^>]*> nop
-+00008cac <[^>]*> nop
-+00008cb0 <[^>]*> nop
-+00008cb4 <[^>]*> nop
-+00008cb8 <[^>]*> nop
-+00008cbc <[^>]*> nop
-+00008cc0 <[^>]*> nop
-+00008cc4 <[^>]*> nop
-+00008cc8 <[^>]*> nop
-+00008ccc <[^>]*> nop
-+00008cd0 <[^>]*> nop
-+00008cd4 <[^>]*> nop
-+00008cd8 <[^>]*> nop
-+00008cdc <[^>]*> nop
-+00008ce0 <[^>]*> nop
-+00008ce4 <[^>]*> nop
-+00008ce8 <[^>]*> nop
-+00008cec <[^>]*> nop
-+00008cf0 <[^>]*> nop
-+00008cf4 <[^>]*> nop
-+00008cf8 <[^>]*> nop
-+00008cfc <[^>]*> nop
-+00008d00 <[^>]*> nop
-+00008d04 <[^>]*> nop
-+00008d08 <[^>]*> nop
-+00008d0c <[^>]*> nop
-+00008d10 <[^>]*> nop
-+00008d14 <[^>]*> nop
-+00008d18 <[^>]*> nop
-+00008d1c <[^>]*> nop
-+00008d20 <[^>]*> nop
-+00008d24 <[^>]*> nop
-+00008d28 <[^>]*> nop
-+00008d2c <[^>]*> nop
-+00008d30 <[^>]*> nop
-+00008d34 <[^>]*> nop
-+00008d38 <[^>]*> nop
-+00008d3c <[^>]*> nop
-+00008d40 <[^>]*> nop
-+00008d44 <[^>]*> nop
-+00008d48 <[^>]*> nop
-+00008d4c <[^>]*> nop
-+00008d50 <[^>]*> nop
-+00008d54 <[^>]*> nop
-+00008d58 <[^>]*> nop
-+00008d5c <[^>]*> nop
-+00008d60 <[^>]*> nop
-+00008d64 <[^>]*> nop
-+00008d68 <[^>]*> nop
-+00008d6c <[^>]*> nop
-+00008d70 <[^>]*> nop
-+00008d74 <[^>]*> nop
-+00008d78 <[^>]*> nop
-+00008d7c <[^>]*> nop
-+00008d80 <[^>]*> nop
-+00008d84 <[^>]*> nop
-+00008d88 <[^>]*> nop
-+00008d8c <[^>]*> nop
-+00008d90 <[^>]*> nop
-+00008d94 <[^>]*> nop
-+00008d98 <[^>]*> nop
-+00008d9c <[^>]*> nop
-+00008da0 <[^>]*> nop
-+00008da4 <[^>]*> nop
-+00008da8 <[^>]*> nop
-+00008dac <[^>]*> nop
-+00008db0 <[^>]*> nop
-+00008db4 <[^>]*> nop
-+00008db8 <[^>]*> nop
-+00008dbc <[^>]*> nop
-+00008dc0 <[^>]*> nop
-+00008dc4 <[^>]*> nop
-+00008dc8 <[^>]*> nop
-+00008dcc <[^>]*> nop
-+00008dd0 <[^>]*> nop
-+00008dd4 <[^>]*> nop
-+00008dd8 <[^>]*> nop
-+00008ddc <[^>]*> nop
-+00008de0 <[^>]*> nop
-+00008de4 <[^>]*> nop
-+00008de8 <[^>]*> nop
-+00008dec <[^>]*> nop
-+00008df0 <[^>]*> nop
-+00008df4 <[^>]*> nop
-+00008df8 <[^>]*> nop
-+00008dfc <[^>]*> nop
-+00008e00 <[^>]*> nop
-+00008e04 <[^>]*> nop
-+00008e08 <[^>]*> nop
-+00008e0c <[^>]*> nop
-+00008e10 <[^>]*> nop
-+00008e14 <[^>]*> nop
-+00008e18 <[^>]*> nop
-+00008e1c <[^>]*> nop
-+00008e20 <[^>]*> nop
-+00008e24 <[^>]*> nop
-+00008e28 <[^>]*> nop
-+00008e2c <[^>]*> nop
-+00008e30 <[^>]*> nop
-+00008e34 <[^>]*> nop
-+00008e38 <[^>]*> nop
-+00008e3c <[^>]*> nop
-+00008e40 <[^>]*> nop
-+00008e44 <[^>]*> nop
-+00008e48 <[^>]*> nop
-+00008e4c <[^>]*> nop
-+00008e50 <[^>]*> nop
-+00008e54 <[^>]*> nop
-+00008e58 <[^>]*> nop
-+00008e5c <[^>]*> nop
-+00008e60 <[^>]*> nop
-+00008e64 <[^>]*> nop
-+00008e68 <[^>]*> nop
-+00008e6c <[^>]*> nop
-+00008e70 <[^>]*> nop
-+00008e74 <[^>]*> nop
-+00008e78 <[^>]*> nop
-+00008e7c <[^>]*> nop
-+00008e80 <[^>]*> nop
-+00008e84 <[^>]*> nop
-+00008e88 <[^>]*> nop
-+00008e8c <[^>]*> nop
-+00008e90 <[^>]*> nop
-+00008e94 <[^>]*> nop
-+00008e98 <[^>]*> nop
-+00008e9c <[^>]*> nop
-+00008ea0 <[^>]*> nop
-+00008ea4 <[^>]*> nop
-+00008ea8 <[^>]*> nop
-+00008eac <[^>]*> nop
-+00008eb0 <[^>]*> nop
-+00008eb4 <[^>]*> nop
-+00008eb8 <[^>]*> nop
-+00008ebc <[^>]*> nop
-+00008ec0 <[^>]*> nop
-+00008ec4 <[^>]*> nop
-+00008ec8 <[^>]*> nop
-+00008ecc <[^>]*> nop
-+00008ed0 <[^>]*> nop
-+00008ed4 <[^>]*> nop
-+00008ed8 <[^>]*> nop
-+00008edc <[^>]*> nop
-+00008ee0 <[^>]*> nop
-+00008ee4 <[^>]*> nop
-+00008ee8 <[^>]*> nop
-+00008eec <[^>]*> nop
-+00008ef0 <[^>]*> nop
-+00008ef4 <[^>]*> nop
-+00008ef8 <[^>]*> nop
-+00008efc <[^>]*> nop
-+00008f00 <[^>]*> nop
-+00008f04 <[^>]*> nop
-+00008f08 <[^>]*> nop
-+00008f0c <[^>]*> nop
-+00008f10 <[^>]*> nop
-+00008f14 <[^>]*> nop
-+00008f18 <[^>]*> nop
-+00008f1c <[^>]*> nop
-+00008f20 <[^>]*> nop
-+00008f24 <[^>]*> nop
-+00008f28 <[^>]*> nop
-+00008f2c <[^>]*> nop
-+00008f30 <[^>]*> nop
-+00008f34 <[^>]*> nop
-+00008f38 <[^>]*> nop
-+00008f3c <[^>]*> nop
-+00008f40 <[^>]*> nop
-+00008f44 <[^>]*> nop
-+00008f48 <[^>]*> nop
-+00008f4c <[^>]*> nop
-+00008f50 <[^>]*> nop
-+00008f54 <[^>]*> nop
-+00008f58 <[^>]*> nop
-+00008f5c <[^>]*> nop
-+00008f60 <[^>]*> nop
-+00008f64 <[^>]*> nop
-+00008f68 <[^>]*> nop
-+00008f6c <[^>]*> nop
-+00008f70 <[^>]*> nop
-+00008f74 <[^>]*> nop
-+00008f78 <[^>]*> nop
-+00008f7c <[^>]*> nop
-+00008f80 <[^>]*> nop
-+00008f84 <[^>]*> nop
-+00008f88 <[^>]*> nop
-+00008f8c <[^>]*> nop
-+00008f90 <[^>]*> nop
-+00008f94 <[^>]*> nop
-+00008f98 <[^>]*> nop
-+00008f9c <[^>]*> nop
-+00008fa0 <[^>]*> nop
-+00008fa4 <[^>]*> nop
-+00008fa8 <[^>]*> nop
-+00008fac <[^>]*> nop
-+00008fb0 <[^>]*> nop
-+00008fb4 <[^>]*> nop
-+00008fb8 <[^>]*> nop
-+00008fbc <[^>]*> nop
-+00008fc0 <[^>]*> nop
-+00008fc4 <[^>]*> nop
-+00008fc8 <[^>]*> nop
-+00008fcc <[^>]*> nop
-+00008fd0 <[^>]*> nop
-+00008fd4 <[^>]*> nop
-+00008fd8 <[^>]*> nop
-+00008fdc <[^>]*> nop
-+00008fe0 <[^>]*> nop
-+00008fe4 <[^>]*> nop
-+00008fe8 <[^>]*> nop
-+00008fec <[^>]*> nop
-+00008ff0 <[^>]*> nop
-+00008ff4 <[^>]*> nop
-+00008ff8 <[^>]*> nop
-+00008ffc <[^>]*> nop
-+00009000 <[^>]*> nop
-+00009004 <[^>]*> nop
-+00009008 <[^>]*> nop
-+0000900c <[^>]*> nop
-+00009010 <[^>]*> nop
-+00009014 <[^>]*> nop
-+00009018 <[^>]*> nop
-+0000901c <[^>]*> nop
-+00009020 <[^>]*> nop
-+00009024 <[^>]*> nop
-+00009028 <[^>]*> nop
-+0000902c <[^>]*> nop
-+00009030 <[^>]*> nop
-+00009034 <[^>]*> nop
-+00009038 <[^>]*> nop
-+0000903c <[^>]*> nop
-+00009040 <[^>]*> nop
-+00009044 <[^>]*> nop
-+00009048 <[^>]*> nop
-+0000904c <[^>]*> nop
-+00009050 <[^>]*> nop
-+00009054 <[^>]*> nop
-+00009058 <[^>]*> nop
-+0000905c <[^>]*> nop
-+00009060 <[^>]*> nop
-+00009064 <[^>]*> nop
-+00009068 <[^>]*> nop
-+0000906c <[^>]*> nop
-+00009070 <[^>]*> nop
-+00009074 <[^>]*> nop
-+00009078 <[^>]*> nop
-+0000907c <[^>]*> nop
-+00009080 <[^>]*> nop
-+00009084 <[^>]*> nop
-+00009088 <[^>]*> nop
-+0000908c <[^>]*> nop
-+00009090 <[^>]*> nop
-+00009094 <[^>]*> nop
-+00009098 <[^>]*> nop
-+0000909c <[^>]*> nop
-+000090a0 <[^>]*> nop
-+000090a4 <[^>]*> nop
-+000090a8 <[^>]*> nop
-+000090ac <[^>]*> nop
-+000090b0 <[^>]*> nop
-+000090b4 <[^>]*> nop
-+000090b8 <[^>]*> nop
-+000090bc <[^>]*> nop
-+000090c0 <[^>]*> nop
-+000090c4 <[^>]*> nop
-+000090c8 <[^>]*> nop
-+000090cc <[^>]*> nop
-+000090d0 <[^>]*> nop
-+000090d4 <[^>]*> nop
-+000090d8 <[^>]*> nop
-+000090dc <[^>]*> nop
-+000090e0 <[^>]*> nop
-+000090e4 <[^>]*> nop
-+000090e8 <[^>]*> nop
-+000090ec <[^>]*> nop
-+000090f0 <[^>]*> nop
-+000090f4 <[^>]*> nop
-+000090f8 <[^>]*> nop
-+000090fc <[^>]*> nop
-+00009100 <[^>]*> nop
-+00009104 <[^>]*> nop
-+00009108 <[^>]*> nop
-+0000910c <[^>]*> nop
-+00009110 <[^>]*> nop
-+00009114 <[^>]*> nop
-+00009118 <[^>]*> nop
-+0000911c <[^>]*> nop
-+00009120 <[^>]*> nop
-+00009124 <[^>]*> nop
-+00009128 <[^>]*> nop
-+0000912c <[^>]*> nop
-+00009130 <[^>]*> nop
-+00009134 <[^>]*> nop
-+00009138 <[^>]*> nop
-+0000913c <[^>]*> nop
-+00009140 <[^>]*> nop
-+00009144 <[^>]*> nop
-+00009148 <[^>]*> nop
-+0000914c <[^>]*> nop
-+00009150 <[^>]*> nop
-+00009154 <[^>]*> nop
-+00009158 <[^>]*> nop
-+0000915c <[^>]*> nop
-+00009160 <[^>]*> nop
-+00009164 <[^>]*> nop
-+00009168 <[^>]*> nop
-+0000916c <[^>]*> nop
-+00009170 <[^>]*> nop
-+00009174 <[^>]*> nop
-+00009178 <[^>]*> nop
-+0000917c <[^>]*> nop
-+00009180 <[^>]*> nop
-+00009184 <[^>]*> nop
-+00009188 <[^>]*> nop
-+0000918c <[^>]*> nop
-+00009190 <[^>]*> nop
-+00009194 <[^>]*> nop
-+00009198 <[^>]*> nop
-+0000919c <[^>]*> nop
-+000091a0 <[^>]*> nop
-+000091a4 <[^>]*> nop
-+000091a8 <[^>]*> nop
-+000091ac <[^>]*> nop
-+000091b0 <[^>]*> nop
-+000091b4 <[^>]*> nop
-+000091b8 <[^>]*> nop
-+000091bc <[^>]*> nop
-+000091c0 <[^>]*> nop
-+000091c4 <[^>]*> nop
-+000091c8 <[^>]*> nop
-+000091cc <[^>]*> nop
-+000091d0 <[^>]*> nop
-+000091d4 <[^>]*> nop
-+000091d8 <[^>]*> nop
-+000091dc <[^>]*> nop
-+000091e0 <[^>]*> nop
-+000091e4 <[^>]*> nop
-+000091e8 <[^>]*> nop
-+000091ec <[^>]*> nop
-+000091f0 <[^>]*> nop
-+000091f4 <[^>]*> nop
-+000091f8 <[^>]*> nop
-+000091fc <[^>]*> nop
-+00009200 <[^>]*> nop
-+00009204 <[^>]*> nop
-+00009208 <[^>]*> nop
-+0000920c <[^>]*> nop
-+00009210 <[^>]*> nop
-+00009214 <[^>]*> nop
-+00009218 <[^>]*> nop
-+0000921c <[^>]*> nop
-+00009220 <[^>]*> nop
-+00009224 <[^>]*> nop
-+00009228 <[^>]*> nop
-+0000922c <[^>]*> nop
-+00009230 <[^>]*> nop
-+00009234 <[^>]*> nop
-+00009238 <[^>]*> nop
-+0000923c <[^>]*> nop
-+00009240 <[^>]*> nop
-+00009244 <[^>]*> nop
-+00009248 <[^>]*> nop
-+0000924c <[^>]*> nop
-+00009250 <[^>]*> nop
-+00009254 <[^>]*> nop
-+00009258 <[^>]*> nop
-+0000925c <[^>]*> nop
-+00009260 <[^>]*> nop
-+00009264 <[^>]*> nop
-+00009268 <[^>]*> nop
-+0000926c <[^>]*> nop
-+00009270 <[^>]*> nop
-+00009274 <[^>]*> nop
-+00009278 <[^>]*> nop
-+0000927c <[^>]*> nop
-+00009280 <[^>]*> nop
-+00009284 <[^>]*> nop
-+00009288 <[^>]*> nop
-+0000928c <[^>]*> nop
-+00009290 <[^>]*> nop
-+00009294 <[^>]*> nop
-+00009298 <[^>]*> nop
-+0000929c <[^>]*> nop
-+000092a0 <[^>]*> nop
-+000092a4 <[^>]*> nop
-+000092a8 <[^>]*> nop
-+000092ac <[^>]*> nop
-+000092b0 <[^>]*> nop
-+000092b4 <[^>]*> nop
-+000092b8 <[^>]*> nop
-+000092bc <[^>]*> nop
-+000092c0 <[^>]*> nop
-+000092c4 <[^>]*> nop
-+000092c8 <[^>]*> nop
-+000092cc <[^>]*> nop
-+000092d0 <[^>]*> nop
-+000092d4 <[^>]*> nop
-+000092d8 <[^>]*> nop
-+000092dc <[^>]*> nop
-+000092e0 <[^>]*> nop
-+000092e4 <[^>]*> nop
-+000092e8 <[^>]*> nop
-+000092ec <[^>]*> nop
-+000092f0 <[^>]*> nop
-+000092f4 <[^>]*> nop
-+000092f8 <[^>]*> nop
-+000092fc <[^>]*> nop
-+00009300 <[^>]*> nop
-+00009304 <[^>]*> nop
-+00009308 <[^>]*> nop
-+0000930c <[^>]*> nop
-+00009310 <[^>]*> nop
-+00009314 <[^>]*> nop
-+00009318 <[^>]*> nop
-+0000931c <[^>]*> nop
-+00009320 <[^>]*> nop
-+00009324 <[^>]*> nop
-+00009328 <[^>]*> nop
-+0000932c <[^>]*> nop
-+00009330 <[^>]*> nop
-+00009334 <[^>]*> nop
-+00009338 <[^>]*> nop
-+0000933c <[^>]*> nop
-+00009340 <[^>]*> nop
-+00009344 <[^>]*> nop
-+00009348 <[^>]*> nop
-+0000934c <[^>]*> nop
-+00009350 <[^>]*> nop
-+00009354 <[^>]*> nop
-+00009358 <[^>]*> nop
-+0000935c <[^>]*> nop
-+00009360 <[^>]*> nop
-+00009364 <[^>]*> nop
-+00009368 <[^>]*> nop
-+0000936c <[^>]*> nop
-+00009370 <[^>]*> nop
-+00009374 <[^>]*> nop
-+00009378 <[^>]*> nop
-+0000937c <[^>]*> nop
-+00009380 <[^>]*> nop
-+00009384 <[^>]*> nop
-+00009388 <[^>]*> nop
-+0000938c <[^>]*> nop
-+00009390 <[^>]*> nop
-+00009394 <[^>]*> nop
-+00009398 <[^>]*> nop
-+0000939c <[^>]*> nop
-+000093a0 <[^>]*> nop
-+000093a4 <[^>]*> nop
-+000093a8 <[^>]*> nop
-+000093ac <[^>]*> nop
-+000093b0 <[^>]*> nop
-+000093b4 <[^>]*> nop
-+000093b8 <[^>]*> nop
-+000093bc <[^>]*> nop
-+000093c0 <[^>]*> nop
-+000093c4 <[^>]*> nop
-+000093c8 <[^>]*> nop
-+000093cc <[^>]*> nop
-+000093d0 <[^>]*> nop
-+000093d4 <[^>]*> nop
-+000093d8 <[^>]*> nop
-+000093dc <[^>]*> nop
-+000093e0 <[^>]*> nop
-+000093e4 <[^>]*> nop
-+000093e8 <[^>]*> nop
-+000093ec <[^>]*> nop
-+000093f0 <[^>]*> nop
-+000093f4 <[^>]*> nop
-+000093f8 <[^>]*> nop
-+000093fc <[^>]*> nop
-+00009400 <[^>]*> nop
-+00009404 <[^>]*> nop
-+00009408 <[^>]*> nop
-+0000940c <[^>]*> nop
-+00009410 <[^>]*> nop
-+00009414 <[^>]*> nop
-+00009418 <[^>]*> nop
-+0000941c <[^>]*> nop
-+00009420 <[^>]*> nop
-+00009424 <[^>]*> nop
-+00009428 <[^>]*> nop
-+0000942c <[^>]*> nop
-+00009430 <[^>]*> nop
-+00009434 <[^>]*> nop
-+00009438 <[^>]*> nop
-+0000943c <[^>]*> nop
-+00009440 <[^>]*> nop
-+00009444 <[^>]*> nop
-+00009448 <[^>]*> nop
-+0000944c <[^>]*> nop
-+00009450 <[^>]*> nop
-+00009454 <[^>]*> nop
-+00009458 <[^>]*> nop
-+0000945c <[^>]*> nop
-+00009460 <[^>]*> nop
-+00009464 <[^>]*> nop
-+00009468 <[^>]*> nop
-+0000946c <[^>]*> nop
-+00009470 <[^>]*> nop
-+00009474 <[^>]*> nop
-+00009478 <[^>]*> nop
-+0000947c <[^>]*> nop
-+00009480 <[^>]*> nop
-+00009484 <[^>]*> nop
-+00009488 <[^>]*> nop
-+0000948c <[^>]*> nop
-+00009490 <[^>]*> nop
-+00009494 <[^>]*> nop
-+00009498 <[^>]*> nop
-+0000949c <[^>]*> nop
-+000094a0 <[^>]*> nop
-+000094a4 <[^>]*> nop
-+000094a8 <[^>]*> nop
-+000094ac <[^>]*> nop
-+000094b0 <[^>]*> nop
-+000094b4 <[^>]*> nop
-+000094b8 <[^>]*> nop
-+000094bc <[^>]*> nop
-+000094c0 <[^>]*> nop
-+000094c4 <[^>]*> nop
-+000094c8 <[^>]*> nop
-+000094cc <[^>]*> nop
-+000094d0 <[^>]*> nop
-+000094d4 <[^>]*> nop
-+000094d8 <[^>]*> nop
-+000094dc <[^>]*> nop
-+000094e0 <[^>]*> nop
-+000094e4 <[^>]*> nop
-+000094e8 <[^>]*> nop
-+000094ec <[^>]*> nop
-+000094f0 <[^>]*> nop
-+000094f4 <[^>]*> nop
-+000094f8 <[^>]*> nop
-+000094fc <[^>]*> nop
-+00009500 <[^>]*> nop
-+00009504 <[^>]*> nop
-+00009508 <[^>]*> nop
-+0000950c <[^>]*> nop
-+00009510 <[^>]*> nop
-+00009514 <[^>]*> nop
-+00009518 <[^>]*> nop
-+0000951c <[^>]*> nop
-+00009520 <[^>]*> nop
-+00009524 <[^>]*> nop
-+00009528 <[^>]*> nop
-+0000952c <[^>]*> nop
-+00009530 <[^>]*> nop
-+00009534 <[^>]*> nop
-+00009538 <[^>]*> nop
-+0000953c <[^>]*> nop
-+00009540 <[^>]*> nop
-+00009544 <[^>]*> nop
-+00009548 <[^>]*> nop
-+0000954c <[^>]*> nop
-+00009550 <[^>]*> nop
-+00009554 <[^>]*> nop
-+00009558 <[^>]*> nop
-+0000955c <[^>]*> nop
-+00009560 <[^>]*> nop
-+00009564 <[^>]*> nop
-+00009568 <[^>]*> nop
-+0000956c <[^>]*> nop
-+00009570 <[^>]*> nop
-+00009574 <[^>]*> nop
-+00009578 <[^>]*> nop
-+0000957c <[^>]*> nop
-+00009580 <[^>]*> nop
-+00009584 <[^>]*> nop
-+00009588 <[^>]*> nop
-+0000958c <[^>]*> nop
-+00009590 <[^>]*> nop
-+00009594 <[^>]*> nop
-+00009598 <[^>]*> nop
-+0000959c <[^>]*> nop
-+000095a0 <[^>]*> nop
-+000095a4 <[^>]*> nop
-+000095a8 <[^>]*> nop
-+000095ac <[^>]*> nop
-+000095b0 <[^>]*> nop
-+000095b4 <[^>]*> nop
-+000095b8 <[^>]*> nop
-+000095bc <[^>]*> nop
-+000095c0 <[^>]*> nop
-+000095c4 <[^>]*> nop
-+000095c8 <[^>]*> nop
-+000095cc <[^>]*> nop
-+000095d0 <[^>]*> nop
-+000095d4 <[^>]*> nop
-+000095d8 <[^>]*> nop
-+000095dc <[^>]*> nop
-+000095e0 <[^>]*> nop
-+000095e4 <[^>]*> nop
-+000095e8 <[^>]*> nop
-+000095ec <[^>]*> nop
-+000095f0 <[^>]*> nop
-+000095f4 <[^>]*> nop
-+000095f8 <[^>]*> nop
-+000095fc <[^>]*> nop
-+00009600 <[^>]*> nop
-+00009604 <[^>]*> nop
-+00009608 <[^>]*> nop
-+0000960c <[^>]*> nop
-+00009610 <[^>]*> nop
-+00009614 <[^>]*> nop
-+00009618 <[^>]*> nop
-+0000961c <[^>]*> nop
-+00009620 <[^>]*> nop
-+00009624 <[^>]*> nop
-+00009628 <[^>]*> nop
-+0000962c <[^>]*> nop
-+00009630 <[^>]*> nop
-+00009634 <[^>]*> nop
-+00009638 <[^>]*> nop
-+0000963c <[^>]*> nop
-+00009640 <[^>]*> nop
-+00009644 <[^>]*> nop
-+00009648 <[^>]*> nop
-+0000964c <[^>]*> nop
-+00009650 <[^>]*> nop
-+00009654 <[^>]*> nop
-+00009658 <[^>]*> nop
-+0000965c <[^>]*> nop
-+00009660 <[^>]*> nop
-+00009664 <[^>]*> nop
-+00009668 <[^>]*> nop
-+0000966c <[^>]*> nop
-+00009670 <[^>]*> nop
-+00009674 <[^>]*> nop
-+00009678 <[^>]*> nop
-+0000967c <[^>]*> nop
-+00009680 <[^>]*> nop
-+00009684 <[^>]*> nop
-+00009688 <[^>]*> nop
-+0000968c <[^>]*> nop
-+00009690 <[^>]*> nop
-+00009694 <[^>]*> nop
-+00009698 <[^>]*> nop
-+0000969c <[^>]*> nop
-+000096a0 <[^>]*> nop
-+000096a4 <[^>]*> nop
-+000096a8 <[^>]*> nop
-+000096ac <[^>]*> nop
-+000096b0 <[^>]*> nop
-+000096b4 <[^>]*> nop
-+000096b8 <[^>]*> nop
-+000096bc <[^>]*> nop
-+000096c0 <[^>]*> nop
-+000096c4 <[^>]*> nop
-+000096c8 <[^>]*> nop
-+000096cc <[^>]*> nop
-+000096d0 <[^>]*> nop
-+000096d4 <[^>]*> nop
-+000096d8 <[^>]*> nop
-+000096dc <[^>]*> nop
-+000096e0 <[^>]*> nop
-+000096e4 <[^>]*> nop
-+000096e8 <[^>]*> nop
-+000096ec <[^>]*> nop
-+000096f0 <[^>]*> nop
-+000096f4 <[^>]*> nop
-+000096f8 <[^>]*> nop
-+000096fc <[^>]*> nop
-+00009700 <[^>]*> nop
-+00009704 <[^>]*> nop
-+00009708 <[^>]*> nop
-+0000970c <[^>]*> nop
-+00009710 <[^>]*> nop
-+00009714 <[^>]*> nop
-+00009718 <[^>]*> nop
-+0000971c <[^>]*> nop
-+00009720 <[^>]*> nop
-+00009724 <[^>]*> nop
-+00009728 <[^>]*> nop
-+0000972c <[^>]*> nop
-+00009730 <[^>]*> nop
-+00009734 <[^>]*> nop
-+00009738 <[^>]*> nop
-+0000973c <[^>]*> nop
-+00009740 <[^>]*> nop
-+00009744 <[^>]*> nop
-+00009748 <[^>]*> nop
-+0000974c <[^>]*> nop
-+00009750 <[^>]*> nop
-+00009754 <[^>]*> nop
-+00009758 <[^>]*> nop
-+0000975c <[^>]*> nop
-+00009760 <[^>]*> nop
-+00009764 <[^>]*> nop
-+00009768 <[^>]*> nop
-+0000976c <[^>]*> nop
-+00009770 <[^>]*> nop
-+00009774 <[^>]*> nop
-+00009778 <[^>]*> nop
-+0000977c <[^>]*> nop
-+00009780 <[^>]*> nop
-+00009784 <[^>]*> nop
-+00009788 <[^>]*> nop
-+0000978c <[^>]*> nop
-+00009790 <[^>]*> nop
-+00009794 <[^>]*> nop
-+00009798 <[^>]*> nop
-+0000979c <[^>]*> nop
-+000097a0 <[^>]*> nop
-+000097a4 <[^>]*> nop
-+000097a8 <[^>]*> nop
-+000097ac <[^>]*> nop
-+000097b0 <[^>]*> nop
-+000097b4 <[^>]*> nop
-+000097b8 <[^>]*> nop
-+000097bc <[^>]*> nop
-+000097c0 <[^>]*> nop
-+000097c4 <[^>]*> nop
-+000097c8 <[^>]*> nop
-+000097cc <[^>]*> nop
-+000097d0 <[^>]*> nop
-+000097d4 <[^>]*> nop
-+000097d8 <[^>]*> nop
-+000097dc <[^>]*> nop
-+000097e0 <[^>]*> nop
-+000097e4 <[^>]*> nop
-+000097e8 <[^>]*> nop
-+000097ec <[^>]*> nop
-+000097f0 <[^>]*> nop
-+000097f4 <[^>]*> nop
-+000097f8 <[^>]*> nop
-+000097fc <[^>]*> nop
-+00009800 <[^>]*> nop
-+00009804 <[^>]*> nop
-+00009808 <[^>]*> nop
-+0000980c <[^>]*> nop
-+00009810 <[^>]*> nop
-+00009814 <[^>]*> nop
-+00009818 <[^>]*> nop
-+0000981c <[^>]*> nop
-+00009820 <[^>]*> nop
-+00009824 <[^>]*> nop
-+00009828 <[^>]*> nop
-+0000982c <[^>]*> nop
-+00009830 <[^>]*> nop
-+00009834 <[^>]*> nop
-+00009838 <[^>]*> nop
-+0000983c <[^>]*> nop
-+00009840 <[^>]*> nop
-+00009844 <[^>]*> nop
-+00009848 <[^>]*> nop
-+0000984c <[^>]*> nop
-+00009850 <[^>]*> nop
-+00009854 <[^>]*> nop
-+00009858 <[^>]*> nop
-+0000985c <[^>]*> nop
-+00009860 <[^>]*> nop
-+00009864 <[^>]*> nop
-+00009868 <[^>]*> nop
-+0000986c <[^>]*> nop
-+00009870 <[^>]*> nop
-+00009874 <[^>]*> nop
-+00009878 <[^>]*> nop
-+0000987c <[^>]*> nop
-+00009880 <[^>]*> nop
-+00009884 <[^>]*> nop
-+00009888 <[^>]*> nop
-+0000988c <[^>]*> nop
-+00009890 <[^>]*> nop
-+00009894 <[^>]*> nop
-+00009898 <[^>]*> nop
-+0000989c <[^>]*> nop
-+000098a0 <[^>]*> nop
-+000098a4 <[^>]*> nop
-+000098a8 <[^>]*> nop
-+000098ac <[^>]*> nop
-+000098b0 <[^>]*> nop
-+000098b4 <[^>]*> nop
-+000098b8 <[^>]*> nop
-+000098bc <[^>]*> nop
-+000098c0 <[^>]*> nop
-+000098c4 <[^>]*> nop
-+000098c8 <[^>]*> nop
-+000098cc <[^>]*> nop
-+000098d0 <[^>]*> nop
-+000098d4 <[^>]*> nop
-+000098d8 <[^>]*> nop
-+000098dc <[^>]*> nop
-+000098e0 <[^>]*> nop
-+000098e4 <[^>]*> nop
-+000098e8 <[^>]*> nop
-+000098ec <[^>]*> nop
-+000098f0 <[^>]*> nop
-+000098f4 <[^>]*> nop
-+000098f8 <[^>]*> nop
-+000098fc <[^>]*> nop
-+00009900 <[^>]*> nop
-+00009904 <[^>]*> nop
-+00009908 <[^>]*> nop
-+0000990c <[^>]*> nop
-+00009910 <[^>]*> nop
-+00009914 <[^>]*> nop
-+00009918 <[^>]*> nop
-+0000991c <[^>]*> nop
-+00009920 <[^>]*> nop
-+00009924 <[^>]*> nop
-+00009928 <[^>]*> nop
-+0000992c <[^>]*> nop
-+00009930 <[^>]*> nop
-+00009934 <[^>]*> nop
-+00009938 <[^>]*> nop
-+0000993c <[^>]*> nop
-+00009940 <[^>]*> nop
-+00009944 <[^>]*> nop
-+00009948 <[^>]*> nop
-+0000994c <[^>]*> nop
-+00009950 <[^>]*> nop
-+00009954 <[^>]*> nop
-+00009958 <[^>]*> nop
-+0000995c <[^>]*> nop
-+00009960 <[^>]*> nop
-+00009964 <[^>]*> nop
-+00009968 <[^>]*> nop
-+0000996c <[^>]*> nop
-+00009970 <[^>]*> nop
-+00009974 <[^>]*> nop
-+00009978 <[^>]*> nop
-+0000997c <[^>]*> nop
-+00009980 <[^>]*> nop
-+00009984 <[^>]*> nop
-+00009988 <[^>]*> nop
-+0000998c <[^>]*> nop
-+00009990 <[^>]*> nop
-+00009994 <[^>]*> nop
-+00009998 <[^>]*> nop
-+0000999c <[^>]*> nop
-+000099a0 <[^>]*> nop
-+000099a4 <[^>]*> nop
-+000099a8 <[^>]*> nop
-+000099ac <[^>]*> nop
-+000099b0 <[^>]*> nop
-+000099b4 <[^>]*> nop
-+000099b8 <[^>]*> nop
-+000099bc <[^>]*> nop
-+000099c0 <[^>]*> nop
-+000099c4 <[^>]*> nop
-+000099c8 <[^>]*> nop
-+000099cc <[^>]*> nop
-+000099d0 <[^>]*> nop
-+000099d4 <[^>]*> nop
-+000099d8 <[^>]*> nop
-+000099dc <[^>]*> nop
-+000099e0 <[^>]*> nop
-+000099e4 <[^>]*> nop
-+000099e8 <[^>]*> nop
-+000099ec <[^>]*> nop
-+000099f0 <[^>]*> nop
-+000099f4 <[^>]*> nop
-+000099f8 <[^>]*> nop
-+000099fc <[^>]*> nop
-+00009a00 <[^>]*> nop
-+00009a04 <[^>]*> nop
-+00009a08 <[^>]*> nop
-+00009a0c <[^>]*> nop
-+00009a10 <[^>]*> nop
-+00009a14 <[^>]*> nop
-+00009a18 <[^>]*> nop
-+00009a1c <[^>]*> nop
-+00009a20 <[^>]*> nop
-+00009a24 <[^>]*> nop
-+00009a28 <[^>]*> nop
-+00009a2c <[^>]*> nop
-+00009a30 <[^>]*> nop
-+00009a34 <[^>]*> nop
-+00009a38 <[^>]*> nop
-+00009a3c <[^>]*> nop
-+00009a40 <[^>]*> nop
-+00009a44 <[^>]*> nop
-+00009a48 <[^>]*> nop
-+00009a4c <[^>]*> nop
-+00009a50 <[^>]*> nop
-+00009a54 <[^>]*> nop
-+00009a58 <[^>]*> nop
-+00009a5c <[^>]*> nop
-+00009a60 <[^>]*> nop
-+00009a64 <[^>]*> nop
-+00009a68 <[^>]*> nop
-+00009a6c <[^>]*> nop
-+00009a70 <[^>]*> nop
-+00009a74 <[^>]*> nop
-+00009a78 <[^>]*> nop
-+00009a7c <[^>]*> nop
-+00009a80 <[^>]*> nop
-+00009a84 <[^>]*> nop
-+00009a88 <[^>]*> nop
-+00009a8c <[^>]*> nop
-+00009a90 <[^>]*> nop
-+00009a94 <[^>]*> nop
-+00009a98 <[^>]*> nop
-+00009a9c <[^>]*> nop
-+00009aa0 <[^>]*> nop
-+00009aa4 <[^>]*> nop
-+00009aa8 <[^>]*> nop
-+00009aac <[^>]*> nop
-+00009ab0 <[^>]*> nop
-+00009ab4 <[^>]*> nop
-+00009ab8 <[^>]*> nop
-+00009abc <[^>]*> nop
-+00009ac0 <[^>]*> nop
-+00009ac4 <[^>]*> nop
-+00009ac8 <[^>]*> nop
-+00009acc <[^>]*> nop
-+00009ad0 <[^>]*> nop
-+00009ad4 <[^>]*> nop
-+00009ad8 <[^>]*> nop
-+00009adc <[^>]*> nop
-+00009ae0 <[^>]*> nop
-+00009ae4 <[^>]*> nop
-+00009ae8 <[^>]*> nop
-+00009aec <[^>]*> nop
-+00009af0 <[^>]*> nop
-+00009af4 <[^>]*> nop
-+00009af8 <[^>]*> nop
-+00009afc <[^>]*> nop
-+00009b00 <[^>]*> nop
-+00009b04 <[^>]*> nop
-+00009b08 <[^>]*> nop
-+00009b0c <[^>]*> nop
-+00009b10 <[^>]*> nop
-+00009b14 <[^>]*> nop
-+00009b18 <[^>]*> nop
-+00009b1c <[^>]*> nop
-+00009b20 <[^>]*> nop
-+00009b24 <[^>]*> nop
-+00009b28 <[^>]*> nop
-+00009b2c <[^>]*> nop
-+00009b30 <[^>]*> nop
-+00009b34 <[^>]*> nop
-+00009b38 <[^>]*> nop
-+00009b3c <[^>]*> nop
-+00009b40 <[^>]*> nop
-+00009b44 <[^>]*> nop
-+00009b48 <[^>]*> nop
-+00009b4c <[^>]*> nop
-+00009b50 <[^>]*> nop
-+00009b54 <[^>]*> nop
-+00009b58 <[^>]*> nop
-+00009b5c <[^>]*> nop
-+00009b60 <[^>]*> nop
-+00009b64 <[^>]*> nop
-+00009b68 <[^>]*> nop
-+00009b6c <[^>]*> nop
-+00009b70 <[^>]*> nop
-+00009b74 <[^>]*> nop
-+00009b78 <[^>]*> nop
-+00009b7c <[^>]*> nop
-+00009b80 <[^>]*> nop
-+00009b84 <[^>]*> nop
-+00009b88 <[^>]*> nop
-+00009b8c <[^>]*> nop
-+00009b90 <[^>]*> nop
-+00009b94 <[^>]*> nop
-+00009b98 <[^>]*> nop
-+00009b9c <[^>]*> nop
-+00009ba0 <[^>]*> nop
-+00009ba4 <[^>]*> nop
-+00009ba8 <[^>]*> nop
-+00009bac <[^>]*> nop
-+00009bb0 <[^>]*> nop
-+00009bb4 <[^>]*> nop
-+00009bb8 <[^>]*> nop
-+00009bbc <[^>]*> nop
-+00009bc0 <[^>]*> nop
-+00009bc4 <[^>]*> nop
-+00009bc8 <[^>]*> nop
-+00009bcc <[^>]*> nop
-+00009bd0 <[^>]*> nop
-+00009bd4 <[^>]*> nop
-+00009bd8 <[^>]*> nop
-+00009bdc <[^>]*> nop
-+00009be0 <[^>]*> nop
-+00009be4 <[^>]*> nop
-+00009be8 <[^>]*> nop
-+00009bec <[^>]*> nop
-+00009bf0 <[^>]*> nop
-+00009bf4 <[^>]*> nop
-+00009bf8 <[^>]*> nop
-+00009bfc <[^>]*> nop
-+00009c00 <[^>]*> nop
-+00009c04 <[^>]*> nop
-+00009c08 <[^>]*> nop
-+00009c0c <[^>]*> nop
-+00009c10 <[^>]*> nop
-+00009c14 <[^>]*> nop
-+00009c18 <[^>]*> nop
-+00009c1c <[^>]*> nop
-+00009c20 <[^>]*> nop
-+00009c24 <[^>]*> nop
-+00009c28 <[^>]*> nop
-+00009c2c <[^>]*> nop
-+00009c30 <[^>]*> nop
-+00009c34 <[^>]*> nop
-+00009c38 <[^>]*> nop
-+00009c3c <[^>]*> nop
-+00009c40 <[^>]*> nop
-+00009c44 <[^>]*> nop
-+00009c48 <[^>]*> nop
-+00009c4c <[^>]*> nop
-+00009c50 <[^>]*> nop
-+00009c54 <[^>]*> nop
-+00009c58 <[^>]*> nop
-+00009c5c <[^>]*> nop
-+00009c60 <[^>]*> nop
-+00009c64 <[^>]*> nop
-+00009c68 <[^>]*> nop
-+00009c6c <[^>]*> nop
-+00009c70 <[^>]*> nop
-+00009c74 <[^>]*> nop
-+00009c78 <[^>]*> nop
-+00009c7c <[^>]*> nop
-+00009c80 <[^>]*> nop
-+00009c84 <[^>]*> nop
-+00009c88 <[^>]*> nop
-+00009c8c <[^>]*> nop
-+00009c90 <[^>]*> nop
-+00009c94 <[^>]*> nop
-+00009c98 <[^>]*> nop
-+00009c9c <[^>]*> nop
-+00009ca0 <[^>]*> nop
-+00009ca4 <[^>]*> nop
-+00009ca8 <[^>]*> nop
-+00009cac <[^>]*> nop
-+00009cb0 <[^>]*> nop
-+00009cb4 <[^>]*> nop
-+00009cb8 <[^>]*> nop
-+00009cbc <[^>]*> nop
-+00009cc0 <[^>]*> nop
-+00009cc4 <[^>]*> nop
-+00009cc8 <[^>]*> nop
-+00009ccc <[^>]*> nop
-+00009cd0 <[^>]*> nop
-+00009cd4 <[^>]*> nop
-+00009cd8 <[^>]*> nop
-+00009cdc <[^>]*> nop
-+00009ce0 <[^>]*> nop
-+00009ce4 <[^>]*> nop
-+00009ce8 <[^>]*> nop
-+00009cec <[^>]*> nop
-+00009cf0 <[^>]*> nop
-+00009cf4 <[^>]*> nop
-+00009cf8 <[^>]*> nop
-+00009cfc <[^>]*> nop
-+00009d00 <[^>]*> nop
-+00009d04 <[^>]*> nop
-+00009d08 <[^>]*> nop
-+00009d0c <[^>]*> nop
-+00009d10 <[^>]*> nop
-+00009d14 <[^>]*> nop
-+00009d18 <[^>]*> nop
-+00009d1c <[^>]*> nop
-+00009d20 <[^>]*> nop
-+00009d24 <[^>]*> nop
-+00009d28 <[^>]*> nop
-+00009d2c <[^>]*> nop
-+00009d30 <[^>]*> nop
-+00009d34 <[^>]*> nop
-+00009d38 <[^>]*> nop
-+00009d3c <[^>]*> nop
-+00009d40 <[^>]*> nop
-+00009d44 <[^>]*> nop
-+00009d48 <[^>]*> nop
-+00009d4c <[^>]*> nop
-+00009d50 <[^>]*> nop
-+00009d54 <[^>]*> nop
-+00009d58 <[^>]*> nop
-+00009d5c <[^>]*> nop
-+00009d60 <[^>]*> nop
-+00009d64 <[^>]*> nop
-+00009d68 <[^>]*> nop
-+00009d6c <[^>]*> nop
-+00009d70 <[^>]*> nop
-+00009d74 <[^>]*> nop
-+00009d78 <[^>]*> nop
-+00009d7c <[^>]*> nop
-+00009d80 <[^>]*> nop
-+00009d84 <[^>]*> nop
-+00009d88 <[^>]*> nop
-+00009d8c <[^>]*> nop
-+00009d90 <[^>]*> nop
-+00009d94 <[^>]*> nop
-+00009d98 <[^>]*> nop
-+00009d9c <[^>]*> nop
-+00009da0 <[^>]*> nop
-+00009da4 <[^>]*> nop
-+00009da8 <[^>]*> nop
-+00009dac <[^>]*> nop
-+00009db0 <[^>]*> nop
-+00009db4 <[^>]*> nop
-+00009db8 <[^>]*> nop
-+00009dbc <[^>]*> nop
-+00009dc0 <[^>]*> nop
-+00009dc4 <[^>]*> nop
-+00009dc8 <[^>]*> nop
-+00009dcc <[^>]*> nop
-+00009dd0 <[^>]*> nop
-+00009dd4 <[^>]*> nop
-+00009dd8 <[^>]*> nop
-+00009ddc <[^>]*> nop
-+00009de0 <[^>]*> nop
-+00009de4 <[^>]*> nop
-+00009de8 <[^>]*> nop
-+00009dec <[^>]*> nop
-+00009df0 <[^>]*> nop
-+00009df4 <[^>]*> nop
-+00009df8 <[^>]*> nop
-+00009dfc <[^>]*> nop
-+00009e00 <[^>]*> nop
-+00009e04 <[^>]*> nop
-+00009e08 <[^>]*> nop
-+00009e0c <[^>]*> nop
-+00009e10 <[^>]*> nop
-+00009e14 <[^>]*> nop
-+00009e18 <[^>]*> nop
-+00009e1c <[^>]*> nop
-+00009e20 <[^>]*> nop
-+00009e24 <[^>]*> nop
-+00009e28 <[^>]*> nop
-+00009e2c <[^>]*> nop
-+00009e30 <[^>]*> nop
-+00009e34 <[^>]*> nop
-+00009e38 <[^>]*> nop
-+00009e3c <[^>]*> nop
-+00009e40 <[^>]*> nop
-+00009e44 <[^>]*> nop
-+00009e48 <[^>]*> nop
-+00009e4c <[^>]*> nop
-+00009e50 <[^>]*> nop
-+00009e54 <[^>]*> nop
-+00009e58 <[^>]*> nop
-+00009e5c <[^>]*> nop
-+00009e60 <[^>]*> nop
-+00009e64 <[^>]*> nop
-+00009e68 <[^>]*> nop
-+00009e6c <[^>]*> nop
-+00009e70 <[^>]*> nop
-+00009e74 <[^>]*> nop
-+00009e78 <[^>]*> nop
-+00009e7c <[^>]*> nop
-+00009e80 <[^>]*> nop
-+00009e84 <[^>]*> nop
-+00009e88 <[^>]*> nop
-+00009e8c <[^>]*> nop
-+00009e90 <[^>]*> nop
-+00009e94 <[^>]*> nop
-+00009e98 <[^>]*> nop
-+00009e9c <[^>]*> nop
-+00009ea0 <[^>]*> nop
-+00009ea4 <[^>]*> nop
-+00009ea8 <[^>]*> nop
-+00009eac <[^>]*> nop
-+00009eb0 <[^>]*> nop
-+00009eb4 <[^>]*> nop
-+00009eb8 <[^>]*> nop
-+00009ebc <[^>]*> nop
-+00009ec0 <[^>]*> nop
-+00009ec4 <[^>]*> nop
-+00009ec8 <[^>]*> nop
-+00009ecc <[^>]*> nop
-+00009ed0 <[^>]*> nop
-+00009ed4 <[^>]*> nop
-+00009ed8 <[^>]*> nop
-+00009edc <[^>]*> nop
-+00009ee0 <[^>]*> nop
-+00009ee4 <[^>]*> nop
-+00009ee8 <[^>]*> nop
-+00009eec <[^>]*> nop
-+00009ef0 <[^>]*> nop
-+00009ef4 <[^>]*> nop
-+00009ef8 <[^>]*> nop
-+00009efc <[^>]*> nop
-+00009f00 <[^>]*> nop
-+00009f04 <[^>]*> nop
-+00009f08 <[^>]*> nop
-+00009f0c <[^>]*> nop
-+00009f10 <[^>]*> nop
-+00009f14 <[^>]*> nop
-+00009f18 <[^>]*> nop
-+00009f1c <[^>]*> nop
-+00009f20 <[^>]*> nop
-+00009f24 <[^>]*> nop
-+00009f28 <[^>]*> nop
-+00009f2c <[^>]*> nop
-+00009f30 <[^>]*> nop
-+00009f34 <[^>]*> nop
-+00009f38 <[^>]*> nop
-+00009f3c <[^>]*> nop
-+00009f40 <[^>]*> nop
-+00009f44 <[^>]*> nop
-+00009f48 <[^>]*> nop
-+00009f4c <[^>]*> nop
-+00009f50 <[^>]*> nop
-+00009f54 <[^>]*> nop
-+00009f58 <[^>]*> nop
-+00009f5c <[^>]*> nop
-+00009f60 <[^>]*> nop
-+00009f64 <[^>]*> nop
-+00009f68 <[^>]*> nop
-+00009f6c <[^>]*> nop
-+00009f70 <[^>]*> nop
-+00009f74 <[^>]*> nop
-+00009f78 <[^>]*> nop
-+00009f7c <[^>]*> nop
-+00009f80 <[^>]*> nop
-+00009f84 <[^>]*> nop
-+00009f88 <[^>]*> nop
-+00009f8c <[^>]*> nop
-+00009f90 <[^>]*> nop
-+00009f94 <[^>]*> nop
-+00009f98 <[^>]*> nop
-+00009f9c <[^>]*> nop
-+00009fa0 <[^>]*> nop
-+00009fa4 <[^>]*> nop
-+00009fa8 <[^>]*> nop
-+00009fac <[^>]*> nop
-+00009fb0 <[^>]*> nop
-+00009fb4 <[^>]*> nop
-+00009fb8 <[^>]*> nop
-+00009fbc <[^>]*> nop
-+00009fc0 <[^>]*> nop
-+00009fc4 <[^>]*> nop
-+00009fc8 <[^>]*> nop
-+00009fcc <[^>]*> nop
-+00009fd0 <[^>]*> nop
-+00009fd4 <[^>]*> nop
-+00009fd8 <[^>]*> nop
-+00009fdc <[^>]*> nop
-+00009fe0 <[^>]*> nop
-+00009fe4 <[^>]*> nop
-+00009fe8 <[^>]*> nop
-+00009fec <[^>]*> nop
-+00009ff0 <[^>]*> nop
-+00009ff4 <[^>]*> nop
-+00009ff8 <[^>]*> nop
-+00009ffc <[^>]*> nop
-+0000a000 <[^>]*> nop
-+0000a004 <[^>]*> nop
-+0000a008 <[^>]*> nop
-+0000a00c <[^>]*> nop
-+0000a010 <[^>]*> nop
-+0000a014 <[^>]*> nop
-+0000a018 <[^>]*> nop
-+0000a01c <[^>]*> nop
-+0000a020 <[^>]*> nop
-+0000a024 <[^>]*> nop
-+0000a028 <[^>]*> nop
-+0000a02c <[^>]*> nop
-+0000a030 <[^>]*> nop
-+0000a034 <[^>]*> nop
-+0000a038 <[^>]*> nop
-+0000a03c <[^>]*> nop
-+0000a040 <[^>]*> nop
-+0000a044 <[^>]*> nop
-+0000a048 <[^>]*> nop
-+0000a04c <[^>]*> nop
-+0000a050 <[^>]*> nop
-+0000a054 <[^>]*> nop
-+0000a058 <[^>]*> nop
-+0000a05c <[^>]*> nop
-+0000a060 <[^>]*> nop
-+0000a064 <[^>]*> nop
-+0000a068 <[^>]*> nop
-+0000a06c <[^>]*> nop
-+0000a070 <[^>]*> nop
-+0000a074 <[^>]*> nop
-+0000a078 <[^>]*> nop
-+0000a07c <[^>]*> nop
-+0000a080 <[^>]*> nop
-+0000a084 <[^>]*> nop
-+0000a088 <[^>]*> nop
-+0000a08c <[^>]*> nop
-+0000a090 <[^>]*> nop
-+0000a094 <[^>]*> nop
-+0000a098 <[^>]*> nop
-+0000a09c <[^>]*> nop
-+0000a0a0 <[^>]*> nop
-+0000a0a4 <[^>]*> nop
-+0000a0a8 <[^>]*> nop
-+0000a0ac <[^>]*> nop
-+0000a0b0 <[^>]*> nop
-+0000a0b4 <[^>]*> nop
-+0000a0b8 <[^>]*> nop
-+0000a0bc <[^>]*> nop
-+0000a0c0 <[^>]*> nop
-+0000a0c4 <[^>]*> nop
-+0000a0c8 <[^>]*> nop
-+0000a0cc <[^>]*> nop
-+0000a0d0 <[^>]*> nop
-+0000a0d4 <[^>]*> nop
-+0000a0d8 <[^>]*> nop
-+0000a0dc <[^>]*> nop
-+0000a0e0 <[^>]*> nop
-+0000a0e4 <[^>]*> nop
-+0000a0e8 <[^>]*> nop
-+0000a0ec <[^>]*> nop
-+0000a0f0 <[^>]*> nop
-+0000a0f4 <[^>]*> nop
-+0000a0f8 <[^>]*> nop
-+0000a0fc <[^>]*> nop
-+0000a100 <[^>]*> nop
-+0000a104 <[^>]*> nop
-+0000a108 <[^>]*> nop
-+0000a10c <[^>]*> nop
-+0000a110 <[^>]*> nop
-+0000a114 <[^>]*> nop
-+0000a118 <[^>]*> nop
-+0000a11c <[^>]*> nop
-+0000a120 <[^>]*> nop
-+0000a124 <[^>]*> nop
-+0000a128 <[^>]*> nop
-+0000a12c <[^>]*> nop
-+0000a130 <[^>]*> nop
-+0000a134 <[^>]*> nop
-+0000a138 <[^>]*> nop
-+0000a13c <[^>]*> nop
-+0000a140 <[^>]*> nop
-+0000a144 <[^>]*> nop
-+0000a148 <[^>]*> nop
-+0000a14c <[^>]*> nop
-+0000a150 <[^>]*> nop
-+0000a154 <[^>]*> nop
-+0000a158 <[^>]*> nop
-+0000a15c <[^>]*> nop
-+0000a160 <[^>]*> nop
-+0000a164 <[^>]*> nop
-+0000a168 <[^>]*> nop
-+0000a16c <[^>]*> nop
-+0000a170 <[^>]*> nop
-+0000a174 <[^>]*> nop
-+0000a178 <[^>]*> nop
-+0000a17c <[^>]*> nop
-+0000a180 <[^>]*> nop
-+0000a184 <[^>]*> nop
-+0000a188 <[^>]*> nop
-+0000a18c <[^>]*> nop
-+0000a190 <[^>]*> nop
-+0000a194 <[^>]*> nop
-+0000a198 <[^>]*> nop
-+0000a19c <[^>]*> nop
-+0000a1a0 <[^>]*> nop
-+0000a1a4 <[^>]*> nop
-+0000a1a8 <[^>]*> nop
-+0000a1ac <[^>]*> nop
-+0000a1b0 <[^>]*> nop
-+0000a1b4 <[^>]*> nop
-+0000a1b8 <[^>]*> nop
-+0000a1bc <[^>]*> nop
-+0000a1c0 <[^>]*> nop
-+0000a1c4 <[^>]*> nop
-+0000a1c8 <[^>]*> nop
-+0000a1cc <[^>]*> nop
-+0000a1d0 <[^>]*> nop
-+0000a1d4 <[^>]*> nop
-+0000a1d8 <[^>]*> nop
-+0000a1dc <[^>]*> nop
-+0000a1e0 <[^>]*> nop
-+0000a1e4 <[^>]*> nop
-+0000a1e8 <[^>]*> nop
-+0000a1ec <[^>]*> nop
-+0000a1f0 <[^>]*> nop
-+0000a1f4 <[^>]*> nop
-+0000a1f8 <[^>]*> nop
-+0000a1fc <[^>]*> nop
-+0000a200 <[^>]*> nop
-+0000a204 <[^>]*> nop
-+0000a208 <[^>]*> nop
-+0000a20c <[^>]*> nop
-+0000a210 <[^>]*> nop
-+0000a214 <[^>]*> nop
-+0000a218 <[^>]*> nop
-+0000a21c <[^>]*> nop
-+0000a220 <[^>]*> nop
-+0000a224 <[^>]*> nop
-+0000a228 <[^>]*> nop
-+0000a22c <[^>]*> nop
-+0000a230 <[^>]*> nop
-+0000a234 <[^>]*> nop
-+0000a238 <[^>]*> nop
-+0000a23c <[^>]*> nop
-+0000a240 <[^>]*> nop
-+0000a244 <[^>]*> nop
-+0000a248 <[^>]*> nop
-+0000a24c <[^>]*> nop
-+0000a250 <[^>]*> nop
-+0000a254 <[^>]*> nop
-+0000a258 <[^>]*> nop
-+0000a25c <[^>]*> nop
-+0000a260 <[^>]*> nop
-+0000a264 <[^>]*> nop
-+0000a268 <[^>]*> nop
-+0000a26c <[^>]*> nop
-+0000a270 <[^>]*> nop
-+0000a274 <[^>]*> nop
-+0000a278 <[^>]*> nop
-+0000a27c <[^>]*> nop
-+0000a280 <[^>]*> nop
-+0000a284 <[^>]*> nop
-+0000a288 <[^>]*> nop
-+0000a28c <[^>]*> nop
-+0000a290 <[^>]*> nop
-+0000a294 <[^>]*> nop
-+0000a298 <[^>]*> nop
-+0000a29c <[^>]*> nop
-+0000a2a0 <[^>]*> nop
-+0000a2a4 <[^>]*> nop
-+0000a2a8 <[^>]*> nop
-+0000a2ac <[^>]*> nop
-+0000a2b0 <[^>]*> nop
-+0000a2b4 <[^>]*> nop
-+0000a2b8 <[^>]*> nop
-+0000a2bc <[^>]*> nop
-+0000a2c0 <[^>]*> nop
-+0000a2c4 <[^>]*> nop
-+0000a2c8 <[^>]*> nop
-+0000a2cc <[^>]*> nop
-+0000a2d0 <[^>]*> nop
-+0000a2d4 <[^>]*> nop
-+0000a2d8 <[^>]*> nop
-+0000a2dc <[^>]*> nop
-+0000a2e0 <[^>]*> nop
-+0000a2e4 <[^>]*> nop
-+0000a2e8 <[^>]*> nop
-+0000a2ec <[^>]*> nop
-+0000a2f0 <[^>]*> nop
-+0000a2f4 <[^>]*> nop
-+0000a2f8 <[^>]*> nop
-+0000a2fc <[^>]*> nop
-+0000a300 <[^>]*> nop
-+0000a304 <[^>]*> nop
-+0000a308 <[^>]*> nop
-+0000a30c <[^>]*> nop
-+0000a310 <[^>]*> nop
-+0000a314 <[^>]*> nop
-+0000a318 <[^>]*> nop
-+0000a31c <[^>]*> nop
-+0000a320 <[^>]*> nop
-+0000a324 <[^>]*> nop
-+0000a328 <[^>]*> nop
-+0000a32c <[^>]*> nop
-+0000a330 <[^>]*> nop
-+0000a334 <[^>]*> nop
-+0000a338 <[^>]*> nop
-+0000a33c <[^>]*> nop
-+0000a340 <[^>]*> nop
-+0000a344 <[^>]*> nop
-+0000a348 <[^>]*> nop
-+0000a34c <[^>]*> nop
-+0000a350 <[^>]*> nop
-+0000a354 <[^>]*> nop
-+0000a358 <[^>]*> nop
-+0000a35c <[^>]*> nop
-+0000a360 <[^>]*> nop
-+0000a364 <[^>]*> nop
-+0000a368 <[^>]*> nop
-+0000a36c <[^>]*> nop
-+0000a370 <[^>]*> nop
-+0000a374 <[^>]*> nop
-+0000a378 <[^>]*> nop
-+0000a37c <[^>]*> nop
-+0000a380 <[^>]*> nop
-+0000a384 <[^>]*> nop
-+0000a388 <[^>]*> nop
-+0000a38c <[^>]*> nop
-+0000a390 <[^>]*> nop
-+0000a394 <[^>]*> nop
-+0000a398 <[^>]*> nop
-+0000a39c <[^>]*> nop
-+0000a3a0 <[^>]*> nop
-+0000a3a4 <[^>]*> nop
-+0000a3a8 <[^>]*> nop
-+0000a3ac <[^>]*> nop
-+0000a3b0 <[^>]*> nop
-+0000a3b4 <[^>]*> nop
-+0000a3b8 <[^>]*> nop
-+0000a3bc <[^>]*> nop
-+0000a3c0 <[^>]*> nop
-+0000a3c4 <[^>]*> nop
-+0000a3c8 <[^>]*> nop
-+0000a3cc <[^>]*> nop
-+0000a3d0 <[^>]*> nop
-+0000a3d4 <[^>]*> nop
-+0000a3d8 <[^>]*> nop
-+0000a3dc <[^>]*> nop
-+0000a3e0 <[^>]*> nop
-+0000a3e4 <[^>]*> nop
-+0000a3e8 <[^>]*> nop
-+0000a3ec <[^>]*> nop
-+0000a3f0 <[^>]*> nop
-+0000a3f4 <[^>]*> nop
-+0000a3f8 <[^>]*> nop
-+0000a3fc <[^>]*> nop
-+0000a400 <[^>]*> nop
-+0000a404 <[^>]*> nop
-+0000a408 <[^>]*> nop
-+0000a40c <[^>]*> nop
-+0000a410 <[^>]*> nop
-+0000a414 <[^>]*> nop
-+0000a418 <[^>]*> nop
-+0000a41c <[^>]*> nop
-+0000a420 <[^>]*> nop
-+0000a424 <[^>]*> nop
-+0000a428 <[^>]*> nop
-+0000a42c <[^>]*> nop
-+0000a430 <[^>]*> nop
-+0000a434 <[^>]*> nop
-+0000a438 <[^>]*> nop
-+0000a43c <[^>]*> nop
-+0000a440 <[^>]*> nop
-+0000a444 <[^>]*> nop
-+0000a448 <[^>]*> nop
-+0000a44c <[^>]*> nop
-+0000a450 <[^>]*> nop
-+0000a454 <[^>]*> nop
-+0000a458 <[^>]*> nop
-+0000a45c <[^>]*> nop
-+0000a460 <[^>]*> nop
-+0000a464 <[^>]*> nop
-+0000a468 <[^>]*> nop
-+0000a46c <[^>]*> nop
-+0000a470 <[^>]*> nop
-+0000a474 <[^>]*> nop
-+0000a478 <[^>]*> nop
-+0000a47c <[^>]*> nop
-+0000a480 <[^>]*> nop
-+0000a484 <[^>]*> nop
-+0000a488 <[^>]*> nop
-+0000a48c <[^>]*> nop
-+0000a490 <[^>]*> nop
-+0000a494 <[^>]*> nop
-+0000a498 <[^>]*> nop
-+0000a49c <[^>]*> nop
-+0000a4a0 <[^>]*> nop
-+0000a4a4 <[^>]*> nop
-+0000a4a8 <[^>]*> nop
-+0000a4ac <[^>]*> nop
-+0000a4b0 <[^>]*> nop
-+0000a4b4 <[^>]*> nop
-+0000a4b8 <[^>]*> nop
-+0000a4bc <[^>]*> nop
-+0000a4c0 <[^>]*> nop
-+0000a4c4 <[^>]*> nop
-+0000a4c8 <[^>]*> nop
-+0000a4cc <[^>]*> nop
-+0000a4d0 <[^>]*> nop
-+0000a4d4 <[^>]*> nop
-+0000a4d8 <[^>]*> nop
-+0000a4dc <[^>]*> nop
-+0000a4e0 <[^>]*> nop
-+0000a4e4 <[^>]*> nop
-+0000a4e8 <[^>]*> nop
-+0000a4ec <[^>]*> nop
-+0000a4f0 <[^>]*> nop
-+0000a4f4 <[^>]*> nop
-+0000a4f8 <[^>]*> nop
-+0000a4fc <[^>]*> nop
-+0000a500 <[^>]*> nop
-+0000a504 <[^>]*> nop
-+0000a508 <[^>]*> nop
-+0000a50c <[^>]*> nop
-+0000a510 <[^>]*> nop
-+0000a514 <[^>]*> nop
-+0000a518 <[^>]*> nop
-+0000a51c <[^>]*> nop
-+0000a520 <[^>]*> nop
-+0000a524 <[^>]*> nop
-+0000a528 <[^>]*> nop
-+0000a52c <[^>]*> nop
-+0000a530 <[^>]*> nop
-+0000a534 <[^>]*> nop
-+0000a538 <[^>]*> nop
-+0000a53c <[^>]*> nop
-+0000a540 <[^>]*> nop
-+0000a544 <[^>]*> nop
-+0000a548 <[^>]*> nop
-+0000a54c <[^>]*> nop
-+0000a550 <[^>]*> nop
-+0000a554 <[^>]*> nop
-+0000a558 <[^>]*> nop
-+0000a55c <[^>]*> nop
-+0000a560 <[^>]*> nop
-+0000a564 <[^>]*> nop
-+0000a568 <[^>]*> nop
-+0000a56c <[^>]*> nop
-+0000a570 <[^>]*> nop
-+0000a574 <[^>]*> nop
-+0000a578 <[^>]*> nop
-+0000a57c <[^>]*> nop
-+0000a580 <[^>]*> nop
-+0000a584 <[^>]*> nop
-+0000a588 <[^>]*> nop
-+0000a58c <[^>]*> nop
-+0000a590 <[^>]*> nop
-+0000a594 <[^>]*> nop
-+0000a598 <[^>]*> nop
-+0000a59c <[^>]*> nop
-+0000a5a0 <[^>]*> nop
-+0000a5a4 <[^>]*> nop
-+0000a5a8 <[^>]*> nop
-+0000a5ac <[^>]*> nop
-+0000a5b0 <[^>]*> nop
-+0000a5b4 <[^>]*> nop
-+0000a5b8 <[^>]*> nop
-+0000a5bc <[^>]*> nop
-+0000a5c0 <[^>]*> nop
-+0000a5c4 <[^>]*> nop
-+0000a5c8 <[^>]*> nop
-+0000a5cc <[^>]*> nop
-+0000a5d0 <[^>]*> nop
-+0000a5d4 <[^>]*> nop
-+0000a5d8 <[^>]*> nop
-+0000a5dc <[^>]*> nop
-+0000a5e0 <[^>]*> nop
-+0000a5e4 <[^>]*> nop
-+0000a5e8 <[^>]*> nop
-+0000a5ec <[^>]*> nop
-+0000a5f0 <[^>]*> nop
-+0000a5f4 <[^>]*> nop
-+0000a5f8 <[^>]*> nop
-+0000a5fc <[^>]*> nop
-+0000a600 <[^>]*> nop
-+0000a604 <[^>]*> nop
-+0000a608 <[^>]*> nop
-+0000a60c <[^>]*> nop
-+0000a610 <[^>]*> nop
-+0000a614 <[^>]*> nop
-+0000a618 <[^>]*> nop
-+0000a61c <[^>]*> nop
-+0000a620 <[^>]*> nop
-+0000a624 <[^>]*> nop
-+0000a628 <[^>]*> nop
-+0000a62c <[^>]*> nop
-+0000a630 <[^>]*> nop
-+0000a634 <[^>]*> nop
-+0000a638 <[^>]*> nop
-+0000a63c <[^>]*> nop
-+0000a640 <[^>]*> nop
-+0000a644 <[^>]*> nop
-+0000a648 <[^>]*> nop
-+0000a64c <[^>]*> nop
-+0000a650 <[^>]*> nop
-+0000a654 <[^>]*> nop
-+0000a658 <[^>]*> nop
-+0000a65c <[^>]*> nop
-+0000a660 <[^>]*> nop
-+0000a664 <[^>]*> nop
-+0000a668 <[^>]*> nop
-+0000a66c <[^>]*> nop
-+0000a670 <[^>]*> nop
-+0000a674 <[^>]*> nop
-+0000a678 <[^>]*> nop
-+0000a67c <[^>]*> nop
-+0000a680 <[^>]*> nop
-+0000a684 <[^>]*> nop
-+0000a688 <[^>]*> nop
-+0000a68c <[^>]*> nop
-+0000a690 <[^>]*> nop
-+0000a694 <[^>]*> nop
-+0000a698 <[^>]*> nop
-+0000a69c <[^>]*> nop
-+0000a6a0 <[^>]*> nop
-+0000a6a4 <[^>]*> nop
-+0000a6a8 <[^>]*> nop
-+0000a6ac <[^>]*> nop
-+0000a6b0 <[^>]*> nop
-+0000a6b4 <[^>]*> nop
-+0000a6b8 <[^>]*> nop
-+0000a6bc <[^>]*> nop
-+0000a6c0 <[^>]*> nop
-+0000a6c4 <[^>]*> nop
-+0000a6c8 <[^>]*> nop
-+0000a6cc <[^>]*> nop
-+0000a6d0 <[^>]*> nop
-+0000a6d4 <[^>]*> nop
-+0000a6d8 <[^>]*> nop
-+0000a6dc <[^>]*> nop
-+0000a6e0 <[^>]*> nop
-+0000a6e4 <[^>]*> nop
-+0000a6e8 <[^>]*> nop
-+0000a6ec <[^>]*> nop
-+0000a6f0 <[^>]*> nop
-+0000a6f4 <[^>]*> nop
-+0000a6f8 <[^>]*> nop
-+0000a6fc <[^>]*> nop
-+0000a700 <[^>]*> nop
-+0000a704 <[^>]*> nop
-+0000a708 <[^>]*> nop
-+0000a70c <[^>]*> nop
-+0000a710 <[^>]*> nop
-+0000a714 <[^>]*> nop
-+0000a718 <[^>]*> nop
-+0000a71c <[^>]*> nop
-+0000a720 <[^>]*> nop
-+0000a724 <[^>]*> nop
-+0000a728 <[^>]*> nop
-+0000a72c <[^>]*> nop
-+0000a730 <[^>]*> nop
-+0000a734 <[^>]*> nop
-+0000a738 <[^>]*> nop
-+0000a73c <[^>]*> nop
-+0000a740 <[^>]*> nop
-+0000a744 <[^>]*> nop
-+0000a748 <[^>]*> nop
-+0000a74c <[^>]*> nop
-+0000a750 <[^>]*> nop
-+0000a754 <[^>]*> nop
-+0000a758 <[^>]*> nop
-+0000a75c <[^>]*> nop
-+0000a760 <[^>]*> nop
-+0000a764 <[^>]*> nop
-+0000a768 <[^>]*> nop
-+0000a76c <[^>]*> nop
-+0000a770 <[^>]*> nop
-+0000a774 <[^>]*> nop
-+0000a778 <[^>]*> nop
-+0000a77c <[^>]*> nop
-+0000a780 <[^>]*> nop
-+0000a784 <[^>]*> nop
-+0000a788 <[^>]*> nop
-+0000a78c <[^>]*> nop
-+0000a790 <[^>]*> nop
-+0000a794 <[^>]*> nop
-+0000a798 <[^>]*> nop
-+0000a79c <[^>]*> nop
-+0000a7a0 <[^>]*> nop
-+0000a7a4 <[^>]*> nop
-+0000a7a8 <[^>]*> nop
-+0000a7ac <[^>]*> nop
-+0000a7b0 <[^>]*> nop
-+0000a7b4 <[^>]*> nop
-+0000a7b8 <[^>]*> nop
-+0000a7bc <[^>]*> nop
-+0000a7c0 <[^>]*> nop
-+0000a7c4 <[^>]*> nop
-+0000a7c8 <[^>]*> nop
-+0000a7cc <[^>]*> nop
-+0000a7d0 <[^>]*> nop
-+0000a7d4 <[^>]*> nop
-+0000a7d8 <[^>]*> nop
-+0000a7dc <[^>]*> nop
-+0000a7e0 <[^>]*> nop
-+0000a7e4 <[^>]*> nop
-+0000a7e8 <[^>]*> nop
-+0000a7ec <[^>]*> nop
-+0000a7f0 <[^>]*> nop
-+0000a7f4 <[^>]*> nop
-+0000a7f8 <[^>]*> nop
-+0000a7fc <[^>]*> nop
-+0000a800 <[^>]*> nop
-+0000a804 <[^>]*> nop
-+0000a808 <[^>]*> nop
-+0000a80c <[^>]*> nop
-+0000a810 <[^>]*> nop
-+0000a814 <[^>]*> nop
-+0000a818 <[^>]*> nop
-+0000a81c <[^>]*> nop
-+0000a820 <[^>]*> nop
-+0000a824 <[^>]*> nop
-+0000a828 <[^>]*> nop
-+0000a82c <[^>]*> nop
-+0000a830 <[^>]*> nop
-+0000a834 <[^>]*> nop
-+0000a838 <[^>]*> nop
-+0000a83c <[^>]*> nop
-+0000a840 <[^>]*> nop
-+0000a844 <[^>]*> nop
-+0000a848 <[^>]*> nop
-+0000a84c <[^>]*> nop
-+0000a850 <[^>]*> nop
-+0000a854 <[^>]*> nop
-+0000a858 <[^>]*> nop
-+0000a85c <[^>]*> nop
-+0000a860 <[^>]*> nop
-+0000a864 <[^>]*> nop
-+0000a868 <[^>]*> nop
-+0000a86c <[^>]*> nop
-+0000a870 <[^>]*> nop
-+0000a874 <[^>]*> nop
-+0000a878 <[^>]*> nop
-+0000a87c <[^>]*> nop
-+0000a880 <[^>]*> nop
-+0000a884 <[^>]*> nop
-+0000a888 <[^>]*> nop
-+0000a88c <[^>]*> nop
-+0000a890 <[^>]*> nop
-+0000a894 <[^>]*> nop
-+0000a898 <[^>]*> nop
-+0000a89c <[^>]*> nop
-+0000a8a0 <[^>]*> nop
-+0000a8a4 <[^>]*> nop
-+0000a8a8 <[^>]*> nop
-+0000a8ac <[^>]*> nop
-+0000a8b0 <[^>]*> nop
-+0000a8b4 <[^>]*> nop
-+0000a8b8 <[^>]*> nop
-+0000a8bc <[^>]*> nop
-+0000a8c0 <[^>]*> nop
-+0000a8c4 <[^>]*> nop
-+0000a8c8 <[^>]*> nop
-+0000a8cc <[^>]*> nop
-+0000a8d0 <[^>]*> nop
-+0000a8d4 <[^>]*> nop
-+0000a8d8 <[^>]*> nop
-+0000a8dc <[^>]*> nop
-+0000a8e0 <[^>]*> nop
-+0000a8e4 <[^>]*> nop
-+0000a8e8 <[^>]*> nop
-+0000a8ec <[^>]*> nop
-+0000a8f0 <[^>]*> nop
-+0000a8f4 <[^>]*> nop
-+0000a8f8 <[^>]*> nop
-+0000a8fc <[^>]*> nop
-+0000a900 <[^>]*> nop
-+0000a904 <[^>]*> nop
-+0000a908 <[^>]*> nop
-+0000a90c <[^>]*> nop
-+0000a910 <[^>]*> nop
-+0000a914 <[^>]*> nop
-+0000a918 <[^>]*> nop
-+0000a91c <[^>]*> nop
-+0000a920 <[^>]*> nop
-+0000a924 <[^>]*> nop
-+0000a928 <[^>]*> nop
-+0000a92c <[^>]*> nop
-+0000a930 <[^>]*> nop
-+0000a934 <[^>]*> nop
-+0000a938 <[^>]*> nop
-+0000a93c <[^>]*> nop
-+0000a940 <[^>]*> nop
-+0000a944 <[^>]*> nop
-+0000a948 <[^>]*> nop
-+0000a94c <[^>]*> nop
-+0000a950 <[^>]*> nop
-+0000a954 <[^>]*> nop
-+0000a958 <[^>]*> nop
-+0000a95c <[^>]*> nop
-+0000a960 <[^>]*> nop
-+0000a964 <[^>]*> nop
-+0000a968 <[^>]*> nop
-+0000a96c <[^>]*> nop
-+0000a970 <[^>]*> nop
-+0000a974 <[^>]*> nop
-+0000a978 <[^>]*> nop
-+0000a97c <[^>]*> nop
-+0000a980 <[^>]*> nop
-+0000a984 <[^>]*> nop
-+0000a988 <[^>]*> nop
-+0000a98c <[^>]*> nop
-+0000a990 <[^>]*> nop
-+0000a994 <[^>]*> nop
-+0000a998 <[^>]*> nop
-+0000a99c <[^>]*> nop
-+0000a9a0 <[^>]*> nop
-+0000a9a4 <[^>]*> nop
-+0000a9a8 <[^>]*> nop
-+0000a9ac <[^>]*> nop
-+0000a9b0 <[^>]*> nop
-+0000a9b4 <[^>]*> nop
-+0000a9b8 <[^>]*> nop
-+0000a9bc <[^>]*> nop
-+0000a9c0 <[^>]*> nop
-+0000a9c4 <[^>]*> nop
-+0000a9c8 <[^>]*> nop
-+0000a9cc <[^>]*> nop
-+0000a9d0 <[^>]*> nop
-+0000a9d4 <[^>]*> nop
-+0000a9d8 <[^>]*> nop
-+0000a9dc <[^>]*> nop
-+0000a9e0 <[^>]*> nop
-+0000a9e4 <[^>]*> nop
-+0000a9e8 <[^>]*> nop
-+0000a9ec <[^>]*> nop
-+0000a9f0 <[^>]*> nop
-+0000a9f4 <[^>]*> nop
-+0000a9f8 <[^>]*> nop
-+0000a9fc <[^>]*> nop
-+0000aa00 <[^>]*> nop
-+0000aa04 <[^>]*> nop
-+0000aa08 <[^>]*> nop
-+0000aa0c <[^>]*> nop
-+0000aa10 <[^>]*> nop
-+0000aa14 <[^>]*> nop
-+0000aa18 <[^>]*> nop
-+0000aa1c <[^>]*> nop
-+0000aa20 <[^>]*> nop
-+0000aa24 <[^>]*> nop
-+0000aa28 <[^>]*> nop
-+0000aa2c <[^>]*> nop
-+0000aa30 <[^>]*> nop
-+0000aa34 <[^>]*> nop
-+0000aa38 <[^>]*> nop
-+0000aa3c <[^>]*> nop
-+0000aa40 <[^>]*> nop
-+0000aa44 <[^>]*> nop
-+0000aa48 <[^>]*> nop
-+0000aa4c <[^>]*> nop
-+0000aa50 <[^>]*> nop
-+0000aa54 <[^>]*> nop
-+0000aa58 <[^>]*> nop
-+0000aa5c <[^>]*> nop
-+0000aa60 <[^>]*> nop
-+0000aa64 <[^>]*> nop
-+0000aa68 <[^>]*> nop
-+0000aa6c <[^>]*> nop
-+0000aa70 <[^>]*> nop
-+0000aa74 <[^>]*> nop
-+0000aa78 <[^>]*> nop
-+0000aa7c <[^>]*> nop
-+0000aa80 <[^>]*> nop
-+0000aa84 <[^>]*> nop
-+0000aa88 <[^>]*> nop
-+0000aa8c <[^>]*> nop
-+0000aa90 <[^>]*> nop
-+0000aa94 <[^>]*> nop
-+0000aa98 <[^>]*> nop
-+0000aa9c <[^>]*> nop
-+0000aaa0 <[^>]*> nop
-+0000aaa4 <[^>]*> nop
-+0000aaa8 <[^>]*> nop
-+0000aaac <[^>]*> nop
-+0000aab0 <[^>]*> nop
-+0000aab4 <[^>]*> nop
-+0000aab8 <[^>]*> nop
-+0000aabc <[^>]*> nop
-+0000aac0 <[^>]*> nop
-+0000aac4 <[^>]*> nop
-+0000aac8 <[^>]*> nop
-+0000aacc <[^>]*> nop
-+0000aad0 <[^>]*> nop
-+0000aad4 <[^>]*> nop
-+0000aad8 <[^>]*> nop
-+0000aadc <[^>]*> nop
-+0000aae0 <[^>]*> nop
-+0000aae4 <[^>]*> nop
-+0000aae8 <[^>]*> nop
-+0000aaec <[^>]*> nop
-+0000aaf0 <[^>]*> nop
-+0000aaf4 <[^>]*> nop
-+0000aaf8 <[^>]*> nop
-+0000aafc <[^>]*> nop
-+0000ab00 <[^>]*> nop
-+0000ab04 <[^>]*> nop
-+0000ab08 <[^>]*> nop
-+0000ab0c <[^>]*> nop
-+0000ab10 <[^>]*> nop
-+0000ab14 <[^>]*> nop
-+0000ab18 <[^>]*> nop
-+0000ab1c <[^>]*> nop
-+0000ab20 <[^>]*> nop
-+0000ab24 <[^>]*> nop
-+0000ab28 <[^>]*> nop
-+0000ab2c <[^>]*> nop
-+0000ab30 <[^>]*> nop
-+0000ab34 <[^>]*> nop
-+0000ab38 <[^>]*> nop
-+0000ab3c <[^>]*> nop
-+0000ab40 <[^>]*> nop
-+0000ab44 <[^>]*> nop
-+0000ab48 <[^>]*> nop
-+0000ab4c <[^>]*> nop
-+0000ab50 <[^>]*> nop
-+0000ab54 <[^>]*> nop
-+0000ab58 <[^>]*> nop
-+0000ab5c <[^>]*> nop
-+0000ab60 <[^>]*> nop
-+0000ab64 <[^>]*> nop
-+0000ab68 <[^>]*> nop
-+0000ab6c <[^>]*> nop
-+0000ab70 <[^>]*> nop
-+0000ab74 <[^>]*> nop
-+0000ab78 <[^>]*> nop
-+0000ab7c <[^>]*> nop
-+0000ab80 <[^>]*> nop
-+0000ab84 <[^>]*> nop
-+0000ab88 <[^>]*> nop
-+0000ab8c <[^>]*> nop
-+0000ab90 <[^>]*> nop
-+0000ab94 <[^>]*> nop
-+0000ab98 <[^>]*> nop
-+0000ab9c <[^>]*> nop
-+0000aba0 <[^>]*> nop
-+0000aba4 <[^>]*> nop
-+0000aba8 <[^>]*> nop
-+0000abac <[^>]*> nop
-+0000abb0 <[^>]*> nop
-+0000abb4 <[^>]*> nop
-+0000abb8 <[^>]*> nop
-+0000abbc <[^>]*> nop
-+0000abc0 <[^>]*> nop
-+0000abc4 <[^>]*> nop
-+0000abc8 <[^>]*> nop
-+0000abcc <[^>]*> nop
-+0000abd0 <[^>]*> nop
-+0000abd4 <[^>]*> nop
-+0000abd8 <[^>]*> nop
-+0000abdc <[^>]*> nop
-+0000abe0 <[^>]*> nop
-+0000abe4 <[^>]*> nop
-+0000abe8 <[^>]*> nop
-+0000abec <[^>]*> nop
-+0000abf0 <[^>]*> nop
-+0000abf4 <[^>]*> nop
-+0000abf8 <[^>]*> nop
-+0000abfc <[^>]*> nop
-+0000ac00 <[^>]*> nop
-+0000ac04 <[^>]*> nop
-+0000ac08 <[^>]*> nop
-+0000ac0c <[^>]*> nop
-+0000ac10 <[^>]*> nop
-+0000ac14 <[^>]*> nop
-+0000ac18 <[^>]*> nop
-+0000ac1c <[^>]*> nop
-+0000ac20 <[^>]*> nop
-+0000ac24 <[^>]*> nop
-+0000ac28 <[^>]*> nop
-+0000ac2c <[^>]*> nop
-+0000ac30 <[^>]*> nop
-+0000ac34 <[^>]*> nop
-+0000ac38 <[^>]*> nop
-+0000ac3c <[^>]*> nop
-+0000ac40 <[^>]*> nop
-+0000ac44 <[^>]*> nop
-+0000ac48 <[^>]*> nop
-+0000ac4c <[^>]*> nop
-+0000ac50 <[^>]*> nop
-+0000ac54 <[^>]*> nop
-+0000ac58 <[^>]*> nop
-+0000ac5c <[^>]*> nop
-+0000ac60 <[^>]*> nop
-+0000ac64 <[^>]*> nop
-+0000ac68 <[^>]*> nop
-+0000ac6c <[^>]*> nop
-+0000ac70 <[^>]*> nop
-+0000ac74 <[^>]*> nop
-+0000ac78 <[^>]*> nop
-+0000ac7c <[^>]*> nop
-+0000ac80 <[^>]*> nop
-+0000ac84 <[^>]*> nop
-+0000ac88 <[^>]*> nop
-+0000ac8c <[^>]*> nop
-+0000ac90 <[^>]*> nop
-+0000ac94 <[^>]*> nop
-+0000ac98 <[^>]*> nop
-+0000ac9c <[^>]*> nop
-+0000aca0 <[^>]*> nop
-+0000aca4 <[^>]*> nop
-+0000aca8 <[^>]*> nop
-+0000acac <[^>]*> nop
-+0000acb0 <[^>]*> nop
-+0000acb4 <[^>]*> nop
-+0000acb8 <[^>]*> nop
-+0000acbc <[^>]*> nop
-+0000acc0 <[^>]*> nop
-+0000acc4 <[^>]*> nop
-+0000acc8 <[^>]*> nop
-+0000accc <[^>]*> nop
-+0000acd0 <[^>]*> nop
-+0000acd4 <[^>]*> nop
-+0000acd8 <[^>]*> nop
-+0000acdc <[^>]*> nop
-+0000ace0 <[^>]*> nop
-+0000ace4 <[^>]*> nop
-+0000ace8 <[^>]*> nop
-+0000acec <[^>]*> nop
-+0000acf0 <[^>]*> nop
-+0000acf4 <[^>]*> nop
-+0000acf8 <[^>]*> nop
-+0000acfc <[^>]*> nop
-+0000ad00 <[^>]*> nop
-+0000ad04 <[^>]*> nop
-+0000ad08 <[^>]*> nop
-+0000ad0c <[^>]*> nop
-+0000ad10 <[^>]*> nop
-+0000ad14 <[^>]*> nop
-+0000ad18 <[^>]*> nop
-+0000ad1c <[^>]*> nop
-+0000ad20 <[^>]*> nop
-+0000ad24 <[^>]*> nop
-+0000ad28 <[^>]*> nop
-+0000ad2c <[^>]*> nop
-+0000ad30 <[^>]*> nop
-+0000ad34 <[^>]*> nop
-+0000ad38 <[^>]*> nop
-+0000ad3c <[^>]*> nop
-+0000ad40 <[^>]*> nop
-+0000ad44 <[^>]*> nop
-+0000ad48 <[^>]*> nop
-+0000ad4c <[^>]*> nop
-+0000ad50 <[^>]*> nop
-+0000ad54 <[^>]*> nop
-+0000ad58 <[^>]*> nop
-+0000ad5c <[^>]*> nop
-+0000ad60 <[^>]*> nop
-+0000ad64 <[^>]*> nop
-+0000ad68 <[^>]*> nop
-+0000ad6c <[^>]*> nop
-+0000ad70 <[^>]*> nop
-+0000ad74 <[^>]*> nop
-+0000ad78 <[^>]*> nop
-+0000ad7c <[^>]*> nop
-+0000ad80 <[^>]*> nop
-+0000ad84 <[^>]*> nop
-+0000ad88 <[^>]*> nop
-+0000ad8c <[^>]*> nop
-+0000ad90 <[^>]*> nop
-+0000ad94 <[^>]*> nop
-+0000ad98 <[^>]*> nop
-+0000ad9c <[^>]*> nop
-+0000ada0 <[^>]*> nop
-+0000ada4 <[^>]*> nop
-+0000ada8 <[^>]*> nop
-+0000adac <[^>]*> nop
-+0000adb0 <[^>]*> nop
-+0000adb4 <[^>]*> nop
-+0000adb8 <[^>]*> nop
-+0000adbc <[^>]*> nop
-+0000adc0 <[^>]*> nop
-+0000adc4 <[^>]*> nop
-+0000adc8 <[^>]*> nop
-+0000adcc <[^>]*> nop
-+0000add0 <[^>]*> nop
-+0000add4 <[^>]*> nop
-+0000add8 <[^>]*> nop
-+0000addc <[^>]*> nop
-+0000ade0 <[^>]*> nop
-+0000ade4 <[^>]*> nop
-+0000ade8 <[^>]*> nop
-+0000adec <[^>]*> nop
-+0000adf0 <[^>]*> nop
-+0000adf4 <[^>]*> nop
-+0000adf8 <[^>]*> nop
-+0000adfc <[^>]*> nop
-+0000ae00 <[^>]*> nop
-+0000ae04 <[^>]*> nop
-+0000ae08 <[^>]*> nop
-+0000ae0c <[^>]*> nop
-+0000ae10 <[^>]*> nop
-+0000ae14 <[^>]*> nop
-+0000ae18 <[^>]*> nop
-+0000ae1c <[^>]*> nop
-+0000ae20 <[^>]*> nop
-+0000ae24 <[^>]*> nop
-+0000ae28 <[^>]*> nop
-+0000ae2c <[^>]*> nop
-+0000ae30 <[^>]*> nop
-+0000ae34 <[^>]*> nop
-+0000ae38 <[^>]*> nop
-+0000ae3c <[^>]*> nop
-+0000ae40 <[^>]*> nop
-+0000ae44 <[^>]*> nop
-+0000ae48 <[^>]*> nop
-+0000ae4c <[^>]*> nop
-+0000ae50 <[^>]*> nop
-+0000ae54 <[^>]*> nop
-+0000ae58 <[^>]*> nop
-+0000ae5c <[^>]*> nop
-+0000ae60 <[^>]*> nop
-+0000ae64 <[^>]*> nop
-+0000ae68 <[^>]*> nop
-+0000ae6c <[^>]*> nop
-+0000ae70 <[^>]*> nop
-+0000ae74 <[^>]*> nop
-+0000ae78 <[^>]*> nop
-+0000ae7c <[^>]*> nop
-+0000ae80 <[^>]*> nop
-+0000ae84 <[^>]*> nop
-+0000ae88 <[^>]*> nop
-+0000ae8c <[^>]*> nop
-+0000ae90 <[^>]*> nop
-+0000ae94 <[^>]*> nop
-+0000ae98 <[^>]*> nop
-+0000ae9c <[^>]*> nop
-+0000aea0 <[^>]*> nop
-+0000aea4 <[^>]*> nop
-+0000aea8 <[^>]*> nop
-+0000aeac <[^>]*> nop
-+0000aeb0 <[^>]*> nop
-+0000aeb4 <[^>]*> nop
-+0000aeb8 <[^>]*> nop
-+0000aebc <[^>]*> nop
-+0000aec0 <[^>]*> nop
-+0000aec4 <[^>]*> nop
-+0000aec8 <[^>]*> nop
-+0000aecc <[^>]*> nop
-+0000aed0 <[^>]*> nop
-+0000aed4 <[^>]*> nop
-+0000aed8 <[^>]*> nop
-+0000aedc <[^>]*> nop
-+0000aee0 <[^>]*> nop
-+0000aee4 <[^>]*> nop
-+0000aee8 <[^>]*> nop
-+0000aeec <[^>]*> nop
-+0000aef0 <[^>]*> nop
-+0000aef4 <[^>]*> nop
-+0000aef8 <[^>]*> nop
-+0000aefc <[^>]*> nop
-+0000af00 <[^>]*> nop
-+0000af04 <[^>]*> nop
-+0000af08 <[^>]*> nop
-+0000af0c <[^>]*> nop
-+0000af10 <[^>]*> nop
-+0000af14 <[^>]*> nop
-+0000af18 <[^>]*> nop
-+0000af1c <[^>]*> nop
-+0000af20 <[^>]*> nop
-+0000af24 <[^>]*> nop
-+0000af28 <[^>]*> nop
-+0000af2c <[^>]*> nop
-+0000af30 <[^>]*> nop
-+0000af34 <[^>]*> nop
-+0000af38 <[^>]*> nop
-+0000af3c <[^>]*> nop
-+0000af40 <[^>]*> nop
-+0000af44 <[^>]*> nop
-+0000af48 <[^>]*> nop
-+0000af4c <[^>]*> nop
-+0000af50 <[^>]*> nop
-+0000af54 <[^>]*> nop
-+0000af58 <[^>]*> nop
-+0000af5c <[^>]*> nop
-+0000af60 <[^>]*> nop
-+0000af64 <[^>]*> nop
-+0000af68 <[^>]*> nop
-+0000af6c <[^>]*> nop
-+0000af70 <[^>]*> nop
-+0000af74 <[^>]*> nop
-+0000af78 <[^>]*> nop
-+0000af7c <[^>]*> nop
-+0000af80 <[^>]*> nop
-+0000af84 <[^>]*> nop
-+0000af88 <[^>]*> nop
-+0000af8c <[^>]*> nop
-+0000af90 <[^>]*> nop
-+0000af94 <[^>]*> nop
-+0000af98 <[^>]*> nop
-+0000af9c <[^>]*> nop
-+0000afa0 <[^>]*> nop
-+0000afa4 <[^>]*> nop
-+0000afa8 <[^>]*> nop
-+0000afac <[^>]*> nop
-+0000afb0 <[^>]*> nop
-+0000afb4 <[^>]*> nop
-+0000afb8 <[^>]*> nop
-+0000afbc <[^>]*> nop
-+0000afc0 <[^>]*> nop
-+0000afc4 <[^>]*> nop
-+0000afc8 <[^>]*> nop
-+0000afcc <[^>]*> nop
-+0000afd0 <[^>]*> nop
-+0000afd4 <[^>]*> nop
-+0000afd8 <[^>]*> nop
-+0000afdc <[^>]*> nop
-+0000afe0 <[^>]*> nop
-+0000afe4 <[^>]*> nop
-+0000afe8 <[^>]*> nop
-+0000afec <[^>]*> nop
-+0000aff0 <[^>]*> nop
-+0000aff4 <[^>]*> nop
-+0000aff8 <[^>]*> nop
-+0000affc <[^>]*> nop
-+0000b000 <[^>]*> nop
-+0000b004 <[^>]*> nop
-+0000b008 <[^>]*> nop
-+0000b00c <[^>]*> nop
-+0000b010 <[^>]*> nop
-+0000b014 <[^>]*> nop
-+0000b018 <[^>]*> nop
-+0000b01c <[^>]*> nop
-+0000b020 <[^>]*> nop
-+0000b024 <[^>]*> nop
-+0000b028 <[^>]*> nop
-+0000b02c <[^>]*> nop
-+0000b030 <[^>]*> nop
-+0000b034 <[^>]*> nop
-+0000b038 <[^>]*> nop
-+0000b03c <[^>]*> nop
-+0000b040 <[^>]*> nop
-+0000b044 <[^>]*> nop
-+0000b048 <[^>]*> nop
-+0000b04c <[^>]*> nop
-+0000b050 <[^>]*> nop
-+0000b054 <[^>]*> nop
-+0000b058 <[^>]*> nop
-+0000b05c <[^>]*> nop
-+0000b060 <[^>]*> nop
-+0000b064 <[^>]*> nop
-+0000b068 <[^>]*> nop
-+0000b06c <[^>]*> nop
-+0000b070 <[^>]*> nop
-+0000b074 <[^>]*> nop
-+0000b078 <[^>]*> nop
-+0000b07c <[^>]*> nop
-+0000b080 <[^>]*> nop
-+0000b084 <[^>]*> nop
-+0000b088 <[^>]*> nop
-+0000b08c <[^>]*> nop
-+0000b090 <[^>]*> nop
-+0000b094 <[^>]*> nop
-+0000b098 <[^>]*> nop
-+0000b09c <[^>]*> nop
-+0000b0a0 <[^>]*> nop
-+0000b0a4 <[^>]*> nop
-+0000b0a8 <[^>]*> nop
-+0000b0ac <[^>]*> nop
-+0000b0b0 <[^>]*> nop
-+0000b0b4 <[^>]*> nop
-+0000b0b8 <[^>]*> nop
-+0000b0bc <[^>]*> nop
-+0000b0c0 <[^>]*> nop
-+0000b0c4 <[^>]*> nop
-+0000b0c8 <[^>]*> nop
-+0000b0cc <[^>]*> nop
-+0000b0d0 <[^>]*> nop
-+0000b0d4 <[^>]*> nop
-+0000b0d8 <[^>]*> nop
-+0000b0dc <[^>]*> nop
-+0000b0e0 <[^>]*> nop
-+0000b0e4 <[^>]*> nop
-+0000b0e8 <[^>]*> nop
-+0000b0ec <[^>]*> nop
-+0000b0f0 <[^>]*> nop
-+0000b0f4 <[^>]*> nop
-+0000b0f8 <[^>]*> nop
-+0000b0fc <[^>]*> nop
-+0000b100 <[^>]*> nop
-+0000b104 <[^>]*> nop
-+0000b108 <[^>]*> nop
-+0000b10c <[^>]*> nop
-+0000b110 <[^>]*> nop
-+0000b114 <[^>]*> nop
-+0000b118 <[^>]*> nop
-+0000b11c <[^>]*> nop
-+0000b120 <[^>]*> nop
-+0000b124 <[^>]*> nop
-+0000b128 <[^>]*> nop
-+0000b12c <[^>]*> nop
-+0000b130 <[^>]*> nop
-+0000b134 <[^>]*> nop
-+0000b138 <[^>]*> nop
-+0000b13c <[^>]*> nop
-+0000b140 <[^>]*> nop
-+0000b144 <[^>]*> nop
-+0000b148 <[^>]*> nop
-+0000b14c <[^>]*> nop
-+0000b150 <[^>]*> nop
-+0000b154 <[^>]*> nop
-+0000b158 <[^>]*> nop
-+0000b15c <[^>]*> nop
-+0000b160 <[^>]*> nop
-+0000b164 <[^>]*> nop
-+0000b168 <[^>]*> nop
-+0000b16c <[^>]*> nop
-+0000b170 <[^>]*> nop
-+0000b174 <[^>]*> nop
-+0000b178 <[^>]*> nop
-+0000b17c <[^>]*> nop
-+0000b180 <[^>]*> nop
-+0000b184 <[^>]*> nop
-+0000b188 <[^>]*> nop
-+0000b18c <[^>]*> nop
-+0000b190 <[^>]*> nop
-+0000b194 <[^>]*> nop
-+0000b198 <[^>]*> nop
-+0000b19c <[^>]*> nop
-+0000b1a0 <[^>]*> nop
-+0000b1a4 <[^>]*> nop
-+0000b1a8 <[^>]*> nop
-+0000b1ac <[^>]*> nop
-+0000b1b0 <[^>]*> nop
-+0000b1b4 <[^>]*> nop
-+0000b1b8 <[^>]*> nop
-+0000b1bc <[^>]*> nop
-+0000b1c0 <[^>]*> nop
-+0000b1c4 <[^>]*> nop
-+0000b1c8 <[^>]*> nop
-+0000b1cc <[^>]*> nop
-+0000b1d0 <[^>]*> nop
-+0000b1d4 <[^>]*> nop
-+0000b1d8 <[^>]*> nop
-+0000b1dc <[^>]*> nop
-+0000b1e0 <[^>]*> nop
-+0000b1e4 <[^>]*> nop
-+0000b1e8 <[^>]*> nop
-+0000b1ec <[^>]*> nop
-+0000b1f0 <[^>]*> nop
-+0000b1f4 <[^>]*> nop
-+0000b1f8 <[^>]*> nop
-+0000b1fc <[^>]*> nop
-+0000b200 <[^>]*> nop
-+0000b204 <[^>]*> nop
-+0000b208 <[^>]*> nop
-+0000b20c <[^>]*> nop
-+0000b210 <[^>]*> nop
-+0000b214 <[^>]*> nop
-+0000b218 <[^>]*> nop
-+0000b21c <[^>]*> nop
-+0000b220 <[^>]*> nop
-+0000b224 <[^>]*> nop
-+0000b228 <[^>]*> nop
-+0000b22c <[^>]*> nop
-+0000b230 <[^>]*> nop
-+0000b234 <[^>]*> nop
-+0000b238 <[^>]*> nop
-+0000b23c <[^>]*> nop
-+0000b240 <[^>]*> nop
-+0000b244 <[^>]*> nop
-+0000b248 <[^>]*> nop
-+0000b24c <[^>]*> nop
-+0000b250 <[^>]*> nop
-+0000b254 <[^>]*> nop
-+0000b258 <[^>]*> nop
-+0000b25c <[^>]*> nop
-+0000b260 <[^>]*> nop
-+0000b264 <[^>]*> nop
-+0000b268 <[^>]*> nop
-+0000b26c <[^>]*> nop
-+0000b270 <[^>]*> nop
-+0000b274 <[^>]*> nop
-+0000b278 <[^>]*> nop
-+0000b27c <[^>]*> nop
-+0000b280 <[^>]*> nop
-+0000b284 <[^>]*> nop
-+0000b288 <[^>]*> nop
-+0000b28c <[^>]*> nop
-+0000b290 <[^>]*> nop
-+0000b294 <[^>]*> nop
-+0000b298 <[^>]*> nop
-+0000b29c <[^>]*> nop
-+0000b2a0 <[^>]*> nop
-+0000b2a4 <[^>]*> nop
-+0000b2a8 <[^>]*> nop
-+0000b2ac <[^>]*> nop
-+0000b2b0 <[^>]*> nop
-+0000b2b4 <[^>]*> nop
-+0000b2b8 <[^>]*> nop
-+0000b2bc <[^>]*> nop
-+0000b2c0 <[^>]*> nop
-+0000b2c4 <[^>]*> nop
-+0000b2c8 <[^>]*> nop
-+0000b2cc <[^>]*> nop
-+0000b2d0 <[^>]*> nop
-+0000b2d4 <[^>]*> nop
-+0000b2d8 <[^>]*> nop
-+0000b2dc <[^>]*> nop
-+0000b2e0 <[^>]*> nop
-+0000b2e4 <[^>]*> nop
-+0000b2e8 <[^>]*> nop
-+0000b2ec <[^>]*> nop
-+0000b2f0 <[^>]*> nop
-+0000b2f4 <[^>]*> nop
-+0000b2f8 <[^>]*> nop
-+0000b2fc <[^>]*> nop
-+0000b300 <[^>]*> nop
-+0000b304 <[^>]*> nop
-+0000b308 <[^>]*> nop
-+0000b30c <[^>]*> nop
-+0000b310 <[^>]*> nop
-+0000b314 <[^>]*> nop
-+0000b318 <[^>]*> nop
-+0000b31c <[^>]*> nop
-+0000b320 <[^>]*> nop
-+0000b324 <[^>]*> nop
-+0000b328 <[^>]*> nop
-+0000b32c <[^>]*> nop
-+0000b330 <[^>]*> nop
-+0000b334 <[^>]*> nop
-+0000b338 <[^>]*> nop
-+0000b33c <[^>]*> nop
-+0000b340 <[^>]*> nop
-+0000b344 <[^>]*> nop
-+0000b348 <[^>]*> nop
-+0000b34c <[^>]*> nop
-+0000b350 <[^>]*> nop
-+0000b354 <[^>]*> nop
-+0000b358 <[^>]*> nop
-+0000b35c <[^>]*> nop
-+0000b360 <[^>]*> nop
-+0000b364 <[^>]*> nop
-+0000b368 <[^>]*> nop
-+0000b36c <[^>]*> nop
-+0000b370 <[^>]*> nop
-+0000b374 <[^>]*> nop
-+0000b378 <[^>]*> nop
-+0000b37c <[^>]*> nop
-+0000b380 <[^>]*> nop
-+0000b384 <[^>]*> nop
-+0000b388 <[^>]*> nop
-+0000b38c <[^>]*> nop
-+0000b390 <[^>]*> nop
-+0000b394 <[^>]*> nop
-+0000b398 <[^>]*> nop
-+0000b39c <[^>]*> nop
-+0000b3a0 <[^>]*> nop
-+0000b3a4 <[^>]*> nop
-+0000b3a8 <[^>]*> nop
-+0000b3ac <[^>]*> nop
-+0000b3b0 <[^>]*> nop
-+0000b3b4 <[^>]*> nop
-+0000b3b8 <[^>]*> nop
-+0000b3bc <[^>]*> nop
-+0000b3c0 <[^>]*> nop
-+0000b3c4 <[^>]*> nop
-+0000b3c8 <[^>]*> nop
-+0000b3cc <[^>]*> nop
-+0000b3d0 <[^>]*> nop
-+0000b3d4 <[^>]*> nop
-+0000b3d8 <[^>]*> nop
-+0000b3dc <[^>]*> nop
-+0000b3e0 <[^>]*> nop
-+0000b3e4 <[^>]*> nop
-+0000b3e8 <[^>]*> nop
-+0000b3ec <[^>]*> nop
-+0000b3f0 <[^>]*> nop
-+0000b3f4 <[^>]*> nop
-+0000b3f8 <[^>]*> nop
-+0000b3fc <[^>]*> nop
-+0000b400 <[^>]*> nop
-+0000b404 <[^>]*> nop
-+0000b408 <[^>]*> nop
-+0000b40c <[^>]*> nop
-+0000b410 <[^>]*> nop
-+0000b414 <[^>]*> nop
-+0000b418 <[^>]*> nop
-+0000b41c <[^>]*> nop
-+0000b420 <[^>]*> nop
-+0000b424 <[^>]*> nop
-+0000b428 <[^>]*> nop
-+0000b42c <[^>]*> nop
-+0000b430 <[^>]*> nop
-+0000b434 <[^>]*> nop
-+0000b438 <[^>]*> nop
-+0000b43c <[^>]*> nop
-+0000b440 <[^>]*> nop
-+0000b444 <[^>]*> nop
-+0000b448 <[^>]*> nop
-+0000b44c <[^>]*> nop
-+0000b450 <[^>]*> nop
-+0000b454 <[^>]*> nop
-+0000b458 <[^>]*> nop
-+0000b45c <[^>]*> nop
-+0000b460 <[^>]*> nop
-+0000b464 <[^>]*> nop
-+0000b468 <[^>]*> nop
-+0000b46c <[^>]*> nop
-+0000b470 <[^>]*> nop
-+0000b474 <[^>]*> nop
-+0000b478 <[^>]*> nop
-+0000b47c <[^>]*> nop
-+0000b480 <[^>]*> nop
-+0000b484 <[^>]*> nop
-+0000b488 <[^>]*> nop
-+0000b48c <[^>]*> nop
-+0000b490 <[^>]*> nop
-+0000b494 <[^>]*> nop
-+0000b498 <[^>]*> nop
-+0000b49c <[^>]*> nop
-+0000b4a0 <[^>]*> nop
-+0000b4a4 <[^>]*> nop
-+0000b4a8 <[^>]*> nop
-+0000b4ac <[^>]*> nop
-+0000b4b0 <[^>]*> nop
-+0000b4b4 <[^>]*> nop
-+0000b4b8 <[^>]*> nop
-+0000b4bc <[^>]*> nop
-+0000b4c0 <[^>]*> nop
-+0000b4c4 <[^>]*> nop
-+0000b4c8 <[^>]*> nop
-+0000b4cc <[^>]*> nop
-+0000b4d0 <[^>]*> nop
-+0000b4d4 <[^>]*> nop
-+0000b4d8 <[^>]*> nop
-+0000b4dc <[^>]*> nop
-+0000b4e0 <[^>]*> nop
-+0000b4e4 <[^>]*> nop
-+0000b4e8 <[^>]*> nop
-+0000b4ec <[^>]*> nop
-+0000b4f0 <[^>]*> nop
-+0000b4f4 <[^>]*> nop
-+0000b4f8 <[^>]*> nop
-+0000b4fc <[^>]*> nop
-+0000b500 <[^>]*> nop
-+0000b504 <[^>]*> nop
-+0000b508 <[^>]*> nop
-+0000b50c <[^>]*> nop
-+0000b510 <[^>]*> nop
-+0000b514 <[^>]*> nop
-+0000b518 <[^>]*> nop
-+0000b51c <[^>]*> nop
-+0000b520 <[^>]*> nop
-+0000b524 <[^>]*> nop
-+0000b528 <[^>]*> nop
-+0000b52c <[^>]*> nop
-+0000b530 <[^>]*> nop
-+0000b534 <[^>]*> nop
-+0000b538 <[^>]*> nop
-+0000b53c <[^>]*> nop
-+0000b540 <[^>]*> nop
-+0000b544 <[^>]*> nop
-+0000b548 <[^>]*> nop
-+0000b54c <[^>]*> nop
-+0000b550 <[^>]*> nop
-+0000b554 <[^>]*> nop
-+0000b558 <[^>]*> nop
-+0000b55c <[^>]*> nop
-+0000b560 <[^>]*> nop
-+0000b564 <[^>]*> nop
-+0000b568 <[^>]*> nop
-+0000b56c <[^>]*> nop
-+0000b570 <[^>]*> nop
-+0000b574 <[^>]*> nop
-+0000b578 <[^>]*> nop
-+0000b57c <[^>]*> nop
-+0000b580 <[^>]*> nop
-+0000b584 <[^>]*> nop
-+0000b588 <[^>]*> nop
-+0000b58c <[^>]*> nop
-+0000b590 <[^>]*> nop
-+0000b594 <[^>]*> nop
-+0000b598 <[^>]*> nop
-+0000b59c <[^>]*> nop
-+0000b5a0 <[^>]*> nop
-+0000b5a4 <[^>]*> nop
-+0000b5a8 <[^>]*> nop
-+0000b5ac <[^>]*> nop
-+0000b5b0 <[^>]*> nop
-+0000b5b4 <[^>]*> nop
-+0000b5b8 <[^>]*> nop
-+0000b5bc <[^>]*> nop
-+0000b5c0 <[^>]*> nop
-+0000b5c4 <[^>]*> nop
-+0000b5c8 <[^>]*> nop
-+0000b5cc <[^>]*> nop
-+0000b5d0 <[^>]*> nop
-+0000b5d4 <[^>]*> nop
-+0000b5d8 <[^>]*> nop
-+0000b5dc <[^>]*> nop
-+0000b5e0 <[^>]*> nop
-+0000b5e4 <[^>]*> nop
-+0000b5e8 <[^>]*> nop
-+0000b5ec <[^>]*> nop
-+0000b5f0 <[^>]*> nop
-+0000b5f4 <[^>]*> nop
-+0000b5f8 <[^>]*> nop
-+0000b5fc <[^>]*> nop
-+0000b600 <[^>]*> nop
-+0000b604 <[^>]*> nop
-+0000b608 <[^>]*> nop
-+0000b60c <[^>]*> nop
-+0000b610 <[^>]*> nop
-+0000b614 <[^>]*> nop
-+0000b618 <[^>]*> nop
-+0000b61c <[^>]*> nop
-+0000b620 <[^>]*> nop
-+0000b624 <[^>]*> nop
-+0000b628 <[^>]*> nop
-+0000b62c <[^>]*> nop
-+0000b630 <[^>]*> nop
-+0000b634 <[^>]*> nop
-+0000b638 <[^>]*> nop
-+0000b63c <[^>]*> nop
-+0000b640 <[^>]*> nop
-+0000b644 <[^>]*> nop
-+0000b648 <[^>]*> nop
-+0000b64c <[^>]*> nop
-+0000b650 <[^>]*> nop
-+0000b654 <[^>]*> nop
-+0000b658 <[^>]*> nop
-+0000b65c <[^>]*> nop
-+0000b660 <[^>]*> nop
-+0000b664 <[^>]*> nop
-+0000b668 <[^>]*> nop
-+0000b66c <[^>]*> nop
-+0000b670 <[^>]*> nop
-+0000b674 <[^>]*> nop
-+0000b678 <[^>]*> nop
-+0000b67c <[^>]*> nop
-+0000b680 <[^>]*> nop
-+0000b684 <[^>]*> nop
-+0000b688 <[^>]*> nop
-+0000b68c <[^>]*> nop
-+0000b690 <[^>]*> nop
-+0000b694 <[^>]*> nop
-+0000b698 <[^>]*> nop
-+0000b69c <[^>]*> nop
-+0000b6a0 <[^>]*> nop
-+0000b6a4 <[^>]*> nop
-+0000b6a8 <[^>]*> nop
-+0000b6ac <[^>]*> nop
-+0000b6b0 <[^>]*> nop
-+0000b6b4 <[^>]*> nop
-+0000b6b8 <[^>]*> nop
-+0000b6bc <[^>]*> nop
-+0000b6c0 <[^>]*> nop
-+0000b6c4 <[^>]*> nop
-+0000b6c8 <[^>]*> nop
-+0000b6cc <[^>]*> nop
-+0000b6d0 <[^>]*> nop
-+0000b6d4 <[^>]*> nop
-+0000b6d8 <[^>]*> nop
-+0000b6dc <[^>]*> nop
-+0000b6e0 <[^>]*> nop
-+0000b6e4 <[^>]*> nop
-+0000b6e8 <[^>]*> nop
-+0000b6ec <[^>]*> nop
-+0000b6f0 <[^>]*> nop
-+0000b6f4 <[^>]*> nop
-+0000b6f8 <[^>]*> nop
-+0000b6fc <[^>]*> nop
-+0000b700 <[^>]*> nop
-+0000b704 <[^>]*> nop
-+0000b708 <[^>]*> nop
-+0000b70c <[^>]*> nop
-+0000b710 <[^>]*> nop
-+0000b714 <[^>]*> nop
-+0000b718 <[^>]*> nop
-+0000b71c <[^>]*> nop
-+0000b720 <[^>]*> nop
-+0000b724 <[^>]*> nop
-+0000b728 <[^>]*> nop
-+0000b72c <[^>]*> nop
-+0000b730 <[^>]*> nop
-+0000b734 <[^>]*> nop
-+0000b738 <[^>]*> nop
-+0000b73c <[^>]*> nop
-+0000b740 <[^>]*> nop
-+0000b744 <[^>]*> nop
-+0000b748 <[^>]*> nop
-+0000b74c <[^>]*> nop
-+0000b750 <[^>]*> nop
-+0000b754 <[^>]*> nop
-+0000b758 <[^>]*> nop
-+0000b75c <[^>]*> nop
-+0000b760 <[^>]*> nop
-+0000b764 <[^>]*> nop
-+0000b768 <[^>]*> nop
-+0000b76c <[^>]*> nop
-+0000b770 <[^>]*> nop
-+0000b774 <[^>]*> nop
-+0000b778 <[^>]*> nop
-+0000b77c <[^>]*> nop
-+0000b780 <[^>]*> nop
-+0000b784 <[^>]*> nop
-+0000b788 <[^>]*> nop
-+0000b78c <[^>]*> nop
-+0000b790 <[^>]*> nop
-+0000b794 <[^>]*> nop
-+0000b798 <[^>]*> nop
-+0000b79c <[^>]*> nop
-+0000b7a0 <[^>]*> nop
-+0000b7a4 <[^>]*> nop
-+0000b7a8 <[^>]*> nop
-+0000b7ac <[^>]*> nop
-+0000b7b0 <[^>]*> nop
-+0000b7b4 <[^>]*> nop
-+0000b7b8 <[^>]*> nop
-+0000b7bc <[^>]*> nop
-+0000b7c0 <[^>]*> nop
-+0000b7c4 <[^>]*> nop
-+0000b7c8 <[^>]*> nop
-+0000b7cc <[^>]*> nop
-+0000b7d0 <[^>]*> nop
-+0000b7d4 <[^>]*> nop
-+0000b7d8 <[^>]*> nop
-+0000b7dc <[^>]*> nop
-+0000b7e0 <[^>]*> nop
-+0000b7e4 <[^>]*> nop
-+0000b7e8 <[^>]*> nop
-+0000b7ec <[^>]*> nop
-+0000b7f0 <[^>]*> nop
-+0000b7f4 <[^>]*> nop
-+0000b7f8 <[^>]*> nop
-+0000b7fc <[^>]*> nop
-+0000b800 <[^>]*> nop
-+0000b804 <[^>]*> nop
-+0000b808 <[^>]*> nop
-+0000b80c <[^>]*> nop
-+0000b810 <[^>]*> nop
-+0000b814 <[^>]*> nop
-+0000b818 <[^>]*> nop
-+0000b81c <[^>]*> nop
-+0000b820 <[^>]*> nop
-+0000b824 <[^>]*> nop
-+0000b828 <[^>]*> nop
-+0000b82c <[^>]*> nop
-+0000b830 <[^>]*> nop
-+0000b834 <[^>]*> nop
-+0000b838 <[^>]*> nop
-+0000b83c <[^>]*> nop
-+0000b840 <[^>]*> nop
-+0000b844 <[^>]*> nop
-+0000b848 <[^>]*> nop
-+0000b84c <[^>]*> nop
-+0000b850 <[^>]*> nop
-+0000b854 <[^>]*> nop
-+0000b858 <[^>]*> nop
-+0000b85c <[^>]*> nop
-+0000b860 <[^>]*> nop
-+0000b864 <[^>]*> nop
-+0000b868 <[^>]*> nop
-+0000b86c <[^>]*> nop
-+0000b870 <[^>]*> nop
-+0000b874 <[^>]*> nop
-+0000b878 <[^>]*> nop
-+0000b87c <[^>]*> nop
-+0000b880 <[^>]*> nop
-+0000b884 <[^>]*> nop
-+0000b888 <[^>]*> nop
-+0000b88c <[^>]*> nop
-+0000b890 <[^>]*> nop
-+0000b894 <[^>]*> nop
-+0000b898 <[^>]*> nop
-+0000b89c <[^>]*> nop
-+0000b8a0 <[^>]*> nop
-+0000b8a4 <[^>]*> nop
-+0000b8a8 <[^>]*> nop
-+0000b8ac <[^>]*> nop
-+0000b8b0 <[^>]*> nop
-+0000b8b4 <[^>]*> nop
-+0000b8b8 <[^>]*> nop
-+0000b8bc <[^>]*> nop
-+0000b8c0 <[^>]*> nop
-+0000b8c4 <[^>]*> nop
-+0000b8c8 <[^>]*> nop
-+0000b8cc <[^>]*> nop
-+0000b8d0 <[^>]*> nop
-+0000b8d4 <[^>]*> nop
-+0000b8d8 <[^>]*> nop
-+0000b8dc <[^>]*> nop
-+0000b8e0 <[^>]*> nop
-+0000b8e4 <[^>]*> nop
-+0000b8e8 <[^>]*> nop
-+0000b8ec <[^>]*> nop
-+0000b8f0 <[^>]*> nop
-+0000b8f4 <[^>]*> nop
-+0000b8f8 <[^>]*> nop
-+0000b8fc <[^>]*> nop
-+0000b900 <[^>]*> nop
-+0000b904 <[^>]*> nop
-+0000b908 <[^>]*> nop
-+0000b90c <[^>]*> nop
-+0000b910 <[^>]*> nop
-+0000b914 <[^>]*> nop
-+0000b918 <[^>]*> nop
-+0000b91c <[^>]*> nop
-+0000b920 <[^>]*> nop
-+0000b924 <[^>]*> nop
-+0000b928 <[^>]*> nop
-+0000b92c <[^>]*> nop
-+0000b930 <[^>]*> nop
-+0000b934 <[^>]*> nop
-+0000b938 <[^>]*> nop
-+0000b93c <[^>]*> nop
-+0000b940 <[^>]*> nop
-+0000b944 <[^>]*> nop
-+0000b948 <[^>]*> nop
-+0000b94c <[^>]*> nop
-+0000b950 <[^>]*> nop
-+0000b954 <[^>]*> nop
-+0000b958 <[^>]*> nop
-+0000b95c <[^>]*> nop
-+0000b960 <[^>]*> nop
-+0000b964 <[^>]*> nop
-+0000b968 <[^>]*> nop
-+0000b96c <[^>]*> nop
-+0000b970 <[^>]*> nop
-+0000b974 <[^>]*> nop
-+0000b978 <[^>]*> nop
-+0000b97c <[^>]*> nop
-+0000b980 <[^>]*> nop
-+0000b984 <[^>]*> nop
-+0000b988 <[^>]*> nop
-+0000b98c <[^>]*> nop
-+0000b990 <[^>]*> nop
-+0000b994 <[^>]*> nop
-+0000b998 <[^>]*> nop
-+0000b99c <[^>]*> nop
-+0000b9a0 <[^>]*> nop
-+0000b9a4 <[^>]*> nop
-+0000b9a8 <[^>]*> nop
-+0000b9ac <[^>]*> nop
-+0000b9b0 <[^>]*> nop
-+0000b9b4 <[^>]*> nop
-+0000b9b8 <[^>]*> nop
-+0000b9bc <[^>]*> nop
-+0000b9c0 <[^>]*> nop
-+0000b9c4 <[^>]*> nop
-+0000b9c8 <[^>]*> nop
-+0000b9cc <[^>]*> nop
-+0000b9d0 <[^>]*> nop
-+0000b9d4 <[^>]*> nop
-+0000b9d8 <[^>]*> nop
-+0000b9dc <[^>]*> nop
-+0000b9e0 <[^>]*> nop
-+0000b9e4 <[^>]*> nop
-+0000b9e8 <[^>]*> nop
-+0000b9ec <[^>]*> nop
-+0000b9f0 <[^>]*> nop
-+0000b9f4 <[^>]*> nop
-+0000b9f8 <[^>]*> nop
-+0000b9fc <[^>]*> nop
-+0000ba00 <[^>]*> nop
-+0000ba04 <[^>]*> nop
-+0000ba08 <[^>]*> nop
-+0000ba0c <[^>]*> nop
-+0000ba10 <[^>]*> nop
-+0000ba14 <[^>]*> nop
-+0000ba18 <[^>]*> nop
-+0000ba1c <[^>]*> nop
-+0000ba20 <[^>]*> nop
-+0000ba24 <[^>]*> nop
-+0000ba28 <[^>]*> nop
-+0000ba2c <[^>]*> nop
-+0000ba30 <[^>]*> nop
-+0000ba34 <[^>]*> nop
-+0000ba38 <[^>]*> nop
-+0000ba3c <[^>]*> nop
-+0000ba40 <[^>]*> nop
-+0000ba44 <[^>]*> nop
-+0000ba48 <[^>]*> nop
-+0000ba4c <[^>]*> nop
-+0000ba50 <[^>]*> nop
-+0000ba54 <[^>]*> nop
-+0000ba58 <[^>]*> nop
-+0000ba5c <[^>]*> nop
-+0000ba60 <[^>]*> nop
-+0000ba64 <[^>]*> nop
-+0000ba68 <[^>]*> nop
-+0000ba6c <[^>]*> nop
-+0000ba70 <[^>]*> nop
-+0000ba74 <[^>]*> nop
-+0000ba78 <[^>]*> nop
-+0000ba7c <[^>]*> nop
-+0000ba80 <[^>]*> nop
-+0000ba84 <[^>]*> nop
-+0000ba88 <[^>]*> nop
-+0000ba8c <[^>]*> nop
-+0000ba90 <[^>]*> nop
-+0000ba94 <[^>]*> nop
-+0000ba98 <[^>]*> nop
-+0000ba9c <[^>]*> nop
-+0000baa0 <[^>]*> nop
-+0000baa4 <[^>]*> nop
-+0000baa8 <[^>]*> nop
-+0000baac <[^>]*> nop
-+0000bab0 <[^>]*> nop
-+0000bab4 <[^>]*> nop
-+0000bab8 <[^>]*> nop
-+0000babc <[^>]*> nop
-+0000bac0 <[^>]*> nop
-+0000bac4 <[^>]*> nop
-+0000bac8 <[^>]*> nop
-+0000bacc <[^>]*> nop
-+0000bad0 <[^>]*> nop
-+0000bad4 <[^>]*> nop
-+0000bad8 <[^>]*> nop
-+0000badc <[^>]*> nop
-+0000bae0 <[^>]*> nop
-+0000bae4 <[^>]*> nop
-+0000bae8 <[^>]*> nop
-+0000baec <[^>]*> nop
-+0000baf0 <[^>]*> nop
-+0000baf4 <[^>]*> nop
-+0000baf8 <[^>]*> nop
-+0000bafc <[^>]*> nop
-+0000bb00 <[^>]*> nop
-+0000bb04 <[^>]*> nop
-+0000bb08 <[^>]*> nop
-+0000bb0c <[^>]*> nop
-+0000bb10 <[^>]*> nop
-+0000bb14 <[^>]*> nop
-+0000bb18 <[^>]*> nop
-+0000bb1c <[^>]*> nop
-+0000bb20 <[^>]*> nop
-+0000bb24 <[^>]*> nop
-+0000bb28 <[^>]*> nop
-+0000bb2c <[^>]*> nop
-+0000bb30 <[^>]*> nop
-+0000bb34 <[^>]*> nop
-+0000bb38 <[^>]*> nop
-+0000bb3c <[^>]*> nop
-+0000bb40 <[^>]*> nop
-+0000bb44 <[^>]*> nop
-+0000bb48 <[^>]*> nop
-+0000bb4c <[^>]*> nop
-+0000bb50 <[^>]*> nop
-+0000bb54 <[^>]*> nop
-+0000bb58 <[^>]*> nop
-+0000bb5c <[^>]*> nop
-+0000bb60 <[^>]*> nop
-+0000bb64 <[^>]*> nop
-+0000bb68 <[^>]*> nop
-+0000bb6c <[^>]*> nop
-+0000bb70 <[^>]*> nop
-+0000bb74 <[^>]*> nop
-+0000bb78 <[^>]*> nop
-+0000bb7c <[^>]*> nop
-+0000bb80 <[^>]*> nop
-+0000bb84 <[^>]*> nop
-+0000bb88 <[^>]*> nop
-+0000bb8c <[^>]*> nop
-+0000bb90 <[^>]*> nop
-+0000bb94 <[^>]*> nop
-+0000bb98 <[^>]*> nop
-+0000bb9c <[^>]*> nop
-+0000bba0 <[^>]*> nop
-+0000bba4 <[^>]*> nop
-+0000bba8 <[^>]*> nop
-+0000bbac <[^>]*> nop
-+0000bbb0 <[^>]*> nop
-+0000bbb4 <[^>]*> nop
-+0000bbb8 <[^>]*> nop
-+0000bbbc <[^>]*> nop
-+0000bbc0 <[^>]*> nop
-+0000bbc4 <[^>]*> nop
-+0000bbc8 <[^>]*> nop
-+0000bbcc <[^>]*> nop
-+0000bbd0 <[^>]*> nop
-+0000bbd4 <[^>]*> nop
-+0000bbd8 <[^>]*> nop
-+0000bbdc <[^>]*> nop
-+0000bbe0 <[^>]*> nop
-+0000bbe4 <[^>]*> nop
-+0000bbe8 <[^>]*> nop
-+0000bbec <[^>]*> nop
-+0000bbf0 <[^>]*> nop
-+0000bbf4 <[^>]*> nop
-+0000bbf8 <[^>]*> nop
-+0000bbfc <[^>]*> nop
-+0000bc00 <[^>]*> nop
-+0000bc04 <[^>]*> nop
-+0000bc08 <[^>]*> nop
-+0000bc0c <[^>]*> nop
-+0000bc10 <[^>]*> nop
-+0000bc14 <[^>]*> nop
-+0000bc18 <[^>]*> nop
-+0000bc1c <[^>]*> nop
-+0000bc20 <[^>]*> nop
-+0000bc24 <[^>]*> nop
-+0000bc28 <[^>]*> nop
-+0000bc2c <[^>]*> nop
-+0000bc30 <[^>]*> nop
-+0000bc34 <[^>]*> nop
-+0000bc38 <[^>]*> nop
-+0000bc3c <[^>]*> nop
-+0000bc40 <[^>]*> nop
-+0000bc44 <[^>]*> nop
-+0000bc48 <[^>]*> nop
-+0000bc4c <[^>]*> nop
-+0000bc50 <[^>]*> nop
-+0000bc54 <[^>]*> nop
-+0000bc58 <[^>]*> nop
-+0000bc5c <[^>]*> nop
-+0000bc60 <[^>]*> nop
-+0000bc64 <[^>]*> nop
-+0000bc68 <[^>]*> nop
-+0000bc6c <[^>]*> nop
-+0000bc70 <[^>]*> nop
-+0000bc74 <[^>]*> nop
-+0000bc78 <[^>]*> nop
-+0000bc7c <[^>]*> nop
-+0000bc80 <[^>]*> nop
-+0000bc84 <[^>]*> nop
-+0000bc88 <[^>]*> nop
-+0000bc8c <[^>]*> nop
-+0000bc90 <[^>]*> nop
-+0000bc94 <[^>]*> nop
-+0000bc98 <[^>]*> nop
-+0000bc9c <[^>]*> nop
-+0000bca0 <[^>]*> nop
-+0000bca4 <[^>]*> nop
-+0000bca8 <[^>]*> nop
-+0000bcac <[^>]*> nop
-+0000bcb0 <[^>]*> nop
-+0000bcb4 <[^>]*> nop
-+0000bcb8 <[^>]*> nop
-+0000bcbc <[^>]*> nop
-+0000bcc0 <[^>]*> nop
-+0000bcc4 <[^>]*> nop
-+0000bcc8 <[^>]*> nop
-+0000bccc <[^>]*> nop
-+0000bcd0 <[^>]*> nop
-+0000bcd4 <[^>]*> nop
-+0000bcd8 <[^>]*> nop
-+0000bcdc <[^>]*> nop
-+0000bce0 <[^>]*> nop
-+0000bce4 <[^>]*> nop
-+0000bce8 <[^>]*> nop
-+0000bcec <[^>]*> nop
-+0000bcf0 <[^>]*> nop
-+0000bcf4 <[^>]*> nop
-+0000bcf8 <[^>]*> nop
-+0000bcfc <[^>]*> nop
-+0000bd00 <[^>]*> nop
-+0000bd04 <[^>]*> nop
-+0000bd08 <[^>]*> nop
-+0000bd0c <[^>]*> nop
-+0000bd10 <[^>]*> nop
-+0000bd14 <[^>]*> nop
-+0000bd18 <[^>]*> nop
-+0000bd1c <[^>]*> nop
-+0000bd20 <[^>]*> nop
-+0000bd24 <[^>]*> nop
-+0000bd28 <[^>]*> nop
-+0000bd2c <[^>]*> nop
-+0000bd30 <[^>]*> nop
-+0000bd34 <[^>]*> nop
-+0000bd38 <[^>]*> nop
-+0000bd3c <[^>]*> nop
-+0000bd40 <[^>]*> nop
-+0000bd44 <[^>]*> nop
-+0000bd48 <[^>]*> nop
-+0000bd4c <[^>]*> nop
-+0000bd50 <[^>]*> nop
-+0000bd54 <[^>]*> nop
-+0000bd58 <[^>]*> nop
-+0000bd5c <[^>]*> nop
-+0000bd60 <[^>]*> nop
-+0000bd64 <[^>]*> nop
-+0000bd68 <[^>]*> nop
-+0000bd6c <[^>]*> nop
-+0000bd70 <[^>]*> nop
-+0000bd74 <[^>]*> nop
-+0000bd78 <[^>]*> nop
-+0000bd7c <[^>]*> nop
-+0000bd80 <[^>]*> nop
-+0000bd84 <[^>]*> nop
-+0000bd88 <[^>]*> nop
-+0000bd8c <[^>]*> nop
-+0000bd90 <[^>]*> nop
-+0000bd94 <[^>]*> nop
-+0000bd98 <[^>]*> nop
-+0000bd9c <[^>]*> nop
-+0000bda0 <[^>]*> nop
-+0000bda4 <[^>]*> nop
-+0000bda8 <[^>]*> nop
-+0000bdac <[^>]*> nop
-+0000bdb0 <[^>]*> nop
-+0000bdb4 <[^>]*> nop
-+0000bdb8 <[^>]*> nop
-+0000bdbc <[^>]*> nop
-+0000bdc0 <[^>]*> nop
-+0000bdc4 <[^>]*> nop
-+0000bdc8 <[^>]*> nop
-+0000bdcc <[^>]*> nop
-+0000bdd0 <[^>]*> nop
-+0000bdd4 <[^>]*> nop
-+0000bdd8 <[^>]*> nop
-+0000bddc <[^>]*> nop
-+0000bde0 <[^>]*> nop
-+0000bde4 <[^>]*> nop
-+0000bde8 <[^>]*> nop
-+0000bdec <[^>]*> nop
-+0000bdf0 <[^>]*> nop
-+0000bdf4 <[^>]*> nop
-+0000bdf8 <[^>]*> nop
-+0000bdfc <[^>]*> nop
-+0000be00 <[^>]*> nop
-+0000be04 <[^>]*> nop
-+0000be08 <[^>]*> nop
-+0000be0c <[^>]*> nop
-+0000be10 <[^>]*> nop
-+0000be14 <[^>]*> nop
-+0000be18 <[^>]*> nop
-+0000be1c <[^>]*> nop
-+0000be20 <[^>]*> nop
-+0000be24 <[^>]*> nop
-+0000be28 <[^>]*> nop
-+0000be2c <[^>]*> nop
-+0000be30 <[^>]*> nop
-+0000be34 <[^>]*> nop
-+0000be38 <[^>]*> nop
-+0000be3c <[^>]*> nop
-+0000be40 <[^>]*> nop
-+0000be44 <[^>]*> nop
-+0000be48 <[^>]*> nop
-+0000be4c <[^>]*> nop
-+0000be50 <[^>]*> nop
-+0000be54 <[^>]*> nop
-+0000be58 <[^>]*> nop
-+0000be5c <[^>]*> nop
-+0000be60 <[^>]*> nop
-+0000be64 <[^>]*> nop
-+0000be68 <[^>]*> nop
-+0000be6c <[^>]*> nop
-+0000be70 <[^>]*> nop
-+0000be74 <[^>]*> nop
-+0000be78 <[^>]*> nop
-+0000be7c <[^>]*> nop
-+0000be80 <[^>]*> nop
-+0000be84 <[^>]*> nop
-+0000be88 <[^>]*> nop
-+0000be8c <[^>]*> nop
-+0000be90 <[^>]*> nop
-+0000be94 <[^>]*> nop
-+0000be98 <[^>]*> nop
-+0000be9c <[^>]*> nop
-+0000bea0 <[^>]*> nop
-+0000bea4 <[^>]*> nop
-+0000bea8 <[^>]*> nop
-+0000beac <[^>]*> nop
-+0000beb0 <[^>]*> nop
-+0000beb4 <[^>]*> nop
-+0000beb8 <[^>]*> nop
-+0000bebc <[^>]*> nop
-+0000bec0 <[^>]*> nop
-+0000bec4 <[^>]*> nop
-+0000bec8 <[^>]*> nop
-+0000becc <[^>]*> nop
-+0000bed0 <[^>]*> nop
-+0000bed4 <[^>]*> nop
-+0000bed8 <[^>]*> nop
-+0000bedc <[^>]*> nop
-+0000bee0 <[^>]*> nop
-+0000bee4 <[^>]*> nop
-+0000bee8 <[^>]*> nop
-+0000beec <[^>]*> nop
-+0000bef0 <[^>]*> nop
-+0000bef4 <[^>]*> nop
-+0000bef8 <[^>]*> nop
-+0000befc <[^>]*> nop
-+0000bf00 <[^>]*> nop
-+0000bf04 <[^>]*> nop
-+0000bf08 <[^>]*> nop
-+0000bf0c <[^>]*> nop
-+0000bf10 <[^>]*> nop
-+0000bf14 <[^>]*> nop
-+0000bf18 <[^>]*> nop
-+0000bf1c <[^>]*> nop
-+0000bf20 <[^>]*> nop
-+0000bf24 <[^>]*> nop
-+0000bf28 <[^>]*> nop
-+0000bf2c <[^>]*> nop
-+0000bf30 <[^>]*> nop
-+0000bf34 <[^>]*> nop
-+0000bf38 <[^>]*> nop
-+0000bf3c <[^>]*> nop
-+0000bf40 <[^>]*> nop
-+0000bf44 <[^>]*> nop
-+0000bf48 <[^>]*> nop
-+0000bf4c <[^>]*> nop
-+0000bf50 <[^>]*> nop
-+0000bf54 <[^>]*> nop
-+0000bf58 <[^>]*> nop
-+0000bf5c <[^>]*> nop
-+0000bf60 <[^>]*> nop
-+0000bf64 <[^>]*> nop
-+0000bf68 <[^>]*> nop
-+0000bf6c <[^>]*> nop
-+0000bf70 <[^>]*> nop
-+0000bf74 <[^>]*> nop
-+0000bf78 <[^>]*> nop
-+0000bf7c <[^>]*> nop
-+0000bf80 <[^>]*> nop
-+0000bf84 <[^>]*> nop
-+0000bf88 <[^>]*> nop
-+0000bf8c <[^>]*> nop
-+0000bf90 <[^>]*> nop
-+0000bf94 <[^>]*> nop
-+0000bf98 <[^>]*> nop
-+0000bf9c <[^>]*> nop
-+0000bfa0 <[^>]*> nop
-+0000bfa4 <[^>]*> nop
-+0000bfa8 <[^>]*> nop
-+0000bfac <[^>]*> nop
-+0000bfb0 <[^>]*> nop
-+0000bfb4 <[^>]*> nop
-+0000bfb8 <[^>]*> nop
-+0000bfbc <[^>]*> nop
-+0000bfc0 <[^>]*> nop
-+0000bfc4 <[^>]*> nop
-+0000bfc8 <[^>]*> nop
-+0000bfcc <[^>]*> nop
-+0000bfd0 <[^>]*> nop
-+0000bfd4 <[^>]*> nop
-+0000bfd8 <[^>]*> nop
-+0000bfdc <[^>]*> nop
-+0000bfe0 <[^>]*> nop
-+0000bfe4 <[^>]*> nop
-+0000bfe8 <[^>]*> nop
-+0000bfec <[^>]*> nop
-+0000bff0 <[^>]*> nop
-+0000bff4 <[^>]*> nop
-+0000bff8 <[^>]*> nop
-+0000bffc <[^>]*> nop
-+0000c000 <[^>]*> nop
-+0000c004 <[^>]*> nop
-+0000c008 <[^>]*> nop
-+0000c00c <[^>]*> nop
-+0000c010 <[^>]*> nop
-+0000c014 <[^>]*> nop
-+0000c018 <[^>]*> nop
-+0000c01c <[^>]*> nop
-+0000c020 <[^>]*> nop
-+0000c024 <[^>]*> nop
-+0000c028 <[^>]*> nop
-+0000c02c <[^>]*> nop
-+0000c030 <[^>]*> nop
-+0000c034 <[^>]*> nop
-+0000c038 <[^>]*> nop
-+0000c03c <[^>]*> nop
-+0000c040 <[^>]*> nop
-+0000c044 <[^>]*> nop
-+0000c048 <[^>]*> nop
-+0000c04c <[^>]*> nop
-+0000c050 <[^>]*> nop
-+0000c054 <[^>]*> nop
-+0000c058 <[^>]*> nop
-+0000c05c <[^>]*> nop
-+0000c060 <[^>]*> nop
-+0000c064 <[^>]*> nop
-+0000c068 <[^>]*> nop
-+0000c06c <[^>]*> nop
-+0000c070 <[^>]*> nop
-+0000c074 <[^>]*> nop
-+0000c078 <[^>]*> nop
-+0000c07c <[^>]*> nop
-+0000c080 <[^>]*> nop
-+0000c084 <[^>]*> nop
-+0000c088 <[^>]*> nop
-+0000c08c <[^>]*> nop
-+0000c090 <[^>]*> nop
-+0000c094 <[^>]*> nop
-+0000c098 <[^>]*> nop
-+0000c09c <[^>]*> nop
-+0000c0a0 <[^>]*> nop
-+0000c0a4 <[^>]*> nop
-+0000c0a8 <[^>]*> nop
-+0000c0ac <[^>]*> nop
-+0000c0b0 <[^>]*> nop
-+0000c0b4 <[^>]*> nop
-+0000c0b8 <[^>]*> nop
-+0000c0bc <[^>]*> nop
-+0000c0c0 <[^>]*> nop
-+0000c0c4 <[^>]*> nop
-+0000c0c8 <[^>]*> nop
-+0000c0cc <[^>]*> nop
-+0000c0d0 <[^>]*> nop
-+0000c0d4 <[^>]*> nop
-+0000c0d8 <[^>]*> nop
-+0000c0dc <[^>]*> nop
-+0000c0e0 <[^>]*> nop
-+0000c0e4 <[^>]*> nop
-+0000c0e8 <[^>]*> nop
-+0000c0ec <[^>]*> nop
-+0000c0f0 <[^>]*> nop
-+0000c0f4 <[^>]*> nop
-+0000c0f8 <[^>]*> nop
-+0000c0fc <[^>]*> nop
-+0000c100 <[^>]*> nop
-+0000c104 <[^>]*> nop
-+0000c108 <[^>]*> nop
-+0000c10c <[^>]*> nop
-+0000c110 <[^>]*> nop
-+0000c114 <[^>]*> nop
-+0000c118 <[^>]*> nop
-+0000c11c <[^>]*> nop
-+0000c120 <[^>]*> nop
-+0000c124 <[^>]*> nop
-+0000c128 <[^>]*> nop
-+0000c12c <[^>]*> nop
-+0000c130 <[^>]*> nop
-+0000c134 <[^>]*> nop
-+0000c138 <[^>]*> nop
-+0000c13c <[^>]*> nop
-+0000c140 <[^>]*> nop
-+0000c144 <[^>]*> nop
-+0000c148 <[^>]*> nop
-+0000c14c <[^>]*> nop
-+0000c150 <[^>]*> nop
-+0000c154 <[^>]*> nop
-+0000c158 <[^>]*> nop
-+0000c15c <[^>]*> nop
-+0000c160 <[^>]*> nop
-+0000c164 <[^>]*> nop
-+0000c168 <[^>]*> nop
-+0000c16c <[^>]*> nop
-+0000c170 <[^>]*> nop
-+0000c174 <[^>]*> nop
-+0000c178 <[^>]*> nop
-+0000c17c <[^>]*> nop
-+0000c180 <[^>]*> nop
-+0000c184 <[^>]*> nop
-+0000c188 <[^>]*> nop
-+0000c18c <[^>]*> nop
-+0000c190 <[^>]*> nop
-+0000c194 <[^>]*> nop
-+0000c198 <[^>]*> nop
-+0000c19c <[^>]*> nop
-+0000c1a0 <[^>]*> nop
-+0000c1a4 <[^>]*> nop
-+0000c1a8 <[^>]*> nop
-+0000c1ac <[^>]*> nop
-+0000c1b0 <[^>]*> nop
-+0000c1b4 <[^>]*> nop
-+0000c1b8 <[^>]*> nop
-+0000c1bc <[^>]*> nop
-+0000c1c0 <[^>]*> nop
-+0000c1c4 <[^>]*> nop
-+0000c1c8 <[^>]*> nop
-+0000c1cc <[^>]*> nop
-+0000c1d0 <[^>]*> nop
-+0000c1d4 <[^>]*> nop
-+0000c1d8 <[^>]*> nop
-+0000c1dc <[^>]*> nop
-+0000c1e0 <[^>]*> nop
-+0000c1e4 <[^>]*> nop
-+0000c1e8 <[^>]*> nop
-+0000c1ec <[^>]*> nop
-+0000c1f0 <[^>]*> nop
-+0000c1f4 <[^>]*> nop
-+0000c1f8 <[^>]*> nop
-+0000c1fc <[^>]*> nop
-+0000c200 <[^>]*> nop
-+0000c204 <[^>]*> nop
-+0000c208 <[^>]*> nop
-+0000c20c <[^>]*> nop
-+0000c210 <[^>]*> nop
-+0000c214 <[^>]*> nop
-+0000c218 <[^>]*> nop
-+0000c21c <[^>]*> nop
-+0000c220 <[^>]*> nop
-+0000c224 <[^>]*> nop
-+0000c228 <[^>]*> nop
-+0000c22c <[^>]*> nop
-+0000c230 <[^>]*> nop
-+0000c234 <[^>]*> nop
-+0000c238 <[^>]*> nop
-+0000c23c <[^>]*> nop
-+0000c240 <[^>]*> nop
-+0000c244 <[^>]*> nop
-+0000c248 <[^>]*> nop
-+0000c24c <[^>]*> nop
-+0000c250 <[^>]*> nop
-+0000c254 <[^>]*> nop
-+0000c258 <[^>]*> nop
-+0000c25c <[^>]*> nop
-+0000c260 <[^>]*> nop
-+0000c264 <[^>]*> nop
-+0000c268 <[^>]*> nop
-+0000c26c <[^>]*> nop
-+0000c270 <[^>]*> nop
-+0000c274 <[^>]*> nop
-+0000c278 <[^>]*> nop
-+0000c27c <[^>]*> nop
-+0000c280 <[^>]*> nop
-+0000c284 <[^>]*> nop
-+0000c288 <[^>]*> nop
-+0000c28c <[^>]*> nop
-+0000c290 <[^>]*> nop
-+0000c294 <[^>]*> nop
-+0000c298 <[^>]*> nop
-+0000c29c <[^>]*> nop
-+0000c2a0 <[^>]*> nop
-+0000c2a4 <[^>]*> nop
-+0000c2a8 <[^>]*> nop
-+0000c2ac <[^>]*> nop
-+0000c2b0 <[^>]*> nop
-+0000c2b4 <[^>]*> nop
-+0000c2b8 <[^>]*> nop
-+0000c2bc <[^>]*> nop
-+0000c2c0 <[^>]*> nop
-+0000c2c4 <[^>]*> nop
-+0000c2c8 <[^>]*> nop
-+0000c2cc <[^>]*> nop
-+0000c2d0 <[^>]*> nop
-+0000c2d4 <[^>]*> nop
-+0000c2d8 <[^>]*> nop
-+0000c2dc <[^>]*> nop
-+0000c2e0 <[^>]*> nop
-+0000c2e4 <[^>]*> nop
-+0000c2e8 <[^>]*> nop
-+0000c2ec <[^>]*> nop
-+0000c2f0 <[^>]*> nop
-+0000c2f4 <[^>]*> nop
-+0000c2f8 <[^>]*> nop
-+0000c2fc <[^>]*> nop
-+0000c300 <[^>]*> nop
-+0000c304 <[^>]*> nop
-+0000c308 <[^>]*> nop
-+0000c30c <[^>]*> nop
-+0000c310 <[^>]*> nop
-+0000c314 <[^>]*> nop
-+0000c318 <[^>]*> nop
-+0000c31c <[^>]*> nop
-+0000c320 <[^>]*> nop
-+0000c324 <[^>]*> nop
-+0000c328 <[^>]*> nop
-+0000c32c <[^>]*> nop
-+0000c330 <[^>]*> nop
-+0000c334 <[^>]*> nop
-+0000c338 <[^>]*> nop
-+0000c33c <[^>]*> nop
-+0000c340 <[^>]*> nop
-+0000c344 <[^>]*> nop
-+0000c348 <[^>]*> nop
-+0000c34c <[^>]*> nop
-+0000c350 <[^>]*> nop
-+0000c354 <[^>]*> nop
-+0000c358 <[^>]*> nop
-+0000c35c <[^>]*> nop
-+0000c360 <[^>]*> nop
-+0000c364 <[^>]*> nop
-+0000c368 <[^>]*> nop
-+0000c36c <[^>]*> nop
-+0000c370 <[^>]*> nop
-+0000c374 <[^>]*> nop
-+0000c378 <[^>]*> nop
-+0000c37c <[^>]*> nop
-+0000c380 <[^>]*> nop
-+0000c384 <[^>]*> nop
-+0000c388 <[^>]*> nop
-+0000c38c <[^>]*> nop
-+0000c390 <[^>]*> nop
-+0000c394 <[^>]*> nop
-+0000c398 <[^>]*> nop
-+0000c39c <[^>]*> nop
-+0000c3a0 <[^>]*> nop
-+0000c3a4 <[^>]*> nop
-+0000c3a8 <[^>]*> nop
-+0000c3ac <[^>]*> nop
-+0000c3b0 <[^>]*> nop
-+0000c3b4 <[^>]*> nop
-+0000c3b8 <[^>]*> nop
-+0000c3bc <[^>]*> nop
-+0000c3c0 <[^>]*> nop
-+0000c3c4 <[^>]*> nop
-+0000c3c8 <[^>]*> nop
-+0000c3cc <[^>]*> nop
-+0000c3d0 <[^>]*> nop
-+0000c3d4 <[^>]*> nop
-+0000c3d8 <[^>]*> nop
-+0000c3dc <[^>]*> nop
-+0000c3e0 <[^>]*> nop
-+0000c3e4 <[^>]*> nop
-+0000c3e8 <[^>]*> nop
-+0000c3ec <[^>]*> nop
-+0000c3f0 <[^>]*> nop
-+0000c3f4 <[^>]*> nop
-+0000c3f8 <[^>]*> nop
-+0000c3fc <[^>]*> nop
-+0000c400 <[^>]*> nop
-+0000c404 <[^>]*> nop
-+0000c408 <[^>]*> nop
-+0000c40c <[^>]*> nop
-+0000c410 <[^>]*> nop
-+0000c414 <[^>]*> nop
-+0000c418 <[^>]*> nop
-+0000c41c <[^>]*> nop
-+0000c420 <[^>]*> nop
-+0000c424 <[^>]*> nop
-+0000c428 <[^>]*> nop
-+0000c42c <[^>]*> nop
-+0000c430 <[^>]*> nop
-+0000c434 <[^>]*> nop
-+0000c438 <[^>]*> nop
-+0000c43c <[^>]*> nop
-+0000c440 <[^>]*> nop
-+0000c444 <[^>]*> nop
-+0000c448 <[^>]*> nop
-+0000c44c <[^>]*> nop
-+0000c450 <[^>]*> nop
-+0000c454 <[^>]*> nop
-+0000c458 <[^>]*> nop
-+0000c45c <[^>]*> nop
-+0000c460 <[^>]*> nop
-+0000c464 <[^>]*> nop
-+0000c468 <[^>]*> nop
-+0000c46c <[^>]*> nop
-+0000c470 <[^>]*> nop
-+0000c474 <[^>]*> nop
-+0000c478 <[^>]*> nop
-+0000c47c <[^>]*> nop
-+0000c480 <[^>]*> nop
-+0000c484 <[^>]*> nop
-+0000c488 <[^>]*> nop
-+0000c48c <[^>]*> nop
-+0000c490 <[^>]*> nop
-+0000c494 <[^>]*> nop
-+0000c498 <[^>]*> nop
-+0000c49c <[^>]*> nop
-+0000c4a0 <[^>]*> nop
-+0000c4a4 <[^>]*> nop
-+0000c4a8 <[^>]*> nop
-+0000c4ac <[^>]*> nop
-+0000c4b0 <[^>]*> nop
-+0000c4b4 <[^>]*> nop
-+0000c4b8 <[^>]*> nop
-+0000c4bc <[^>]*> nop
-+0000c4c0 <[^>]*> nop
-+0000c4c4 <[^>]*> nop
-+0000c4c8 <[^>]*> nop
-+0000c4cc <[^>]*> nop
-+0000c4d0 <[^>]*> nop
-+0000c4d4 <[^>]*> nop
-+0000c4d8 <[^>]*> nop
-+0000c4dc <[^>]*> nop
-+0000c4e0 <[^>]*> nop
-+0000c4e4 <[^>]*> nop
-+0000c4e8 <[^>]*> nop
-+0000c4ec <[^>]*> nop
-+0000c4f0 <[^>]*> nop
-+0000c4f4 <[^>]*> nop
-+0000c4f8 <[^>]*> nop
-+0000c4fc <[^>]*> nop
-+0000c500 <[^>]*> nop
-+0000c504 <[^>]*> nop
-+0000c508 <[^>]*> nop
-+0000c50c <[^>]*> nop
-+0000c510 <[^>]*> nop
-+0000c514 <[^>]*> nop
-+0000c518 <[^>]*> nop
-+0000c51c <[^>]*> nop
-+0000c520 <[^>]*> nop
-+0000c524 <[^>]*> nop
-+0000c528 <[^>]*> nop
-+0000c52c <[^>]*> nop
-+0000c530 <[^>]*> nop
-+0000c534 <[^>]*> nop
-+0000c538 <[^>]*> nop
-+0000c53c <[^>]*> nop
-+0000c540 <[^>]*> nop
-+0000c544 <[^>]*> nop
-+0000c548 <[^>]*> nop
-+0000c54c <[^>]*> nop
-+0000c550 <[^>]*> nop
-+0000c554 <[^>]*> nop
-+0000c558 <[^>]*> nop
-+0000c55c <[^>]*> nop
-+0000c560 <[^>]*> nop
-+0000c564 <[^>]*> nop
-+0000c568 <[^>]*> nop
-+0000c56c <[^>]*> nop
-+0000c570 <[^>]*> nop
-+0000c574 <[^>]*> nop
-+0000c578 <[^>]*> nop
-+0000c57c <[^>]*> nop
-+0000c580 <[^>]*> nop
-+0000c584 <[^>]*> nop
-+0000c588 <[^>]*> nop
-+0000c58c <[^>]*> nop
-+0000c590 <[^>]*> nop
-+0000c594 <[^>]*> nop
-+0000c598 <[^>]*> nop
-+0000c59c <[^>]*> nop
-+0000c5a0 <[^>]*> nop
-+0000c5a4 <[^>]*> nop
-+0000c5a8 <[^>]*> nop
-+0000c5ac <[^>]*> nop
-+0000c5b0 <[^>]*> nop
-+0000c5b4 <[^>]*> nop
-+0000c5b8 <[^>]*> nop
-+0000c5bc <[^>]*> nop
-+0000c5c0 <[^>]*> nop
-+0000c5c4 <[^>]*> nop
-+0000c5c8 <[^>]*> nop
-+0000c5cc <[^>]*> nop
-+0000c5d0 <[^>]*> nop
-+0000c5d4 <[^>]*> nop
-+0000c5d8 <[^>]*> nop
-+0000c5dc <[^>]*> nop
-+0000c5e0 <[^>]*> nop
-+0000c5e4 <[^>]*> nop
-+0000c5e8 <[^>]*> nop
-+0000c5ec <[^>]*> nop
-+0000c5f0 <[^>]*> nop
-+0000c5f4 <[^>]*> nop
-+0000c5f8 <[^>]*> nop
-+0000c5fc <[^>]*> nop
-+0000c600 <[^>]*> nop
-+0000c604 <[^>]*> nop
-+0000c608 <[^>]*> nop
-+0000c60c <[^>]*> nop
-+0000c610 <[^>]*> nop
-+0000c614 <[^>]*> nop
-+0000c618 <[^>]*> nop
-+0000c61c <[^>]*> nop
-+0000c620 <[^>]*> nop
-+0000c624 <[^>]*> nop
-+0000c628 <[^>]*> nop
-+0000c62c <[^>]*> nop
-+0000c630 <[^>]*> nop
-+0000c634 <[^>]*> nop
-+0000c638 <[^>]*> nop
-+0000c63c <[^>]*> nop
-+0000c640 <[^>]*> nop
-+0000c644 <[^>]*> nop
-+0000c648 <[^>]*> nop
-+0000c64c <[^>]*> nop
-+0000c650 <[^>]*> nop
-+0000c654 <[^>]*> nop
-+0000c658 <[^>]*> nop
-+0000c65c <[^>]*> nop
-+0000c660 <[^>]*> nop
-+0000c664 <[^>]*> nop
-+0000c668 <[^>]*> nop
-+0000c66c <[^>]*> nop
-+0000c670 <[^>]*> nop
-+0000c674 <[^>]*> nop
-+0000c678 <[^>]*> nop
-+0000c67c <[^>]*> nop
-+0000c680 <[^>]*> nop
-+0000c684 <[^>]*> nop
-+0000c688 <[^>]*> nop
-+0000c68c <[^>]*> nop
-+0000c690 <[^>]*> nop
-+0000c694 <[^>]*> nop
-+0000c698 <[^>]*> nop
-+0000c69c <[^>]*> nop
-+0000c6a0 <[^>]*> nop
-+0000c6a4 <[^>]*> nop
-+0000c6a8 <[^>]*> nop
-+0000c6ac <[^>]*> nop
-+0000c6b0 <[^>]*> nop
-+0000c6b4 <[^>]*> nop
-+0000c6b8 <[^>]*> nop
-+0000c6bc <[^>]*> nop
-+0000c6c0 <[^>]*> nop
-+0000c6c4 <[^>]*> nop
-+0000c6c8 <[^>]*> nop
-+0000c6cc <[^>]*> nop
-+0000c6d0 <[^>]*> nop
-+0000c6d4 <[^>]*> nop
-+0000c6d8 <[^>]*> nop
-+0000c6dc <[^>]*> nop
-+0000c6e0 <[^>]*> nop
-+0000c6e4 <[^>]*> nop
-+0000c6e8 <[^>]*> nop
-+0000c6ec <[^>]*> nop
-+0000c6f0 <[^>]*> nop
-+0000c6f4 <[^>]*> nop
-+0000c6f8 <[^>]*> nop
-+0000c6fc <[^>]*> nop
-+0000c700 <[^>]*> nop
-+0000c704 <[^>]*> nop
-+0000c708 <[^>]*> nop
-+0000c70c <[^>]*> nop
-+0000c710 <[^>]*> nop
-+0000c714 <[^>]*> nop
-+0000c718 <[^>]*> nop
-+0000c71c <[^>]*> nop
-+0000c720 <[^>]*> nop
-+0000c724 <[^>]*> nop
-+0000c728 <[^>]*> nop
-+0000c72c <[^>]*> nop
-+0000c730 <[^>]*> nop
-+0000c734 <[^>]*> nop
-+0000c738 <[^>]*> nop
-+0000c73c <[^>]*> nop
-+0000c740 <[^>]*> nop
-+0000c744 <[^>]*> nop
-+0000c748 <[^>]*> nop
-+0000c74c <[^>]*> nop
-+0000c750 <[^>]*> nop
-+0000c754 <[^>]*> nop
-+0000c758 <[^>]*> nop
-+0000c75c <[^>]*> nop
-+0000c760 <[^>]*> nop
-+0000c764 <[^>]*> nop
-+0000c768 <[^>]*> nop
-+0000c76c <[^>]*> nop
-+0000c770 <[^>]*> nop
-+0000c774 <[^>]*> nop
-+0000c778 <[^>]*> nop
-+0000c77c <[^>]*> nop
-+0000c780 <[^>]*> nop
-+0000c784 <[^>]*> nop
-+0000c788 <[^>]*> nop
-+0000c78c <[^>]*> nop
-+0000c790 <[^>]*> nop
-+0000c794 <[^>]*> nop
-+0000c798 <[^>]*> nop
-+0000c79c <[^>]*> nop
-+0000c7a0 <[^>]*> nop
-+0000c7a4 <[^>]*> nop
-+0000c7a8 <[^>]*> nop
-+0000c7ac <[^>]*> nop
-+0000c7b0 <[^>]*> nop
-+0000c7b4 <[^>]*> nop
-+0000c7b8 <[^>]*> nop
-+0000c7bc <[^>]*> nop
-+0000c7c0 <[^>]*> nop
-+0000c7c4 <[^>]*> nop
-+0000c7c8 <[^>]*> nop
-+0000c7cc <[^>]*> nop
-+0000c7d0 <[^>]*> nop
-+0000c7d4 <[^>]*> nop
-+0000c7d8 <[^>]*> nop
-+0000c7dc <[^>]*> nop
-+0000c7e0 <[^>]*> nop
-+0000c7e4 <[^>]*> nop
-+0000c7e8 <[^>]*> nop
-+0000c7ec <[^>]*> nop
-+0000c7f0 <[^>]*> nop
-+0000c7f4 <[^>]*> nop
-+0000c7f8 <[^>]*> nop
-+0000c7fc <[^>]*> nop
-+0000c800 <[^>]*> nop
-+0000c804 <[^>]*> nop
-+0000c808 <[^>]*> nop
-+0000c80c <[^>]*> nop
-+0000c810 <[^>]*> nop
-+0000c814 <[^>]*> nop
-+0000c818 <[^>]*> nop
-+0000c81c <[^>]*> nop
-+0000c820 <[^>]*> nop
-+0000c824 <[^>]*> nop
-+0000c828 <[^>]*> nop
-+0000c82c <[^>]*> nop
-+0000c830 <[^>]*> nop
-+0000c834 <[^>]*> nop
-+0000c838 <[^>]*> nop
-+0000c83c <[^>]*> nop
-+0000c840 <[^>]*> nop
-+0000c844 <[^>]*> nop
-+0000c848 <[^>]*> nop
-+0000c84c <[^>]*> nop
-+0000c850 <[^>]*> nop
-+0000c854 <[^>]*> nop
-+0000c858 <[^>]*> nop
-+0000c85c <[^>]*> nop
-+0000c860 <[^>]*> nop
-+0000c864 <[^>]*> nop
-+0000c868 <[^>]*> nop
-+0000c86c <[^>]*> nop
-+0000c870 <[^>]*> nop
-+0000c874 <[^>]*> nop
-+0000c878 <[^>]*> nop
-+0000c87c <[^>]*> nop
-+0000c880 <[^>]*> nop
-+0000c884 <[^>]*> nop
-+0000c888 <[^>]*> nop
-+0000c88c <[^>]*> nop
-+0000c890 <[^>]*> nop
-+0000c894 <[^>]*> nop
-+0000c898 <[^>]*> nop
-+0000c89c <[^>]*> nop
-+0000c8a0 <[^>]*> nop
-+0000c8a4 <[^>]*> nop
-+0000c8a8 <[^>]*> nop
-+0000c8ac <[^>]*> nop
-+0000c8b0 <[^>]*> nop
-+0000c8b4 <[^>]*> nop
-+0000c8b8 <[^>]*> nop
-+0000c8bc <[^>]*> nop
-+0000c8c0 <[^>]*> nop
-+0000c8c4 <[^>]*> nop
-+0000c8c8 <[^>]*> nop
-+0000c8cc <[^>]*> nop
-+0000c8d0 <[^>]*> nop
-+0000c8d4 <[^>]*> nop
-+0000c8d8 <[^>]*> nop
-+0000c8dc <[^>]*> nop
-+0000c8e0 <[^>]*> nop
-+0000c8e4 <[^>]*> nop
-+0000c8e8 <[^>]*> nop
-+0000c8ec <[^>]*> nop
-+0000c8f0 <[^>]*> nop
-+0000c8f4 <[^>]*> nop
-+0000c8f8 <[^>]*> nop
-+0000c8fc <[^>]*> nop
-+0000c900 <[^>]*> nop
-+0000c904 <[^>]*> nop
-+0000c908 <[^>]*> nop
-+0000c90c <[^>]*> nop
-+0000c910 <[^>]*> nop
-+0000c914 <[^>]*> nop
-+0000c918 <[^>]*> nop
-+0000c91c <[^>]*> nop
-+0000c920 <[^>]*> nop
-+0000c924 <[^>]*> nop
-+0000c928 <[^>]*> nop
-+0000c92c <[^>]*> nop
-+0000c930 <[^>]*> nop
-+0000c934 <[^>]*> nop
-+0000c938 <[^>]*> nop
-+0000c93c <[^>]*> nop
-+0000c940 <[^>]*> nop
-+0000c944 <[^>]*> nop
-+0000c948 <[^>]*> nop
-+0000c94c <[^>]*> nop
-+0000c950 <[^>]*> nop
-+0000c954 <[^>]*> nop
-+0000c958 <[^>]*> nop
-+0000c95c <[^>]*> nop
-+0000c960 <[^>]*> nop
-+0000c964 <[^>]*> nop
-+0000c968 <[^>]*> nop
-+0000c96c <[^>]*> nop
-+0000c970 <[^>]*> nop
-+0000c974 <[^>]*> nop
-+0000c978 <[^>]*> nop
-+0000c97c <[^>]*> nop
-+0000c980 <[^>]*> nop
-+0000c984 <[^>]*> nop
-+0000c988 <[^>]*> nop
-+0000c98c <[^>]*> nop
-+0000c990 <[^>]*> nop
-+0000c994 <[^>]*> nop
-+0000c998 <[^>]*> nop
-+0000c99c <[^>]*> nop
-+0000c9a0 <[^>]*> nop
-+0000c9a4 <[^>]*> nop
-+0000c9a8 <[^>]*> nop
-+0000c9ac <[^>]*> nop
-+0000c9b0 <[^>]*> nop
-+0000c9b4 <[^>]*> nop
-+0000c9b8 <[^>]*> nop
-+0000c9bc <[^>]*> nop
-+0000c9c0 <[^>]*> nop
-+0000c9c4 <[^>]*> nop
-+0000c9c8 <[^>]*> nop
-+0000c9cc <[^>]*> nop
-+0000c9d0 <[^>]*> nop
-+0000c9d4 <[^>]*> nop
-+0000c9d8 <[^>]*> nop
-+0000c9dc <[^>]*> nop
-+0000c9e0 <[^>]*> nop
-+0000c9e4 <[^>]*> nop
-+0000c9e8 <[^>]*> nop
-+0000c9ec <[^>]*> nop
-+0000c9f0 <[^>]*> nop
-+0000c9f4 <[^>]*> nop
-+0000c9f8 <[^>]*> nop
-+0000c9fc <[^>]*> nop
-+0000ca00 <[^>]*> nop
-+0000ca04 <[^>]*> nop
-+0000ca08 <[^>]*> nop
-+0000ca0c <[^>]*> nop
-+0000ca10 <[^>]*> nop
-+0000ca14 <[^>]*> nop
-+0000ca18 <[^>]*> nop
-+0000ca1c <[^>]*> nop
-+0000ca20 <[^>]*> nop
-+0000ca24 <[^>]*> nop
-+0000ca28 <[^>]*> nop
-+0000ca2c <[^>]*> nop
-+0000ca30 <[^>]*> nop
-+0000ca34 <[^>]*> nop
-+0000ca38 <[^>]*> nop
-+0000ca3c <[^>]*> nop
-+0000ca40 <[^>]*> nop
-+0000ca44 <[^>]*> nop
-+0000ca48 <[^>]*> nop
-+0000ca4c <[^>]*> nop
-+0000ca50 <[^>]*> nop
-+0000ca54 <[^>]*> nop
-+0000ca58 <[^>]*> nop
-+0000ca5c <[^>]*> nop
-+0000ca60 <[^>]*> nop
-+0000ca64 <[^>]*> nop
-+0000ca68 <[^>]*> nop
-+0000ca6c <[^>]*> nop
-+0000ca70 <[^>]*> nop
-+0000ca74 <[^>]*> nop
-+0000ca78 <[^>]*> nop
-+0000ca7c <[^>]*> nop
-+0000ca80 <[^>]*> nop
-+0000ca84 <[^>]*> nop
-+0000ca88 <[^>]*> nop
-+0000ca8c <[^>]*> nop
-+0000ca90 <[^>]*> nop
-+0000ca94 <[^>]*> nop
-+0000ca98 <[^>]*> nop
-+0000ca9c <[^>]*> nop
-+0000caa0 <[^>]*> nop
-+0000caa4 <[^>]*> nop
-+0000caa8 <[^>]*> nop
-+0000caac <[^>]*> nop
-+0000cab0 <[^>]*> nop
-+0000cab4 <[^>]*> nop
-+0000cab8 <[^>]*> nop
-+0000cabc <[^>]*> nop
-+0000cac0 <[^>]*> nop
-+0000cac4 <[^>]*> nop
-+0000cac8 <[^>]*> nop
-+0000cacc <[^>]*> nop
-+0000cad0 <[^>]*> nop
-+0000cad4 <[^>]*> nop
-+0000cad8 <[^>]*> nop
-+0000cadc <[^>]*> nop
-+0000cae0 <[^>]*> nop
-+0000cae4 <[^>]*> nop
-+0000cae8 <[^>]*> nop
-+0000caec <[^>]*> nop
-+0000caf0 <[^>]*> nop
-+0000caf4 <[^>]*> nop
-+0000caf8 <[^>]*> nop
-+0000cafc <[^>]*> nop
-+0000cb00 <[^>]*> nop
-+0000cb04 <[^>]*> nop
-+0000cb08 <[^>]*> nop
-+0000cb0c <[^>]*> nop
-+0000cb10 <[^>]*> nop
-+0000cb14 <[^>]*> nop
-+0000cb18 <[^>]*> nop
-+0000cb1c <[^>]*> nop
-+0000cb20 <[^>]*> nop
-+0000cb24 <[^>]*> nop
-+0000cb28 <[^>]*> nop
-+0000cb2c <[^>]*> nop
-+0000cb30 <[^>]*> nop
-+0000cb34 <[^>]*> nop
-+0000cb38 <[^>]*> nop
-+0000cb3c <[^>]*> nop
-+0000cb40 <[^>]*> nop
-+0000cb44 <[^>]*> nop
-+0000cb48 <[^>]*> nop
-+0000cb4c <[^>]*> nop
-+0000cb50 <[^>]*> nop
-+0000cb54 <[^>]*> nop
-+0000cb58 <[^>]*> nop
-+0000cb5c <[^>]*> nop
-+0000cb60 <[^>]*> nop
-+0000cb64 <[^>]*> nop
-+0000cb68 <[^>]*> nop
-+0000cb6c <[^>]*> nop
-+0000cb70 <[^>]*> nop
-+0000cb74 <[^>]*> nop
-+0000cb78 <[^>]*> nop
-+0000cb7c <[^>]*> nop
-+0000cb80 <[^>]*> nop
-+0000cb84 <[^>]*> nop
-+0000cb88 <[^>]*> nop
-+0000cb8c <[^>]*> nop
-+0000cb90 <[^>]*> nop
-+0000cb94 <[^>]*> nop
-+0000cb98 <[^>]*> nop
-+0000cb9c <[^>]*> nop
-+0000cba0 <[^>]*> nop
-+0000cba4 <[^>]*> nop
-+0000cba8 <[^>]*> nop
-+0000cbac <[^>]*> nop
-+0000cbb0 <[^>]*> nop
-+0000cbb4 <[^>]*> nop
-+0000cbb8 <[^>]*> nop
-+0000cbbc <[^>]*> nop
-+0000cbc0 <[^>]*> nop
-+0000cbc4 <[^>]*> nop
-+0000cbc8 <[^>]*> nop
-+0000cbcc <[^>]*> nop
-+0000cbd0 <[^>]*> nop
-+0000cbd4 <[^>]*> nop
-+0000cbd8 <[^>]*> nop
-+0000cbdc <[^>]*> nop
-+0000cbe0 <[^>]*> nop
-+0000cbe4 <[^>]*> nop
-+0000cbe8 <[^>]*> nop
-+0000cbec <[^>]*> nop
-+0000cbf0 <[^>]*> nop
-+0000cbf4 <[^>]*> nop
-+0000cbf8 <[^>]*> nop
-+0000cbfc <[^>]*> nop
-+0000cc00 <[^>]*> nop
-+0000cc04 <[^>]*> nop
-+0000cc08 <[^>]*> nop
-+0000cc0c <[^>]*> nop
-+0000cc10 <[^>]*> nop
-+0000cc14 <[^>]*> nop
-+0000cc18 <[^>]*> nop
-+0000cc1c <[^>]*> nop
-+0000cc20 <[^>]*> nop
-+0000cc24 <[^>]*> nop
-+0000cc28 <[^>]*> nop
-+0000cc2c <[^>]*> nop
-+0000cc30 <[^>]*> nop
-+0000cc34 <[^>]*> nop
-+0000cc38 <[^>]*> nop
-+0000cc3c <[^>]*> nop
-+0000cc40 <[^>]*> nop
-+0000cc44 <[^>]*> nop
-+0000cc48 <[^>]*> nop
-+0000cc4c <[^>]*> nop
-+0000cc50 <[^>]*> nop
-+0000cc54 <[^>]*> nop
-+0000cc58 <[^>]*> nop
-+0000cc5c <[^>]*> nop
-+0000cc60 <[^>]*> nop
-+0000cc64 <[^>]*> nop
-+0000cc68 <[^>]*> nop
-+0000cc6c <[^>]*> nop
-+0000cc70 <[^>]*> nop
-+0000cc74 <[^>]*> nop
-+0000cc78 <[^>]*> nop
-+0000cc7c <[^>]*> nop
-+0000cc80 <[^>]*> nop
-+0000cc84 <[^>]*> nop
-+0000cc88 <[^>]*> nop
-+0000cc8c <[^>]*> nop
-+0000cc90 <[^>]*> nop
-+0000cc94 <[^>]*> nop
-+0000cc98 <[^>]*> nop
-+0000cc9c <[^>]*> nop
-+0000cca0 <[^>]*> nop
-+0000cca4 <[^>]*> nop
-+0000cca8 <[^>]*> nop
-+0000ccac <[^>]*> nop
-+0000ccb0 <[^>]*> nop
-+0000ccb4 <[^>]*> nop
-+0000ccb8 <[^>]*> nop
-+0000ccbc <[^>]*> nop
-+0000ccc0 <[^>]*> nop
-+0000ccc4 <[^>]*> nop
-+0000ccc8 <[^>]*> nop
-+0000cccc <[^>]*> nop
-+0000ccd0 <[^>]*> nop
-+0000ccd4 <[^>]*> nop
-+0000ccd8 <[^>]*> nop
-+0000ccdc <[^>]*> nop
-+0000cce0 <[^>]*> nop
-+0000cce4 <[^>]*> nop
-+0000cce8 <[^>]*> nop
-+0000ccec <[^>]*> nop
-+0000ccf0 <[^>]*> nop
-+0000ccf4 <[^>]*> nop
-+0000ccf8 <[^>]*> nop
-+0000ccfc <[^>]*> nop
-+0000cd00 <[^>]*> nop
-+0000cd04 <[^>]*> nop
-+0000cd08 <[^>]*> nop
-+0000cd0c <[^>]*> nop
-+0000cd10 <[^>]*> nop
-+0000cd14 <[^>]*> nop
-+0000cd18 <[^>]*> nop
-+0000cd1c <[^>]*> nop
-+0000cd20 <[^>]*> nop
-+0000cd24 <[^>]*> nop
-+0000cd28 <[^>]*> nop
-+0000cd2c <[^>]*> nop
-+0000cd30 <[^>]*> nop
-+0000cd34 <[^>]*> nop
-+0000cd38 <[^>]*> nop
-+0000cd3c <[^>]*> nop
-+0000cd40 <[^>]*> nop
-+0000cd44 <[^>]*> nop
-+0000cd48 <[^>]*> nop
-+0000cd4c <[^>]*> nop
-+0000cd50 <[^>]*> nop
-+0000cd54 <[^>]*> nop
-+0000cd58 <[^>]*> nop
-+0000cd5c <[^>]*> nop
-+0000cd60 <[^>]*> nop
-+0000cd64 <[^>]*> nop
-+0000cd68 <[^>]*> nop
-+0000cd6c <[^>]*> nop
-+0000cd70 <[^>]*> nop
-+0000cd74 <[^>]*> nop
-+0000cd78 <[^>]*> nop
-+0000cd7c <[^>]*> nop
-+0000cd80 <[^>]*> nop
-+0000cd84 <[^>]*> nop
-+0000cd88 <[^>]*> nop
-+0000cd8c <[^>]*> nop
-+0000cd90 <[^>]*> nop
-+0000cd94 <[^>]*> nop
-+0000cd98 <[^>]*> nop
-+0000cd9c <[^>]*> nop
-+0000cda0 <[^>]*> nop
-+0000cda4 <[^>]*> nop
-+0000cda8 <[^>]*> nop
-+0000cdac <[^>]*> nop
-+0000cdb0 <[^>]*> nop
-+0000cdb4 <[^>]*> nop
-+0000cdb8 <[^>]*> nop
-+0000cdbc <[^>]*> nop
-+0000cdc0 <[^>]*> nop
-+0000cdc4 <[^>]*> nop
-+0000cdc8 <[^>]*> nop
-+0000cdcc <[^>]*> nop
-+0000cdd0 <[^>]*> nop
-+0000cdd4 <[^>]*> nop
-+0000cdd8 <[^>]*> nop
-+0000cddc <[^>]*> nop
-+0000cde0 <[^>]*> nop
-+0000cde4 <[^>]*> nop
-+0000cde8 <[^>]*> nop
-+0000cdec <[^>]*> nop
-+0000cdf0 <[^>]*> nop
-+0000cdf4 <[^>]*> nop
-+0000cdf8 <[^>]*> nop
-+0000cdfc <[^>]*> nop
-+0000ce00 <[^>]*> nop
-+0000ce04 <[^>]*> nop
-+0000ce08 <[^>]*> nop
-+0000ce0c <[^>]*> nop
-+0000ce10 <[^>]*> nop
-+0000ce14 <[^>]*> nop
-+0000ce18 <[^>]*> nop
-+0000ce1c <[^>]*> nop
-+0000ce20 <[^>]*> nop
-+0000ce24 <[^>]*> nop
-+0000ce28 <[^>]*> nop
-+0000ce2c <[^>]*> nop
-+0000ce30 <[^>]*> nop
-+0000ce34 <[^>]*> nop
-+0000ce38 <[^>]*> nop
-+0000ce3c <[^>]*> nop
-+0000ce40 <[^>]*> nop
-+0000ce44 <[^>]*> nop
-+0000ce48 <[^>]*> nop
-+0000ce4c <[^>]*> nop
-+0000ce50 <[^>]*> nop
-+0000ce54 <[^>]*> nop
-+0000ce58 <[^>]*> nop
-+0000ce5c <[^>]*> nop
-+0000ce60 <[^>]*> nop
-+0000ce64 <[^>]*> nop
-+0000ce68 <[^>]*> nop
-+0000ce6c <[^>]*> nop
-+0000ce70 <[^>]*> nop
-+0000ce74 <[^>]*> nop
-+0000ce78 <[^>]*> nop
-+0000ce7c <[^>]*> nop
-+0000ce80 <[^>]*> nop
-+0000ce84 <[^>]*> nop
-+0000ce88 <[^>]*> nop
-+0000ce8c <[^>]*> nop
-+0000ce90 <[^>]*> nop
-+0000ce94 <[^>]*> nop
-+0000ce98 <[^>]*> nop
-+0000ce9c <[^>]*> nop
-+0000cea0 <[^>]*> nop
-+0000cea4 <[^>]*> nop
-+0000cea8 <[^>]*> nop
-+0000ceac <[^>]*> nop
-+0000ceb0 <[^>]*> nop
-+0000ceb4 <[^>]*> nop
-+0000ceb8 <[^>]*> nop
-+0000cebc <[^>]*> nop
-+0000cec0 <[^>]*> nop
-+0000cec4 <[^>]*> nop
-+0000cec8 <[^>]*> nop
-+0000cecc <[^>]*> nop
-+0000ced0 <[^>]*> nop
-+0000ced4 <[^>]*> nop
-+0000ced8 <[^>]*> nop
-+0000cedc <[^>]*> nop
-+0000cee0 <[^>]*> nop
-+0000cee4 <[^>]*> nop
-+0000cee8 <[^>]*> nop
-+0000ceec <[^>]*> nop
-+0000cef0 <[^>]*> nop
-+0000cef4 <[^>]*> nop
-+0000cef8 <[^>]*> nop
-+0000cefc <[^>]*> nop
-+0000cf00 <[^>]*> nop
-+0000cf04 <[^>]*> nop
-+0000cf08 <[^>]*> nop
-+0000cf0c <[^>]*> nop
-+0000cf10 <[^>]*> nop
-+0000cf14 <[^>]*> nop
-+0000cf18 <[^>]*> nop
-+0000cf1c <[^>]*> nop
-+0000cf20 <[^>]*> nop
-+0000cf24 <[^>]*> nop
-+0000cf28 <[^>]*> nop
-+0000cf2c <[^>]*> nop
-+0000cf30 <[^>]*> nop
-+0000cf34 <[^>]*> nop
-+0000cf38 <[^>]*> nop
-+0000cf3c <[^>]*> nop
-+0000cf40 <[^>]*> nop
-+0000cf44 <[^>]*> nop
-+0000cf48 <[^>]*> nop
-+0000cf4c <[^>]*> nop
-+0000cf50 <[^>]*> nop
-+0000cf54 <[^>]*> nop
-+0000cf58 <[^>]*> nop
-+0000cf5c <[^>]*> nop
-+0000cf60 <[^>]*> nop
-+0000cf64 <[^>]*> nop
-+0000cf68 <[^>]*> nop
-+0000cf6c <[^>]*> nop
-+0000cf70 <[^>]*> nop
-+0000cf74 <[^>]*> nop
-+0000cf78 <[^>]*> nop
-+0000cf7c <[^>]*> nop
-+0000cf80 <[^>]*> nop
-+0000cf84 <[^>]*> nop
-+0000cf88 <[^>]*> nop
-+0000cf8c <[^>]*> nop
-+0000cf90 <[^>]*> nop
-+0000cf94 <[^>]*> nop
-+0000cf98 <[^>]*> nop
-+0000cf9c <[^>]*> nop
-+0000cfa0 <[^>]*> nop
-+0000cfa4 <[^>]*> nop
-+0000cfa8 <[^>]*> nop
-+0000cfac <[^>]*> nop
-+0000cfb0 <[^>]*> nop
-+0000cfb4 <[^>]*> nop
-+0000cfb8 <[^>]*> nop
-+0000cfbc <[^>]*> nop
-+0000cfc0 <[^>]*> nop
-+0000cfc4 <[^>]*> nop
-+0000cfc8 <[^>]*> nop
-+0000cfcc <[^>]*> nop
-+0000cfd0 <[^>]*> nop
-+0000cfd4 <[^>]*> nop
-+0000cfd8 <[^>]*> nop
-+0000cfdc <[^>]*> nop
-+0000cfe0 <[^>]*> nop
-+0000cfe4 <[^>]*> nop
-+0000cfe8 <[^>]*> nop
-+0000cfec <[^>]*> nop
-+0000cff0 <[^>]*> nop
-+0000cff4 <[^>]*> nop
-+0000cff8 <[^>]*> nop
-+0000cffc <[^>]*> nop
-+0000d000 <[^>]*> nop
-+0000d004 <[^>]*> nop
-+0000d008 <[^>]*> nop
-+0000d00c <[^>]*> nop
-+0000d010 <[^>]*> nop
-+0000d014 <[^>]*> nop
-+0000d018 <[^>]*> nop
-+0000d01c <[^>]*> nop
-+0000d020 <[^>]*> nop
-+0000d024 <[^>]*> nop
-+0000d028 <[^>]*> nop
-+0000d02c <[^>]*> nop
-+0000d030 <[^>]*> nop
-+0000d034 <[^>]*> nop
-+0000d038 <[^>]*> nop
-+0000d03c <[^>]*> nop
-+0000d040 <[^>]*> nop
-+0000d044 <[^>]*> nop
-+0000d048 <[^>]*> nop
-+0000d04c <[^>]*> nop
-+0000d050 <[^>]*> nop
-+0000d054 <[^>]*> nop
-+0000d058 <[^>]*> nop
-+0000d05c <[^>]*> nop
-+0000d060 <[^>]*> nop
-+0000d064 <[^>]*> nop
-+0000d068 <[^>]*> nop
-+0000d06c <[^>]*> nop
-+0000d070 <[^>]*> nop
-+0000d074 <[^>]*> nop
-+0000d078 <[^>]*> nop
-+0000d07c <[^>]*> nop
-+0000d080 <[^>]*> nop
-+0000d084 <[^>]*> nop
-+0000d088 <[^>]*> nop
-+0000d08c <[^>]*> nop
-+0000d090 <[^>]*> nop
-+0000d094 <[^>]*> nop
-+0000d098 <[^>]*> nop
-+0000d09c <[^>]*> nop
-+0000d0a0 <[^>]*> nop
-+0000d0a4 <[^>]*> nop
-+0000d0a8 <[^>]*> nop
-+0000d0ac <[^>]*> nop
-+0000d0b0 <[^>]*> nop
-+0000d0b4 <[^>]*> nop
-+0000d0b8 <[^>]*> nop
-+0000d0bc <[^>]*> nop
-+0000d0c0 <[^>]*> nop
-+0000d0c4 <[^>]*> nop
-+0000d0c8 <[^>]*> nop
-+0000d0cc <[^>]*> nop
-+0000d0d0 <[^>]*> nop
-+0000d0d4 <[^>]*> nop
-+0000d0d8 <[^>]*> nop
-+0000d0dc <[^>]*> nop
-+0000d0e0 <[^>]*> nop
-+0000d0e4 <[^>]*> nop
-+0000d0e8 <[^>]*> nop
-+0000d0ec <[^>]*> nop
-+0000d0f0 <[^>]*> nop
-+0000d0f4 <[^>]*> nop
-+0000d0f8 <[^>]*> nop
-+0000d0fc <[^>]*> nop
-+0000d100 <[^>]*> nop
-+0000d104 <[^>]*> nop
-+0000d108 <[^>]*> nop
-+0000d10c <[^>]*> nop
-+0000d110 <[^>]*> nop
-+0000d114 <[^>]*> nop
-+0000d118 <[^>]*> nop
-+0000d11c <[^>]*> nop
-+0000d120 <[^>]*> nop
-+0000d124 <[^>]*> nop
-+0000d128 <[^>]*> nop
-+0000d12c <[^>]*> nop
-+0000d130 <[^>]*> nop
-+0000d134 <[^>]*> nop
-+0000d138 <[^>]*> nop
-+0000d13c <[^>]*> nop
-+0000d140 <[^>]*> nop
-+0000d144 <[^>]*> nop
-+0000d148 <[^>]*> nop
-+0000d14c <[^>]*> nop
-+0000d150 <[^>]*> nop
-+0000d154 <[^>]*> nop
-+0000d158 <[^>]*> nop
-+0000d15c <[^>]*> nop
-+0000d160 <[^>]*> nop
-+0000d164 <[^>]*> nop
-+0000d168 <[^>]*> nop
-+0000d16c <[^>]*> nop
-+0000d170 <[^>]*> nop
-+0000d174 <[^>]*> nop
-+0000d178 <[^>]*> nop
-+0000d17c <[^>]*> nop
-+0000d180 <[^>]*> nop
-+0000d184 <[^>]*> nop
-+0000d188 <[^>]*> nop
-+0000d18c <[^>]*> nop
-+0000d190 <[^>]*> nop
-+0000d194 <[^>]*> nop
-+0000d198 <[^>]*> nop
-+0000d19c <[^>]*> nop
-+0000d1a0 <[^>]*> nop
-+0000d1a4 <[^>]*> nop
-+0000d1a8 <[^>]*> nop
-+0000d1ac <[^>]*> nop
-+0000d1b0 <[^>]*> nop
-+0000d1b4 <[^>]*> nop
-+0000d1b8 <[^>]*> nop
-+0000d1bc <[^>]*> nop
-+0000d1c0 <[^>]*> nop
-+0000d1c4 <[^>]*> nop
-+0000d1c8 <[^>]*> nop
-+0000d1cc <[^>]*> nop
-+0000d1d0 <[^>]*> nop
-+0000d1d4 <[^>]*> nop
-+0000d1d8 <[^>]*> nop
-+0000d1dc <[^>]*> nop
-+0000d1e0 <[^>]*> nop
-+0000d1e4 <[^>]*> nop
-+0000d1e8 <[^>]*> nop
-+0000d1ec <[^>]*> nop
-+0000d1f0 <[^>]*> nop
-+0000d1f4 <[^>]*> nop
-+0000d1f8 <[^>]*> nop
-+0000d1fc <[^>]*> nop
-+0000d200 <[^>]*> nop
-+0000d204 <[^>]*> nop
-+0000d208 <[^>]*> nop
-+0000d20c <[^>]*> nop
-+0000d210 <[^>]*> nop
-+0000d214 <[^>]*> nop
-+0000d218 <[^>]*> nop
-+0000d21c <[^>]*> nop
-+0000d220 <[^>]*> nop
-+0000d224 <[^>]*> nop
-+0000d228 <[^>]*> nop
-+0000d22c <[^>]*> nop
-+0000d230 <[^>]*> nop
-+0000d234 <[^>]*> nop
-+0000d238 <[^>]*> nop
-+0000d23c <[^>]*> nop
-+0000d240 <[^>]*> nop
-+0000d244 <[^>]*> nop
-+0000d248 <[^>]*> nop
-+0000d24c <[^>]*> nop
-+0000d250 <[^>]*> nop
-+0000d254 <[^>]*> nop
-+0000d258 <[^>]*> nop
-+0000d25c <[^>]*> nop
-+0000d260 <[^>]*> nop
-+0000d264 <[^>]*> nop
-+0000d268 <[^>]*> nop
-+0000d26c <[^>]*> nop
-+0000d270 <[^>]*> nop
-+0000d274 <[^>]*> nop
-+0000d278 <[^>]*> nop
-+0000d27c <[^>]*> nop
-+0000d280 <[^>]*> nop
-+0000d284 <[^>]*> nop
-+0000d288 <[^>]*> nop
-+0000d28c <[^>]*> nop
-+0000d290 <[^>]*> nop
-+0000d294 <[^>]*> nop
-+0000d298 <[^>]*> nop
-+0000d29c <[^>]*> nop
-+0000d2a0 <[^>]*> nop
-+0000d2a4 <[^>]*> nop
-+0000d2a8 <[^>]*> nop
-+0000d2ac <[^>]*> nop
-+0000d2b0 <[^>]*> nop
-+0000d2b4 <[^>]*> nop
-+0000d2b8 <[^>]*> nop
-+0000d2bc <[^>]*> nop
-+0000d2c0 <[^>]*> nop
-+0000d2c4 <[^>]*> nop
-+0000d2c8 <[^>]*> nop
-+0000d2cc <[^>]*> nop
-+0000d2d0 <[^>]*> nop
-+0000d2d4 <[^>]*> nop
-+0000d2d8 <[^>]*> nop
-+0000d2dc <[^>]*> nop
-+0000d2e0 <[^>]*> nop
-+0000d2e4 <[^>]*> nop
-+0000d2e8 <[^>]*> nop
-+0000d2ec <[^>]*> nop
-+0000d2f0 <[^>]*> nop
-+0000d2f4 <[^>]*> nop
-+0000d2f8 <[^>]*> nop
-+0000d2fc <[^>]*> nop
-+0000d300 <[^>]*> nop
-+0000d304 <[^>]*> nop
-+0000d308 <[^>]*> nop
-+0000d30c <[^>]*> nop
-+0000d310 <[^>]*> nop
-+0000d314 <[^>]*> nop
-+0000d318 <[^>]*> nop
-+0000d31c <[^>]*> nop
-+0000d320 <[^>]*> nop
-+0000d324 <[^>]*> nop
-+0000d328 <[^>]*> nop
-+0000d32c <[^>]*> nop
-+0000d330 <[^>]*> nop
-+0000d334 <[^>]*> nop
-+0000d338 <[^>]*> nop
-+0000d33c <[^>]*> nop
-+0000d340 <[^>]*> nop
-+0000d344 <[^>]*> nop
-+0000d348 <[^>]*> nop
-+0000d34c <[^>]*> nop
-+0000d350 <[^>]*> nop
-+0000d354 <[^>]*> nop
-+0000d358 <[^>]*> nop
-+0000d35c <[^>]*> nop
-+0000d360 <[^>]*> nop
-+0000d364 <[^>]*> nop
-+0000d368 <[^>]*> nop
-+0000d36c <[^>]*> nop
-+0000d370 <[^>]*> nop
-+0000d374 <[^>]*> nop
-+0000d378 <[^>]*> nop
-+0000d37c <[^>]*> nop
-+0000d380 <[^>]*> nop
-+0000d384 <[^>]*> nop
-+0000d388 <[^>]*> nop
-+0000d38c <[^>]*> nop
-+0000d390 <[^>]*> nop
-+0000d394 <[^>]*> nop
-+0000d398 <[^>]*> nop
-+0000d39c <[^>]*> nop
-+0000d3a0 <[^>]*> nop
-+0000d3a4 <[^>]*> nop
-+0000d3a8 <[^>]*> nop
-+0000d3ac <[^>]*> nop
-+0000d3b0 <[^>]*> nop
-+0000d3b4 <[^>]*> nop
-+0000d3b8 <[^>]*> nop
-+0000d3bc <[^>]*> nop
-+0000d3c0 <[^>]*> nop
-+0000d3c4 <[^>]*> nop
-+0000d3c8 <[^>]*> nop
-+0000d3cc <[^>]*> nop
-+0000d3d0 <[^>]*> nop
-+0000d3d4 <[^>]*> nop
-+0000d3d8 <[^>]*> nop
-+0000d3dc <[^>]*> nop
-+0000d3e0 <[^>]*> nop
-+0000d3e4 <[^>]*> nop
-+0000d3e8 <[^>]*> nop
-+0000d3ec <[^>]*> nop
-+0000d3f0 <[^>]*> nop
-+0000d3f4 <[^>]*> nop
-+0000d3f8 <[^>]*> nop
-+0000d3fc <[^>]*> nop
-+0000d400 <[^>]*> nop
-+0000d404 <[^>]*> nop
-+0000d408 <[^>]*> nop
-+0000d40c <[^>]*> nop
-+0000d410 <[^>]*> nop
-+0000d414 <[^>]*> nop
-+0000d418 <[^>]*> nop
-+0000d41c <[^>]*> nop
-+0000d420 <[^>]*> nop
-+0000d424 <[^>]*> nop
-+0000d428 <[^>]*> nop
-+0000d42c <[^>]*> nop
-+0000d430 <[^>]*> nop
-+0000d434 <[^>]*> nop
-+0000d438 <[^>]*> nop
-+0000d43c <[^>]*> nop
-+0000d440 <[^>]*> nop
-+0000d444 <[^>]*> nop
-+0000d448 <[^>]*> nop
-+0000d44c <[^>]*> nop
-+0000d450 <[^>]*> nop
-+0000d454 <[^>]*> nop
-+0000d458 <[^>]*> nop
-+0000d45c <[^>]*> nop
-+0000d460 <[^>]*> nop
-+0000d464 <[^>]*> nop
-+0000d468 <[^>]*> nop
-+0000d46c <[^>]*> nop
-+0000d470 <[^>]*> nop
-+0000d474 <[^>]*> nop
-+0000d478 <[^>]*> nop
-+0000d47c <[^>]*> nop
-+0000d480 <[^>]*> nop
-+0000d484 <[^>]*> nop
-+0000d488 <[^>]*> nop
-+0000d48c <[^>]*> nop
-+0000d490 <[^>]*> nop
-+0000d494 <[^>]*> nop
-+0000d498 <[^>]*> nop
-+0000d49c <[^>]*> nop
-+0000d4a0 <[^>]*> nop
-+0000d4a4 <[^>]*> nop
-+0000d4a8 <[^>]*> nop
-+0000d4ac <[^>]*> nop
-+0000d4b0 <[^>]*> nop
-+0000d4b4 <[^>]*> nop
-+0000d4b8 <[^>]*> nop
-+0000d4bc <[^>]*> nop
-+0000d4c0 <[^>]*> nop
-+0000d4c4 <[^>]*> nop
-+0000d4c8 <[^>]*> nop
-+0000d4cc <[^>]*> nop
-+0000d4d0 <[^>]*> nop
-+0000d4d4 <[^>]*> nop
-+0000d4d8 <[^>]*> nop
-+0000d4dc <[^>]*> nop
-+0000d4e0 <[^>]*> nop
-+0000d4e4 <[^>]*> nop
-+0000d4e8 <[^>]*> nop
-+0000d4ec <[^>]*> nop
-+0000d4f0 <[^>]*> nop
-+0000d4f4 <[^>]*> nop
-+0000d4f8 <[^>]*> nop
-+0000d4fc <[^>]*> nop
-+0000d500 <[^>]*> nop
-+0000d504 <[^>]*> nop
-+0000d508 <[^>]*> nop
-+0000d50c <[^>]*> nop
-+0000d510 <[^>]*> nop
-+0000d514 <[^>]*> nop
-+0000d518 <[^>]*> nop
-+0000d51c <[^>]*> nop
-+0000d520 <[^>]*> nop
-+0000d524 <[^>]*> nop
-+0000d528 <[^>]*> nop
-+0000d52c <[^>]*> nop
-+0000d530 <[^>]*> nop
-+0000d534 <[^>]*> nop
-+0000d538 <[^>]*> nop
-+0000d53c <[^>]*> nop
-+0000d540 <[^>]*> nop
-+0000d544 <[^>]*> nop
-+0000d548 <[^>]*> nop
-+0000d54c <[^>]*> nop
-+0000d550 <[^>]*> nop
-+0000d554 <[^>]*> nop
-+0000d558 <[^>]*> nop
-+0000d55c <[^>]*> nop
-+0000d560 <[^>]*> nop
-+0000d564 <[^>]*> nop
-+0000d568 <[^>]*> nop
-+0000d56c <[^>]*> nop
-+0000d570 <[^>]*> nop
-+0000d574 <[^>]*> nop
-+0000d578 <[^>]*> nop
-+0000d57c <[^>]*> nop
-+0000d580 <[^>]*> nop
-+0000d584 <[^>]*> nop
-+0000d588 <[^>]*> nop
-+0000d58c <[^>]*> nop
-+0000d590 <[^>]*> nop
-+0000d594 <[^>]*> nop
-+0000d598 <[^>]*> nop
-+0000d59c <[^>]*> nop
-+0000d5a0 <[^>]*> nop
-+0000d5a4 <[^>]*> nop
-+0000d5a8 <[^>]*> nop
-+0000d5ac <[^>]*> nop
-+0000d5b0 <[^>]*> nop
-+0000d5b4 <[^>]*> nop
-+0000d5b8 <[^>]*> nop
-+0000d5bc <[^>]*> nop
-+0000d5c0 <[^>]*> nop
-+0000d5c4 <[^>]*> nop
-+0000d5c8 <[^>]*> nop
-+0000d5cc <[^>]*> nop
-+0000d5d0 <[^>]*> nop
-+0000d5d4 <[^>]*> nop
-+0000d5d8 <[^>]*> nop
-+0000d5dc <[^>]*> nop
-+0000d5e0 <[^>]*> nop
-+0000d5e4 <[^>]*> nop
-+0000d5e8 <[^>]*> nop
-+0000d5ec <[^>]*> nop
-+0000d5f0 <[^>]*> nop
-+0000d5f4 <[^>]*> nop
-+0000d5f8 <[^>]*> nop
-+0000d5fc <[^>]*> nop
-+0000d600 <[^>]*> nop
-+0000d604 <[^>]*> nop
-+0000d608 <[^>]*> nop
-+0000d60c <[^>]*> nop
-+0000d610 <[^>]*> nop
-+0000d614 <[^>]*> nop
-+0000d618 <[^>]*> nop
-+0000d61c <[^>]*> nop
-+0000d620 <[^>]*> nop
-+0000d624 <[^>]*> nop
-+0000d628 <[^>]*> nop
-+0000d62c <[^>]*> nop
-+0000d630 <[^>]*> nop
-+0000d634 <[^>]*> nop
-+0000d638 <[^>]*> nop
-+0000d63c <[^>]*> nop
-+0000d640 <[^>]*> nop
-+0000d644 <[^>]*> nop
-+0000d648 <[^>]*> nop
-+0000d64c <[^>]*> nop
-+0000d650 <[^>]*> nop
-+0000d654 <[^>]*> nop
-+0000d658 <[^>]*> nop
-+0000d65c <[^>]*> nop
-+0000d660 <[^>]*> nop
-+0000d664 <[^>]*> nop
-+0000d668 <[^>]*> nop
-+0000d66c <[^>]*> nop
-+0000d670 <[^>]*> nop
-+0000d674 <[^>]*> nop
-+0000d678 <[^>]*> nop
-+0000d67c <[^>]*> nop
-+0000d680 <[^>]*> nop
-+0000d684 <[^>]*> nop
-+0000d688 <[^>]*> nop
-+0000d68c <[^>]*> nop
-+0000d690 <[^>]*> nop
-+0000d694 <[^>]*> nop
-+0000d698 <[^>]*> nop
-+0000d69c <[^>]*> nop
-+0000d6a0 <[^>]*> nop
-+0000d6a4 <[^>]*> nop
-+0000d6a8 <[^>]*> nop
-+0000d6ac <[^>]*> nop
-+0000d6b0 <[^>]*> nop
-+0000d6b4 <[^>]*> nop
-+0000d6b8 <[^>]*> nop
-+0000d6bc <[^>]*> nop
-+0000d6c0 <[^>]*> nop
-+0000d6c4 <[^>]*> nop
-+0000d6c8 <[^>]*> nop
-+0000d6cc <[^>]*> nop
-+0000d6d0 <[^>]*> nop
-+0000d6d4 <[^>]*> nop
-+0000d6d8 <[^>]*> nop
-+0000d6dc <[^>]*> nop
-+0000d6e0 <[^>]*> nop
-+0000d6e4 <[^>]*> nop
-+0000d6e8 <[^>]*> nop
-+0000d6ec <[^>]*> nop
-+0000d6f0 <[^>]*> nop
-+0000d6f4 <[^>]*> nop
-+0000d6f8 <[^>]*> nop
-+0000d6fc <[^>]*> nop
-+0000d700 <[^>]*> nop
-+0000d704 <[^>]*> nop
-+0000d708 <[^>]*> nop
-+0000d70c <[^>]*> nop
-+0000d710 <[^>]*> nop
-+0000d714 <[^>]*> nop
-+0000d718 <[^>]*> nop
-+0000d71c <[^>]*> nop
-+0000d720 <[^>]*> nop
-+0000d724 <[^>]*> nop
-+0000d728 <[^>]*> nop
-+0000d72c <[^>]*> nop
-+0000d730 <[^>]*> nop
-+0000d734 <[^>]*> nop
-+0000d738 <[^>]*> nop
-+0000d73c <[^>]*> nop
-+0000d740 <[^>]*> nop
-+0000d744 <[^>]*> nop
-+0000d748 <[^>]*> nop
-+0000d74c <[^>]*> nop
-+0000d750 <[^>]*> nop
-+0000d754 <[^>]*> nop
-+0000d758 <[^>]*> nop
-+0000d75c <[^>]*> nop
-+0000d760 <[^>]*> nop
-+0000d764 <[^>]*> nop
-+0000d768 <[^>]*> nop
-+0000d76c <[^>]*> nop
-+0000d770 <[^>]*> nop
-+0000d774 <[^>]*> nop
-+0000d778 <[^>]*> nop
-+0000d77c <[^>]*> nop
-+0000d780 <[^>]*> nop
-+0000d784 <[^>]*> nop
-+0000d788 <[^>]*> nop
-+0000d78c <[^>]*> nop
-+0000d790 <[^>]*> nop
-+0000d794 <[^>]*> nop
-+0000d798 <[^>]*> nop
-+0000d79c <[^>]*> nop
-+0000d7a0 <[^>]*> nop
-+0000d7a4 <[^>]*> nop
-+0000d7a8 <[^>]*> nop
-+0000d7ac <[^>]*> nop
-+0000d7b0 <[^>]*> nop
-+0000d7b4 <[^>]*> nop
-+0000d7b8 <[^>]*> nop
-+0000d7bc <[^>]*> nop
-+0000d7c0 <[^>]*> nop
-+0000d7c4 <[^>]*> nop
-+0000d7c8 <[^>]*> nop
-+0000d7cc <[^>]*> nop
-+0000d7d0 <[^>]*> nop
-+0000d7d4 <[^>]*> nop
-+0000d7d8 <[^>]*> nop
-+0000d7dc <[^>]*> nop
-+0000d7e0 <[^>]*> nop
-+0000d7e4 <[^>]*> nop
-+0000d7e8 <[^>]*> nop
-+0000d7ec <[^>]*> nop
-+0000d7f0 <[^>]*> nop
-+0000d7f4 <[^>]*> nop
-+0000d7f8 <[^>]*> nop
-+0000d7fc <[^>]*> nop
-+0000d800 <[^>]*> nop
-+0000d804 <[^>]*> nop
-+0000d808 <[^>]*> nop
-+0000d80c <[^>]*> nop
-+0000d810 <[^>]*> nop
-+0000d814 <[^>]*> nop
-+0000d818 <[^>]*> nop
-+0000d81c <[^>]*> nop
-+0000d820 <[^>]*> nop
-+0000d824 <[^>]*> nop
-+0000d828 <[^>]*> nop
-+0000d82c <[^>]*> nop
-+0000d830 <[^>]*> nop
-+0000d834 <[^>]*> nop
-+0000d838 <[^>]*> nop
-+0000d83c <[^>]*> nop
-+0000d840 <[^>]*> nop
-+0000d844 <[^>]*> nop
-+0000d848 <[^>]*> nop
-+0000d84c <[^>]*> nop
-+0000d850 <[^>]*> nop
-+0000d854 <[^>]*> nop
-+0000d858 <[^>]*> nop
-+0000d85c <[^>]*> nop
-+0000d860 <[^>]*> nop
-+0000d864 <[^>]*> nop
-+0000d868 <[^>]*> nop
-+0000d86c <[^>]*> nop
-+0000d870 <[^>]*> nop
-+0000d874 <[^>]*> nop
-+0000d878 <[^>]*> nop
-+0000d87c <[^>]*> nop
-+0000d880 <[^>]*> nop
-+0000d884 <[^>]*> nop
-+0000d888 <[^>]*> nop
-+0000d88c <[^>]*> nop
-+0000d890 <[^>]*> nop
-+0000d894 <[^>]*> nop
-+0000d898 <[^>]*> nop
-+0000d89c <[^>]*> nop
-+0000d8a0 <[^>]*> nop
-+0000d8a4 <[^>]*> nop
-+0000d8a8 <[^>]*> nop
-+0000d8ac <[^>]*> nop
-+0000d8b0 <[^>]*> nop
-+0000d8b4 <[^>]*> nop
-+0000d8b8 <[^>]*> nop
-+0000d8bc <[^>]*> nop
-+0000d8c0 <[^>]*> nop
-+0000d8c4 <[^>]*> nop
-+0000d8c8 <[^>]*> nop
-+0000d8cc <[^>]*> nop
-+0000d8d0 <[^>]*> nop
-+0000d8d4 <[^>]*> nop
-+0000d8d8 <[^>]*> nop
-+0000d8dc <[^>]*> nop
-+0000d8e0 <[^>]*> nop
-+0000d8e4 <[^>]*> nop
-+0000d8e8 <[^>]*> nop
-+0000d8ec <[^>]*> nop
-+0000d8f0 <[^>]*> nop
-+0000d8f4 <[^>]*> nop
-+0000d8f8 <[^>]*> nop
-+0000d8fc <[^>]*> nop
-+0000d900 <[^>]*> nop
-+0000d904 <[^>]*> nop
-+0000d908 <[^>]*> nop
-+0000d90c <[^>]*> nop
-+0000d910 <[^>]*> nop
-+0000d914 <[^>]*> nop
-+0000d918 <[^>]*> nop
-+0000d91c <[^>]*> nop
-+0000d920 <[^>]*> nop
-+0000d924 <[^>]*> nop
-+0000d928 <[^>]*> nop
-+0000d92c <[^>]*> nop
-+0000d930 <[^>]*> nop
-+0000d934 <[^>]*> nop
-+0000d938 <[^>]*> nop
-+0000d93c <[^>]*> nop
-+0000d940 <[^>]*> nop
-+0000d944 <[^>]*> nop
-+0000d948 <[^>]*> nop
-+0000d94c <[^>]*> nop
-+0000d950 <[^>]*> nop
-+0000d954 <[^>]*> nop
-+0000d958 <[^>]*> nop
-+0000d95c <[^>]*> nop
-+0000d960 <[^>]*> nop
-+0000d964 <[^>]*> nop
-+0000d968 <[^>]*> nop
-+0000d96c <[^>]*> nop
-+0000d970 <[^>]*> nop
-+0000d974 <[^>]*> nop
-+0000d978 <[^>]*> nop
-+0000d97c <[^>]*> nop
-+0000d980 <[^>]*> nop
-+0000d984 <[^>]*> nop
-+0000d988 <[^>]*> nop
-+0000d98c <[^>]*> nop
-+0000d990 <[^>]*> nop
-+0000d994 <[^>]*> nop
-+0000d998 <[^>]*> nop
-+0000d99c <[^>]*> nop
-+0000d9a0 <[^>]*> nop
-+0000d9a4 <[^>]*> nop
-+0000d9a8 <[^>]*> nop
-+0000d9ac <[^>]*> nop
-+0000d9b0 <[^>]*> nop
-+0000d9b4 <[^>]*> nop
-+0000d9b8 <[^>]*> nop
-+0000d9bc <[^>]*> nop
-+0000d9c0 <[^>]*> nop
-+0000d9c4 <[^>]*> nop
-+0000d9c8 <[^>]*> nop
-+0000d9cc <[^>]*> nop
-+0000d9d0 <[^>]*> nop
-+0000d9d4 <[^>]*> nop
-+0000d9d8 <[^>]*> nop
-+0000d9dc <[^>]*> nop
-+0000d9e0 <[^>]*> nop
-+0000d9e4 <[^>]*> nop
-+0000d9e8 <[^>]*> nop
-+0000d9ec <[^>]*> nop
-+0000d9f0 <[^>]*> nop
-+0000d9f4 <[^>]*> nop
-+0000d9f8 <[^>]*> nop
-+0000d9fc <[^>]*> nop
-+0000da00 <[^>]*> nop
-+0000da04 <[^>]*> nop
-+0000da08 <[^>]*> nop
-+0000da0c <[^>]*> nop
-+0000da10 <[^>]*> nop
-+0000da14 <[^>]*> nop
-+0000da18 <[^>]*> nop
-+0000da1c <[^>]*> nop
-+0000da20 <[^>]*> nop
-+0000da24 <[^>]*> nop
-+0000da28 <[^>]*> nop
-+0000da2c <[^>]*> nop
-+0000da30 <[^>]*> nop
-+0000da34 <[^>]*> nop
-+0000da38 <[^>]*> nop
-+0000da3c <[^>]*> nop
-+0000da40 <[^>]*> nop
-+0000da44 <[^>]*> nop
-+0000da48 <[^>]*> nop
-+0000da4c <[^>]*> nop
-+0000da50 <[^>]*> nop
-+0000da54 <[^>]*> nop
-+0000da58 <[^>]*> nop
-+0000da5c <[^>]*> nop
-+0000da60 <[^>]*> nop
-+0000da64 <[^>]*> nop
-+0000da68 <[^>]*> nop
-+0000da6c <[^>]*> nop
-+0000da70 <[^>]*> nop
-+0000da74 <[^>]*> nop
-+0000da78 <[^>]*> nop
-+0000da7c <[^>]*> nop
-+0000da80 <[^>]*> nop
-+0000da84 <[^>]*> nop
-+0000da88 <[^>]*> nop
-+0000da8c <[^>]*> nop
-+0000da90 <[^>]*> nop
-+0000da94 <[^>]*> nop
-+0000da98 <[^>]*> nop
-+0000da9c <[^>]*> nop
-+0000daa0 <[^>]*> nop
-+0000daa4 <[^>]*> nop
-+0000daa8 <[^>]*> nop
-+0000daac <[^>]*> nop
-+0000dab0 <[^>]*> nop
-+0000dab4 <[^>]*> nop
-+0000dab8 <[^>]*> nop
-+0000dabc <[^>]*> nop
-+0000dac0 <[^>]*> nop
-+0000dac4 <[^>]*> nop
-+0000dac8 <[^>]*> nop
-+0000dacc <[^>]*> nop
-+0000dad0 <[^>]*> nop
-+0000dad4 <[^>]*> nop
-+0000dad8 <[^>]*> nop
-+0000dadc <[^>]*> nop
-+0000dae0 <[^>]*> nop
-+0000dae4 <[^>]*> nop
-+0000dae8 <[^>]*> nop
-+0000daec <[^>]*> nop
-+0000daf0 <[^>]*> nop
-+0000daf4 <[^>]*> nop
-+0000daf8 <[^>]*> nop
-+0000dafc <[^>]*> nop
-+0000db00 <[^>]*> nop
-+0000db04 <[^>]*> nop
-+0000db08 <[^>]*> nop
-+0000db0c <[^>]*> nop
-+0000db10 <[^>]*> nop
-+0000db14 <[^>]*> nop
-+0000db18 <[^>]*> nop
-+0000db1c <[^>]*> nop
-+0000db20 <[^>]*> nop
-+0000db24 <[^>]*> nop
-+0000db28 <[^>]*> nop
-+0000db2c <[^>]*> nop
-+0000db30 <[^>]*> nop
-+0000db34 <[^>]*> nop
-+0000db38 <[^>]*> nop
-+0000db3c <[^>]*> nop
-+0000db40 <[^>]*> nop
-+0000db44 <[^>]*> nop
-+0000db48 <[^>]*> nop
-+0000db4c <[^>]*> nop
-+0000db50 <[^>]*> nop
-+0000db54 <[^>]*> nop
-+0000db58 <[^>]*> nop
-+0000db5c <[^>]*> nop
-+0000db60 <[^>]*> nop
-+0000db64 <[^>]*> nop
-+0000db68 <[^>]*> nop
-+0000db6c <[^>]*> nop
-+0000db70 <[^>]*> nop
-+0000db74 <[^>]*> nop
-+0000db78 <[^>]*> nop
-+0000db7c <[^>]*> nop
-+0000db80 <[^>]*> nop
-+0000db84 <[^>]*> nop
-+0000db88 <[^>]*> nop
-+0000db8c <[^>]*> nop
-+0000db90 <[^>]*> nop
-+0000db94 <[^>]*> nop
-+0000db98 <[^>]*> nop
-+0000db9c <[^>]*> nop
-+0000dba0 <[^>]*> nop
-+0000dba4 <[^>]*> nop
-+0000dba8 <[^>]*> nop
-+0000dbac <[^>]*> nop
-+0000dbb0 <[^>]*> nop
-+0000dbb4 <[^>]*> nop
-+0000dbb8 <[^>]*> nop
-+0000dbbc <[^>]*> nop
-+0000dbc0 <[^>]*> nop
-+0000dbc4 <[^>]*> nop
-+0000dbc8 <[^>]*> nop
-+0000dbcc <[^>]*> nop
-+0000dbd0 <[^>]*> nop
-+0000dbd4 <[^>]*> nop
-+0000dbd8 <[^>]*> nop
-+0000dbdc <[^>]*> nop
-+0000dbe0 <[^>]*> nop
-+0000dbe4 <[^>]*> nop
-+0000dbe8 <[^>]*> nop
-+0000dbec <[^>]*> nop
-+0000dbf0 <[^>]*> nop
-+0000dbf4 <[^>]*> nop
-+0000dbf8 <[^>]*> nop
-+0000dbfc <[^>]*> nop
-+0000dc00 <[^>]*> nop
-+0000dc04 <[^>]*> nop
-+0000dc08 <[^>]*> nop
-+0000dc0c <[^>]*> nop
-+0000dc10 <[^>]*> nop
-+0000dc14 <[^>]*> nop
-+0000dc18 <[^>]*> nop
-+0000dc1c <[^>]*> nop
-+0000dc20 <[^>]*> nop
-+0000dc24 <[^>]*> nop
-+0000dc28 <[^>]*> nop
-+0000dc2c <[^>]*> nop
-+0000dc30 <[^>]*> nop
-+0000dc34 <[^>]*> nop
-+0000dc38 <[^>]*> nop
-+0000dc3c <[^>]*> nop
-+0000dc40 <[^>]*> nop
-+0000dc44 <[^>]*> nop
-+0000dc48 <[^>]*> nop
-+0000dc4c <[^>]*> nop
-+0000dc50 <[^>]*> nop
-+0000dc54 <[^>]*> nop
-+0000dc58 <[^>]*> nop
-+0000dc5c <[^>]*> nop
-+0000dc60 <[^>]*> nop
-+0000dc64 <[^>]*> nop
-+0000dc68 <[^>]*> nop
-+0000dc6c <[^>]*> nop
-+0000dc70 <[^>]*> nop
-+0000dc74 <[^>]*> nop
-+0000dc78 <[^>]*> nop
-+0000dc7c <[^>]*> nop
-+0000dc80 <[^>]*> nop
-+0000dc84 <[^>]*> nop
-+0000dc88 <[^>]*> nop
-+0000dc8c <[^>]*> nop
-+0000dc90 <[^>]*> nop
-+0000dc94 <[^>]*> nop
-+0000dc98 <[^>]*> nop
-+0000dc9c <[^>]*> nop
-+0000dca0 <[^>]*> nop
-+0000dca4 <[^>]*> nop
-+0000dca8 <[^>]*> nop
-+0000dcac <[^>]*> nop
-+0000dcb0 <[^>]*> nop
-+0000dcb4 <[^>]*> nop
-+0000dcb8 <[^>]*> nop
-+0000dcbc <[^>]*> nop
-+0000dcc0 <[^>]*> nop
-+0000dcc4 <[^>]*> nop
-+0000dcc8 <[^>]*> nop
-+0000dccc <[^>]*> nop
-+0000dcd0 <[^>]*> nop
-+0000dcd4 <[^>]*> nop
-+0000dcd8 <[^>]*> nop
-+0000dcdc <[^>]*> nop
-+0000dce0 <[^>]*> nop
-+0000dce4 <[^>]*> nop
-+0000dce8 <[^>]*> nop
-+0000dcec <[^>]*> nop
-+0000dcf0 <[^>]*> nop
-+0000dcf4 <[^>]*> nop
-+0000dcf8 <[^>]*> nop
-+0000dcfc <[^>]*> nop
-+0000dd00 <[^>]*> nop
-+0000dd04 <[^>]*> nop
-+0000dd08 <[^>]*> nop
-+0000dd0c <[^>]*> nop
-+0000dd10 <[^>]*> nop
-+0000dd14 <[^>]*> nop
-+0000dd18 <[^>]*> nop
-+0000dd1c <[^>]*> nop
-+0000dd20 <[^>]*> nop
-+0000dd24 <[^>]*> nop
-+0000dd28 <[^>]*> nop
-+0000dd2c <[^>]*> nop
-+0000dd30 <[^>]*> nop
-+0000dd34 <[^>]*> nop
-+0000dd38 <[^>]*> nop
-+0000dd3c <[^>]*> nop
-+0000dd40 <[^>]*> nop
-+0000dd44 <[^>]*> nop
-+0000dd48 <[^>]*> nop
-+0000dd4c <[^>]*> nop
-+0000dd50 <[^>]*> nop
-+0000dd54 <[^>]*> nop
-+0000dd58 <[^>]*> nop
-+0000dd5c <[^>]*> nop
-+0000dd60 <[^>]*> nop
-+0000dd64 <[^>]*> nop
-+0000dd68 <[^>]*> nop
-+0000dd6c <[^>]*> nop
-+0000dd70 <[^>]*> nop
-+0000dd74 <[^>]*> nop
-+0000dd78 <[^>]*> nop
-+0000dd7c <[^>]*> nop
-+0000dd80 <[^>]*> nop
-+0000dd84 <[^>]*> nop
-+0000dd88 <[^>]*> nop
-+0000dd8c <[^>]*> nop
-+0000dd90 <[^>]*> nop
-+0000dd94 <[^>]*> nop
-+0000dd98 <[^>]*> nop
-+0000dd9c <[^>]*> nop
-+0000dda0 <[^>]*> nop
-+0000dda4 <[^>]*> nop
-+0000dda8 <[^>]*> nop
-+0000ddac <[^>]*> nop
-+0000ddb0 <[^>]*> nop
-+0000ddb4 <[^>]*> nop
-+0000ddb8 <[^>]*> nop
-+0000ddbc <[^>]*> nop
-+0000ddc0 <[^>]*> nop
-+0000ddc4 <[^>]*> nop
-+0000ddc8 <[^>]*> nop
-+0000ddcc <[^>]*> nop
-+0000ddd0 <[^>]*> nop
-+0000ddd4 <[^>]*> nop
-+0000ddd8 <[^>]*> nop
-+0000dddc <[^>]*> nop
-+0000dde0 <[^>]*> nop
-+0000dde4 <[^>]*> nop
-+0000dde8 <[^>]*> nop
-+0000ddec <[^>]*> nop
-+0000ddf0 <[^>]*> nop
-+0000ddf4 <[^>]*> nop
-+0000ddf8 <[^>]*> nop
-+0000ddfc <[^>]*> nop
-+0000de00 <[^>]*> nop
-+0000de04 <[^>]*> nop
-+0000de08 <[^>]*> nop
-+0000de0c <[^>]*> nop
-+0000de10 <[^>]*> nop
-+0000de14 <[^>]*> nop
-+0000de18 <[^>]*> nop
-+0000de1c <[^>]*> nop
-+0000de20 <[^>]*> nop
-+0000de24 <[^>]*> nop
-+0000de28 <[^>]*> nop
-+0000de2c <[^>]*> nop
-+0000de30 <[^>]*> nop
-+0000de34 <[^>]*> nop
-+0000de38 <[^>]*> nop
-+0000de3c <[^>]*> nop
-+0000de40 <[^>]*> nop
-+0000de44 <[^>]*> nop
-+0000de48 <[^>]*> nop
-+0000de4c <[^>]*> nop
-+0000de50 <[^>]*> nop
-+0000de54 <[^>]*> nop
-+0000de58 <[^>]*> nop
-+0000de5c <[^>]*> nop
-+0000de60 <[^>]*> nop
-+0000de64 <[^>]*> nop
-+0000de68 <[^>]*> nop
-+0000de6c <[^>]*> nop
-+0000de70 <[^>]*> nop
-+0000de74 <[^>]*> nop
-+0000de78 <[^>]*> nop
-+0000de7c <[^>]*> nop
-+0000de80 <[^>]*> nop
-+0000de84 <[^>]*> nop
-+0000de88 <[^>]*> nop
-+0000de8c <[^>]*> nop
-+0000de90 <[^>]*> nop
-+0000de94 <[^>]*> nop
-+0000de98 <[^>]*> nop
-+0000de9c <[^>]*> nop
-+0000dea0 <[^>]*> nop
-+0000dea4 <[^>]*> nop
-+0000dea8 <[^>]*> nop
-+0000deac <[^>]*> nop
-+0000deb0 <[^>]*> nop
-+0000deb4 <[^>]*> nop
-+0000deb8 <[^>]*> nop
-+0000debc <[^>]*> nop
-+0000dec0 <[^>]*> nop
-+0000dec4 <[^>]*> nop
-+0000dec8 <[^>]*> nop
-+0000decc <[^>]*> nop
-+0000ded0 <[^>]*> nop
-+0000ded4 <[^>]*> nop
-+0000ded8 <[^>]*> nop
-+0000dedc <[^>]*> nop
-+0000dee0 <[^>]*> nop
-+0000dee4 <[^>]*> nop
-+0000dee8 <[^>]*> nop
-+0000deec <[^>]*> nop
-+0000def0 <[^>]*> nop
-+0000def4 <[^>]*> nop
-+0000def8 <[^>]*> nop
-+0000defc <[^>]*> nop
-+0000df00 <[^>]*> nop
-+0000df04 <[^>]*> nop
-+0000df08 <[^>]*> nop
-+0000df0c <[^>]*> nop
-+0000df10 <[^>]*> nop
-+0000df14 <[^>]*> nop
-+0000df18 <[^>]*> nop
-+0000df1c <[^>]*> nop
-+0000df20 <[^>]*> nop
-+0000df24 <[^>]*> nop
-+0000df28 <[^>]*> nop
-+0000df2c <[^>]*> nop
-+0000df30 <[^>]*> nop
-+0000df34 <[^>]*> nop
-+0000df38 <[^>]*> nop
-+0000df3c <[^>]*> nop
-+0000df40 <[^>]*> nop
-+0000df44 <[^>]*> nop
-+0000df48 <[^>]*> nop
-+0000df4c <[^>]*> nop
-+0000df50 <[^>]*> nop
-+0000df54 <[^>]*> nop
-+0000df58 <[^>]*> nop
-+0000df5c <[^>]*> nop
-+0000df60 <[^>]*> nop
-+0000df64 <[^>]*> nop
-+0000df68 <[^>]*> nop
-+0000df6c <[^>]*> nop
-+0000df70 <[^>]*> nop
-+0000df74 <[^>]*> nop
-+0000df78 <[^>]*> nop
-+0000df7c <[^>]*> nop
-+0000df80 <[^>]*> nop
-+0000df84 <[^>]*> nop
-+0000df88 <[^>]*> nop
-+0000df8c <[^>]*> nop
-+0000df90 <[^>]*> nop
-+0000df94 <[^>]*> nop
-+0000df98 <[^>]*> nop
-+0000df9c <[^>]*> nop
-+0000dfa0 <[^>]*> nop
-+0000dfa4 <[^>]*> nop
-+0000dfa8 <[^>]*> nop
-+0000dfac <[^>]*> nop
-+0000dfb0 <[^>]*> nop
-+0000dfb4 <[^>]*> nop
-+0000dfb8 <[^>]*> nop
-+0000dfbc <[^>]*> nop
-+0000dfc0 <[^>]*> nop
-+0000dfc4 <[^>]*> nop
-+0000dfc8 <[^>]*> nop
-+0000dfcc <[^>]*> nop
-+0000dfd0 <[^>]*> nop
-+0000dfd4 <[^>]*> nop
-+0000dfd8 <[^>]*> nop
-+0000dfdc <[^>]*> nop
-+0000dfe0 <[^>]*> nop
-+0000dfe4 <[^>]*> nop
-+0000dfe8 <[^>]*> nop
-+0000dfec <[^>]*> nop
-+0000dff0 <[^>]*> nop
-+0000dff4 <[^>]*> nop
-+0000dff8 <[^>]*> nop
-+0000dffc <[^>]*> nop
-+0000e000 <[^>]*> nop
-+0000e004 <[^>]*> nop
-+0000e008 <[^>]*> nop
-+0000e00c <[^>]*> nop
-+0000e010 <[^>]*> nop
-+0000e014 <[^>]*> nop
-+0000e018 <[^>]*> nop
-+0000e01c <[^>]*> nop
-+0000e020 <[^>]*> nop
-+0000e024 <[^>]*> nop
-+0000e028 <[^>]*> nop
-+0000e02c <[^>]*> nop
-+0000e030 <[^>]*> nop
-+0000e034 <[^>]*> nop
-+0000e038 <[^>]*> nop
-+0000e03c <[^>]*> nop
-+0000e040 <[^>]*> nop
-+0000e044 <[^>]*> nop
-+0000e048 <[^>]*> nop
-+0000e04c <[^>]*> nop
-+0000e050 <[^>]*> nop
-+0000e054 <[^>]*> nop
-+0000e058 <[^>]*> nop
-+0000e05c <[^>]*> nop
-+0000e060 <[^>]*> nop
-+0000e064 <[^>]*> nop
-+0000e068 <[^>]*> nop
-+0000e06c <[^>]*> nop
-+0000e070 <[^>]*> nop
-+0000e074 <[^>]*> nop
-+0000e078 <[^>]*> nop
-+0000e07c <[^>]*> nop
-+0000e080 <[^>]*> nop
-+0000e084 <[^>]*> nop
-+0000e088 <[^>]*> nop
-+0000e08c <[^>]*> nop
-+0000e090 <[^>]*> nop
-+0000e094 <[^>]*> nop
-+0000e098 <[^>]*> nop
-+0000e09c <[^>]*> nop
-+0000e0a0 <[^>]*> nop
-+0000e0a4 <[^>]*> nop
-+0000e0a8 <[^>]*> nop
-+0000e0ac <[^>]*> nop
-+0000e0b0 <[^>]*> nop
-+0000e0b4 <[^>]*> nop
-+0000e0b8 <[^>]*> nop
-+0000e0bc <[^>]*> nop
-+0000e0c0 <[^>]*> nop
-+0000e0c4 <[^>]*> nop
-+0000e0c8 <[^>]*> nop
-+0000e0cc <[^>]*> nop
-+0000e0d0 <[^>]*> nop
-+0000e0d4 <[^>]*> nop
-+0000e0d8 <[^>]*> nop
-+0000e0dc <[^>]*> nop
-+0000e0e0 <[^>]*> nop
-+0000e0e4 <[^>]*> nop
-+0000e0e8 <[^>]*> nop
-+0000e0ec <[^>]*> nop
-+0000e0f0 <[^>]*> nop
-+0000e0f4 <[^>]*> nop
-+0000e0f8 <[^>]*> nop
-+0000e0fc <[^>]*> nop
-+0000e100 <[^>]*> nop
-+0000e104 <[^>]*> nop
-+0000e108 <[^>]*> nop
-+0000e10c <[^>]*> nop
-+0000e110 <[^>]*> nop
-+0000e114 <[^>]*> nop
-+0000e118 <[^>]*> nop
-+0000e11c <[^>]*> nop
-+0000e120 <[^>]*> nop
-+0000e124 <[^>]*> nop
-+0000e128 <[^>]*> nop
-+0000e12c <[^>]*> nop
-+0000e130 <[^>]*> nop
-+0000e134 <[^>]*> nop
-+0000e138 <[^>]*> nop
-+0000e13c <[^>]*> nop
-+0000e140 <[^>]*> nop
-+0000e144 <[^>]*> nop
-+0000e148 <[^>]*> nop
-+0000e14c <[^>]*> nop
-+0000e150 <[^>]*> nop
-+0000e154 <[^>]*> nop
-+0000e158 <[^>]*> nop
-+0000e15c <[^>]*> nop
-+0000e160 <[^>]*> nop
-+0000e164 <[^>]*> nop
-+0000e168 <[^>]*> nop
-+0000e16c <[^>]*> nop
-+0000e170 <[^>]*> nop
-+0000e174 <[^>]*> nop
-+0000e178 <[^>]*> nop
-+0000e17c <[^>]*> nop
-+0000e180 <[^>]*> nop
-+0000e184 <[^>]*> nop
-+0000e188 <[^>]*> nop
-+0000e18c <[^>]*> nop
-+0000e190 <[^>]*> nop
-+0000e194 <[^>]*> nop
-+0000e198 <[^>]*> nop
-+0000e19c <[^>]*> nop
-+0000e1a0 <[^>]*> nop
-+0000e1a4 <[^>]*> nop
-+0000e1a8 <[^>]*> nop
-+0000e1ac <[^>]*> nop
-+0000e1b0 <[^>]*> nop
-+0000e1b4 <[^>]*> nop
-+0000e1b8 <[^>]*> nop
-+0000e1bc <[^>]*> nop
-+0000e1c0 <[^>]*> nop
-+0000e1c4 <[^>]*> nop
-+0000e1c8 <[^>]*> nop
-+0000e1cc <[^>]*> nop
-+0000e1d0 <[^>]*> nop
-+0000e1d4 <[^>]*> nop
-+0000e1d8 <[^>]*> nop
-+0000e1dc <[^>]*> nop
-+0000e1e0 <[^>]*> nop
-+0000e1e4 <[^>]*> nop
-+0000e1e8 <[^>]*> nop
-+0000e1ec <[^>]*> nop
-+0000e1f0 <[^>]*> nop
-+0000e1f4 <[^>]*> nop
-+0000e1f8 <[^>]*> nop
-+0000e1fc <[^>]*> nop
-+0000e200 <[^>]*> nop
-+0000e204 <[^>]*> nop
-+0000e208 <[^>]*> nop
-+0000e20c <[^>]*> nop
-+0000e210 <[^>]*> nop
-+0000e214 <[^>]*> nop
-+0000e218 <[^>]*> nop
-+0000e21c <[^>]*> nop
-+0000e220 <[^>]*> nop
-+0000e224 <[^>]*> nop
-+0000e228 <[^>]*> nop
-+0000e22c <[^>]*> nop
-+0000e230 <[^>]*> nop
-+0000e234 <[^>]*> nop
-+0000e238 <[^>]*> nop
-+0000e23c <[^>]*> nop
-+0000e240 <[^>]*> nop
-+0000e244 <[^>]*> nop
-+0000e248 <[^>]*> nop
-+0000e24c <[^>]*> nop
-+0000e250 <[^>]*> nop
-+0000e254 <[^>]*> nop
-+0000e258 <[^>]*> nop
-+0000e25c <[^>]*> nop
-+0000e260 <[^>]*> nop
-+0000e264 <[^>]*> nop
-+0000e268 <[^>]*> nop
-+0000e26c <[^>]*> nop
-+0000e270 <[^>]*> nop
-+0000e274 <[^>]*> nop
-+0000e278 <[^>]*> nop
-+0000e27c <[^>]*> nop
-+0000e280 <[^>]*> nop
-+0000e284 <[^>]*> nop
-+0000e288 <[^>]*> nop
-+0000e28c <[^>]*> nop
-+0000e290 <[^>]*> nop
-+0000e294 <[^>]*> nop
-+0000e298 <[^>]*> nop
-+0000e29c <[^>]*> nop
-+0000e2a0 <[^>]*> nop
-+0000e2a4 <[^>]*> nop
-+0000e2a8 <[^>]*> nop
-+0000e2ac <[^>]*> nop
-+0000e2b0 <[^>]*> nop
-+0000e2b4 <[^>]*> nop
-+0000e2b8 <[^>]*> nop
-+0000e2bc <[^>]*> nop
-+0000e2c0 <[^>]*> nop
-+0000e2c4 <[^>]*> nop
-+0000e2c8 <[^>]*> nop
-+0000e2cc <[^>]*> nop
-+0000e2d0 <[^>]*> nop
-+0000e2d4 <[^>]*> nop
-+0000e2d8 <[^>]*> nop
-+0000e2dc <[^>]*> nop
-+0000e2e0 <[^>]*> nop
-+0000e2e4 <[^>]*> nop
-+0000e2e8 <[^>]*> nop
-+0000e2ec <[^>]*> nop
-+0000e2f0 <[^>]*> nop
-+0000e2f4 <[^>]*> nop
-+0000e2f8 <[^>]*> nop
-+0000e2fc <[^>]*> nop
-+0000e300 <[^>]*> nop
-+0000e304 <[^>]*> nop
-+0000e308 <[^>]*> nop
-+0000e30c <[^>]*> nop
-+0000e310 <[^>]*> nop
-+0000e314 <[^>]*> nop
-+0000e318 <[^>]*> nop
-+0000e31c <[^>]*> nop
-+0000e320 <[^>]*> nop
-+0000e324 <[^>]*> nop
-+0000e328 <[^>]*> nop
-+0000e32c <[^>]*> nop
-+0000e330 <[^>]*> nop
-+0000e334 <[^>]*> nop
-+0000e338 <[^>]*> nop
-+0000e33c <[^>]*> nop
-+0000e340 <[^>]*> nop
-+0000e344 <[^>]*> nop
-+0000e348 <[^>]*> nop
-+0000e34c <[^>]*> nop
-+0000e350 <[^>]*> nop
-+0000e354 <[^>]*> nop
-+0000e358 <[^>]*> nop
-+0000e35c <[^>]*> nop
-+0000e360 <[^>]*> nop
-+0000e364 <[^>]*> nop
-+0000e368 <[^>]*> nop
-+0000e36c <[^>]*> nop
-+0000e370 <[^>]*> nop
-+0000e374 <[^>]*> nop
-+0000e378 <[^>]*> nop
-+0000e37c <[^>]*> nop
-+0000e380 <[^>]*> nop
-+0000e384 <[^>]*> nop
-+0000e388 <[^>]*> nop
-+0000e38c <[^>]*> nop
-+0000e390 <[^>]*> nop
-+0000e394 <[^>]*> nop
-+0000e398 <[^>]*> nop
-+0000e39c <[^>]*> nop
-+0000e3a0 <[^>]*> nop
-+0000e3a4 <[^>]*> nop
-+0000e3a8 <[^>]*> nop
-+0000e3ac <[^>]*> nop
-+0000e3b0 <[^>]*> nop
-+0000e3b4 <[^>]*> nop
-+0000e3b8 <[^>]*> nop
-+0000e3bc <[^>]*> nop
-+0000e3c0 <[^>]*> nop
-+0000e3c4 <[^>]*> nop
-+0000e3c8 <[^>]*> nop
-+0000e3cc <[^>]*> nop
-+0000e3d0 <[^>]*> nop
-+0000e3d4 <[^>]*> nop
-+0000e3d8 <[^>]*> nop
-+0000e3dc <[^>]*> nop
-+0000e3e0 <[^>]*> nop
-+0000e3e4 <[^>]*> nop
-+0000e3e8 <[^>]*> nop
-+0000e3ec <[^>]*> nop
-+0000e3f0 <[^>]*> nop
-+0000e3f4 <[^>]*> nop
-+0000e3f8 <[^>]*> nop
-+0000e3fc <[^>]*> nop
-+0000e400 <[^>]*> nop
-+0000e404 <[^>]*> nop
-+0000e408 <[^>]*> nop
-+0000e40c <[^>]*> nop
-+0000e410 <[^>]*> nop
-+0000e414 <[^>]*> nop
-+0000e418 <[^>]*> nop
-+0000e41c <[^>]*> nop
-+0000e420 <[^>]*> nop
-+0000e424 <[^>]*> nop
-+0000e428 <[^>]*> nop
-+0000e42c <[^>]*> nop
-+0000e430 <[^>]*> nop
-+0000e434 <[^>]*> nop
-+0000e438 <[^>]*> nop
-+0000e43c <[^>]*> nop
-+0000e440 <[^>]*> nop
-+0000e444 <[^>]*> nop
-+0000e448 <[^>]*> nop
-+0000e44c <[^>]*> nop
-+0000e450 <[^>]*> nop
-+0000e454 <[^>]*> nop
-+0000e458 <[^>]*> nop
-+0000e45c <[^>]*> nop
-+0000e460 <[^>]*> nop
-+0000e464 <[^>]*> nop
-+0000e468 <[^>]*> nop
-+0000e46c <[^>]*> nop
-+0000e470 <[^>]*> nop
-+0000e474 <[^>]*> nop
-+0000e478 <[^>]*> nop
-+0000e47c <[^>]*> nop
-+0000e480 <[^>]*> nop
-+0000e484 <[^>]*> nop
-+0000e488 <[^>]*> nop
-+0000e48c <[^>]*> nop
-+0000e490 <[^>]*> nop
-+0000e494 <[^>]*> nop
-+0000e498 <[^>]*> nop
-+0000e49c <[^>]*> nop
-+0000e4a0 <[^>]*> nop
-+0000e4a4 <[^>]*> nop
-+0000e4a8 <[^>]*> nop
-+0000e4ac <[^>]*> nop
-+0000e4b0 <[^>]*> nop
-+0000e4b4 <[^>]*> nop
-+0000e4b8 <[^>]*> nop
-+0000e4bc <[^>]*> nop
-+0000e4c0 <[^>]*> nop
-+0000e4c4 <[^>]*> nop
-+0000e4c8 <[^>]*> nop
-+0000e4cc <[^>]*> nop
-+0000e4d0 <[^>]*> nop
-+0000e4d4 <[^>]*> nop
-+0000e4d8 <[^>]*> nop
-+0000e4dc <[^>]*> nop
-+0000e4e0 <[^>]*> nop
-+0000e4e4 <[^>]*> nop
-+0000e4e8 <[^>]*> nop
-+0000e4ec <[^>]*> nop
-+0000e4f0 <[^>]*> nop
-+0000e4f4 <[^>]*> nop
-+0000e4f8 <[^>]*> nop
-+0000e4fc <[^>]*> nop
-+0000e500 <[^>]*> nop
-+0000e504 <[^>]*> nop
-+0000e508 <[^>]*> nop
-+0000e50c <[^>]*> nop
-+0000e510 <[^>]*> nop
-+0000e514 <[^>]*> nop
-+0000e518 <[^>]*> nop
-+0000e51c <[^>]*> nop
-+0000e520 <[^>]*> nop
-+0000e524 <[^>]*> nop
-+0000e528 <[^>]*> nop
-+0000e52c <[^>]*> nop
-+0000e530 <[^>]*> nop
-+0000e534 <[^>]*> nop
-+0000e538 <[^>]*> nop
-+0000e53c <[^>]*> nop
-+0000e540 <[^>]*> nop
-+0000e544 <[^>]*> nop
-+0000e548 <[^>]*> nop
-+0000e54c <[^>]*> nop
-+0000e550 <[^>]*> nop
-+0000e554 <[^>]*> nop
-+0000e558 <[^>]*> nop
-+0000e55c <[^>]*> nop
-+0000e560 <[^>]*> nop
-+0000e564 <[^>]*> nop
-+0000e568 <[^>]*> nop
-+0000e56c <[^>]*> nop
-+0000e570 <[^>]*> nop
-+0000e574 <[^>]*> nop
-+0000e578 <[^>]*> nop
-+0000e57c <[^>]*> nop
-+0000e580 <[^>]*> nop
-+0000e584 <[^>]*> nop
-+0000e588 <[^>]*> nop
-+0000e58c <[^>]*> nop
-+0000e590 <[^>]*> nop
-+0000e594 <[^>]*> nop
-+0000e598 <[^>]*> nop
-+0000e59c <[^>]*> nop
-+0000e5a0 <[^>]*> nop
-+0000e5a4 <[^>]*> nop
-+0000e5a8 <[^>]*> nop
-+0000e5ac <[^>]*> nop
-+0000e5b0 <[^>]*> nop
-+0000e5b4 <[^>]*> nop
-+0000e5b8 <[^>]*> nop
-+0000e5bc <[^>]*> nop
-+0000e5c0 <[^>]*> nop
-+0000e5c4 <[^>]*> nop
-+0000e5c8 <[^>]*> nop
-+0000e5cc <[^>]*> nop
-+0000e5d0 <[^>]*> nop
-+0000e5d4 <[^>]*> nop
-+0000e5d8 <[^>]*> nop
-+0000e5dc <[^>]*> nop
-+0000e5e0 <[^>]*> nop
-+0000e5e4 <[^>]*> nop
-+0000e5e8 <[^>]*> nop
-+0000e5ec <[^>]*> nop
-+0000e5f0 <[^>]*> nop
-+0000e5f4 <[^>]*> nop
-+0000e5f8 <[^>]*> nop
-+0000e5fc <[^>]*> nop
-+0000e600 <[^>]*> nop
-+0000e604 <[^>]*> nop
-+0000e608 <[^>]*> nop
-+0000e60c <[^>]*> nop
-+0000e610 <[^>]*> nop
-+0000e614 <[^>]*> nop
-+0000e618 <[^>]*> nop
-+0000e61c <[^>]*> nop
-+0000e620 <[^>]*> nop
-+0000e624 <[^>]*> nop
-+0000e628 <[^>]*> nop
-+0000e62c <[^>]*> nop
-+0000e630 <[^>]*> nop
-+0000e634 <[^>]*> nop
-+0000e638 <[^>]*> nop
-+0000e63c <[^>]*> nop
-+0000e640 <[^>]*> nop
-+0000e644 <[^>]*> nop
-+0000e648 <[^>]*> nop
-+0000e64c <[^>]*> nop
-+0000e650 <[^>]*> nop
-+0000e654 <[^>]*> nop
-+0000e658 <[^>]*> nop
-+0000e65c <[^>]*> nop
-+0000e660 <[^>]*> nop
-+0000e664 <[^>]*> nop
-+0000e668 <[^>]*> nop
-+0000e66c <[^>]*> nop
-+0000e670 <[^>]*> nop
-+0000e674 <[^>]*> nop
-+0000e678 <[^>]*> nop
-+0000e67c <[^>]*> nop
-+0000e680 <[^>]*> nop
-+0000e684 <[^>]*> nop
-+0000e688 <[^>]*> nop
-+0000e68c <[^>]*> nop
-+0000e690 <[^>]*> nop
-+0000e694 <[^>]*> nop
-+0000e698 <[^>]*> nop
-+0000e69c <[^>]*> nop
-+0000e6a0 <[^>]*> nop
-+0000e6a4 <[^>]*> nop
-+0000e6a8 <[^>]*> nop
-+0000e6ac <[^>]*> nop
-+0000e6b0 <[^>]*> nop
-+0000e6b4 <[^>]*> nop
-+0000e6b8 <[^>]*> nop
-+0000e6bc <[^>]*> nop
-+0000e6c0 <[^>]*> nop
-+0000e6c4 <[^>]*> nop
-+0000e6c8 <[^>]*> nop
-+0000e6cc <[^>]*> nop
-+0000e6d0 <[^>]*> nop
-+0000e6d4 <[^>]*> nop
-+0000e6d8 <[^>]*> nop
-+0000e6dc <[^>]*> nop
-+0000e6e0 <[^>]*> nop
-+0000e6e4 <[^>]*> nop
-+0000e6e8 <[^>]*> nop
-+0000e6ec <[^>]*> nop
-+0000e6f0 <[^>]*> nop
-+0000e6f4 <[^>]*> nop
-+0000e6f8 <[^>]*> nop
-+0000e6fc <[^>]*> nop
-+0000e700 <[^>]*> nop
-+0000e704 <[^>]*> nop
-+0000e708 <[^>]*> nop
-+0000e70c <[^>]*> nop
-+0000e710 <[^>]*> nop
-+0000e714 <[^>]*> nop
-+0000e718 <[^>]*> nop
-+0000e71c <[^>]*> nop
-+0000e720 <[^>]*> nop
-+0000e724 <[^>]*> nop
-+0000e728 <[^>]*> nop
-+0000e72c <[^>]*> nop
-+0000e730 <[^>]*> nop
-+0000e734 <[^>]*> nop
-+0000e738 <[^>]*> nop
-+0000e73c <[^>]*> nop
-+0000e740 <[^>]*> nop
-+0000e744 <[^>]*> nop
-+0000e748 <[^>]*> nop
-+0000e74c <[^>]*> nop
-+0000e750 <[^>]*> nop
-+0000e754 <[^>]*> nop
-+0000e758 <[^>]*> nop
-+0000e75c <[^>]*> nop
-+0000e760 <[^>]*> nop
-+0000e764 <[^>]*> nop
-+0000e768 <[^>]*> nop
-+0000e76c <[^>]*> nop
-+0000e770 <[^>]*> nop
-+0000e774 <[^>]*> nop
-+0000e778 <[^>]*> nop
-+0000e77c <[^>]*> nop
-+0000e780 <[^>]*> nop
-+0000e784 <[^>]*> nop
-+0000e788 <[^>]*> nop
-+0000e78c <[^>]*> nop
-+0000e790 <[^>]*> nop
-+0000e794 <[^>]*> nop
-+0000e798 <[^>]*> nop
-+0000e79c <[^>]*> nop
-+0000e7a0 <[^>]*> nop
-+0000e7a4 <[^>]*> nop
-+0000e7a8 <[^>]*> nop
-+0000e7ac <[^>]*> nop
-+0000e7b0 <[^>]*> nop
-+0000e7b4 <[^>]*> nop
-+0000e7b8 <[^>]*> nop
-+0000e7bc <[^>]*> nop
-+0000e7c0 <[^>]*> nop
-+0000e7c4 <[^>]*> nop
-+0000e7c8 <[^>]*> nop
-+0000e7cc <[^>]*> nop
-+0000e7d0 <[^>]*> nop
-+0000e7d4 <[^>]*> nop
-+0000e7d8 <[^>]*> nop
-+0000e7dc <[^>]*> nop
-+0000e7e0 <[^>]*> nop
-+0000e7e4 <[^>]*> nop
-+0000e7e8 <[^>]*> nop
-+0000e7ec <[^>]*> nop
-+0000e7f0 <[^>]*> nop
-+0000e7f4 <[^>]*> nop
-+0000e7f8 <[^>]*> nop
-+0000e7fc <[^>]*> nop
-+0000e800 <[^>]*> nop
-+0000e804 <[^>]*> nop
-+0000e808 <[^>]*> nop
-+0000e80c <[^>]*> nop
-+0000e810 <[^>]*> nop
-+0000e814 <[^>]*> nop
-+0000e818 <[^>]*> nop
-+0000e81c <[^>]*> nop
-+0000e820 <[^>]*> nop
-+0000e824 <[^>]*> nop
-+0000e828 <[^>]*> nop
-+0000e82c <[^>]*> nop
-+0000e830 <[^>]*> nop
-+0000e834 <[^>]*> nop
-+0000e838 <[^>]*> nop
-+0000e83c <[^>]*> nop
-+0000e840 <[^>]*> nop
-+0000e844 <[^>]*> nop
-+0000e848 <[^>]*> nop
-+0000e84c <[^>]*> nop
-+0000e850 <[^>]*> nop
-+0000e854 <[^>]*> nop
-+0000e858 <[^>]*> nop
-+0000e85c <[^>]*> nop
-+0000e860 <[^>]*> nop
-+0000e864 <[^>]*> nop
-+0000e868 <[^>]*> nop
-+0000e86c <[^>]*> nop
-+0000e870 <[^>]*> nop
-+0000e874 <[^>]*> nop
-+0000e878 <[^>]*> nop
-+0000e87c <[^>]*> nop
-+0000e880 <[^>]*> nop
-+0000e884 <[^>]*> nop
-+0000e888 <[^>]*> nop
-+0000e88c <[^>]*> nop
-+0000e890 <[^>]*> nop
-+0000e894 <[^>]*> nop
-+0000e898 <[^>]*> nop
-+0000e89c <[^>]*> nop
-+0000e8a0 <[^>]*> nop
-+0000e8a4 <[^>]*> nop
-+0000e8a8 <[^>]*> nop
-+0000e8ac <[^>]*> nop
-+0000e8b0 <[^>]*> nop
-+0000e8b4 <[^>]*> nop
-+0000e8b8 <[^>]*> nop
-+0000e8bc <[^>]*> nop
-+0000e8c0 <[^>]*> nop
-+0000e8c4 <[^>]*> nop
-+0000e8c8 <[^>]*> nop
-+0000e8cc <[^>]*> nop
-+0000e8d0 <[^>]*> nop
-+0000e8d4 <[^>]*> nop
-+0000e8d8 <[^>]*> nop
-+0000e8dc <[^>]*> nop
-+0000e8e0 <[^>]*> nop
-+0000e8e4 <[^>]*> nop
-+0000e8e8 <[^>]*> nop
-+0000e8ec <[^>]*> nop
-+0000e8f0 <[^>]*> nop
-+0000e8f4 <[^>]*> nop
-+0000e8f8 <[^>]*> nop
-+0000e8fc <[^>]*> nop
-+0000e900 <[^>]*> nop
-+0000e904 <[^>]*> nop
-+0000e908 <[^>]*> nop
-+0000e90c <[^>]*> nop
-+0000e910 <[^>]*> nop
-+0000e914 <[^>]*> nop
-+0000e918 <[^>]*> nop
-+0000e91c <[^>]*> nop
-+0000e920 <[^>]*> nop
-+0000e924 <[^>]*> nop
-+0000e928 <[^>]*> nop
-+0000e92c <[^>]*> nop
-+0000e930 <[^>]*> nop
-+0000e934 <[^>]*> nop
-+0000e938 <[^>]*> nop
-+0000e93c <[^>]*> nop
-+0000e940 <[^>]*> nop
-+0000e944 <[^>]*> nop
-+0000e948 <[^>]*> nop
-+0000e94c <[^>]*> nop
-+0000e950 <[^>]*> nop
-+0000e954 <[^>]*> nop
-+0000e958 <[^>]*> nop
-+0000e95c <[^>]*> nop
-+0000e960 <[^>]*> nop
-+0000e964 <[^>]*> nop
-+0000e968 <[^>]*> nop
-+0000e96c <[^>]*> nop
-+0000e970 <[^>]*> nop
-+0000e974 <[^>]*> nop
-+0000e978 <[^>]*> nop
-+0000e97c <[^>]*> nop
-+0000e980 <[^>]*> nop
-+0000e984 <[^>]*> nop
-+0000e988 <[^>]*> nop
-+0000e98c <[^>]*> nop
-+0000e990 <[^>]*> nop
-+0000e994 <[^>]*> nop
-+0000e998 <[^>]*> nop
-+0000e99c <[^>]*> nop
-+0000e9a0 <[^>]*> nop
-+0000e9a4 <[^>]*> nop
-+0000e9a8 <[^>]*> nop
-+0000e9ac <[^>]*> nop
-+0000e9b0 <[^>]*> nop
-+0000e9b4 <[^>]*> nop
-+0000e9b8 <[^>]*> nop
-+0000e9bc <[^>]*> nop
-+0000e9c0 <[^>]*> nop
-+0000e9c4 <[^>]*> nop
-+0000e9c8 <[^>]*> nop
-+0000e9cc <[^>]*> nop
-+0000e9d0 <[^>]*> nop
-+0000e9d4 <[^>]*> nop
-+0000e9d8 <[^>]*> nop
-+0000e9dc <[^>]*> nop
-+0000e9e0 <[^>]*> nop
-+0000e9e4 <[^>]*> nop
-+0000e9e8 <[^>]*> nop
-+0000e9ec <[^>]*> nop
-+0000e9f0 <[^>]*> nop
-+0000e9f4 <[^>]*> nop
-+0000e9f8 <[^>]*> nop
-+0000e9fc <[^>]*> nop
-+0000ea00 <[^>]*> nop
-+0000ea04 <[^>]*> nop
-+0000ea08 <[^>]*> nop
-+0000ea0c <[^>]*> nop
-+0000ea10 <[^>]*> nop
-+0000ea14 <[^>]*> nop
-+0000ea18 <[^>]*> nop
-+0000ea1c <[^>]*> nop
-+0000ea20 <[^>]*> nop
-+0000ea24 <[^>]*> nop
-+0000ea28 <[^>]*> nop
-+0000ea2c <[^>]*> nop
-+0000ea30 <[^>]*> nop
-+0000ea34 <[^>]*> nop
-+0000ea38 <[^>]*> nop
-+0000ea3c <[^>]*> nop
-+0000ea40 <[^>]*> nop
-+0000ea44 <[^>]*> nop
-+0000ea48 <[^>]*> nop
-+0000ea4c <[^>]*> nop
-+0000ea50 <[^>]*> nop
-+0000ea54 <[^>]*> nop
-+0000ea58 <[^>]*> nop
-+0000ea5c <[^>]*> nop
-+0000ea60 <[^>]*> nop
-+0000ea64 <[^>]*> nop
-+0000ea68 <[^>]*> nop
-+0000ea6c <[^>]*> nop
-+0000ea70 <[^>]*> nop
-+0000ea74 <[^>]*> nop
-+0000ea78 <[^>]*> nop
-+0000ea7c <[^>]*> nop
-+0000ea80 <[^>]*> nop
-+0000ea84 <[^>]*> nop
-+0000ea88 <[^>]*> nop
-+0000ea8c <[^>]*> nop
-+0000ea90 <[^>]*> nop
-+0000ea94 <[^>]*> nop
-+0000ea98 <[^>]*> nop
-+0000ea9c <[^>]*> nop
-+0000eaa0 <[^>]*> nop
-+0000eaa4 <[^>]*> nop
-+0000eaa8 <[^>]*> nop
-+0000eaac <[^>]*> nop
-+0000eab0 <[^>]*> nop
-+0000eab4 <[^>]*> nop
-+0000eab8 <[^>]*> nop
-+0000eabc <[^>]*> nop
-+0000eac0 <[^>]*> nop
-+0000eac4 <[^>]*> nop
-+0000eac8 <[^>]*> nop
-+0000eacc <[^>]*> nop
-+0000ead0 <[^>]*> nop
-+0000ead4 <[^>]*> nop
-+0000ead8 <[^>]*> nop
-+0000eadc <[^>]*> nop
-+0000eae0 <[^>]*> nop
-+0000eae4 <[^>]*> nop
-+0000eae8 <[^>]*> nop
-+0000eaec <[^>]*> nop
-+0000eaf0 <[^>]*> nop
-+0000eaf4 <[^>]*> nop
-+0000eaf8 <[^>]*> nop
-+0000eafc <[^>]*> nop
-+0000eb00 <[^>]*> nop
-+0000eb04 <[^>]*> nop
-+0000eb08 <[^>]*> nop
-+0000eb0c <[^>]*> nop
-+0000eb10 <[^>]*> nop
-+0000eb14 <[^>]*> nop
-+0000eb18 <[^>]*> nop
-+0000eb1c <[^>]*> nop
-+0000eb20 <[^>]*> nop
-+0000eb24 <[^>]*> nop
-+0000eb28 <[^>]*> nop
-+0000eb2c <[^>]*> nop
-+0000eb30 <[^>]*> nop
-+0000eb34 <[^>]*> nop
-+0000eb38 <[^>]*> nop
-+0000eb3c <[^>]*> nop
-+0000eb40 <[^>]*> nop
-+0000eb44 <[^>]*> nop
-+0000eb48 <[^>]*> nop
-+0000eb4c <[^>]*> nop
-+0000eb50 <[^>]*> nop
-+0000eb54 <[^>]*> nop
-+0000eb58 <[^>]*> nop
-+0000eb5c <[^>]*> nop
-+0000eb60 <[^>]*> nop
-+0000eb64 <[^>]*> nop
-+0000eb68 <[^>]*> nop
-+0000eb6c <[^>]*> nop
-+0000eb70 <[^>]*> nop
-+0000eb74 <[^>]*> nop
-+0000eb78 <[^>]*> nop
-+0000eb7c <[^>]*> nop
-+0000eb80 <[^>]*> nop
-+0000eb84 <[^>]*> nop
-+0000eb88 <[^>]*> nop
-+0000eb8c <[^>]*> nop
-+0000eb90 <[^>]*> nop
-+0000eb94 <[^>]*> nop
-+0000eb98 <[^>]*> nop
-+0000eb9c <[^>]*> nop
-+0000eba0 <[^>]*> nop
-+0000eba4 <[^>]*> nop
-+0000eba8 <[^>]*> nop
-+0000ebac <[^>]*> nop
-+0000ebb0 <[^>]*> nop
-+0000ebb4 <[^>]*> nop
-+0000ebb8 <[^>]*> nop
-+0000ebbc <[^>]*> nop
-+0000ebc0 <[^>]*> nop
-+0000ebc4 <[^>]*> nop
-+0000ebc8 <[^>]*> nop
-+0000ebcc <[^>]*> nop
-+0000ebd0 <[^>]*> nop
-+0000ebd4 <[^>]*> nop
-+0000ebd8 <[^>]*> nop
-+0000ebdc <[^>]*> nop
-+0000ebe0 <[^>]*> nop
-+0000ebe4 <[^>]*> nop
-+0000ebe8 <[^>]*> nop
-+0000ebec <[^>]*> nop
-+0000ebf0 <[^>]*> nop
-+0000ebf4 <[^>]*> nop
-+0000ebf8 <[^>]*> nop
-+0000ebfc <[^>]*> nop
-+0000ec00 <[^>]*> nop
-+0000ec04 <[^>]*> nop
-+0000ec08 <[^>]*> nop
-+0000ec0c <[^>]*> nop
-+0000ec10 <[^>]*> nop
-+0000ec14 <[^>]*> nop
-+0000ec18 <[^>]*> nop
-+0000ec1c <[^>]*> nop
-+0000ec20 <[^>]*> nop
-+0000ec24 <[^>]*> nop
-+0000ec28 <[^>]*> nop
-+0000ec2c <[^>]*> nop
-+0000ec30 <[^>]*> nop
-+0000ec34 <[^>]*> nop
-+0000ec38 <[^>]*> nop
-+0000ec3c <[^>]*> nop
-+0000ec40 <[^>]*> nop
-+0000ec44 <[^>]*> nop
-+0000ec48 <[^>]*> nop
-+0000ec4c <[^>]*> nop
-+0000ec50 <[^>]*> nop
-+0000ec54 <[^>]*> nop
-+0000ec58 <[^>]*> nop
-+0000ec5c <[^>]*> nop
-+0000ec60 <[^>]*> nop
-+0000ec64 <[^>]*> nop
-+0000ec68 <[^>]*> nop
-+0000ec6c <[^>]*> nop
-+0000ec70 <[^>]*> nop
-+0000ec74 <[^>]*> nop
-+0000ec78 <[^>]*> nop
-+0000ec7c <[^>]*> nop
-+0000ec80 <[^>]*> nop
-+0000ec84 <[^>]*> nop
-+0000ec88 <[^>]*> nop
-+0000ec8c <[^>]*> nop
-+0000ec90 <[^>]*> nop
-+0000ec94 <[^>]*> nop
-+0000ec98 <[^>]*> nop
-+0000ec9c <[^>]*> nop
-+0000eca0 <[^>]*> nop
-+0000eca4 <[^>]*> nop
-+0000eca8 <[^>]*> nop
-+0000ecac <[^>]*> nop
-+0000ecb0 <[^>]*> nop
-+0000ecb4 <[^>]*> nop
-+0000ecb8 <[^>]*> nop
-+0000ecbc <[^>]*> nop
-+0000ecc0 <[^>]*> nop
-+0000ecc4 <[^>]*> nop
-+0000ecc8 <[^>]*> nop
-+0000eccc <[^>]*> nop
-+0000ecd0 <[^>]*> nop
-+0000ecd4 <[^>]*> nop
-+0000ecd8 <[^>]*> nop
-+0000ecdc <[^>]*> nop
-+0000ece0 <[^>]*> nop
-+0000ece4 <[^>]*> nop
-+0000ece8 <[^>]*> nop
-+0000ecec <[^>]*> nop
-+0000ecf0 <[^>]*> nop
-+0000ecf4 <[^>]*> nop
-+0000ecf8 <[^>]*> nop
-+0000ecfc <[^>]*> nop
-+0000ed00 <[^>]*> nop
-+0000ed04 <[^>]*> nop
-+0000ed08 <[^>]*> nop
-+0000ed0c <[^>]*> nop
-+0000ed10 <[^>]*> nop
-+0000ed14 <[^>]*> nop
-+0000ed18 <[^>]*> nop
-+0000ed1c <[^>]*> nop
-+0000ed20 <[^>]*> nop
-+0000ed24 <[^>]*> nop
-+0000ed28 <[^>]*> nop
-+0000ed2c <[^>]*> nop
-+0000ed30 <[^>]*> nop
-+0000ed34 <[^>]*> nop
-+0000ed38 <[^>]*> nop
-+0000ed3c <[^>]*> nop
-+0000ed40 <[^>]*> nop
-+0000ed44 <[^>]*> nop
-+0000ed48 <[^>]*> nop
-+0000ed4c <[^>]*> nop
-+0000ed50 <[^>]*> nop
-+0000ed54 <[^>]*> nop
-+0000ed58 <[^>]*> nop
-+0000ed5c <[^>]*> nop
-+0000ed60 <[^>]*> nop
-+0000ed64 <[^>]*> nop
-+0000ed68 <[^>]*> nop
-+0000ed6c <[^>]*> nop
-+0000ed70 <[^>]*> nop
-+0000ed74 <[^>]*> nop
-+0000ed78 <[^>]*> nop
-+0000ed7c <[^>]*> nop
-+0000ed80 <[^>]*> nop
-+0000ed84 <[^>]*> nop
-+0000ed88 <[^>]*> nop
-+0000ed8c <[^>]*> nop
-+0000ed90 <[^>]*> nop
-+0000ed94 <[^>]*> nop
-+0000ed98 <[^>]*> nop
-+0000ed9c <[^>]*> nop
-+0000eda0 <[^>]*> nop
-+0000eda4 <[^>]*> nop
-+0000eda8 <[^>]*> nop
-+0000edac <[^>]*> nop
-+0000edb0 <[^>]*> nop
-+0000edb4 <[^>]*> nop
-+0000edb8 <[^>]*> nop
-+0000edbc <[^>]*> nop
-+0000edc0 <[^>]*> nop
-+0000edc4 <[^>]*> nop
-+0000edc8 <[^>]*> nop
-+0000edcc <[^>]*> nop
-+0000edd0 <[^>]*> nop
-+0000edd4 <[^>]*> nop
-+0000edd8 <[^>]*> nop
-+0000eddc <[^>]*> nop
-+0000ede0 <[^>]*> nop
-+0000ede4 <[^>]*> nop
-+0000ede8 <[^>]*> nop
-+0000edec <[^>]*> nop
-+0000edf0 <[^>]*> nop
-+0000edf4 <[^>]*> nop
-+0000edf8 <[^>]*> nop
-+0000edfc <[^>]*> nop
-+0000ee00 <[^>]*> nop
-+0000ee04 <[^>]*> nop
-+0000ee08 <[^>]*> nop
-+0000ee0c <[^>]*> nop
-+0000ee10 <[^>]*> nop
-+0000ee14 <[^>]*> nop
-+0000ee18 <[^>]*> nop
-+0000ee1c <[^>]*> nop
-+0000ee20 <[^>]*> nop
-+0000ee24 <[^>]*> nop
-+0000ee28 <[^>]*> nop
-+0000ee2c <[^>]*> nop
-+0000ee30 <[^>]*> nop
-+0000ee34 <[^>]*> nop
-+0000ee38 <[^>]*> nop
-+0000ee3c <[^>]*> nop
-+0000ee40 <[^>]*> nop
-+0000ee44 <[^>]*> nop
-+0000ee48 <[^>]*> nop
-+0000ee4c <[^>]*> nop
-+0000ee50 <[^>]*> nop
-+0000ee54 <[^>]*> nop
-+0000ee58 <[^>]*> nop
-+0000ee5c <[^>]*> nop
-+0000ee60 <[^>]*> nop
-+0000ee64 <[^>]*> nop
-+0000ee68 <[^>]*> nop
-+0000ee6c <[^>]*> nop
-+0000ee70 <[^>]*> nop
-+0000ee74 <[^>]*> nop
-+0000ee78 <[^>]*> nop
-+0000ee7c <[^>]*> nop
-+0000ee80 <[^>]*> nop
-+0000ee84 <[^>]*> nop
-+0000ee88 <[^>]*> nop
-+0000ee8c <[^>]*> nop
-+0000ee90 <[^>]*> nop
-+0000ee94 <[^>]*> nop
-+0000ee98 <[^>]*> nop
-+0000ee9c <[^>]*> nop
-+0000eea0 <[^>]*> nop
-+0000eea4 <[^>]*> nop
-+0000eea8 <[^>]*> nop
-+0000eeac <[^>]*> nop
-+0000eeb0 <[^>]*> nop
-+0000eeb4 <[^>]*> nop
-+0000eeb8 <[^>]*> nop
-+0000eebc <[^>]*> nop
-+0000eec0 <[^>]*> nop
-+0000eec4 <[^>]*> nop
-+0000eec8 <[^>]*> nop
-+0000eecc <[^>]*> nop
-+0000eed0 <[^>]*> nop
-+0000eed4 <[^>]*> nop
-+0000eed8 <[^>]*> nop
-+0000eedc <[^>]*> nop
-+0000eee0 <[^>]*> nop
-+0000eee4 <[^>]*> nop
-+0000eee8 <[^>]*> nop
-+0000eeec <[^>]*> nop
-+0000eef0 <[^>]*> nop
-+0000eef4 <[^>]*> nop
-+0000eef8 <[^>]*> nop
-+0000eefc <[^>]*> nop
-+0000ef00 <[^>]*> nop
-+0000ef04 <[^>]*> nop
-+0000ef08 <[^>]*> nop
-+0000ef0c <[^>]*> nop
-+0000ef10 <[^>]*> nop
-+0000ef14 <[^>]*> nop
-+0000ef18 <[^>]*> nop
-+0000ef1c <[^>]*> nop
-+0000ef20 <[^>]*> nop
-+0000ef24 <[^>]*> nop
-+0000ef28 <[^>]*> nop
-+0000ef2c <[^>]*> nop
-+0000ef30 <[^>]*> nop
-+0000ef34 <[^>]*> nop
-+0000ef38 <[^>]*> nop
-+0000ef3c <[^>]*> nop
-+0000ef40 <[^>]*> nop
-+0000ef44 <[^>]*> nop
-+0000ef48 <[^>]*> nop
-+0000ef4c <[^>]*> nop
-+0000ef50 <[^>]*> nop
-+0000ef54 <[^>]*> nop
-+0000ef58 <[^>]*> nop
-+0000ef5c <[^>]*> nop
-+0000ef60 <[^>]*> nop
-+0000ef64 <[^>]*> nop
-+0000ef68 <[^>]*> nop
-+0000ef6c <[^>]*> nop
-+0000ef70 <[^>]*> nop
-+0000ef74 <[^>]*> nop
-+0000ef78 <[^>]*> nop
-+0000ef7c <[^>]*> nop
-+0000ef80 <[^>]*> nop
-+0000ef84 <[^>]*> nop
-+0000ef88 <[^>]*> nop
-+0000ef8c <[^>]*> nop
-+0000ef90 <[^>]*> nop
-+0000ef94 <[^>]*> nop
-+0000ef98 <[^>]*> nop
-+0000ef9c <[^>]*> nop
-+0000efa0 <[^>]*> nop
-+0000efa4 <[^>]*> nop
-+0000efa8 <[^>]*> nop
-+0000efac <[^>]*> nop
-+0000efb0 <[^>]*> nop
-+0000efb4 <[^>]*> nop
-+0000efb8 <[^>]*> nop
-+0000efbc <[^>]*> nop
-+0000efc0 <[^>]*> nop
-+0000efc4 <[^>]*> nop
-+0000efc8 <[^>]*> nop
-+0000efcc <[^>]*> nop
-+0000efd0 <[^>]*> nop
-+0000efd4 <[^>]*> nop
-+0000efd8 <[^>]*> nop
-+0000efdc <[^>]*> nop
-+0000efe0 <[^>]*> nop
-+0000efe4 <[^>]*> nop
-+0000efe8 <[^>]*> nop
-+0000efec <[^>]*> nop
-+0000eff0 <[^>]*> nop
-+0000eff4 <[^>]*> nop
-+0000eff8 <[^>]*> nop
-+0000effc <[^>]*> nop
-+0000f000 <[^>]*> nop
-+0000f004 <[^>]*> nop
-+0000f008 <[^>]*> nop
-+0000f00c <[^>]*> nop
-+0000f010 <[^>]*> nop
-+0000f014 <[^>]*> nop
-+0000f018 <[^>]*> nop
-+0000f01c <[^>]*> nop
-+0000f020 <[^>]*> nop
-+0000f024 <[^>]*> nop
-+0000f028 <[^>]*> nop
-+0000f02c <[^>]*> nop
-+0000f030 <[^>]*> nop
-+0000f034 <[^>]*> nop
-+0000f038 <[^>]*> nop
-+0000f03c <[^>]*> nop
-+0000f040 <[^>]*> nop
-+0000f044 <[^>]*> nop
-+0000f048 <[^>]*> nop
-+0000f04c <[^>]*> nop
-+0000f050 <[^>]*> nop
-+0000f054 <[^>]*> nop
-+0000f058 <[^>]*> nop
-+0000f05c <[^>]*> nop
-+0000f060 <[^>]*> nop
-+0000f064 <[^>]*> nop
-+0000f068 <[^>]*> nop
-+0000f06c <[^>]*> nop
-+0000f070 <[^>]*> nop
-+0000f074 <[^>]*> nop
-+0000f078 <[^>]*> nop
-+0000f07c <[^>]*> nop
-+0000f080 <[^>]*> nop
-+0000f084 <[^>]*> nop
-+0000f088 <[^>]*> nop
-+0000f08c <[^>]*> nop
-+0000f090 <[^>]*> nop
-+0000f094 <[^>]*> nop
-+0000f098 <[^>]*> nop
-+0000f09c <[^>]*> nop
-+0000f0a0 <[^>]*> nop
-+0000f0a4 <[^>]*> nop
-+0000f0a8 <[^>]*> nop
-+0000f0ac <[^>]*> nop
-+0000f0b0 <[^>]*> nop
-+0000f0b4 <[^>]*> nop
-+0000f0b8 <[^>]*> nop
-+0000f0bc <[^>]*> nop
-+0000f0c0 <[^>]*> nop
-+0000f0c4 <[^>]*> nop
-+0000f0c8 <[^>]*> nop
-+0000f0cc <[^>]*> nop
-+0000f0d0 <[^>]*> nop
-+0000f0d4 <[^>]*> nop
-+0000f0d8 <[^>]*> nop
-+0000f0dc <[^>]*> nop
-+0000f0e0 <[^>]*> nop
-+0000f0e4 <[^>]*> nop
-+0000f0e8 <[^>]*> nop
-+0000f0ec <[^>]*> nop
-+0000f0f0 <[^>]*> nop
-+0000f0f4 <[^>]*> nop
-+0000f0f8 <[^>]*> nop
-+0000f0fc <[^>]*> nop
-+0000f100 <[^>]*> nop
-+0000f104 <[^>]*> nop
-+0000f108 <[^>]*> nop
-+0000f10c <[^>]*> nop
-+0000f110 <[^>]*> nop
-+0000f114 <[^>]*> nop
-+0000f118 <[^>]*> nop
-+0000f11c <[^>]*> nop
-+0000f120 <[^>]*> nop
-+0000f124 <[^>]*> nop
-+0000f128 <[^>]*> nop
-+0000f12c <[^>]*> nop
-+0000f130 <[^>]*> nop
-+0000f134 <[^>]*> nop
-+0000f138 <[^>]*> nop
-+0000f13c <[^>]*> nop
-+0000f140 <[^>]*> nop
-+0000f144 <[^>]*> nop
-+0000f148 <[^>]*> nop
-+0000f14c <[^>]*> nop
-+0000f150 <[^>]*> nop
-+0000f154 <[^>]*> nop
-+0000f158 <[^>]*> nop
-+0000f15c <[^>]*> nop
-+0000f160 <[^>]*> nop
-+0000f164 <[^>]*> nop
-+0000f168 <[^>]*> nop
-+0000f16c <[^>]*> nop
-+0000f170 <[^>]*> nop
-+0000f174 <[^>]*> nop
-+0000f178 <[^>]*> nop
-+0000f17c <[^>]*> nop
-+0000f180 <[^>]*> nop
-+0000f184 <[^>]*> nop
-+0000f188 <[^>]*> nop
-+0000f18c <[^>]*> nop
-+0000f190 <[^>]*> nop
-+0000f194 <[^>]*> nop
-+0000f198 <[^>]*> nop
-+0000f19c <[^>]*> nop
-+0000f1a0 <[^>]*> nop
-+0000f1a4 <[^>]*> nop
-+0000f1a8 <[^>]*> nop
-+0000f1ac <[^>]*> nop
-+0000f1b0 <[^>]*> nop
-+0000f1b4 <[^>]*> nop
-+0000f1b8 <[^>]*> nop
-+0000f1bc <[^>]*> nop
-+0000f1c0 <[^>]*> nop
-+0000f1c4 <[^>]*> nop
-+0000f1c8 <[^>]*> nop
-+0000f1cc <[^>]*> nop
-+0000f1d0 <[^>]*> nop
-+0000f1d4 <[^>]*> nop
-+0000f1d8 <[^>]*> nop
-+0000f1dc <[^>]*> nop
-+0000f1e0 <[^>]*> nop
-+0000f1e4 <[^>]*> nop
-+0000f1e8 <[^>]*> nop
-+0000f1ec <[^>]*> nop
-+0000f1f0 <[^>]*> nop
-+0000f1f4 <[^>]*> nop
-+0000f1f8 <[^>]*> nop
-+0000f1fc <[^>]*> nop
-+0000f200 <[^>]*> nop
-+0000f204 <[^>]*> nop
-+0000f208 <[^>]*> nop
-+0000f20c <[^>]*> nop
-+0000f210 <[^>]*> nop
-+0000f214 <[^>]*> nop
-+0000f218 <[^>]*> nop
-+0000f21c <[^>]*> nop
-+0000f220 <[^>]*> nop
-+0000f224 <[^>]*> nop
-+0000f228 <[^>]*> nop
-+0000f22c <[^>]*> nop
-+0000f230 <[^>]*> nop
-+0000f234 <[^>]*> nop
-+0000f238 <[^>]*> nop
-+0000f23c <[^>]*> nop
-+0000f240 <[^>]*> nop
-+0000f244 <[^>]*> nop
-+0000f248 <[^>]*> nop
-+0000f24c <[^>]*> nop
-+0000f250 <[^>]*> nop
-+0000f254 <[^>]*> nop
-+0000f258 <[^>]*> nop
-+0000f25c <[^>]*> nop
-+0000f260 <[^>]*> nop
-+0000f264 <[^>]*> nop
-+0000f268 <[^>]*> nop
-+0000f26c <[^>]*> nop
-+0000f270 <[^>]*> nop
-+0000f274 <[^>]*> nop
-+0000f278 <[^>]*> nop
-+0000f27c <[^>]*> nop
-+0000f280 <[^>]*> nop
-+0000f284 <[^>]*> nop
-+0000f288 <[^>]*> nop
-+0000f28c <[^>]*> nop
-+0000f290 <[^>]*> nop
-+0000f294 <[^>]*> nop
-+0000f298 <[^>]*> nop
-+0000f29c <[^>]*> nop
-+0000f2a0 <[^>]*> nop
-+0000f2a4 <[^>]*> nop
-+0000f2a8 <[^>]*> nop
-+0000f2ac <[^>]*> nop
-+0000f2b0 <[^>]*> nop
-+0000f2b4 <[^>]*> nop
-+0000f2b8 <[^>]*> nop
-+0000f2bc <[^>]*> nop
-+0000f2c0 <[^>]*> nop
-+0000f2c4 <[^>]*> nop
-+0000f2c8 <[^>]*> nop
-+0000f2cc <[^>]*> nop
-+0000f2d0 <[^>]*> nop
-+0000f2d4 <[^>]*> nop
-+0000f2d8 <[^>]*> nop
-+0000f2dc <[^>]*> nop
-+0000f2e0 <[^>]*> nop
-+0000f2e4 <[^>]*> nop
-+0000f2e8 <[^>]*> nop
-+0000f2ec <[^>]*> nop
-+0000f2f0 <[^>]*> nop
-+0000f2f4 <[^>]*> nop
-+0000f2f8 <[^>]*> nop
-+0000f2fc <[^>]*> nop
-+0000f300 <[^>]*> nop
-+0000f304 <[^>]*> nop
-+0000f308 <[^>]*> nop
-+0000f30c <[^>]*> nop
-+0000f310 <[^>]*> nop
-+0000f314 <[^>]*> nop
-+0000f318 <[^>]*> nop
-+0000f31c <[^>]*> nop
-+0000f320 <[^>]*> nop
-+0000f324 <[^>]*> nop
-+0000f328 <[^>]*> nop
-+0000f32c <[^>]*> nop
-+0000f330 <[^>]*> nop
-+0000f334 <[^>]*> nop
-+0000f338 <[^>]*> nop
-+0000f33c <[^>]*> nop
-+0000f340 <[^>]*> nop
-+0000f344 <[^>]*> nop
-+0000f348 <[^>]*> nop
-+0000f34c <[^>]*> nop
-+0000f350 <[^>]*> nop
-+0000f354 <[^>]*> nop
-+0000f358 <[^>]*> nop
-+0000f35c <[^>]*> nop
-+0000f360 <[^>]*> nop
-+0000f364 <[^>]*> nop
-+0000f368 <[^>]*> nop
-+0000f36c <[^>]*> nop
-+0000f370 <[^>]*> nop
-+0000f374 <[^>]*> nop
-+0000f378 <[^>]*> nop
-+0000f37c <[^>]*> nop
-+0000f380 <[^>]*> nop
-+0000f384 <[^>]*> nop
-+0000f388 <[^>]*> nop
-+0000f38c <[^>]*> nop
-+0000f390 <[^>]*> nop
-+0000f394 <[^>]*> nop
-+0000f398 <[^>]*> nop
-+0000f39c <[^>]*> nop
-+0000f3a0 <[^>]*> nop
-+0000f3a4 <[^>]*> nop
-+0000f3a8 <[^>]*> nop
-+0000f3ac <[^>]*> nop
-+0000f3b0 <[^>]*> nop
-+0000f3b4 <[^>]*> nop
-+0000f3b8 <[^>]*> nop
-+0000f3bc <[^>]*> nop
-+0000f3c0 <[^>]*> nop
-+0000f3c4 <[^>]*> nop
-+0000f3c8 <[^>]*> nop
-+0000f3cc <[^>]*> nop
-+0000f3d0 <[^>]*> nop
-+0000f3d4 <[^>]*> nop
-+0000f3d8 <[^>]*> nop
-+0000f3dc <[^>]*> nop
-+0000f3e0 <[^>]*> nop
-+0000f3e4 <[^>]*> nop
-+0000f3e8 <[^>]*> nop
-+0000f3ec <[^>]*> nop
-+0000f3f0 <[^>]*> nop
-+0000f3f4 <[^>]*> nop
-+0000f3f8 <[^>]*> nop
-+0000f3fc <[^>]*> nop
-+0000f400 <[^>]*> nop
-+0000f404 <[^>]*> nop
-+0000f408 <[^>]*> nop
-+0000f40c <[^>]*> nop
-+0000f410 <[^>]*> nop
-+0000f414 <[^>]*> nop
-+0000f418 <[^>]*> nop
-+0000f41c <[^>]*> nop
-+0000f420 <[^>]*> nop
-+0000f424 <[^>]*> nop
-+0000f428 <[^>]*> nop
-+0000f42c <[^>]*> nop
-+0000f430 <[^>]*> nop
-+0000f434 <[^>]*> nop
-+0000f438 <[^>]*> nop
-+0000f43c <[^>]*> nop
-+0000f440 <[^>]*> nop
-+0000f444 <[^>]*> nop
-+0000f448 <[^>]*> nop
-+0000f44c <[^>]*> nop
-+0000f450 <[^>]*> nop
-+0000f454 <[^>]*> nop
-+0000f458 <[^>]*> nop
-+0000f45c <[^>]*> nop
-+0000f460 <[^>]*> nop
-+0000f464 <[^>]*> nop
-+0000f468 <[^>]*> nop
-+0000f46c <[^>]*> nop
-+0000f470 <[^>]*> nop
-+0000f474 <[^>]*> nop
-+0000f478 <[^>]*> nop
-+0000f47c <[^>]*> nop
-+0000f480 <[^>]*> nop
-+0000f484 <[^>]*> nop
-+0000f488 <[^>]*> nop
-+0000f48c <[^>]*> nop
-+0000f490 <[^>]*> nop
-+0000f494 <[^>]*> nop
-+0000f498 <[^>]*> nop
-+0000f49c <[^>]*> nop
-+0000f4a0 <[^>]*> nop
-+0000f4a4 <[^>]*> nop
-+0000f4a8 <[^>]*> nop
-+0000f4ac <[^>]*> nop
-+0000f4b0 <[^>]*> nop
-+0000f4b4 <[^>]*> nop
-+0000f4b8 <[^>]*> nop
-+0000f4bc <[^>]*> nop
-+0000f4c0 <[^>]*> nop
-+0000f4c4 <[^>]*> nop
-+0000f4c8 <[^>]*> nop
-+0000f4cc <[^>]*> nop
-+0000f4d0 <[^>]*> nop
-+0000f4d4 <[^>]*> nop
-+0000f4d8 <[^>]*> nop
-+0000f4dc <[^>]*> nop
-+0000f4e0 <[^>]*> nop
-+0000f4e4 <[^>]*> nop
-+0000f4e8 <[^>]*> nop
-+0000f4ec <[^>]*> nop
-+0000f4f0 <[^>]*> nop
-+0000f4f4 <[^>]*> nop
-+0000f4f8 <[^>]*> nop
-+0000f4fc <[^>]*> nop
-+0000f500 <[^>]*> nop
-+0000f504 <[^>]*> nop
-+0000f508 <[^>]*> nop
-+0000f50c <[^>]*> nop
-+0000f510 <[^>]*> nop
-+0000f514 <[^>]*> nop
-+0000f518 <[^>]*> nop
-+0000f51c <[^>]*> nop
-+0000f520 <[^>]*> nop
-+0000f524 <[^>]*> nop
-+0000f528 <[^>]*> nop
-+0000f52c <[^>]*> nop
-+0000f530 <[^>]*> nop
-+0000f534 <[^>]*> nop
-+0000f538 <[^>]*> nop
-+0000f53c <[^>]*> nop
-+0000f540 <[^>]*> nop
-+0000f544 <[^>]*> nop
-+0000f548 <[^>]*> nop
-+0000f54c <[^>]*> nop
-+0000f550 <[^>]*> nop
-+0000f554 <[^>]*> nop
-+0000f558 <[^>]*> nop
-+0000f55c <[^>]*> nop
-+0000f560 <[^>]*> nop
-+0000f564 <[^>]*> nop
-+0000f568 <[^>]*> nop
-+0000f56c <[^>]*> nop
-+0000f570 <[^>]*> nop
-+0000f574 <[^>]*> nop
-+0000f578 <[^>]*> nop
-+0000f57c <[^>]*> nop
-+0000f580 <[^>]*> nop
-+0000f584 <[^>]*> nop
-+0000f588 <[^>]*> nop
-+0000f58c <[^>]*> nop
-+0000f590 <[^>]*> nop
-+0000f594 <[^>]*> nop
-+0000f598 <[^>]*> nop
-+0000f59c <[^>]*> nop
-+0000f5a0 <[^>]*> nop
-+0000f5a4 <[^>]*> nop
-+0000f5a8 <[^>]*> nop
-+0000f5ac <[^>]*> nop
-+0000f5b0 <[^>]*> nop
-+0000f5b4 <[^>]*> nop
-+0000f5b8 <[^>]*> nop
-+0000f5bc <[^>]*> nop
-+0000f5c0 <[^>]*> nop
-+0000f5c4 <[^>]*> nop
-+0000f5c8 <[^>]*> nop
-+0000f5cc <[^>]*> nop
-+0000f5d0 <[^>]*> nop
-+0000f5d4 <[^>]*> nop
-+0000f5d8 <[^>]*> nop
-+0000f5dc <[^>]*> nop
-+0000f5e0 <[^>]*> nop
-+0000f5e4 <[^>]*> nop
-+0000f5e8 <[^>]*> nop
-+0000f5ec <[^>]*> nop
-+0000f5f0 <[^>]*> nop
-+0000f5f4 <[^>]*> nop
-+0000f5f8 <[^>]*> nop
-+0000f5fc <[^>]*> nop
-+0000f600 <[^>]*> nop
-+0000f604 <[^>]*> nop
-+0000f608 <[^>]*> nop
-+0000f60c <[^>]*> nop
-+0000f610 <[^>]*> nop
-+0000f614 <[^>]*> nop
-+0000f618 <[^>]*> nop
-+0000f61c <[^>]*> nop
-+0000f620 <[^>]*> nop
-+0000f624 <[^>]*> nop
-+0000f628 <[^>]*> nop
-+0000f62c <[^>]*> nop
-+0000f630 <[^>]*> nop
-+0000f634 <[^>]*> nop
-+0000f638 <[^>]*> nop
-+0000f63c <[^>]*> nop
-+0000f640 <[^>]*> nop
-+0000f644 <[^>]*> nop
-+0000f648 <[^>]*> nop
-+0000f64c <[^>]*> nop
-+0000f650 <[^>]*> nop
-+0000f654 <[^>]*> nop
-+0000f658 <[^>]*> nop
-+0000f65c <[^>]*> nop
-+0000f660 <[^>]*> nop
-+0000f664 <[^>]*> nop
-+0000f668 <[^>]*> nop
-+0000f66c <[^>]*> nop
-+0000f670 <[^>]*> nop
-+0000f674 <[^>]*> nop
-+0000f678 <[^>]*> nop
-+0000f67c <[^>]*> nop
-+0000f680 <[^>]*> nop
-+0000f684 <[^>]*> nop
-+0000f688 <[^>]*> nop
-+0000f68c <[^>]*> nop
-+0000f690 <[^>]*> nop
-+0000f694 <[^>]*> nop
-+0000f698 <[^>]*> nop
-+0000f69c <[^>]*> nop
-+0000f6a0 <[^>]*> nop
-+0000f6a4 <[^>]*> nop
-+0000f6a8 <[^>]*> nop
-+0000f6ac <[^>]*> nop
-+0000f6b0 <[^>]*> nop
-+0000f6b4 <[^>]*> nop
-+0000f6b8 <[^>]*> nop
-+0000f6bc <[^>]*> nop
-+0000f6c0 <[^>]*> nop
-+0000f6c4 <[^>]*> nop
-+0000f6c8 <[^>]*> nop
-+0000f6cc <[^>]*> nop
-+0000f6d0 <[^>]*> nop
-+0000f6d4 <[^>]*> nop
-+0000f6d8 <[^>]*> nop
-+0000f6dc <[^>]*> nop
-+0000f6e0 <[^>]*> nop
-+0000f6e4 <[^>]*> nop
-+0000f6e8 <[^>]*> nop
-+0000f6ec <[^>]*> nop
-+0000f6f0 <[^>]*> nop
-+0000f6f4 <[^>]*> nop
-+0000f6f8 <[^>]*> nop
-+0000f6fc <[^>]*> nop
-+0000f700 <[^>]*> nop
-+0000f704 <[^>]*> nop
-+0000f708 <[^>]*> nop
-+0000f70c <[^>]*> nop
-+0000f710 <[^>]*> nop
-+0000f714 <[^>]*> nop
-+0000f718 <[^>]*> nop
-+0000f71c <[^>]*> nop
-+0000f720 <[^>]*> nop
-+0000f724 <[^>]*> nop
-+0000f728 <[^>]*> nop
-+0000f72c <[^>]*> nop
-+0000f730 <[^>]*> nop
-+0000f734 <[^>]*> nop
-+0000f738 <[^>]*> nop
-+0000f73c <[^>]*> nop
-+0000f740 <[^>]*> nop
-+0000f744 <[^>]*> nop
-+0000f748 <[^>]*> nop
-+0000f74c <[^>]*> nop
-+0000f750 <[^>]*> nop
-+0000f754 <[^>]*> nop
-+0000f758 <[^>]*> nop
-+0000f75c <[^>]*> nop
-+0000f760 <[^>]*> nop
-+0000f764 <[^>]*> nop
-+0000f768 <[^>]*> nop
-+0000f76c <[^>]*> nop
-+0000f770 <[^>]*> nop
-+0000f774 <[^>]*> nop
-+0000f778 <[^>]*> nop
-+0000f77c <[^>]*> nop
-+0000f780 <[^>]*> nop
-+0000f784 <[^>]*> nop
-+0000f788 <[^>]*> nop
-+0000f78c <[^>]*> nop
-+0000f790 <[^>]*> nop
-+0000f794 <[^>]*> nop
-+0000f798 <[^>]*> nop
-+0000f79c <[^>]*> nop
-+0000f7a0 <[^>]*> nop
-+0000f7a4 <[^>]*> nop
-+0000f7a8 <[^>]*> nop
-+0000f7ac <[^>]*> nop
-+0000f7b0 <[^>]*> nop
-+0000f7b4 <[^>]*> nop
-+0000f7b8 <[^>]*> nop
-+0000f7bc <[^>]*> nop
-+0000f7c0 <[^>]*> nop
-+0000f7c4 <[^>]*> nop
-+0000f7c8 <[^>]*> nop
-+0000f7cc <[^>]*> nop
-+0000f7d0 <[^>]*> nop
-+0000f7d4 <[^>]*> nop
-+0000f7d8 <[^>]*> nop
-+0000f7dc <[^>]*> nop
-+0000f7e0 <[^>]*> nop
-+0000f7e4 <[^>]*> nop
-+0000f7e8 <[^>]*> nop
-+0000f7ec <[^>]*> nop
-+0000f7f0 <[^>]*> nop
-+0000f7f4 <[^>]*> nop
-+0000f7f8 <[^>]*> nop
-+0000f7fc <[^>]*> nop
-+0000f800 <[^>]*> nop
-+0000f804 <[^>]*> nop
-+0000f808 <[^>]*> nop
-+0000f80c <[^>]*> nop
-+0000f810 <[^>]*> nop
-+0000f814 <[^>]*> nop
-+0000f818 <[^>]*> nop
-+0000f81c <[^>]*> nop
-+0000f820 <[^>]*> nop
-+0000f824 <[^>]*> nop
-+0000f828 <[^>]*> nop
-+0000f82c <[^>]*> nop
-+0000f830 <[^>]*> nop
-+0000f834 <[^>]*> nop
-+0000f838 <[^>]*> nop
-+0000f83c <[^>]*> nop
-+0000f840 <[^>]*> nop
-+0000f844 <[^>]*> nop
-+0000f848 <[^>]*> nop
-+0000f84c <[^>]*> nop
-+0000f850 <[^>]*> nop
-+0000f854 <[^>]*> nop
-+0000f858 <[^>]*> nop
-+0000f85c <[^>]*> nop
-+0000f860 <[^>]*> nop
-+0000f864 <[^>]*> nop
-+0000f868 <[^>]*> nop
-+0000f86c <[^>]*> nop
-+0000f870 <[^>]*> nop
-+0000f874 <[^>]*> nop
-+0000f878 <[^>]*> nop
-+0000f87c <[^>]*> nop
-+0000f880 <[^>]*> nop
-+0000f884 <[^>]*> nop
-+0000f888 <[^>]*> nop
-+0000f88c <[^>]*> nop
-+0000f890 <[^>]*> nop
-+0000f894 <[^>]*> nop
-+0000f898 <[^>]*> nop
-+0000f89c <[^>]*> nop
-+0000f8a0 <[^>]*> nop
-+0000f8a4 <[^>]*> nop
-+0000f8a8 <[^>]*> nop
-+0000f8ac <[^>]*> nop
-+0000f8b0 <[^>]*> nop
-+0000f8b4 <[^>]*> nop
-+0000f8b8 <[^>]*> nop
-+0000f8bc <[^>]*> nop
-+0000f8c0 <[^>]*> nop
-+0000f8c4 <[^>]*> nop
-+0000f8c8 <[^>]*> nop
-+0000f8cc <[^>]*> nop
-+0000f8d0 <[^>]*> nop
-+0000f8d4 <[^>]*> nop
-+0000f8d8 <[^>]*> nop
-+0000f8dc <[^>]*> nop
-+0000f8e0 <[^>]*> nop
-+0000f8e4 <[^>]*> nop
-+0000f8e8 <[^>]*> nop
-+0000f8ec <[^>]*> nop
-+0000f8f0 <[^>]*> nop
-+0000f8f4 <[^>]*> nop
-+0000f8f8 <[^>]*> nop
-+0000f8fc <[^>]*> nop
-+0000f900 <[^>]*> nop
-+0000f904 <[^>]*> nop
-+0000f908 <[^>]*> nop
-+0000f90c <[^>]*> nop
-+0000f910 <[^>]*> nop
-+0000f914 <[^>]*> nop
-+0000f918 <[^>]*> nop
-+0000f91c <[^>]*> nop
-+0000f920 <[^>]*> nop
-+0000f924 <[^>]*> nop
-+0000f928 <[^>]*> nop
-+0000f92c <[^>]*> nop
-+0000f930 <[^>]*> nop
-+0000f934 <[^>]*> nop
-+0000f938 <[^>]*> nop
-+0000f93c <[^>]*> nop
-+0000f940 <[^>]*> nop
-+0000f944 <[^>]*> nop
-+0000f948 <[^>]*> nop
-+0000f94c <[^>]*> nop
-+0000f950 <[^>]*> nop
-+0000f954 <[^>]*> nop
-+0000f958 <[^>]*> nop
-+0000f95c <[^>]*> nop
-+0000f960 <[^>]*> nop
-+0000f964 <[^>]*> nop
-+0000f968 <[^>]*> nop
-+0000f96c <[^>]*> nop
-+0000f970 <[^>]*> nop
-+0000f974 <[^>]*> nop
-+0000f978 <[^>]*> nop
-+0000f97c <[^>]*> nop
-+0000f980 <[^>]*> nop
-+0000f984 <[^>]*> nop
-+0000f988 <[^>]*> nop
-+0000f98c <[^>]*> nop
-+0000f990 <[^>]*> nop
-+0000f994 <[^>]*> nop
-+0000f998 <[^>]*> nop
-+0000f99c <[^>]*> nop
-+0000f9a0 <[^>]*> nop
-+0000f9a4 <[^>]*> nop
-+0000f9a8 <[^>]*> nop
-+0000f9ac <[^>]*> nop
-+0000f9b0 <[^>]*> nop
-+0000f9b4 <[^>]*> nop
-+0000f9b8 <[^>]*> nop
-+0000f9bc <[^>]*> nop
-+0000f9c0 <[^>]*> nop
-+0000f9c4 <[^>]*> nop
-+0000f9c8 <[^>]*> nop
-+0000f9cc <[^>]*> nop
-+0000f9d0 <[^>]*> nop
-+0000f9d4 <[^>]*> nop
-+0000f9d8 <[^>]*> nop
-+0000f9dc <[^>]*> nop
-+0000f9e0 <[^>]*> nop
-+0000f9e4 <[^>]*> nop
-+0000f9e8 <[^>]*> nop
-+0000f9ec <[^>]*> nop
-+0000f9f0 <[^>]*> nop
-+0000f9f4 <[^>]*> nop
-+0000f9f8 <[^>]*> nop
-+0000f9fc <[^>]*> nop
-+0000fa00 <[^>]*> nop
-+0000fa04 <[^>]*> nop
-+0000fa08 <[^>]*> nop
-+0000fa0c <[^>]*> nop
-+0000fa10 <[^>]*> nop
-+0000fa14 <[^>]*> nop
-+0000fa18 <[^>]*> nop
-+0000fa1c <[^>]*> nop
-+0000fa20 <[^>]*> nop
-+0000fa24 <[^>]*> nop
-+0000fa28 <[^>]*> nop
-+0000fa2c <[^>]*> nop
-+0000fa30 <[^>]*> nop
-+0000fa34 <[^>]*> nop
-+0000fa38 <[^>]*> nop
-+0000fa3c <[^>]*> nop
-+0000fa40 <[^>]*> nop
-+0000fa44 <[^>]*> nop
-+0000fa48 <[^>]*> nop
-+0000fa4c <[^>]*> nop
-+0000fa50 <[^>]*> nop
-+0000fa54 <[^>]*> nop
-+0000fa58 <[^>]*> nop
-+0000fa5c <[^>]*> nop
-+0000fa60 <[^>]*> nop
-+0000fa64 <[^>]*> nop
-+0000fa68 <[^>]*> nop
-+0000fa6c <[^>]*> nop
-+0000fa70 <[^>]*> nop
-+0000fa74 <[^>]*> nop
-+0000fa78 <[^>]*> nop
-+0000fa7c <[^>]*> nop
-+0000fa80 <[^>]*> nop
-+0000fa84 <[^>]*> nop
-+0000fa88 <[^>]*> nop
-+0000fa8c <[^>]*> nop
-+0000fa90 <[^>]*> nop
-+0000fa94 <[^>]*> nop
-+0000fa98 <[^>]*> nop
-+0000fa9c <[^>]*> nop
-+0000faa0 <[^>]*> nop
-+0000faa4 <[^>]*> nop
-+0000faa8 <[^>]*> nop
-+0000faac <[^>]*> nop
-+0000fab0 <[^>]*> nop
-+0000fab4 <[^>]*> nop
-+0000fab8 <[^>]*> nop
-+0000fabc <[^>]*> nop
-+0000fac0 <[^>]*> nop
-+0000fac4 <[^>]*> nop
-+0000fac8 <[^>]*> nop
-+0000facc <[^>]*> nop
-+0000fad0 <[^>]*> nop
-+0000fad4 <[^>]*> nop
-+0000fad8 <[^>]*> nop
-+0000fadc <[^>]*> nop
-+0000fae0 <[^>]*> nop
-+0000fae4 <[^>]*> nop
-+0000fae8 <[^>]*> nop
-+0000faec <[^>]*> nop
-+0000faf0 <[^>]*> nop
-+0000faf4 <[^>]*> nop
-+0000faf8 <[^>]*> nop
-+0000fafc <[^>]*> nop
-+0000fb00 <[^>]*> nop
-+0000fb04 <[^>]*> nop
-+0000fb08 <[^>]*> nop
-+0000fb0c <[^>]*> nop
-+0000fb10 <[^>]*> nop
-+0000fb14 <[^>]*> nop
-+0000fb18 <[^>]*> nop
-+0000fb1c <[^>]*> nop
-+0000fb20 <[^>]*> nop
-+0000fb24 <[^>]*> nop
-+0000fb28 <[^>]*> nop
-+0000fb2c <[^>]*> nop
-+0000fb30 <[^>]*> nop
-+0000fb34 <[^>]*> nop
-+0000fb38 <[^>]*> nop
-+0000fb3c <[^>]*> nop
-+0000fb40 <[^>]*> nop
-+0000fb44 <[^>]*> nop
-+0000fb48 <[^>]*> nop
-+0000fb4c <[^>]*> nop
-+0000fb50 <[^>]*> nop
-+0000fb54 <[^>]*> nop
-+0000fb58 <[^>]*> nop
-+0000fb5c <[^>]*> nop
-+0000fb60 <[^>]*> nop
-+0000fb64 <[^>]*> nop
-+0000fb68 <[^>]*> nop
-+0000fb6c <[^>]*> nop
-+0000fb70 <[^>]*> nop
-+0000fb74 <[^>]*> nop
-+0000fb78 <[^>]*> nop
-+0000fb7c <[^>]*> nop
-+0000fb80 <[^>]*> nop
-+0000fb84 <[^>]*> nop
-+0000fb88 <[^>]*> nop
-+0000fb8c <[^>]*> nop
-+0000fb90 <[^>]*> nop
-+0000fb94 <[^>]*> nop
-+0000fb98 <[^>]*> nop
-+0000fb9c <[^>]*> nop
-+0000fba0 <[^>]*> nop
-+0000fba4 <[^>]*> nop
-+0000fba8 <[^>]*> nop
-+0000fbac <[^>]*> nop
-+0000fbb0 <[^>]*> nop
-+0000fbb4 <[^>]*> nop
-+0000fbb8 <[^>]*> nop
-+0000fbbc <[^>]*> nop
-+0000fbc0 <[^>]*> nop
-+0000fbc4 <[^>]*> nop
-+0000fbc8 <[^>]*> nop
-+0000fbcc <[^>]*> nop
-+0000fbd0 <[^>]*> nop
-+0000fbd4 <[^>]*> nop
-+0000fbd8 <[^>]*> nop
-+0000fbdc <[^>]*> nop
-+0000fbe0 <[^>]*> nop
-+0000fbe4 <[^>]*> nop
-+0000fbe8 <[^>]*> nop
-+0000fbec <[^>]*> nop
-+0000fbf0 <[^>]*> nop
-+0000fbf4 <[^>]*> nop
-+0000fbf8 <[^>]*> nop
-+0000fbfc <[^>]*> nop
-+0000fc00 <[^>]*> nop
-+0000fc04 <[^>]*> nop
-+0000fc08 <[^>]*> nop
-+0000fc0c <[^>]*> nop
-+0000fc10 <[^>]*> nop
-+0000fc14 <[^>]*> nop
-+0000fc18 <[^>]*> nop
-+0000fc1c <[^>]*> nop
-+0000fc20 <[^>]*> nop
-+0000fc24 <[^>]*> nop
-+0000fc28 <[^>]*> nop
-+0000fc2c <[^>]*> nop
-+0000fc30 <[^>]*> nop
-+0000fc34 <[^>]*> nop
-+0000fc38 <[^>]*> nop
-+0000fc3c <[^>]*> nop
-+0000fc40 <[^>]*> nop
-+0000fc44 <[^>]*> nop
-+0000fc48 <[^>]*> nop
-+0000fc4c <[^>]*> nop
-+0000fc50 <[^>]*> nop
-+0000fc54 <[^>]*> nop
-+0000fc58 <[^>]*> nop
-+0000fc5c <[^>]*> nop
-+0000fc60 <[^>]*> nop
-+0000fc64 <[^>]*> nop
-+0000fc68 <[^>]*> nop
-+0000fc6c <[^>]*> nop
-+0000fc70 <[^>]*> nop
-+0000fc74 <[^>]*> nop
-+0000fc78 <[^>]*> nop
-+0000fc7c <[^>]*> nop
-+0000fc80 <[^>]*> nop
-+0000fc84 <[^>]*> nop
-+0000fc88 <[^>]*> nop
-+0000fc8c <[^>]*> nop
-+0000fc90 <[^>]*> nop
-+0000fc94 <[^>]*> nop
-+0000fc98 <[^>]*> nop
-+0000fc9c <[^>]*> nop
-+0000fca0 <[^>]*> nop
-+0000fca4 <[^>]*> nop
-+0000fca8 <[^>]*> nop
-+0000fcac <[^>]*> nop
-+0000fcb0 <[^>]*> nop
-+0000fcb4 <[^>]*> nop
-+0000fcb8 <[^>]*> nop
-+0000fcbc <[^>]*> nop
-+0000fcc0 <[^>]*> nop
-+0000fcc4 <[^>]*> nop
-+0000fcc8 <[^>]*> nop
-+0000fccc <[^>]*> nop
-+0000fcd0 <[^>]*> nop
-+0000fcd4 <[^>]*> nop
-+0000fcd8 <[^>]*> nop
-+0000fcdc <[^>]*> nop
-+0000fce0 <[^>]*> nop
-+0000fce4 <[^>]*> nop
-+0000fce8 <[^>]*> nop
-+0000fcec <[^>]*> nop
-+0000fcf0 <[^>]*> nop
-+0000fcf4 <[^>]*> nop
-+0000fcf8 <[^>]*> nop
-+0000fcfc <[^>]*> nop
-+0000fd00 <[^>]*> nop
-+0000fd04 <[^>]*> nop
-+0000fd08 <[^>]*> nop
-+0000fd0c <[^>]*> nop
-+0000fd10 <[^>]*> nop
-+0000fd14 <[^>]*> nop
-+0000fd18 <[^>]*> nop
-+0000fd1c <[^>]*> nop
-+0000fd20 <[^>]*> nop
-+0000fd24 <[^>]*> nop
-+0000fd28 <[^>]*> nop
-+0000fd2c <[^>]*> nop
-+0000fd30 <[^>]*> nop
-+0000fd34 <[^>]*> nop
-+0000fd38 <[^>]*> nop
-+0000fd3c <[^>]*> nop
-+0000fd40 <[^>]*> nop
-+0000fd44 <[^>]*> nop
-+0000fd48 <[^>]*> nop
-+0000fd4c <[^>]*> nop
-+0000fd50 <[^>]*> nop
-+0000fd54 <[^>]*> nop
-+0000fd58 <[^>]*> nop
-+0000fd5c <[^>]*> nop
-+0000fd60 <[^>]*> nop
-+0000fd64 <[^>]*> nop
-+0000fd68 <[^>]*> nop
-+0000fd6c <[^>]*> nop
-+0000fd70 <[^>]*> nop
-+0000fd74 <[^>]*> nop
-+0000fd78 <[^>]*> nop
-+0000fd7c <[^>]*> nop
-+0000fd80 <[^>]*> nop
-+0000fd84 <[^>]*> nop
-+0000fd88 <[^>]*> nop
-+0000fd8c <[^>]*> nop
-+0000fd90 <[^>]*> nop
-+0000fd94 <[^>]*> nop
-+0000fd98 <[^>]*> nop
-+0000fd9c <[^>]*> nop
-+0000fda0 <[^>]*> nop
-+0000fda4 <[^>]*> nop
-+0000fda8 <[^>]*> nop
-+0000fdac <[^>]*> nop
-+0000fdb0 <[^>]*> nop
-+0000fdb4 <[^>]*> nop
-+0000fdb8 <[^>]*> nop
-+0000fdbc <[^>]*> nop
-+0000fdc0 <[^>]*> nop
-+0000fdc4 <[^>]*> nop
-+0000fdc8 <[^>]*> nop
-+0000fdcc <[^>]*> nop
-+0000fdd0 <[^>]*> nop
-+0000fdd4 <[^>]*> nop
-+0000fdd8 <[^>]*> nop
-+0000fddc <[^>]*> nop
-+0000fde0 <[^>]*> nop
-+0000fde4 <[^>]*> nop
-+0000fde8 <[^>]*> nop
-+0000fdec <[^>]*> nop
-+0000fdf0 <[^>]*> nop
-+0000fdf4 <[^>]*> nop
-+0000fdf8 <[^>]*> nop
-+0000fdfc <[^>]*> nop
-+0000fe00 <[^>]*> nop
-+0000fe04 <[^>]*> nop
-+0000fe08 <[^>]*> nop
-+0000fe0c <[^>]*> nop
-+0000fe10 <[^>]*> nop
-+0000fe14 <[^>]*> nop
-+0000fe18 <[^>]*> nop
-+0000fe1c <[^>]*> nop
-+0000fe20 <[^>]*> nop
-+0000fe24 <[^>]*> nop
-+0000fe28 <[^>]*> nop
-+0000fe2c <[^>]*> nop
-+0000fe30 <[^>]*> nop
-+0000fe34 <[^>]*> nop
-+0000fe38 <[^>]*> nop
-+0000fe3c <[^>]*> nop
-+0000fe40 <[^>]*> nop
-+0000fe44 <[^>]*> nop
-+0000fe48 <[^>]*> nop
-+0000fe4c <[^>]*> nop
-+0000fe50 <[^>]*> nop
-+0000fe54 <[^>]*> nop
-+0000fe58 <[^>]*> nop
-+0000fe5c <[^>]*> nop
-+0000fe60 <[^>]*> nop
-+0000fe64 <[^>]*> nop
-+0000fe68 <[^>]*> nop
-+0000fe6c <[^>]*> nop
-+0000fe70 <[^>]*> nop
-+0000fe74 <[^>]*> nop
-+0000fe78 <[^>]*> nop
-+0000fe7c <[^>]*> nop
-+0000fe80 <[^>]*> nop
-+0000fe84 <[^>]*> nop
-+0000fe88 <[^>]*> nop
-+0000fe8c <[^>]*> nop
-+0000fe90 <[^>]*> nop
-+0000fe94 <[^>]*> nop
-+0000fe98 <[^>]*> nop
-+0000fe9c <[^>]*> nop
-+0000fea0 <[^>]*> nop
-+0000fea4 <[^>]*> nop
-+0000fea8 <[^>]*> nop
-+0000feac <[^>]*> nop
-+0000feb0 <[^>]*> nop
-+0000feb4 <[^>]*> nop
-+0000feb8 <[^>]*> nop
-+0000febc <[^>]*> nop
-+0000fec0 <[^>]*> nop
-+0000fec4 <[^>]*> nop
-+0000fec8 <[^>]*> nop
-+0000fecc <[^>]*> nop
-+0000fed0 <[^>]*> nop
-+0000fed4 <[^>]*> nop
-+0000fed8 <[^>]*> nop
-+0000fedc <[^>]*> nop
-+0000fee0 <[^>]*> nop
-+0000fee4 <[^>]*> nop
-+0000fee8 <[^>]*> nop
-+0000feec <[^>]*> nop
-+0000fef0 <[^>]*> nop
-+0000fef4 <[^>]*> nop
-+0000fef8 <[^>]*> nop
-+0000fefc <[^>]*> nop
-+0000ff00 <[^>]*> nop
-+0000ff04 <[^>]*> nop
-+0000ff08 <[^>]*> nop
-+0000ff0c <[^>]*> nop
-+0000ff10 <[^>]*> nop
-+0000ff14 <[^>]*> nop
-+0000ff18 <[^>]*> nop
-+0000ff1c <[^>]*> nop
-+0000ff20 <[^>]*> nop
-+0000ff24 <[^>]*> nop
-+0000ff28 <[^>]*> nop
-+0000ff2c <[^>]*> nop
-+0000ff30 <[^>]*> nop
-+0000ff34 <[^>]*> nop
-+0000ff38 <[^>]*> nop
-+0000ff3c <[^>]*> nop
-+0000ff40 <[^>]*> nop
-+0000ff44 <[^>]*> nop
-+0000ff48 <[^>]*> nop
-+0000ff4c <[^>]*> nop
-+0000ff50 <[^>]*> nop
-+0000ff54 <[^>]*> nop
-+0000ff58 <[^>]*> nop
-+0000ff5c <[^>]*> nop
-+0000ff60 <[^>]*> nop
-+0000ff64 <[^>]*> nop
-+0000ff68 <[^>]*> nop
-+0000ff6c <[^>]*> nop
-+0000ff70 <[^>]*> nop
-+0000ff74 <[^>]*> nop
-+0000ff78 <[^>]*> nop
-+0000ff7c <[^>]*> nop
-+0000ff80 <[^>]*> nop
-+0000ff84 <[^>]*> nop
-+0000ff88 <[^>]*> nop
-+0000ff8c <[^>]*> nop
-+0000ff90 <[^>]*> nop
-+0000ff94 <[^>]*> nop
-+0000ff98 <[^>]*> nop
-+0000ff9c <[^>]*> nop
-+0000ffa0 <[^>]*> nop
-+0000ffa4 <[^>]*> nop
-+0000ffa8 <[^>]*> nop
-+0000ffac <[^>]*> nop
-+0000ffb0 <[^>]*> nop
-+0000ffb4 <[^>]*> nop
-+0000ffb8 <[^>]*> nop
-+0000ffbc <[^>]*> nop
-+0000ffc0 <[^>]*> nop
-+0000ffc4 <[^>]*> nop
-+0000ffc8 <[^>]*> nop
-+0000ffcc <[^>]*> nop
-+0000ffd0 <[^>]*> nop
-+0000ffd4 <[^>]*> nop
-+0000ffd8 <[^>]*> nop
-+0000ffdc <[^>]*> nop
-+0000ffe0 <[^>]*> nop
-+0000ffe4 <[^>]*> nop
-+0000ffe8 <[^>]*> nop
-+0000ffec <[^>]*> nop
-+0000fff0 <[^>]*> nop
-+0000fff4 <[^>]*> nop
-+0000fff8 <[^>]*> nop
-+0000fffc <[^>]*> nop
-+00010000 <[^>]*> br 00010018 <[^>]*>
-+00010004 <[^>]*> nop
-+00010008 <[^>]*> nop
-+0001000c <[^>]*> nop
-+00010010 <[^>]*> nop
-+00010014 <[^>]*> nop
-+00010018 <[^>]*> nop
-+ ...
---- binutils-2.15/gas/testsuite/gas/nios2/relax_ujmp.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/relax_ujmp.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,37 @@
-+# relaxing unconditional jumps
-+
-+.globl text1
-+.section text1, "ax", @progbits
-+
-+ br on_border
-+ br out_of_range
-+ nop
-+ nop
-+
-+
-+.align 15
-+# nop
-+# nop
-+on_border:
-+ br in_range
-+ nop
-+ nop
-+ nop
-+out_of_range:
-+in_range:
-+ nop
-+
-+.globl text2
-+.section text2, "ax", @progbits
-+
-+ br text1
-+ br out_of_range
-+ br sym
-+ nop
-+ nop
-+sym:
-+ nop
-+
-+
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/reloc_symbols.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/reloc_symbols.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,21 @@
-+.text
-+# byte aligned
-+.align 0
-+.byte byte_sym
-+
-+# short aligned
-+.align 1
-+.short short_sym
-+
-+# word aligned
-+.align 2
-+.long long_sym
-+
-+# now lets try some unaligned words and halfwords
-+.byte byte_sym
-+.2byte short_sym
-+.4byte long_sym
-+
-+#.align 2
-+#nop
-+
---- binutils-2.15/gas/testsuite/gas/nios2/ret.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ret.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 ret
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> ret
-+
---- binutils-2.15/gas/testsuite/gas/nios2/ret.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/ret.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the ret instructions
-+foo:
-+ ret
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/rol.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/rol.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,40 @@
-+#objdump: -dr --prefix-addresses -mmips:3000
-+#as: -march=r3000 -mtune=r3000
-+#name: MIPS R3000 rol
-+
-+# Test the rol and ror macros.
-+
-+.*: +file format .*mips.*
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> negu at,a1
-+0+0004 <[^>]*> srlv at,a0,at
-+0+0008 <[^>]*> sllv a0,a0,a1
-+0+000c <[^>]*> or a0,a0,at
-+0+0010 <[^>]*> negu at,a2
-+0+0014 <[^>]*> srlv at,a1,at
-+0+0018 <[^>]*> sllv a0,a1,a2
-+0+001c <[^>]*> or a0,a0,at
-+0+0020 <[^>]*> sll at,a0,0x1
-+0+0024 <[^>]*> srl a0,a0,0x1f
-+0+0028 <[^>]*> or a0,a0,at
-+0+002c <[^>]*> sll at,a1,0x1
-+0+0030 <[^>]*> srl a0,a1,0x1f
-+0+0034 <[^>]*> or a0,a0,at
-+0+0038 <[^>]*> srl a0,a1,0x0
-+0+003c <[^>]*> negu at,a1
-+0+0040 <[^>]*> sllv at,a0,at
-+0+0044 <[^>]*> srlv a0,a0,a1
-+0+0048 <[^>]*> or a0,a0,at
-+0+004c <[^>]*> negu at,a2
-+0+0050 <[^>]*> sllv at,a1,at
-+0+0054 <[^>]*> srlv a0,a1,a2
-+0+0058 <[^>]*> or a0,a0,at
-+0+005c <[^>]*> srl at,a0,0x1
-+0+0060 <[^>]*> sll a0,a0,0x1f
-+0+0064 <[^>]*> or a0,a0,at
-+0+0068 <[^>]*> srl at,a1,0x1
-+0+006c <[^>]*> sll a0,a1,0x1f
-+0+0070 <[^>]*> or a0,a0,at
-+0+0074 <[^>]*> srl a0,a1,0x0
-+ ...
---- binutils-2.15/gas/testsuite/gas/nios2/rol.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/rol.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,15 @@
-+# Source file used to test the rol and ror macros.
-+
-+foo:
-+ rol $4,$5
-+ rol $4,$5,$6
-+ rol $4,1
-+ rol $4,$5,1
-+ rol $4,$5,0
-+
-+ ror $4,$5
-+ ror $4,$5,$6
-+ ror $4,1
-+ ror $4,$5,1
-+ ror $4,$5,0
-+ .space 8
---- binutils-2.15/gas/testsuite/gas/nios2/rotate.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/rotate.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,17 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 rotate
-+
-+# Test the and macro.
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> rol r4,r4,r4
-+0+0004 <[^>]*> roli r4,r4,31
-+0+0008 <[^>]*> ror r4,r4,r4
-+0+000c <[^>]*> sll r4,r4,r4
-+0+0010 <[^>]*> slli r4,r4,24
-+0+0014 <[^>]*> sra r4,r4,r4
-+0+0018 <[^>]*> srai r4,r4,10
-+0+001c <[^>]*> srl r4,r4,r4
-+0+0020 <[^>]*> srli r4,r4,5
---- binutils-2.15/gas/testsuite/gas/nios2/rotate.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/rotate.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,13 @@
-+# test New Jersey rotate instructions
-+
-+.text
-+foo:
-+ rol r4,r4,r4
-+ roli r4,r4,31
-+ ror r4,r4,r4
-+ sll r4,r4,r4
-+ slli r4,r4,24
-+ sra r4,r4,r4
-+ srai r4,r4,10
-+ srl r4,r4,r4
-+ srli r4,r4,5
---- binutils-2.15/gas/testsuite/gas/nios2/s16_symbol.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/s16_symbol.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+.global some_sym
-+.global some_other_sym
-+.global min
-+.global max
-+
-+.set max, 0x7fff
-+.set min, -0x8000
-+.set some_sym, 0x1000
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/stb.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/stb.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 stb
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> stb r4,0\(zero\)
-+0+0004 <[^>]*> stb r4,4\(zero\)
-+0+0008 <[^>]*> stb r4,32764\(zero\)
-+0+000c <[^>]*> stb r4,-32768\(zero\)
-+0+0010 <[^>]*> stb r4,0\(r5\)
-+0+0014 <[^>]*> stb r4,4\(r5\)
-+0+0018 <[^>]*> stb r4,32764\(r5\)
-+0+001c <[^>]*> stb r4,-32768\(r5\)
-+0+0020 <[^>]*> stb r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> stb r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> stb r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> stb r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> stb r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> stb r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> stb r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> stb r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> stb r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> stb r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> stb r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> stb r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> stb r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> stb r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> stb r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> stb r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> stb r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> stb r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> stb r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> stb r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> stb r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> stb r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> stb r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> stb r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> stb r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> stb r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> stb r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> stb r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> stb r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> stb r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> stb r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> stb r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> stb r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> stb r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> stb r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> stb r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> stb r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> stb r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> stb r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> stb r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> stb r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> stb r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> stb r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> stbio r4,0\(zero\)
-+0+00d0 <[^>]*> stbio r4,4\(zero\)
-+0+00d4 <[^>]*> stbio r4,32764\(zero\)
-+0+00d8 <[^>]*> stbio r4,-32768\(zero\)
-+0+00dc <[^>]*> stbio r4,0\(r5\)
-+0+00e0 <[^>]*> stbio r4,4\(r5\)
-+0+00e4 <[^>]*> stbio r4,32764\(r5\)
-+0+00e8 <[^>]*> stbio r4,-32768\(r5\)
-+0+00ec <[^>]*> stbio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> stbio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> stbio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> stbio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> stbio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> stbio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> stbio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> stbio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> stbio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> stbio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> stbio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> stbio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> stbio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> stbio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> stbio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> stbio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> stbio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> stbio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> stbio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> stbio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> stbio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> stbio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> stbio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> stbio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> stbio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> stbio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> stbio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> stbio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> stbio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> stbio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> stbio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> stbio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> stbio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> stbio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> stbio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> stbio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> stbio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> stbio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> stbio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> stbio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> stbio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> stbio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> stbio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/stb.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/stb.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ stb r4,0(r0)
-+ stb r4,4(r0)
-+ stb r4,0x7ffc(r0)
-+ stb r4,-0x8000(r0)
-+ stb r4,0(r5)
-+ stb r4,4(r5)
-+ stb r4,0x7ffc(r5)
-+ stb r4,-0x8000(r5)
-+ stb r4,data_label(r0)
-+ stb r4,big_external_data_label(r0)
-+ stb r4,small_external_data_label(r0)
-+ stb r4,big_external_common(r0)
-+ stb r4,small_external_common(r0)
-+ stb r4,big_local_common(r0)
-+ stb r4,small_local_common(r0)
-+ stb r4,data_label+4(r0)
-+ stb r4,big_external_data_label+4(r0)
-+ stb r4,small_external_data_label+4(r0)
-+ stb r4,big_external_common+4(r0)
-+ stb r4,small_external_common+4(r0)
-+ stb r4,big_local_common+4(r0)
-+ stb r4,small_local_common+4(r0)
-+ stb r4,data_label-0x8000(r0)
-+ stb r4,big_external_data_label-0x8000(r0)
-+ stb r4,small_external_data_label-0x8000(r0)
-+ stb r4,big_external_common-0x8000(r0)
-+ stb r4,small_external_common-0x8000(r0)
-+ stb r4,big_local_common-0x8000(r0)
-+ stb r4,small_local_common-0x8000(r0)
-+ stb r4,data_label+0x10000(r0)
-+ stb r4,data_label(r5)
-+ stb r4,big_external_data_label(r5)
-+ stb r4,small_external_data_label(r5)
-+ stb r4,big_external_common(r5)
-+ stb r4,small_external_common(r5)
-+ stb r4,big_local_common(r5)
-+ stb r4,small_local_common(r5)
-+ stb r4,data_label+4(r5)
-+ stb r4,big_external_data_label+4(r5)
-+ stb r4,small_external_data_label+4(r5)
-+ stb r4,big_external_common+4(r5)
-+ stb r4,small_external_common+4(r5)
-+ stb r4,big_local_common+4(r5)
-+ stb r4,small_local_common+4(r5)
-+ stb r4,data_label-0x8000(r5)
-+ stb r4,big_external_data_label-0x8000(r5)
-+ stb r4,small_external_data_label-0x8000(r5)
-+ stb r4,big_external_common-0x8000(r5)
-+ stb r4,small_external_common-0x8000(r5)
-+ stb r4,big_local_common-0x8000(r5)
-+ stb r4,small_local_common-0x8000(r5)
-+
-+ stbio r4,0(r0)
-+ stbio r4,4(r0)
-+ stbio r4,0x7ffc(r0)
-+ stbio r4,-0x8000(r0)
-+ stbio r4,0(r5)
-+ stbio r4,4(r5)
-+ stbio r4,0x7ffc(r5)
-+ stbio r4,-0x8000(r5)
-+ stbio r4,data_label(r0)
-+ stbio r4,big_external_data_label(r0)
-+ stbio r4,small_external_data_label(r0)
-+ stbio r4,big_external_common(r0)
-+ stbio r4,small_external_common(r0)
-+ stbio r4,big_local_common(r0)
-+ stbio r4,small_local_common(r0)
-+ stbio r4,data_label+4(r0)
-+ stbio r4,big_external_data_label+4(r0)
-+ stbio r4,small_external_data_label+4(r0)
-+ stbio r4,big_external_common+4(r0)
-+ stbio r4,small_external_common+4(r0)
-+ stbio r4,big_local_common+4(r0)
-+ stbio r4,small_local_common+4(r0)
-+ stbio r4,data_label-0x8000(r0)
-+ stbio r4,big_external_data_label-0x8000(r0)
-+ stbio r4,small_external_data_label-0x8000(r0)
-+ stbio r4,big_external_common-0x8000(r0)
-+ stbio r4,small_external_common-0x8000(r0)
-+ stbio r4,big_local_common-0x8000(r0)
-+ stbio r4,small_local_common-0x8000(r0)
-+ stbio r4,data_label+0x10000(r0)
-+ stbio r4,data_label(r5)
-+ stbio r4,big_external_data_label(r5)
-+ stbio r4,small_external_data_label(r5)
-+ stbio r4,big_external_common(r5)
-+ stbio r4,small_external_common(r5)
-+ stbio r4,big_local_common(r5)
-+ stbio r4,small_local_common(r5)
-+ stbio r4,data_label+4(r5)
-+ stbio r4,big_external_data_label+4(r5)
-+ stbio r4,small_external_data_label+4(r5)
-+ stbio r4,big_external_common+4(r5)
-+ stbio r4,small_external_common+4(r5)
-+ stbio r4,big_local_common+4(r5)
-+ stbio r4,small_local_common+4(r5)
-+ stbio r4,data_label-0x8000(r5)
-+ stbio r4,big_external_data_label-0x8000(r5)
-+ stbio r4,small_external_data_label-0x8000(r5)
-+ stbio r4,big_external_common-0x8000(r5)
-+ stbio r4,small_external_common-0x8000(r5)
-+ stbio r4,big_local_common-0x8000(r5)
-+ stbio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/sth.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sth.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 sth
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> sth r4,0\(zero\)
-+0+0004 <[^>]*> sth r4,4\(zero\)
-+0+0008 <[^>]*> sth r4,32764\(zero\)
-+0+000c <[^>]*> sth r4,-32768\(zero\)
-+0+0010 <[^>]*> sth r4,0\(r5\)
-+0+0014 <[^>]*> sth r4,4\(r5\)
-+0+0018 <[^>]*> sth r4,32764\(r5\)
-+0+001c <[^>]*> sth r4,-32768\(r5\)
-+0+0020 <[^>]*> sth r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> sth r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> sth r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> sth r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> sth r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> sth r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> sth r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> sth r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> sth r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> sth r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> sth r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> sth r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> sth r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> sth r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> sth r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> sth r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> sth r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> sth r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> sth r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> sth r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> sth r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> sth r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> sth r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> sth r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> sth r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> sth r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> sth r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> sth r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> sth r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> sth r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> sth r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> sth r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> sth r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> sth r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> sth r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> sth r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> sth r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> sth r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> sth r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> sth r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> sth r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> sth r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> sth r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> sthio r4,0\(zero\)
-+0+00d0 <[^>]*> sthio r4,4\(zero\)
-+0+00d4 <[^>]*> sthio r4,32764\(zero\)
-+0+00d8 <[^>]*> sthio r4,-32768\(zero\)
-+0+00dc <[^>]*> sthio r4,0\(r5\)
-+0+00e0 <[^>]*> sthio r4,4\(r5\)
-+0+00e4 <[^>]*> sthio r4,32764\(r5\)
-+0+00e8 <[^>]*> sthio r4,-32768\(r5\)
-+0+00ec <[^>]*> sthio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> sthio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> sthio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> sthio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> sthio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> sthio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> sthio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> sthio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> sthio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> sthio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> sthio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> sthio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> sthio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> sthio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> sthio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> sthio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> sthio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> sthio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> sthio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> sthio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> sthio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> sthio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> sthio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> sthio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> sthio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> sthio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> sthio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> sthio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> sthio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> sthio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> sthio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> sthio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> sthio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> sthio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> sthio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> sthio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> sthio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> sthio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> sthio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> sthio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> sthio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> sthio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> sthio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/sth.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sth.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ sth r4,0(r0)
-+ sth r4,4(r0)
-+ sth r4,0x7ffc(r0)
-+ sth r4,-0x8000(r0)
-+ sth r4,0(r5)
-+ sth r4,4(r5)
-+ sth r4,0x7ffc(r5)
-+ sth r4,-0x8000(r5)
-+ sth r4,data_label(r0)
-+ sth r4,big_external_data_label(r0)
-+ sth r4,small_external_data_label(r0)
-+ sth r4,big_external_common(r0)
-+ sth r4,small_external_common(r0)
-+ sth r4,big_local_common(r0)
-+ sth r4,small_local_common(r0)
-+ sth r4,data_label+4(r0)
-+ sth r4,big_external_data_label+4(r0)
-+ sth r4,small_external_data_label+4(r0)
-+ sth r4,big_external_common+4(r0)
-+ sth r4,small_external_common+4(r0)
-+ sth r4,big_local_common+4(r0)
-+ sth r4,small_local_common+4(r0)
-+ sth r4,data_label-0x8000(r0)
-+ sth r4,big_external_data_label-0x8000(r0)
-+ sth r4,small_external_data_label-0x8000(r0)
-+ sth r4,big_external_common-0x8000(r0)
-+ sth r4,small_external_common-0x8000(r0)
-+ sth r4,big_local_common-0x8000(r0)
-+ sth r4,small_local_common-0x8000(r0)
-+ sth r4,data_label+0x10000(r0)
-+ sth r4,data_label(r5)
-+ sth r4,big_external_data_label(r5)
-+ sth r4,small_external_data_label(r5)
-+ sth r4,big_external_common(r5)
-+ sth r4,small_external_common(r5)
-+ sth r4,big_local_common(r5)
-+ sth r4,small_local_common(r5)
-+ sth r4,data_label+4(r5)
-+ sth r4,big_external_data_label+4(r5)
-+ sth r4,small_external_data_label+4(r5)
-+ sth r4,big_external_common+4(r5)
-+ sth r4,small_external_common+4(r5)
-+ sth r4,big_local_common+4(r5)
-+ sth r4,small_local_common+4(r5)
-+ sth r4,data_label-0x8000(r5)
-+ sth r4,big_external_data_label-0x8000(r5)
-+ sth r4,small_external_data_label-0x8000(r5)
-+ sth r4,big_external_common-0x8000(r5)
-+ sth r4,small_external_common-0x8000(r5)
-+ sth r4,big_local_common-0x8000(r5)
-+ sth r4,small_local_common-0x8000(r5)
-+
-+ sthio r4,0(r0)
-+ sthio r4,4(r0)
-+ sthio r4,0x7ffc(r0)
-+ sthio r4,-0x8000(r0)
-+ sthio r4,0(r5)
-+ sthio r4,4(r5)
-+ sthio r4,0x7ffc(r5)
-+ sthio r4,-0x8000(r5)
-+ sthio r4,data_label(r0)
-+ sthio r4,big_external_data_label(r0)
-+ sthio r4,small_external_data_label(r0)
-+ sthio r4,big_external_common(r0)
-+ sthio r4,small_external_common(r0)
-+ sthio r4,big_local_common(r0)
-+ sthio r4,small_local_common(r0)
-+ sthio r4,data_label+4(r0)
-+ sthio r4,big_external_data_label+4(r0)
-+ sthio r4,small_external_data_label+4(r0)
-+ sthio r4,big_external_common+4(r0)
-+ sthio r4,small_external_common+4(r0)
-+ sthio r4,big_local_common+4(r0)
-+ sthio r4,small_local_common+4(r0)
-+ sthio r4,data_label-0x8000(r0)
-+ sthio r4,big_external_data_label-0x8000(r0)
-+ sthio r4,small_external_data_label-0x8000(r0)
-+ sthio r4,big_external_common-0x8000(r0)
-+ sthio r4,small_external_common-0x8000(r0)
-+ sthio r4,big_local_common-0x8000(r0)
-+ sthio r4,small_local_common-0x8000(r0)
-+ sthio r4,data_label+0x10000(r0)
-+ sthio r4,data_label(r5)
-+ sthio r4,big_external_data_label(r5)
-+ sthio r4,small_external_data_label(r5)
-+ sthio r4,big_external_common(r5)
-+ sthio r4,small_external_common(r5)
-+ sthio r4,big_local_common(r5)
-+ sthio r4,small_local_common(r5)
-+ sthio r4,data_label+4(r5)
-+ sthio r4,big_external_data_label+4(r5)
-+ sthio r4,small_external_data_label+4(r5)
-+ sthio r4,big_external_common+4(r5)
-+ sthio r4,small_external_common+4(r5)
-+ sthio r4,big_local_common+4(r5)
-+ sthio r4,small_local_common+4(r5)
-+ sthio r4,data_label-0x8000(r5)
-+ sthio r4,big_external_data_label-0x8000(r5)
-+ sthio r4,small_external_data_label-0x8000(r5)
-+ sthio r4,big_external_common-0x8000(r5)
-+ sthio r4,small_external_common-0x8000(r5)
-+ sthio r4,big_local_common-0x8000(r5)
-+ sthio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/str2.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/str2.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,21 @@
-+ .section .rodata.str1.1,"aMS",@progbits,1
-+.LC0:
-+ .string "DHRYSTONE PROGRAM, 3'RD STRING"
-+.LC1:
-+ .string "COMMON"
-+.LC2:
-+ .string "DHRYSTONE PROGRAM, 4'TH STRING"
-+
-+ .section .text
-+ .align 3
-+ .global func2
-+ .type func2, @function
-+func2:
-+ #movhi r2, %hiadj(.LC0)
-+ addi r2, r2, .LC0
-+ #movhi r3, %hiadj(.LC1)
-+ addi r3, r3, .LC1
-+ #movhi r4, %hiadj(.LC2)
-+ addi r4, r4, .LC2
-+ .size func2, .-func2
-+
---- binutils-2.15/gas/testsuite/gas/nios2/stw.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/stw.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,196 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 stw
-+
-+# Test the ld instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> stw r4,0\(zero\)
-+0+0004 <[^>]*> stw r4,4\(zero\)
-+0+0008 <[^>]*> stw r4,32764\(zero\)
-+0+000c <[^>]*> stw r4,-32768\(zero\)
-+0+0010 <[^>]*> stw r4,0\(r5\)
-+0+0014 <[^>]*> stw r4,4\(r5\)
-+0+0018 <[^>]*> stw r4,32764\(r5\)
-+0+001c <[^>]*> stw r4,-32768\(r5\)
-+0+0020 <[^>]*> stw r4,0\(zero\)
-+[ ]*20: R_NIOS2_S16 .data
-+0+0024 <[^>]*> stw r4,0\(zero\)
-+[ ]*24: R_NIOS2_S16 big_external_data_label
-+0+0028 <[^>]*> stw r4,0\(zero\)
-+[ ]*28: R_NIOS2_S16 small_external_data_label
-+0+002c <[^>]*> stw r4,0\(zero\)
-+[ ]*2c: R_NIOS2_S16 big_external_common
-+0+0030 <[^>]*> stw r4,0\(zero\)
-+[ ]*30: R_NIOS2_S16 small_external_common
-+0+0034 <[^>]*> stw r4,0\(zero\)
-+[ ]*34: R_NIOS2_S16 .bss
-+0+0038 <[^>]*> stw r4,0\(zero\)
-+[ ]*38: R_NIOS2_S16 .bss\+0x4000
-+0+003c <[^>]*> stw r4,0\(zero\)
-+[ ]*3c: R_NIOS2_S16 .data\+0x4
-+0+0040 <[^>]*> stw r4,0\(zero\)
-+[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0044 <[^>]*> stw r4,0\(zero\)
-+[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0048 <[^>]*> stw r4,0\(zero\)
-+[ ]*48: R_NIOS2_S16 big_external_common\+0x4
-+0+004c <[^>]*> stw r4,0\(zero\)
-+[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
-+0+0050 <[^>]*> stw r4,0\(zero\)
-+[ ]*50: R_NIOS2_S16 .bss\+0x4
-+0+0054 <[^>]*> stw r4,0\(zero\)
-+[ ]*54: R_NIOS2_S16 .bss\+0x4004
-+0+0058 <[^>]*> stw r4,0\(zero\)
-+[ ]*58: R_NIOS2_S16 .data\+0xffff8000
-+0+005c <[^>]*> stw r4,0\(zero\)
-+[ ]*5c: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0060 <[^>]*> stw r4,0\(zero\)
-+[ ]*60: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0064 <[^>]*> stw r4,0\(zero\)
-+[ ]*64: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0068 <[^>]*> stw r4,0\(zero\)
-+[ ]*68: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+006c <[^>]*> stw r4,0\(zero\)
-+[ ]*6c: R_NIOS2_S16 .bss\+0xffff8000
-+0+0070 <[^>]*> stw r4,0\(zero\)
-+[ ]*70: R_NIOS2_S16 .bss\+0xffffc000
-+0+0074 <[^>]*> stw r4,0\(zero\)
-+[ ]*74: R_NIOS2_S16 .data\+0x10000
-+0+0078 <[^>]*> stw r4,0\(r5\)
-+[ ]*78: R_NIOS2_S16 .data
-+0+007c <[^>]*> stw r4,0\(r5\)
-+[ ]*7c: R_NIOS2_S16 big_external_data_label
-+0+0080 <[^>]*> stw r4,0\(r5\)
-+[ ]*80: R_NIOS2_S16 small_external_data_label
-+0+0084 <[^>]*> stw r4,0\(r5\)
-+[ ]*84: R_NIOS2_S16 big_external_common
-+0+0088 <[^>]*> stw r4,0\(r5\)
-+[ ]*88: R_NIOS2_S16 small_external_common
-+0+008c <[^>]*> stw r4,0\(r5\)
-+[ ]*8c: R_NIOS2_S16 .bss
-+0+0090 <[^>]*> stw r4,0\(r5\)
-+[ ]*90: R_NIOS2_S16 .bss\+0x4000
-+0+0094 <[^>]*> stw r4,0\(r5\)
-+[ ]*94: R_NIOS2_S16 .data\+0x4
-+0+0098 <[^>]*> stw r4,0\(r5\)
-+[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
-+0+009c <[^>]*> stw r4,0\(r5\)
-+[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
-+0+00a0 <[^>]*> stw r4,0\(r5\)
-+[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
-+0+00a4 <[^>]*> stw r4,0\(r5\)
-+[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
-+0+00a8 <[^>]*> stw r4,0\(r5\)
-+[ ]*a8: R_NIOS2_S16 .bss\+0x4
-+0+00ac <[^>]*> stw r4,0\(r5\)
-+[ ]*ac: R_NIOS2_S16 .bss\+0x4004
-+0+00b0 <[^>]*> stw r4,0\(r5\)
-+[ ]*b0: R_NIOS2_S16 .data\+0xffff8000
-+0+00b4 <[^>]*> stw r4,0\(r5\)
-+[ ]*b4: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+00b8 <[^>]*> stw r4,0\(r5\)
-+[ ]*b8: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+00bc <[^>]*> stw r4,0\(r5\)
-+[ ]*bc: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+00c0 <[^>]*> stw r4,0\(r5\)
-+[ ]*c0: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+00c4 <[^>]*> stw r4,0\(r5\)
-+[ ]*c4: R_NIOS2_S16 .bss\+0xffff8000
-+0+00c8 <[^>]*> stw r4,0\(r5\)
-+[ ]*c8: R_NIOS2_S16 .bss\+0xffffc000
-+0+00cc <[^>]*> stwio r4,0\(zero\)
-+0+00d0 <[^>]*> stwio r4,4\(zero\)
-+0+00d4 <[^>]*> stwio r4,32764\(zero\)
-+0+00d8 <[^>]*> stwio r4,-32768\(zero\)
-+0+00dc <[^>]*> stwio r4,0\(r5\)
-+0+00e0 <[^>]*> stwio r4,4\(r5\)
-+0+00e4 <[^>]*> stwio r4,32764\(r5\)
-+0+00e8 <[^>]*> stwio r4,-32768\(r5\)
-+0+00ec <[^>]*> stwio r4,0\(zero\)
-+[ ]*ec: R_NIOS2_S16 .data
-+0+00f0 <[^>]*> stwio r4,0\(zero\)
-+[ ]*f0: R_NIOS2_S16 big_external_data_label
-+0+00f4 <[^>]*> stwio r4,0\(zero\)
-+[ ]*f4: R_NIOS2_S16 small_external_data_label
-+0+00f8 <[^>]*> stwio r4,0\(zero\)
-+[ ]*f8: R_NIOS2_S16 big_external_common
-+0+00fc <[^>]*> stwio r4,0\(zero\)
-+[ ]*fc: R_NIOS2_S16 small_external_common
-+0+0100 <[^>]*> stwio r4,0\(zero\)
-+[ ]*100: R_NIOS2_S16 .bss
-+0+0104 <[^>]*> stwio r4,0\(zero\)
-+[ ]*104: R_NIOS2_S16 .bss\+0x4000
-+0+0108 <[^>]*> stwio r4,0\(zero\)
-+[ ]*108: R_NIOS2_S16 .data\+0x4
-+0+010c <[^>]*> stwio r4,0\(zero\)
-+[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0110 <[^>]*> stwio r4,0\(zero\)
-+[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
-+0+0114 <[^>]*> stwio r4,0\(zero\)
-+[ ]*114: R_NIOS2_S16 big_external_common\+0x4
-+0+0118 <[^>]*> stwio r4,0\(zero\)
-+[ ]*118: R_NIOS2_S16 small_external_common\+0x4
-+0+011c <[^>]*> stwio r4,0\(zero\)
-+[ ]*11c: R_NIOS2_S16 .bss\+0x4
-+0+0120 <[^>]*> stwio r4,0\(zero\)
-+[ ]*120: R_NIOS2_S16 .bss\+0x4004
-+0+0124 <[^>]*> stwio r4,0\(zero\)
-+[ ]*124: R_NIOS2_S16 .data\+0xffff8000
-+0+0128 <[^>]*> stwio r4,0\(zero\)
-+[ ]*128: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+012c <[^>]*> stwio r4,0\(zero\)
-+[ ]*12c: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0130 <[^>]*> stwio r4,0\(zero\)
-+[ ]*130: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+0134 <[^>]*> stwio r4,0\(zero\)
-+[ ]*134: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0138 <[^>]*> stwio r4,0\(zero\)
-+[ ]*138: R_NIOS2_S16 .bss\+0xffff8000
-+0+013c <[^>]*> stwio r4,0\(zero\)
-+[ ]*13c: R_NIOS2_S16 .bss\+0xffffc000
-+0+0140 <[^>]*> stwio r4,0\(zero\)
-+[ ]*140: R_NIOS2_S16 .data\+0x10000
-+0+0144 <[^>]*> stwio r4,0\(r5\)
-+[ ]*144: R_NIOS2_S16 .data
-+0+0148 <[^>]*> stwio r4,0\(r5\)
-+[ ]*148: R_NIOS2_S16 big_external_data_label
-+0+014c <[^>]*> stwio r4,0\(r5\)
-+[ ]*14c: R_NIOS2_S16 small_external_data_label
-+0+0150 <[^>]*> stwio r4,0\(r5\)
-+[ ]*150: R_NIOS2_S16 big_external_common
-+0+0154 <[^>]*> stwio r4,0\(r5\)
-+[ ]*154: R_NIOS2_S16 small_external_common
-+0+0158 <[^>]*> stwio r4,0\(r5\)
-+[ ]*158: R_NIOS2_S16 .bss
-+0+015c <[^>]*> stwio r4,0\(r5\)
-+[ ]*15c: R_NIOS2_S16 .bss\+0x4000
-+0+0160 <[^>]*> stwio r4,0\(r5\)
-+[ ]*160: R_NIOS2_S16 .data\+0x4
-+0+0164 <[^>]*> stwio r4,0\(r5\)
-+[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
-+0+0168 <[^>]*> stwio r4,0\(r5\)
-+[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
-+0+016c <[^>]*> stwio r4,0\(r5\)
-+[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
-+0+0170 <[^>]*> stwio r4,0\(r5\)
-+[ ]*170: R_NIOS2_S16 small_external_common\+0x4
-+0+0174 <[^>]*> stwio r4,0\(r5\)
-+[ ]*174: R_NIOS2_S16 .bss\+0x4
-+0+0178 <[^>]*> stwio r4,0\(r5\)
-+[ ]*178: R_NIOS2_S16 .bss\+0x4004
-+0+017c <[^>]*> stwio r4,0\(r5\)
-+[ ]*17c: R_NIOS2_S16 .data\+0xffff8000
-+0+0180 <[^>]*> stwio r4,0\(r5\)
-+[ ]*180: R_NIOS2_S16 big_external_data_label\+0xffff8000
-+0+0184 <[^>]*> stwio r4,0\(r5\)
-+[ ]*184: R_NIOS2_S16 small_external_data_label\+0xffff8000
-+0+0188 <[^>]*> stwio r4,0\(r5\)
-+[ ]*188: R_NIOS2_S16 big_external_common\+0xffff8000
-+0+018c <[^>]*> stwio r4,0\(r5\)
-+[ ]*18c: R_NIOS2_S16 small_external_common\+0xffff8000
-+0+0190 <[^>]*> stwio r4,0\(r5\)
-+[ ]*190: R_NIOS2_S16 .bss\+0xffff8000
-+0+0194 <[^>]*> stwio r4,0\(r5\)
-+[ ]*194: R_NIOS2_S16 .bss\+0xffffc000
---- binutils-2.15/gas/testsuite/gas/nios2/stw.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/stw.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,117 @@
-+ .data
-+data_label:
-+ .extern big_external_data_label,0x4000
-+ .extern small_external_data_label,4
-+ .comm big_external_common,0x4000
-+ .comm small_external_common,4
-+ .lcomm big_local_common,0x4000
-+ .lcomm small_local_common,4
-+
-+# the small symbols should have space allocated in the sbss section
-+# but this is not yet supported in the assembler, so space is allocated
-+# in the .bss section and the relocations are not gp-relative. this will
-+# be updated when gp-relative relocations are added
-+ .text
-+ stw r4,0(r0)
-+ stw r4,4(r0)
-+ stw r4,0x7ffc(r0)
-+ stw r4,-0x8000(r0)
-+ stw r4,0(r5)
-+ stw r4,4(r5)
-+ stw r4,0x7ffc(r5)
-+ stw r4,-0x8000(r5)
-+ stw r4,data_label(r0)
-+ stw r4,big_external_data_label(r0)
-+ stw r4,small_external_data_label(r0)
-+ stw r4,big_external_common(r0)
-+ stw r4,small_external_common(r0)
-+ stw r4,big_local_common(r0)
-+ stw r4,small_local_common(r0)
-+ stw r4,data_label+4(r0)
-+ stw r4,big_external_data_label+4(r0)
-+ stw r4,small_external_data_label+4(r0)
-+ stw r4,big_external_common+4(r0)
-+ stw r4,small_external_common+4(r0)
-+ stw r4,big_local_common+4(r0)
-+ stw r4,small_local_common+4(r0)
-+ stw r4,data_label-0x8000(r0)
-+ stw r4,big_external_data_label-0x8000(r0)
-+ stw r4,small_external_data_label-0x8000(r0)
-+ stw r4,big_external_common-0x8000(r0)
-+ stw r4,small_external_common-0x8000(r0)
-+ stw r4,big_local_common-0x8000(r0)
-+ stw r4,small_local_common-0x8000(r0)
-+ stw r4,data_label+0x10000(r0)
-+ stw r4,data_label(r5)
-+ stw r4,big_external_data_label(r5)
-+ stw r4,small_external_data_label(r5)
-+ stw r4,big_external_common(r5)
-+ stw r4,small_external_common(r5)
-+ stw r4,big_local_common(r5)
-+ stw r4,small_local_common(r5)
-+ stw r4,data_label+4(r5)
-+ stw r4,big_external_data_label+4(r5)
-+ stw r4,small_external_data_label+4(r5)
-+ stw r4,big_external_common+4(r5)
-+ stw r4,small_external_common+4(r5)
-+ stw r4,big_local_common+4(r5)
-+ stw r4,small_local_common+4(r5)
-+ stw r4,data_label-0x8000(r5)
-+ stw r4,big_external_data_label-0x8000(r5)
-+ stw r4,small_external_data_label-0x8000(r5)
-+ stw r4,big_external_common-0x8000(r5)
-+ stw r4,small_external_common-0x8000(r5)
-+ stw r4,big_local_common-0x8000(r5)
-+ stw r4,small_local_common-0x8000(r5)
-+
-+ stwio r4,0(r0)
-+ stwio r4,4(r0)
-+ stwio r4,0x7ffc(r0)
-+ stwio r4,-0x8000(r0)
-+ stwio r4,0(r5)
-+ stwio r4,4(r5)
-+ stwio r4,0x7ffc(r5)
-+ stwio r4,-0x8000(r5)
-+ stwio r4,data_label(r0)
-+ stwio r4,big_external_data_label(r0)
-+ stwio r4,small_external_data_label(r0)
-+ stwio r4,big_external_common(r0)
-+ stwio r4,small_external_common(r0)
-+ stwio r4,big_local_common(r0)
-+ stwio r4,small_local_common(r0)
-+ stwio r4,data_label+4(r0)
-+ stwio r4,big_external_data_label+4(r0)
-+ stwio r4,small_external_data_label+4(r0)
-+ stwio r4,big_external_common+4(r0)
-+ stwio r4,small_external_common+4(r0)
-+ stwio r4,big_local_common+4(r0)
-+ stwio r4,small_local_common+4(r0)
-+ stwio r4,data_label-0x8000(r0)
-+ stwio r4,big_external_data_label-0x8000(r0)
-+ stwio r4,small_external_data_label-0x8000(r0)
-+ stwio r4,big_external_common-0x8000(r0)
-+ stwio r4,small_external_common-0x8000(r0)
-+ stwio r4,big_local_common-0x8000(r0)
-+ stwio r4,small_local_common-0x8000(r0)
-+ stwio r4,data_label+0x10000(r0)
-+ stwio r4,data_label(r5)
-+ stwio r4,big_external_data_label(r5)
-+ stwio r4,small_external_data_label(r5)
-+ stwio r4,big_external_common(r5)
-+ stwio r4,small_external_common(r5)
-+ stwio r4,big_local_common(r5)
-+ stwio r4,small_local_common(r5)
-+ stwio r4,data_label+4(r5)
-+ stwio r4,big_external_data_label+4(r5)
-+ stwio r4,small_external_data_label+4(r5)
-+ stwio r4,big_external_common+4(r5)
-+ stwio r4,small_external_common+4(r5)
-+ stwio r4,big_local_common+4(r5)
-+ stwio r4,small_local_common+4(r5)
-+ stwio r4,data_label-0x8000(r5)
-+ stwio r4,big_external_data_label-0x8000(r5)
-+ stwio r4,small_external_data_label-0x8000(r5)
-+ stwio r4,big_external_common-0x8000(r5)
-+ stwio r4,small_external_common-0x8000(r5)
-+ stwio r4,big_local_common-0x8000(r5)
-+ stwio r4,small_local_common-0x8000(r5)
---- binutils-2.15/gas/testsuite/gas/nios2/sub.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sub.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,10 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 sub
-+
-+# Test the add instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> sub r4,r4,r4
-+
---- binutils-2.15/gas/testsuite/gas/nios2/sub.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sub.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,4 @@
-+# Source file used to test the add and addi instructions.
-+
-+foo:
-+ sub r4,r4,r4
---- binutils-2.15/gas/testsuite/gas/nios2/sync.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sync.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 sync
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section \.text:
-+0+0000 <foo> sync
-+
---- binutils-2.15/gas/testsuite/gas/nios2/sync.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/sync.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the sync instructions
-+foo:
-+ sync
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/trap.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/trap.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,7 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 trap
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> trap
---- binutils-2.15/gas/testsuite/gas/nios2/trap.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/trap.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,3 @@
-+# Source file used to test the ret instructions
-+foo:
-+ trap
---- binutils-2.15/gas/testsuite/gas/nios2/tret.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/tret.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 tret
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> eret
-+
---- binutils-2.15/gas/testsuite/gas/nios2/tret.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/tret.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+# Source file used to test the ret instructions
-+foo:
-+ eret
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/u16_symbol.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/u16_symbol.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+.global some_sym
-+.global min
-+.global max
-+
-+.set max, 0xffff
-+.set min, 0
-+.set some_sym, 0x1000
-+
-+
---- binutils-2.15/gas/testsuite/gas/nios2/warn_noat.l 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/warn_noat.l 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,5 @@
-+.*warn_noat.s: Assembler messages:
-+.*warn_noat.s:2: Warning: Register at \(r1\) can sometimes be corrupted by assembler optimizations.
-+Use .set noat to turn off those optimizations \(and this warning\).
-+.*warn_noat.s:8: Warning: Register at \(r1\) can sometimes be corrupted by assembler optimizations.
-+Use .set noat to turn off those optimizations \(and this warning\).
---- binutils-2.15/gas/testsuite/gas/nios2/warn_noat.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/warn_noat.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,8 @@
-+.set noat, 2 # This should not cause warning for at to be turned off
-+add at, r2, r2
-+.set noat # this should turn the warnings off
-+add at, r2, r2
-+.set at, 3 # this should not turn the warnings on
-+add at, r2, r2
-+.set at # this should turn the warnings on
-+add at, r2, r2
---- binutils-2.15/gas/testsuite/gas/nios2/warn_nobreak.l 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/warn_nobreak.l 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,9 @@
-+.*warn_nobreak.s: Assembler messages:
-+.*warn_nobreak.s:2: Warning: The debugger will corrupt ba \(r30\). If you don't need to debug this
-+code then use .set nobreak to turn off this warning.
-+.*warn_nobreak.s:3: Warning: The debugger will corrupt bt \(r25\). If you don't need to debug this
-+code then use .set nobreak to turn off this warning.
-+.*warn_nobreak.s:11: Warning: The debugger will corrupt ba \(r30\). If you don't need to debug this
-+code then use .set nobreak to turn off this warning.
-+.*warn_nobreak.s:12: Warning: The debugger will corrupt bt \(r25\). If you don't need to debug this
-+code then use .set nobreak to turn off this warning.
---- binutils-2.15/gas/testsuite/gas/nios2/warn_nobreak.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/warn_nobreak.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,12 @@
-+.set nobreak , 2 # This should not cause warning for ba, bt to be turned off
-+add ba, r2, r2
-+add bt, r2, r2
-+.set nobreak # this should turn the warnings off
-+add ba, r3, r4
-+add bt, r3, r4
-+.set break, 3 # this should not turn the warnings on
-+add ba, r3, r4
-+add bt, r3, r4
-+.set break # this should turn the warnings on
-+add ba, r3, r4
-+add bt, r3, r4
---- binutils-2.15/gas/testsuite/gas/nios2/xor.d 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/xor.d 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,11 @@
-+#objdump: -dr --prefix-addresses
-+#name: NIOS2 xor
-+
-+# Test the nor instruction
-+
-+.*: +file format elf32-littlenios2
-+
-+Disassembly of section .text:
-+0+0000 <[^>]*> xor r6,r8,r10
-+0+0004 <[^>]*> xorhi r6,r7,65535
-+0+0008 <[^>]*> xori r6,r7,65535
---- binutils-2.15/gas/testsuite/gas/nios2/xor.s 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/gas/nios2/xor.s 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,7 @@
-+# Source file used to test the nor instruction
-+
-+foo:
-+ xor r6,r8,r10
-+ xorhi r6,r7,0xffff
-+ xori r6,r7,0xffff
-+
---- binutils-2.15/gas/testsuite/nios2_as_xfail.lst 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/gas/testsuite/nios2_as_xfail.lst 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,4 @@
-+FAIL: vtable inherit0
-+FAIL: vtable entry1
-+
-+
---- binutils-2.15/include/bfdlink.h 2004-05-17 21:36:06.000000000 +0200
-+++ binutils-2.15-nios2/include/bfdlink.h 2005-05-17 12:20:14.000000000 +0200
-@@ -688,4 +688,14 @@ struct bfd_elf_version_tree
- struct bfd_elf_version_expr *prev, const char *sym);
- };
-
-+/* NG - There seems to be no way of getting link_info from the linker into
-+ * bfd so that functions which aren't passed it can use it, and I need
-+ * it so that gprel relocations work properly when generating srecs. This isn't
-+ * right, but it works, and for the amount of work...*/
-+#define bfd_set_link_info _bfd_set_link_info
-+extern void _bfd_set_link_info (struct bfd_link_info *info);
-+
-+#define bfd_set_force_make_executable _bfd_set_force_make_executable
-+extern void _bfd_set_force_make_executable (bfd_boolean force);
-+
- #endif
---- binutils-2.15/include/dis-asm.h 2003-11-14 16:12:43.000000000 +0100
-+++ binutils-2.15-nios2/include/dis-asm.h 2005-05-17 12:20:14.000000000 +0200
-@@ -247,6 +247,7 @@ extern int print_insn_sh64 (bfd_vma, di
- extern int print_insn_sh64x_media (bfd_vma, disassemble_info *);
- extern int print_insn_frv (bfd_vma, disassemble_info *);
- extern int print_insn_iq2000 (bfd_vma, disassemble_info *);
-+extern int print_insn_nios2 (bfd_vma, disassemble_info *);
-
- extern disassembler_ftype arc_get_disassembler (void *);
- extern disassembler_ftype cris_get_disassembler (bfd *);
---- binutils-2.15/include/elf/common.h 2004-01-29 03:41:18.000000000 +0100
-+++ binutils-2.15-nios2/include/elf/common.h 2005-05-17 12:20:14.000000000 +0200
-@@ -182,6 +182,8 @@
- #define EM_IP2K 101 /* Ubicom IP2022 micro controller */
- #define EM_MSP430 105 /* TI msp430 micro controller */
-
-+#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
-+
- /* If it is necessary to assign new unofficial EM_* values, please pick large
- random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
- with official or non-GNU unofficial values.
---- binutils-2.15/include/elf/nios2.h 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/include/elf/nios2.h 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,65 @@
-+/* Altera New Jersey ELF support for BFD
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+This file is part of BFD, the Binary File Descriptor library.
-+
-+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 2 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, write to the Free Software
-+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+/* This file holds definitions specific to the Altera New Jersey ELF ABI. Note
-+ that most of this is not actually implemented by BFD. */
-+
-+#ifndef _ELF_NIOS2_H
-+#define _ELF_NIOS2_H
-+
-+#include "elf/reloc-macros.h"
-+
-+/* the order of these numbers must match the order in
-+ the elf_nios2_howto_table_rel table for the lookup
-+ function to work properly */
-+
-+START_RELOC_NUMBERS (elf_nios2_reloc_type)
-+ RELOC_NUMBER (R_NIOS2_NONE, 0)
-+ RELOC_NUMBER (R_NIOS2_S16, 1)
-+ RELOC_NUMBER (R_NIOS2_U16, 2)
-+ RELOC_NUMBER (R_NIOS2_PCREL16, 3)
-+ RELOC_NUMBER (R_NIOS2_CALL26, 4)
-+ RELOC_NUMBER (R_NIOS2_IMM5, 5)
-+ RELOC_NUMBER (R_NIOS2_CACHE_OPX, 6)
-+ RELOC_NUMBER (R_NIOS2_IMM6, 7)
-+ RELOC_NUMBER (R_NIOS2_IMM8, 8)
-+ RELOC_NUMBER (R_NIOS2_HI16, 9)
-+ RELOC_NUMBER (R_NIOS2_LO16, 10)
-+ RELOC_NUMBER (R_NIOS2_HIADJ16, 11)
-+ RELOC_NUMBER (R_NIOS2_BFD_RELOC_32, 12)
-+ RELOC_NUMBER (R_NIOS2_BFD_RELOC_16, 13)
-+ RELOC_NUMBER (R_NIOS2_BFD_RELOC_8, 14)
-+ RELOC_NUMBER (R_NIOS2_GPREL, 15)
-+ RELOC_NUMBER (R_NIOS2_GNU_VTINHERIT, 16)
-+ RELOC_NUMBER (R_NIOS2_GNU_VTENTRY, 17)
-+ RELOC_NUMBER (R_NIOS2_UJMP, 18)
-+ RELOC_NUMBER (R_NIOS2_CJMP, 19)
-+ RELOC_NUMBER (R_NIOS2_CALLR, 20)
-+ RELOC_NUMBER (R_NIOS2_ALIGN, 21)
-+ RELOC_NUMBER (R_NIOS2_ILLEGAL, 22)
-+END_RELOC_NUMBERS (R_NIOS2_maxext)
-+
-+/* Processor specific section flags */
-+
-+/* This is used to mark gp-relative sections */
-+#define SHF_NIOS2_GPREL 0x10000000
-+
-+#endif //_ELF_NIOS2_H
---- binutils-2.15/include/opcode/nios2-isa.h 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/include/opcode/nios2-isa.h 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,1453 @@
-+/* This file is automatically generated by gen_isa.pl - do not edit */
-+
-+#ifndef _NIOS2_ISA_H_
-+#define _NIOS2_ISA_H_
-+
-+/* OP instruction opcode values (index is OP field) */
-+#define NUM_OP_INSTS 64
-+extern const char* op_names[NUM_OP_INSTS];
-+
-+/* OPX instruction opcode values (index is OPX field) */
-+#define NUM_OPX_INSTS 64
-+extern const char* opx_names[NUM_OPX_INSTS];
-+
-+/* Constants for instruction fields and ISA */
-+#define BRETADDR_REGNUM 30
-+#define BSTATUS_REG_LSB 2
-+#define BSTATUS_REG_MMU_LSB 0
-+#define BSTATUS_REG_MMU_MSB 2
-+#define BSTATUS_REG_MMU_SZ 3
-+#define BSTATUS_REG_MMU_MASK 0x7
-+#define BSTATUS_REG_NO_MMU_LSB 0
-+#define BSTATUS_REG_NO_MMU_MSB 0
-+#define BSTATUS_REG_NO_MMU_SZ 1
-+#define BSTATUS_REG_NO_MMU_MASK 0x1
-+#define BSTATUS_REG_REGNUM 2
-+#define BSTATUS_REG_SZ 3
-+#define BSTATUS_REG_MASK 0x7
-+#define COMPARE_OP_EQ 0x0
-+#define COMPARE_OP_GE 0x1
-+#define COMPARE_OP_LSB 3
-+#define COMPARE_OP_LT 0x2
-+#define COMPARE_OP_MSB 4
-+#define COMPARE_OP_NE 0x3
-+#define COMPARE_OP_SZ 2
-+#define COMPARE_OP_MASK 0x3
-+#define CPUID_REG_LSB 0
-+#define CPUID_REG_MSB 31
-+#define CPUID_REG_REGNUM 5
-+#define CPUID_REG_SZ 32
-+#define CPUID_REG_MASK 0xffffffff
-+#define DATAPATH_LOG2_SZ 5
-+#define DATAPATH_LOG2_MASK 0x1f
-+#define DATAPATH_LSB 0
-+#define DATAPATH_MSB 31
-+#define DATAPATH_SZ 32
-+#define DATAPATH_MASK 0xffffffff
-+#define EMPTY_HBREAK_IW 4040762
-+#define EMPTY_INTR_IW 3926074
-+#define EMPTY_NOP_IW 100410
-+#define EMPTY_RET_IW 4160759866
-+#define ERETADDR_REGNUM 29
-+#define ESTATUS_REG_LSB 0
-+#define ESTATUS_REG_MMU_LSB 0
-+#define ESTATUS_REG_MMU_MSB 2
-+#define ESTATUS_REG_MMU_SZ 3
-+#define ESTATUS_REG_MMU_MASK 0x7
-+#define ESTATUS_REG_MSB 2
-+#define ESTATUS_REG_NO_MMU_LSB 0
-+#define ESTATUS_REG_NO_MMU_MSB 0
-+#define ESTATUS_REG_NO_MMU_SZ 1
-+#define ESTATUS_REG_NO_MMU_MASK 0x1
-+#define ESTATUS_REG_REGNUM 1
-+#define ESTATUS_REG_SZ 3
-+#define ESTATUS_REG_MASK 0x7
-+#define FP_REGNUM 28
-+#define GP_REGNUM 26
-+#define IENABLE_REG_LSB 0
-+#define IENABLE_REG_MSB 31
-+#define IENABLE_REG_REGNUM 3
-+#define IENABLE_REG_SZ 32
-+#define IENABLE_REG_MASK 0xffffffff
-+#define IPENDING_REG_LSB 0
-+#define IPENDING_REG_MSB 31
-+#define IPENDING_REG_REGNUM 4
-+#define IPENDING_REG_SZ 32
-+#define IPENDING_REG_MASK 0xffffffff
-+#define IW_A_LSB 27
-+#define IW_A_MSB 31
-+#define IW_A_SZ 5
-+#define IW_A_MASK 0x1f
-+#define IW_B_LSB 22
-+#define IW_B_MSB 26
-+#define IW_B_SZ 5
-+#define IW_B_MASK 0x1f
-+#define IW_C_LSB 17
-+#define IW_C_MSB 21
-+#define IW_C_SZ 5
-+#define IW_C_MASK 0x1f
-+#define IW_CONTROL_REGNUM_BASE 0
-+#define IW_CONTROL_REGNUM_LSB 6
-+#define IW_CONTROL_REGNUM_MSB 9
-+#define IW_CONTROL_REGNUM_SZ 4
-+#define IW_CONTROL_REGNUM_MASK 0xf
-+#define IW_CUSTOM_N_LSB 6
-+#define IW_CUSTOM_N_MSB 13
-+#define IW_CUSTOM_N_SZ 8
-+#define IW_CUSTOM_N_MASK 0xff
-+#define IW_CUSTOM_READRA_LSB 16
-+#define IW_CUSTOM_READRA_MSB 16
-+#define IW_CUSTOM_READRA_SZ 1
-+#define IW_CUSTOM_READRA_MASK 0x1
-+#define IW_CUSTOM_READRB_LSB 15
-+#define IW_CUSTOM_READRB_MSB 15
-+#define IW_CUSTOM_READRB_SZ 1
-+#define IW_CUSTOM_READRB_MASK 0x1
-+#define IW_CUSTOM_WRITERC_LSB 14
-+#define IW_CUSTOM_WRITERC_MSB 14
-+#define IW_CUSTOM_WRITERC_SZ 1
-+#define IW_CUSTOM_WRITERC_MASK 0x1
-+#define IW_IMM16_LSB 6
-+#define IW_IMM16_MSB 21
-+#define IW_IMM16_SZ 16
-+#define IW_IMM16_MASK 0xffff
-+#define IW_IMM26_LSB 6
-+#define IW_IMM26_MSB 31
-+#define IW_IMM26_SZ 26
-+#define IW_IMM26_MASK 0x3ffffff
-+#define IW_MEMSZ_BYTE 0x0
-+#define IW_MEMSZ_HWORD 0x1
-+#define IW_MEMSZ_LSB 3
-+#define IW_MEMSZ_MSB 4
-+#define IW_MEMSZ_SZ 2
-+#define IW_MEMSZ_MASK 0x3
-+#define IW_MEMSZ_WORD 0x2
-+#define IW_MEMSZ_WORD_MSB 0x1
-+#define IW_OP_LSB 0
-+#define IW_OP_MSB 5
-+#define IW_OP_SZ 6
-+#define IW_OP_MASK 0x3f
-+#define IW_OPX_LSB 11
-+#define IW_OPX_MSB 16
-+#define IW_OPX_SZ 6
-+#define IW_OPX_MASK 0x3f
-+#define IW_SHIFT_IMM5_LSB 6
-+#define IW_SHIFT_IMM5_MSB 10
-+#define IW_SHIFT_IMM5_SZ 5
-+#define IW_SHIFT_IMM5_MASK 0x1f
-+#define IW_SZ 32
-+#define IW_MASK 0xffffffff
-+#define IW_TRAP_BREAK_IMM5_LSB 6
-+#define IW_TRAP_BREAK_IMM5_MSB 10
-+#define IW_TRAP_BREAK_IMM5_SZ 5
-+#define IW_TRAP_BREAK_IMM5_MASK 0x1f
-+#define JMP_CALLR_VS_RET_IS_RET 0
-+#define JMP_CALLR_VS_RET_OPX_BIT 3
-+#define LOGIC_OP_AND 0x1
-+#define LOGIC_OP_LSB 3
-+#define LOGIC_OP_MSB 4
-+#define LOGIC_OP_NOR 0x0
-+#define LOGIC_OP_OR 0x2
-+#define LOGIC_OP_SZ 2
-+#define LOGIC_OP_MASK 0x3
-+#define LOGIC_OP_XOR 0x3
-+#define MMU_ADDR_BYPASS_TLB 0x3
-+#define MMU_ADDR_BYPASS_TLB_CACHEABLE 0x0
-+#define MMU_ADDR_BYPASS_TLB_CACHEABLE_LSB 29
-+#define MMU_ADDR_BYPASS_TLB_CACHEABLE_MSB 29
-+#define MMU_ADDR_BYPASS_TLB_CACHEABLE_SZ 1
-+#define MMU_ADDR_BYPASS_TLB_CACHEABLE_MASK 0x1
-+#define MMU_ADDR_BYPASS_TLB_LSB 30
-+#define MMU_ADDR_BYPASS_TLB_MSB 31
-+#define MMU_ADDR_BYPASS_TLB_PADDR_LSB 0
-+#define MMU_ADDR_BYPASS_TLB_PADDR_MSB 28
-+#define MMU_ADDR_BYPASS_TLB_PADDR_SZ 29
-+#define MMU_ADDR_BYPASS_TLB_PADDR_MASK 0x1fffffff
-+#define MMU_ADDR_BYPASS_TLB_SZ 2
-+#define MMU_ADDR_BYPASS_TLB_MASK 0x3
-+#define MMU_ADDR_IO_REGION 0x7
-+#define MMU_ADDR_IO_REGION_LSB 29
-+#define MMU_ADDR_IO_REGION_MSB 31
-+#define MMU_ADDR_IO_REGION_SZ 3
-+#define MMU_ADDR_IO_REGION_MASK 0x7
-+#define MMU_ADDR_KERNEL_MMU_REGION 0x2
-+#define MMU_ADDR_KERNEL_MMU_REGION_LSB 30
-+#define MMU_ADDR_KERNEL_MMU_REGION_MSB 31
-+#define MMU_ADDR_KERNEL_MMU_REGION_SZ 2
-+#define MMU_ADDR_KERNEL_MMU_REGION_MASK 0x3
-+#define MMU_ADDR_KERNEL_REGION 0x6
-+#define MMU_ADDR_KERNEL_REGION_LSB 29
-+#define MMU_ADDR_KERNEL_REGION_MSB 31
-+#define MMU_ADDR_KERNEL_REGION_SZ 3
-+#define MMU_ADDR_KERNEL_REGION_MASK 0x7
-+#define MMU_ADDR_PAGE_OFFSET_LSB 0
-+#define MMU_ADDR_PAGE_OFFSET_MSB 11
-+#define MMU_ADDR_PAGE_OFFSET_SZ 12
-+#define MMU_ADDR_PAGE_OFFSET_MASK 0xfff
-+#define MMU_ADDR_PFN_LSB 12
-+#define MMU_ADDR_PFN_MSB 31
-+#define MMU_ADDR_PFN_SZ 20
-+#define MMU_ADDR_PFN_MASK 0xfffff
-+#define MMU_ADDR_USER_REGION 0x0
-+#define MMU_ADDR_USER_REGION_LSB 31
-+#define MMU_ADDR_USER_REGION_MSB 31
-+#define MMU_ADDR_USER_REGION_SZ 1
-+#define MMU_ADDR_USER_REGION_MASK 0x1
-+#define MMU_ADDR_VPN_LSB 12
-+#define MMU_ADDR_VPN_MSB 31
-+#define MMU_ADDR_VPN_SZ 20
-+#define MMU_ADDR_VPN_MASK 0xfffff
-+#define PERF_CNT_REG_CLR_LSB 1
-+#define PERF_CNT_REG_CLR_MSB 1
-+#define PERF_CNT_REG_CLR_SZ 1
-+#define PERF_CNT_REG_CLR_MASK 0x1
-+#define PERF_CNT_REG_EN_LSB 0
-+#define PERF_CNT_REG_EN_MSB 0
-+#define PERF_CNT_REG_EN_SZ 1
-+#define PERF_CNT_REG_EN_MASK 0x1
-+#define PERF_CNT_REG_LSB 0
-+#define PERF_CNT_REG_MSB 1
-+#define PERF_CNT_REG_REGNUM 7
-+#define PERF_CNT_REG_SZ 2
-+#define PERF_CNT_REG_MASK 0x3
-+#define PTEADDR_REG_LSB 0
-+#define PTEADDR_REG_MSB 31
-+#define PTEADDR_REG_PTBASE_LSB 22
-+#define PTEADDR_REG_PTBASE_MSB 31
-+#define PTEADDR_REG_PTBASE_SZ 10
-+#define PTEADDR_REG_PTBASE_MASK 0x3ff
-+#define PTEADDR_REG_REGNUM 8
-+#define PTEADDR_REG_RSV_LSB 0
-+#define PTEADDR_REG_RSV_MSB 1
-+#define PTEADDR_REG_RSV_SZ 2
-+#define PTEADDR_REG_RSV_MASK 0x3
-+#define PTEADDR_REG_SZ 32
-+#define PTEADDR_REG_MASK 0xffffffff
-+#define PTEADDR_REG_VPN_LSB 2
-+#define PTEADDR_REG_VPN_MSB 21
-+#define PTEADDR_REG_VPN_SZ 20
-+#define PTEADDR_REG_VPN_MASK 0xfffff
-+#define REGNUM_SZ 5
-+#define REGNUM_MASK 0x1f
-+#define RETADDR_REGNUM 31
-+#define RF_ADDR_SZ 5
-+#define RF_ADDR_MASK 0x1f
-+#define RF_NUM_REG 32
-+#define SIM_REG_LSB 0
-+#define SIM_REG_MSB 3
-+#define SIM_REG_REGNUM 6
-+#define SIM_REG_SHOW_DTLB_LSB 2
-+#define SIM_REG_SHOW_DTLB_MSB 2
-+#define SIM_REG_SHOW_DTLB_SZ 1
-+#define SIM_REG_SHOW_DTLB_MASK 0x1
-+#define SIM_REG_SHOW_ITLB_LSB 1
-+#define SIM_REG_SHOW_ITLB_MSB 1
-+#define SIM_REG_SHOW_ITLB_SZ 1
-+#define SIM_REG_SHOW_ITLB_MASK 0x1
-+#define SIM_REG_SHOW_MMU_REGS_LSB 3
-+#define SIM_REG_SHOW_MMU_REGS_MSB 3
-+#define SIM_REG_SHOW_MMU_REGS_SZ 1
-+#define SIM_REG_SHOW_MMU_REGS_MASK 0x1
-+#define SIM_REG_STOP_LSB 0
-+#define SIM_REG_STOP_MSB 0
-+#define SIM_REG_STOP_SZ 1
-+#define SIM_REG_STOP_MASK 0x1
-+#define SIM_REG_SZ 4
-+#define SIM_REG_MASK 0xf
-+#define SP_REGNUM 27
-+#define STATUS_REG_EH_LSB 2
-+#define STATUS_REG_EH_MSB 2
-+#define STATUS_REG_EH_SZ 1
-+#define STATUS_REG_EH_MASK 0x1
-+#define STATUS_REG_LSB 0
-+#define STATUS_REG_MMU_LSB 0
-+#define STATUS_REG_MMU_MSB 2
-+#define STATUS_REG_MMU_SZ 3
-+#define STATUS_REG_MMU_MASK 0x7
-+#define STATUS_REG_MSB 2
-+#define STATUS_REG_NO_MMU_LSB 0
-+#define STATUS_REG_NO_MMU_MSB 0
-+#define STATUS_REG_NO_MMU_SZ 1
-+#define STATUS_REG_NO_MMU_MASK 0x1
-+#define STATUS_REG_PIE_LSB 0
-+#define STATUS_REG_PIE_MSB 0
-+#define STATUS_REG_PIE_SZ 1
-+#define STATUS_REG_PIE_MASK 0x1
-+#define STATUS_REG_REGNUM 0
-+#define STATUS_REG_SZ 3
-+#define STATUS_REG_MASK 0x7
-+#define STATUS_REG_U_LSB 1
-+#define STATUS_REG_U_MSB 1
-+#define STATUS_REG_U_SZ 1
-+#define STATUS_REG_U_MASK 0x1
-+#define TLB_MAX_ENTRIES 1024
-+#define TLB_MAX_LINES 512
-+#define TLB_MAX_PID_SZ 14
-+#define TLB_MAX_PID_MASK 0x3fff
-+#define TLB_MAX_PTR_SZ 10
-+#define TLB_MAX_PTR_MASK 0x3ff
-+#define TLB_MAX_WAYS 8
-+#define TLB_MIN_PID_SZ 1
-+#define TLB_MIN_PID_MASK 0x1
-+#define TLB_MIN_PTR_SZ 7
-+#define TLB_MIN_PTR_MASK 0x7f
-+#define TLB_MIN_WAYS 2
-+#define TLBACC_REG_C_LSB 24
-+#define TLBACC_REG_C_MSB 24
-+#define TLBACC_REG_C_SZ 1
-+#define TLBACC_REG_C_MASK 0x1
-+#define TLBACC_REG_G_LSB 20
-+#define TLBACC_REG_G_MSB 20
-+#define TLBACC_REG_G_SZ 1
-+#define TLBACC_REG_G_MASK 0x1
-+#define TLBACC_REG_LSB 0
-+#define TLBACC_REG_MSB 24
-+#define TLBACC_REG_PFN_LSB 0
-+#define TLBACC_REG_PFN_MSB 19
-+#define TLBACC_REG_PFN_SZ 20
-+#define TLBACC_REG_PFN_MASK 0xfffff
-+#define TLBACC_REG_R_LSB 23
-+#define TLBACC_REG_R_MSB 23
-+#define TLBACC_REG_R_SZ 1
-+#define TLBACC_REG_R_MASK 0x1
-+#define TLBACC_REG_REGNUM 9
-+#define TLBACC_REG_SZ 25
-+#define TLBACC_REG_MASK 0x1ffffff
-+#define TLBACC_REG_W_LSB 22
-+#define TLBACC_REG_W_MSB 22
-+#define TLBACC_REG_W_SZ 1
-+#define TLBACC_REG_W_MASK 0x1
-+#define TLBACC_REG_X_LSB 21
-+#define TLBACC_REG_X_MSB 21
-+#define TLBACC_REG_X_SZ 1
-+#define TLBACC_REG_X_MASK 0x1
-+#define TLBMISC_REG_BAD_LSB 2
-+#define TLBMISC_REG_BAD_MSB 2
-+#define TLBMISC_REG_BAD_SZ 1
-+#define TLBMISC_REG_BAD_MASK 0x1
-+#define TLBMISC_REG_D_LSB 0
-+#define TLBMISC_REG_D_MSB 0
-+#define TLBMISC_REG_D_SZ 1
-+#define TLBMISC_REG_D_MASK 0x1
-+#define TLBMISC_REG_DBL_LSB 3
-+#define TLBMISC_REG_DBL_MSB 3
-+#define TLBMISC_REG_DBL_SZ 1
-+#define TLBMISC_REG_DBL_MASK 0x1
-+#define TLBMISC_REG_LSB 0
-+#define TLBMISC_REG_MSB 22
-+#define TLBMISC_REG_PERM_LSB 1
-+#define TLBMISC_REG_PERM_MSB 1
-+#define TLBMISC_REG_PERM_SZ 1
-+#define TLBMISC_REG_PERM_MASK 0x1
-+#define TLBMISC_REG_PID_LSB 4
-+#define TLBMISC_REG_PID_MSB 17
-+#define TLBMISC_REG_PID_SZ 14
-+#define TLBMISC_REG_PID_MASK 0x3fff
-+#define TLBMISC_REG_RD_LSB 23
-+#define TLBMISC_REG_RD_MSB 23
-+#define TLBMISC_REG_RD_SZ 1
-+#define TLBMISC_REG_RD_MASK 0x1
-+#define TLBMISC_REG_REGNUM 10
-+#define TLBMISC_REG_RSV_LSB 18
-+#define TLBMISC_REG_RSV_MSB 19
-+#define TLBMISC_REG_RSV_SZ 2
-+#define TLBMISC_REG_RSV_MASK 0x3
-+#define TLBMISC_REG_SZ 23
-+#define TLBMISC_REG_MASK 0x7fffff
-+#define TLBMISC_REG_WAY_LSB 20
-+#define TLBMISC_REG_WAY_MSB 22
-+#define TLBMISC_REG_WAY_SZ 3
-+#define TLBMISC_REG_WAY_MASK 0x7
-+
-+/* Macros to extract instruction fields */
-+#define GET_IW_A(Iw) \
-+ (((Iw) >> IW_A_LSB) & IW_A_MASK)
-+#define SET_IW_A(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_A_MASK << IW_A_LSB))) | \
-+ (((Val) & IW_A_MASK) << IW_A_LSB))
-+#define GET_IW_B(Iw) \
-+ (((Iw) >> IW_B_LSB) & IW_B_MASK)
-+#define SET_IW_B(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_B_MASK << IW_B_LSB))) | \
-+ (((Val) & IW_B_MASK) << IW_B_LSB))
-+#define GET_IW_C(Iw) \
-+ (((Iw) >> IW_C_LSB) & IW_C_MASK)
-+#define SET_IW_C(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_C_MASK << IW_C_LSB))) | \
-+ (((Val) & IW_C_MASK) << IW_C_LSB))
-+#define GET_IW_CONTROL_REGNUM(Iw) \
-+ (((Iw) >> IW_CONTROL_REGNUM_LSB) & IW_CONTROL_REGNUM_MASK)
-+#define SET_IW_CONTROL_REGNUM(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_CONTROL_REGNUM_MASK << IW_CONTROL_REGNUM_LSB))) | \
-+ (((Val) & IW_CONTROL_REGNUM_MASK) << IW_CONTROL_REGNUM_LSB))
-+#define GET_IW_CUSTOM_N(Iw) \
-+ (((Iw) >> IW_CUSTOM_N_LSB) & IW_CUSTOM_N_MASK)
-+#define SET_IW_CUSTOM_N(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_CUSTOM_N_MASK << IW_CUSTOM_N_LSB))) | \
-+ (((Val) & IW_CUSTOM_N_MASK) << IW_CUSTOM_N_LSB))
-+#define GET_IW_CUSTOM_READRA(Iw) \
-+ (((Iw) >> IW_CUSTOM_READRA_LSB) & IW_CUSTOM_READRA_MASK)
-+#define SET_IW_CUSTOM_READRA(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_CUSTOM_READRA_MASK << IW_CUSTOM_READRA_LSB))) | \
-+ (((Val) & IW_CUSTOM_READRA_MASK) << IW_CUSTOM_READRA_LSB))
-+#define GET_IW_CUSTOM_READRB(Iw) \
-+ (((Iw) >> IW_CUSTOM_READRB_LSB) & IW_CUSTOM_READRB_MASK)
-+#define SET_IW_CUSTOM_READRB(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_CUSTOM_READRB_MASK << IW_CUSTOM_READRB_LSB))) | \
-+ (((Val) & IW_CUSTOM_READRB_MASK) << IW_CUSTOM_READRB_LSB))
-+#define GET_IW_CUSTOM_WRITERC(Iw) \
-+ (((Iw) >> IW_CUSTOM_WRITERC_LSB) & IW_CUSTOM_WRITERC_MASK)
-+#define SET_IW_CUSTOM_WRITERC(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_CUSTOM_WRITERC_MASK << IW_CUSTOM_WRITERC_LSB))) | \
-+ (((Val) & IW_CUSTOM_WRITERC_MASK) << IW_CUSTOM_WRITERC_LSB))
-+#define GET_IW_IMM16(Iw) \
-+ (((Iw) >> IW_IMM16_LSB) & IW_IMM16_MASK)
-+#define SET_IW_IMM16(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_IMM16_MASK << IW_IMM16_LSB))) | \
-+ (((Val) & IW_IMM16_MASK) << IW_IMM16_LSB))
-+#define GET_IW_IMM26(Iw) \
-+ (((Iw) >> IW_IMM26_LSB) & IW_IMM26_MASK)
-+#define SET_IW_IMM26(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_IMM26_MASK << IW_IMM26_LSB))) | \
-+ (((Val) & IW_IMM26_MASK) << IW_IMM26_LSB))
-+#define GET_IW_MEMSZ(Iw) \
-+ (((Iw) >> IW_MEMSZ_LSB) & IW_MEMSZ_MASK)
-+#define SET_IW_MEMSZ(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_MEMSZ_MASK << IW_MEMSZ_LSB))) | \
-+ (((Val) & IW_MEMSZ_MASK) << IW_MEMSZ_LSB))
-+#define GET_IW_OP(Iw) \
-+ (((Iw) >> IW_OP_LSB) & IW_OP_MASK)
-+#define SET_IW_OP(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_OP_MASK << IW_OP_LSB))) | \
-+ (((Val) & IW_OP_MASK) << IW_OP_LSB))
-+#define GET_IW_OPX(Iw) \
-+ (((Iw) >> IW_OPX_LSB) & IW_OPX_MASK)
-+#define SET_IW_OPX(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_OPX_MASK << IW_OPX_LSB))) | \
-+ (((Val) & IW_OPX_MASK) << IW_OPX_LSB))
-+#define GET_IW_SHIFT_IMM5(Iw) \
-+ (((Iw) >> IW_SHIFT_IMM5_LSB) & IW_SHIFT_IMM5_MASK)
-+#define SET_IW_SHIFT_IMM5(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_SHIFT_IMM5_MASK << IW_SHIFT_IMM5_LSB))) | \
-+ (((Val) & IW_SHIFT_IMM5_MASK) << IW_SHIFT_IMM5_LSB))
-+#define GET_IW_TRAP_BREAK_IMM5(Iw) \
-+ (((Iw) >> IW_TRAP_BREAK_IMM5_LSB) & IW_TRAP_BREAK_IMM5_MASK)
-+#define SET_IW_TRAP_BREAK_IMM5(Iw, Val) \
-+ Iw = (((Iw) & (~(IW_TRAP_BREAK_IMM5_MASK << IW_TRAP_BREAK_IMM5_LSB))) | \
-+ (((Val) & IW_TRAP_BREAK_IMM5_MASK) << IW_TRAP_BREAK_IMM5_LSB))
-+
-+/* Macros to extract control register fields */
-+#define GET_BSTATUS_REG_MMU(Reg) \
-+ (((Reg) >> BSTATUS_REG_MMU_LSB) & BSTATUS_REG_MMU_MASK)
-+#define SET_BSTATUS_REG_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(BSTATUS_REG_MMU_MASK << BSTATUS_REG_MMU_LSB))) | \
-+ (((Val) & BSTATUS_REG_MMU_MASK) << BSTATUS_REG_MMU_LSB))
-+#define GET_BSTATUS_REG_NO_MMU(Reg) \
-+ (((Reg) >> BSTATUS_REG_NO_MMU_LSB) & BSTATUS_REG_NO_MMU_MASK)
-+#define SET_BSTATUS_REG_NO_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(BSTATUS_REG_NO_MMU_MASK << BSTATUS_REG_NO_MMU_LSB))) | \
-+ (((Val) & BSTATUS_REG_NO_MMU_MASK) << BSTATUS_REG_NO_MMU_LSB))
-+#define GET_ESTATUS_REG_MMU(Reg) \
-+ (((Reg) >> ESTATUS_REG_MMU_LSB) & ESTATUS_REG_MMU_MASK)
-+#define SET_ESTATUS_REG_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(ESTATUS_REG_MMU_MASK << ESTATUS_REG_MMU_LSB))) | \
-+ (((Val) & ESTATUS_REG_MMU_MASK) << ESTATUS_REG_MMU_LSB))
-+#define GET_ESTATUS_REG_NO_MMU(Reg) \
-+ (((Reg) >> ESTATUS_REG_NO_MMU_LSB) & ESTATUS_REG_NO_MMU_MASK)
-+#define SET_ESTATUS_REG_NO_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(ESTATUS_REG_NO_MMU_MASK << ESTATUS_REG_NO_MMU_LSB))) | \
-+ (((Val) & ESTATUS_REG_NO_MMU_MASK) << ESTATUS_REG_NO_MMU_LSB))
-+#define GET_PERF_CNT_REG_CLR(Reg) \
-+ (((Reg) >> PERF_CNT_REG_CLR_LSB) & PERF_CNT_REG_CLR_MASK)
-+#define SET_PERF_CNT_REG_CLR(Reg, Val) \
-+ Reg = (((Reg) & (~(PERF_CNT_REG_CLR_MASK << PERF_CNT_REG_CLR_LSB))) | \
-+ (((Val) & PERF_CNT_REG_CLR_MASK) << PERF_CNT_REG_CLR_LSB))
-+#define GET_PERF_CNT_REG_EN(Reg) \
-+ (((Reg) >> PERF_CNT_REG_EN_LSB) & PERF_CNT_REG_EN_MASK)
-+#define SET_PERF_CNT_REG_EN(Reg, Val) \
-+ Reg = (((Reg) & (~(PERF_CNT_REG_EN_MASK << PERF_CNT_REG_EN_LSB))) | \
-+ (((Val) & PERF_CNT_REG_EN_MASK) << PERF_CNT_REG_EN_LSB))
-+#define GET_PTEADDR_REG_PTBASE(Reg) \
-+ (((Reg) >> PTEADDR_REG_PTBASE_LSB) & PTEADDR_REG_PTBASE_MASK)
-+#define SET_PTEADDR_REG_PTBASE(Reg, Val) \
-+ Reg = (((Reg) & (~(PTEADDR_REG_PTBASE_MASK << PTEADDR_REG_PTBASE_LSB))) | \
-+ (((Val) & PTEADDR_REG_PTBASE_MASK) << PTEADDR_REG_PTBASE_LSB))
-+#define GET_PTEADDR_REG_RSV(Reg) \
-+ (((Reg) >> PTEADDR_REG_RSV_LSB) & PTEADDR_REG_RSV_MASK)
-+#define SET_PTEADDR_REG_RSV(Reg, Val) \
-+ Reg = (((Reg) & (~(PTEADDR_REG_RSV_MASK << PTEADDR_REG_RSV_LSB))) | \
-+ (((Val) & PTEADDR_REG_RSV_MASK) << PTEADDR_REG_RSV_LSB))
-+#define GET_PTEADDR_REG_VPN(Reg) \
-+ (((Reg) >> PTEADDR_REG_VPN_LSB) & PTEADDR_REG_VPN_MASK)
-+#define SET_PTEADDR_REG_VPN(Reg, Val) \
-+ Reg = (((Reg) & (~(PTEADDR_REG_VPN_MASK << PTEADDR_REG_VPN_LSB))) | \
-+ (((Val) & PTEADDR_REG_VPN_MASK) << PTEADDR_REG_VPN_LSB))
-+#define GET_SIM_REG_SHOW_DTLB(Reg) \
-+ (((Reg) >> SIM_REG_SHOW_DTLB_LSB) & SIM_REG_SHOW_DTLB_MASK)
-+#define SET_SIM_REG_SHOW_DTLB(Reg, Val) \
-+ Reg = (((Reg) & (~(SIM_REG_SHOW_DTLB_MASK << SIM_REG_SHOW_DTLB_LSB))) | \
-+ (((Val) & SIM_REG_SHOW_DTLB_MASK) << SIM_REG_SHOW_DTLB_LSB))
-+#define GET_SIM_REG_SHOW_ITLB(Reg) \
-+ (((Reg) >> SIM_REG_SHOW_ITLB_LSB) & SIM_REG_SHOW_ITLB_MASK)
-+#define SET_SIM_REG_SHOW_ITLB(Reg, Val) \
-+ Reg = (((Reg) & (~(SIM_REG_SHOW_ITLB_MASK << SIM_REG_SHOW_ITLB_LSB))) | \
-+ (((Val) & SIM_REG_SHOW_ITLB_MASK) << SIM_REG_SHOW_ITLB_LSB))
-+#define GET_SIM_REG_SHOW_MMU_REGS(Reg) \
-+ (((Reg) >> SIM_REG_SHOW_MMU_REGS_LSB) & SIM_REG_SHOW_MMU_REGS_MASK)
-+#define SET_SIM_REG_SHOW_MMU_REGS(Reg, Val) \
-+ Reg = (((Reg) & (~(SIM_REG_SHOW_MMU_REGS_MASK << SIM_REG_SHOW_MMU_REGS_LSB))) | \
-+ (((Val) & SIM_REG_SHOW_MMU_REGS_MASK) << SIM_REG_SHOW_MMU_REGS_LSB))
-+#define GET_SIM_REG_STOP(Reg) \
-+ (((Reg) >> SIM_REG_STOP_LSB) & SIM_REG_STOP_MASK)
-+#define SET_SIM_REG_STOP(Reg, Val) \
-+ Reg = (((Reg) & (~(SIM_REG_STOP_MASK << SIM_REG_STOP_LSB))) | \
-+ (((Val) & SIM_REG_STOP_MASK) << SIM_REG_STOP_LSB))
-+#define GET_STATUS_REG_EH(Reg) \
-+ (((Reg) >> STATUS_REG_EH_LSB) & STATUS_REG_EH_MASK)
-+#define SET_STATUS_REG_EH(Reg, Val) \
-+ Reg = (((Reg) & (~(STATUS_REG_EH_MASK << STATUS_REG_EH_LSB))) | \
-+ (((Val) & STATUS_REG_EH_MASK) << STATUS_REG_EH_LSB))
-+#define GET_STATUS_REG_MMU(Reg) \
-+ (((Reg) >> STATUS_REG_MMU_LSB) & STATUS_REG_MMU_MASK)
-+#define SET_STATUS_REG_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(STATUS_REG_MMU_MASK << STATUS_REG_MMU_LSB))) | \
-+ (((Val) & STATUS_REG_MMU_MASK) << STATUS_REG_MMU_LSB))
-+#define GET_STATUS_REG_NO_MMU(Reg) \
-+ (((Reg) >> STATUS_REG_NO_MMU_LSB) & STATUS_REG_NO_MMU_MASK)
-+#define SET_STATUS_REG_NO_MMU(Reg, Val) \
-+ Reg = (((Reg) & (~(STATUS_REG_NO_MMU_MASK << STATUS_REG_NO_MMU_LSB))) | \
-+ (((Val) & STATUS_REG_NO_MMU_MASK) << STATUS_REG_NO_MMU_LSB))
-+#define GET_STATUS_REG_PIE(Reg) \
-+ (((Reg) >> STATUS_REG_PIE_LSB) & STATUS_REG_PIE_MASK)
-+#define SET_STATUS_REG_PIE(Reg, Val) \
-+ Reg = (((Reg) & (~(STATUS_REG_PIE_MASK << STATUS_REG_PIE_LSB))) | \
-+ (((Val) & STATUS_REG_PIE_MASK) << STATUS_REG_PIE_LSB))
-+#define GET_STATUS_REG_U(Reg) \
-+ (((Reg) >> STATUS_REG_U_LSB) & STATUS_REG_U_MASK)
-+#define SET_STATUS_REG_U(Reg, Val) \
-+ Reg = (((Reg) & (~(STATUS_REG_U_MASK << STATUS_REG_U_LSB))) | \
-+ (((Val) & STATUS_REG_U_MASK) << STATUS_REG_U_LSB))
-+#define GET_TLBACC_REG_C(Reg) \
-+ (((Reg) >> TLBACC_REG_C_LSB) & TLBACC_REG_C_MASK)
-+#define SET_TLBACC_REG_C(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_C_MASK << TLBACC_REG_C_LSB))) | \
-+ (((Val) & TLBACC_REG_C_MASK) << TLBACC_REG_C_LSB))
-+#define GET_TLBACC_REG_G(Reg) \
-+ (((Reg) >> TLBACC_REG_G_LSB) & TLBACC_REG_G_MASK)
-+#define SET_TLBACC_REG_G(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_G_MASK << TLBACC_REG_G_LSB))) | \
-+ (((Val) & TLBACC_REG_G_MASK) << TLBACC_REG_G_LSB))
-+#define GET_TLBACC_REG_PFN(Reg) \
-+ (((Reg) >> TLBACC_REG_PFN_LSB) & TLBACC_REG_PFN_MASK)
-+#define SET_TLBACC_REG_PFN(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_PFN_MASK << TLBACC_REG_PFN_LSB))) | \
-+ (((Val) & TLBACC_REG_PFN_MASK) << TLBACC_REG_PFN_LSB))
-+#define GET_TLBACC_REG_R(Reg) \
-+ (((Reg) >> TLBACC_REG_R_LSB) & TLBACC_REG_R_MASK)
-+#define SET_TLBACC_REG_R(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_R_MASK << TLBACC_REG_R_LSB))) | \
-+ (((Val) & TLBACC_REG_R_MASK) << TLBACC_REG_R_LSB))
-+#define GET_TLBACC_REG_W(Reg) \
-+ (((Reg) >> TLBACC_REG_W_LSB) & TLBACC_REG_W_MASK)
-+#define SET_TLBACC_REG_W(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_W_MASK << TLBACC_REG_W_LSB))) | \
-+ (((Val) & TLBACC_REG_W_MASK) << TLBACC_REG_W_LSB))
-+#define GET_TLBACC_REG_X(Reg) \
-+ (((Reg) >> TLBACC_REG_X_LSB) & TLBACC_REG_X_MASK)
-+#define SET_TLBACC_REG_X(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBACC_REG_X_MASK << TLBACC_REG_X_LSB))) | \
-+ (((Val) & TLBACC_REG_X_MASK) << TLBACC_REG_X_LSB))
-+#define GET_TLBMISC_REG_BAD(Reg) \
-+ (((Reg) >> TLBMISC_REG_BAD_LSB) & TLBMISC_REG_BAD_MASK)
-+#define SET_TLBMISC_REG_BAD(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_BAD_MASK << TLBMISC_REG_BAD_LSB))) | \
-+ (((Val) & TLBMISC_REG_BAD_MASK) << TLBMISC_REG_BAD_LSB))
-+#define GET_TLBMISC_REG_D(Reg) \
-+ (((Reg) >> TLBMISC_REG_D_LSB) & TLBMISC_REG_D_MASK)
-+#define SET_TLBMISC_REG_D(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_D_MASK << TLBMISC_REG_D_LSB))) | \
-+ (((Val) & TLBMISC_REG_D_MASK) << TLBMISC_REG_D_LSB))
-+#define GET_TLBMISC_REG_DBL(Reg) \
-+ (((Reg) >> TLBMISC_REG_DBL_LSB) & TLBMISC_REG_DBL_MASK)
-+#define SET_TLBMISC_REG_DBL(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_DBL_MASK << TLBMISC_REG_DBL_LSB))) | \
-+ (((Val) & TLBMISC_REG_DBL_MASK) << TLBMISC_REG_DBL_LSB))
-+#define GET_TLBMISC_REG_PERM(Reg) \
-+ (((Reg) >> TLBMISC_REG_PERM_LSB) & TLBMISC_REG_PERM_MASK)
-+#define SET_TLBMISC_REG_PERM(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_PERM_MASK << TLBMISC_REG_PERM_LSB))) | \
-+ (((Val) & TLBMISC_REG_PERM_MASK) << TLBMISC_REG_PERM_LSB))
-+#define GET_TLBMISC_REG_PID(Reg) \
-+ (((Reg) >> TLBMISC_REG_PID_LSB) & TLBMISC_REG_PID_MASK)
-+#define SET_TLBMISC_REG_PID(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_PID_MASK << TLBMISC_REG_PID_LSB))) | \
-+ (((Val) & TLBMISC_REG_PID_MASK) << TLBMISC_REG_PID_LSB))
-+#define GET_TLBMISC_REG_RD(Reg) \
-+ (((Reg) >> TLBMISC_REG_RD_LSB) & TLBMISC_REG_RD_MASK)
-+#define SET_TLBMISC_REG_RD(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_RD_MASK << TLBMISC_REG_RD_LSB))) | \
-+ (((Val) & TLBMISC_REG_RD_MASK) << TLBMISC_REG_RD_LSB))
-+#define GET_TLBMISC_REG_RSV(Reg) \
-+ (((Reg) >> TLBMISC_REG_RSV_LSB) & TLBMISC_REG_RSV_MASK)
-+#define SET_TLBMISC_REG_RSV(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_RSV_MASK << TLBMISC_REG_RSV_LSB))) | \
-+ (((Val) & TLBMISC_REG_RSV_MASK) << TLBMISC_REG_RSV_LSB))
-+#define GET_TLBMISC_REG_WAY(Reg) \
-+ (((Reg) >> TLBMISC_REG_WAY_LSB) & TLBMISC_REG_WAY_MASK)
-+#define SET_TLBMISC_REG_WAY(Reg, Val) \
-+ Reg = (((Reg) & (~(TLBMISC_REG_WAY_MASK << TLBMISC_REG_WAY_LSB))) | \
-+ (((Val) & TLBMISC_REG_WAY_MASK) << TLBMISC_REG_WAY_LSB))
-+
-+/* Macros to extract MMU fields */
-+#define GET_MMU_ADDR_BYPASS_TLB_CACHEABLE(Addr) \
-+ (((Addr) >> MMU_ADDR_BYPASS_TLB_CACHEABLE_LSB) & MMU_ADDR_BYPASS_TLB_CACHEABLE_MASK)
-+#define SET_MMU_ADDR_BYPASS_TLB_CACHEABLE(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_BYPASS_TLB_CACHEABLE_MASK << MMU_ADDR_BYPASS_TLB_CACHEABLE_LSB))) | \
-+ (((Val) & MMU_ADDR_BYPASS_TLB_CACHEABLE_MASK) << MMU_ADDR_BYPASS_TLB_CACHEABLE_LSB))
-+#define GET_MMU_ADDR_BYPASS_TLB(Addr) \
-+ (((Addr) >> MMU_ADDR_BYPASS_TLB_LSB) & MMU_ADDR_BYPASS_TLB_MASK)
-+#define SET_MMU_ADDR_BYPASS_TLB(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_BYPASS_TLB_MASK << MMU_ADDR_BYPASS_TLB_LSB))) | \
-+ (((Val) & MMU_ADDR_BYPASS_TLB_MASK) << MMU_ADDR_BYPASS_TLB_LSB))
-+#define GET_MMU_ADDR_BYPASS_TLB_PADDR(Addr) \
-+ (((Addr) >> MMU_ADDR_BYPASS_TLB_PADDR_LSB) & MMU_ADDR_BYPASS_TLB_PADDR_MASK)
-+#define SET_MMU_ADDR_BYPASS_TLB_PADDR(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_BYPASS_TLB_PADDR_MASK << MMU_ADDR_BYPASS_TLB_PADDR_LSB))) | \
-+ (((Val) & MMU_ADDR_BYPASS_TLB_PADDR_MASK) << MMU_ADDR_BYPASS_TLB_PADDR_LSB))
-+#define GET_MMU_ADDR_IO_REGION(Addr) \
-+ (((Addr) >> MMU_ADDR_IO_REGION_LSB) & MMU_ADDR_IO_REGION_MASK)
-+#define SET_MMU_ADDR_IO_REGION(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_IO_REGION_MASK << MMU_ADDR_IO_REGION_LSB))) | \
-+ (((Val) & MMU_ADDR_IO_REGION_MASK) << MMU_ADDR_IO_REGION_LSB))
-+#define GET_MMU_ADDR_KERNEL_MMU_REGION(Addr) \
-+ (((Addr) >> MMU_ADDR_KERNEL_MMU_REGION_LSB) & MMU_ADDR_KERNEL_MMU_REGION_MASK)
-+#define SET_MMU_ADDR_KERNEL_MMU_REGION(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_KERNEL_MMU_REGION_MASK << MMU_ADDR_KERNEL_MMU_REGION_LSB))) | \
-+ (((Val) & MMU_ADDR_KERNEL_MMU_REGION_MASK) << MMU_ADDR_KERNEL_MMU_REGION_LSB))
-+#define GET_MMU_ADDR_KERNEL_REGION(Addr) \
-+ (((Addr) >> MMU_ADDR_KERNEL_REGION_LSB) & MMU_ADDR_KERNEL_REGION_MASK)
-+#define SET_MMU_ADDR_KERNEL_REGION(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_KERNEL_REGION_MASK << MMU_ADDR_KERNEL_REGION_LSB))) | \
-+ (((Val) & MMU_ADDR_KERNEL_REGION_MASK) << MMU_ADDR_KERNEL_REGION_LSB))
-+#define GET_MMU_ADDR_PAGE_OFFSET(Addr) \
-+ (((Addr) >> MMU_ADDR_PAGE_OFFSET_LSB) & MMU_ADDR_PAGE_OFFSET_MASK)
-+#define SET_MMU_ADDR_PAGE_OFFSET(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_PAGE_OFFSET_MASK << MMU_ADDR_PAGE_OFFSET_LSB))) | \
-+ (((Val) & MMU_ADDR_PAGE_OFFSET_MASK) << MMU_ADDR_PAGE_OFFSET_LSB))
-+#define GET_MMU_ADDR_PFN(Addr) \
-+ (((Addr) >> MMU_ADDR_PFN_LSB) & MMU_ADDR_PFN_MASK)
-+#define SET_MMU_ADDR_PFN(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_PFN_MASK << MMU_ADDR_PFN_LSB))) | \
-+ (((Val) & MMU_ADDR_PFN_MASK) << MMU_ADDR_PFN_LSB))
-+#define GET_MMU_ADDR_USER_REGION(Addr) \
-+ (((Addr) >> MMU_ADDR_USER_REGION_LSB) & MMU_ADDR_USER_REGION_MASK)
-+#define SET_MMU_ADDR_USER_REGION(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_USER_REGION_MASK << MMU_ADDR_USER_REGION_LSB))) | \
-+ (((Val) & MMU_ADDR_USER_REGION_MASK) << MMU_ADDR_USER_REGION_LSB))
-+#define GET_MMU_ADDR_VPN(Addr) \
-+ (((Addr) >> MMU_ADDR_VPN_LSB) & MMU_ADDR_VPN_MASK)
-+#define SET_MMU_ADDR_VPN(Addr, Val) \
-+ Addr = (((Addr) & (~(MMU_ADDR_VPN_MASK << MMU_ADDR_VPN_LSB))) | \
-+ (((Val) & MMU_ADDR_VPN_MASK) << MMU_ADDR_VPN_LSB))
-+
-+/* OP instruction values */
-+#define OP_ADDI 4
-+#define OP_ANDHI 44
-+#define OP_ANDI 12
-+#define OP_BEQ 38
-+#define OP_BGE 14
-+#define OP_BGEU 46
-+#define OP_BLT 22
-+#define OP_BLTU 54
-+#define OP_BNE 30
-+#define OP_BR 6
-+#define OP_CALL 0
-+#define OP_CMPEQI 32
-+#define OP_CMPGEI 8
-+#define OP_CMPGEUI 40
-+#define OP_CMPLTI 16
-+#define OP_CMPLTUI 48
-+#define OP_CMPNEI 24
-+#define OP_CUSTOM 50
-+#define OP_FLUSHD 59
-+#define OP_INITD 51
-+#define OP_LDB 7
-+#define OP_LDBIO 39
-+#define OP_LDBU 3
-+#define OP_LDBUIO 35
-+#define OP_LDH 15
-+#define OP_LDHIO 47
-+#define OP_LDHU 11
-+#define OP_LDHUIO 43
-+#define OP_LDW 23
-+#define OP_LDWIO 55
-+#define OP_MULI 36
-+#define OP_OPX 58
-+#define OP_ORHI 52
-+#define OP_ORI 20
-+#define OP_STB 5
-+#define OP_STBIO 37
-+#define OP_STH 13
-+#define OP_STHIO 45
-+#define OP_STW 21
-+#define OP_STWIO 53
-+#define OP_XORHI 60
-+#define OP_XORI 28
-+
-+/* OPX instruction values */
-+#define OPX_ADD 49
-+#define OPX_AND 14
-+#define OPX_BREAK 52
-+#define OPX_BRET 9
-+#define OPX_CALLR 29
-+#define OPX_CMPEQ 32
-+#define OPX_CMPGE 8
-+#define OPX_CMPGEU 40
-+#define OPX_CMPLT 16
-+#define OPX_CMPLTU 48
-+#define OPX_CMPNE 24
-+#define OPX_DIV 37
-+#define OPX_DIVU 36
-+#define OPX_ERET 1
-+#define OPX_FLUSHI 12
-+#define OPX_FLUSHP 4
-+#define OPX_HBREAK 53
-+#define OPX_INITI 41
-+#define OPX_INTR 61
-+#define OPX_JMP 13
-+#define OPX_MUL 39
-+#define OPX_MULXSS 31
-+#define OPX_MULXSU 23
-+#define OPX_MULXUU 7
-+#define OPX_NEXTPC 28
-+#define OPX_NOR 6
-+#define OPX_OR 22
-+#define OPX_RDCTL 38
-+#define OPX_RET 5
-+#define OPX_ROL 3
-+#define OPX_ROLI 2
-+#define OPX_ROR 11
-+#define OPX_SLL 19
-+#define OPX_SLLI 18
-+#define OPX_SRA 59
-+#define OPX_SRAI 58
-+#define OPX_SRL 27
-+#define OPX_SRLI 26
-+#define OPX_SUB 57
-+#define OPX_SYNC 54
-+#define OPX_TRAP 45
-+#define OPX_WRCTL 46
-+#define OPX_XOR 30
-+
-+/* Macros to detect sub-opcode instructions */
-+#define IS_OPX_INST(Iw) (GET_IW_OP(Iw) == OP_OPX)
-+#define IS_CUSTOM_INST(Iw) (GET_IW_OP(Iw) == OP_CUSTOM)
-+
-+/* Instruction property macros */
-+#define IW_PROP_RESERVED_OP(Iw) (0)
-+
-+#define IW_PROP_RESERVED_OPX(Iw) (0)
-+
-+#define IW_PROP_RESERVED(Iw) (0)
-+
-+#define IW_PROP_FLUSH_PIPE(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_FLUSHP) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_BRET) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_JMP_INDIRECT_NON_TRAP(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_jmp_indirect_non_trap[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_jmp_indirect_non_trap[64];
-+
-+#define IW_PROP_JMP_INDIRECT(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_jmp_indirect[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_jmp_indirect[64];
-+
-+#define IW_PROP_JMP_DIRECT(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_CALL)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_MUL_LSW(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_MULI)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_MUL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_MULX(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_mulx[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_mulx[64];
-+
-+#define IW_PROP_MUL(Iw) ( \
-+ (op_prop_mul[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_mul[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_mul[64];
-+extern unsigned char opx_prop_mul[64];
-+
-+#define IW_PROP_DIV_UNSIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_DIVU) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_DIV_SIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_DIV) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_DIV(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_DIVU) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_DIV) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_UNIMPLEMENTED(Iw) (0)
-+
-+#define IW_PROP_IMPLICIT_DST_RETADDR(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_CALL)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_IMPLICIT_DST_ERETADDR(Iw) (0)
-+
-+#define IW_PROP_EXCEPTION(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_TRAP) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_INTR) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BREAK(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_BREAK) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_HBREAK) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_WR_CTL_REG(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_wr_ctl_reg[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_wr_ctl_reg[64];
-+
-+#define IW_PROP_UNCOND_CTI_NON_BR(Iw) ( \
-+ (op_prop_uncond_cti_non_br[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_uncond_cti_non_br[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_uncond_cti_non_br[64];
-+extern unsigned char opx_prop_uncond_cti_non_br[64];
-+
-+#define IW_PROP_RETADDR(Iw) ( \
-+ (op_prop_retaddr[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_retaddr[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_retaddr[64];
-+extern unsigned char opx_prop_retaddr[64];
-+
-+#define IW_PROP_SHIFT_LEFT(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_SLLI) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_SLL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_SHIFT_LOGICAL(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_logical[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_logical[64];
-+
-+#define IW_PROP_ROT_LEFT(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_ROLI) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_ROL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_SHIFT_ROT_LEFT(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_rot_left[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_rot_left[64];
-+
-+#define IW_PROP_SHIFT_RIGHT_LOGICAL(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_SRLI) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_SRL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_SHIFT_RIGHT_ARITH(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_SRAI) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_SRA) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_SHIFT_RIGHT(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_right[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_right[64];
-+
-+#define IW_PROP_ROT_RIGHT(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_ROR) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_SHIFT_ROT_RIGHT(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_rot_right[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_rot_right[64];
-+
-+#define IW_PROP_SHIFT_ROT(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_rot[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_rot[64];
-+
-+#define IW_PROP_SHIFT_ROT_IMM(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_shift_rot_imm[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_shift_rot_imm[64];
-+
-+#define IW_PROP_ROTATE(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_rotate[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_rotate[64];
-+
-+#define IW_PROP_LOGIC_REG(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_logic_reg[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_logic_reg[64];
-+
-+#define IW_PROP_LOGIC_HI_IMM16(Iw) ( \
-+ (op_prop_logic_hi_imm16[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_logic_hi_imm16[64];
-+
-+#define IW_PROP_LOGIC_LO_IMM16(Iw) ( \
-+ (op_prop_logic_lo_imm16[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_logic_lo_imm16[64];
-+
-+#define IW_PROP_LOGIC_IMM16(Iw) ( \
-+ (op_prop_logic_imm16[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_logic_imm16[64];
-+
-+#define IW_PROP_LOGIC(Iw) ( \
-+ (op_prop_logic[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_logic[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_logic[64];
-+extern unsigned char opx_prop_logic[64];
-+
-+#define IW_PROP_UNSIGNED_LO_IMM16(Iw) ( \
-+ (op_prop_unsigned_lo_imm16[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_unsigned_lo_imm16[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_unsigned_lo_imm16[64];
-+extern unsigned char opx_prop_unsigned_lo_imm16[64];
-+
-+#define IW_PROP_ARITH_IMM16(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_ADDI)) || \
-+ ((GET_IW_OP((Iw)) == OP_MULI)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_CMP_IMM16_NO_CALL(Iw) ( \
-+ (op_prop_cmp_imm16_no_call[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_cmp_imm16_no_call[64];
-+
-+#define IW_PROP_CMP_IMM16_WITH_CALL(Iw) ( \
-+ (op_prop_cmp_imm16_with_call[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_cmp_imm16_with_call[64];
-+
-+#define IW_PROP_CMP_REG(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp_reg[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_cmp_reg[64];
-+
-+#define IW_PROP_SRC_IMM16(Iw) ( \
-+ (op_prop_src_imm16[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_src_imm16[64];
-+
-+#define IW_PROP_SRC_IMM5(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_src_imm5[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_src_imm5[64];
-+
-+#define IW_PROP_CMP_WITH_LT(Iw) ( \
-+ (op_prop_cmp_with_lt[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp_with_lt[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_cmp_with_lt[64];
-+extern unsigned char opx_prop_cmp_with_lt[64];
-+
-+#define IW_PROP_CMP_WITH_EQ(Iw) ( \
-+ (op_prop_cmp_with_eq[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp_with_eq[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_cmp_with_eq[64];
-+extern unsigned char opx_prop_cmp_with_eq[64];
-+
-+#define IW_PROP_CMP_WITH_GE(Iw) ( \
-+ (op_prop_cmp_with_ge[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp_with_ge[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_cmp_with_ge[64];
-+extern unsigned char opx_prop_cmp_with_ge[64];
-+
-+#define IW_PROP_CMP_WITH_NE(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_CMPNEI)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_CMPNE) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_CMP_ALU_SIGNED(Iw) ( \
-+ (op_prop_cmp_alu_signed[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp_alu_signed[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_cmp_alu_signed[64];
-+extern unsigned char opx_prop_cmp_alu_signed[64];
-+
-+#define IW_PROP_CMP(Iw) ( \
-+ (op_prop_cmp[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_cmp[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_cmp[64];
-+extern unsigned char opx_prop_cmp[64];
-+
-+#define IW_PROP_BR_WITH_LT(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_BLT)) || \
-+ ((GET_IW_OP((Iw)) == OP_BLTU)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BR_WITH_GE(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_BGE)) || \
-+ ((GET_IW_OP((Iw)) == OP_BGEU)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BR_WITH_EQ(Iw) ( \
-+ (op_prop_br_with_eq[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_br_with_eq[64];
-+
-+#define IW_PROP_BR_WITH_NE(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_BNE)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BR_ALU_SIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_BGE)) || \
-+ ((GET_IW_OP((Iw)) == OP_BLT)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BR_COND(Iw) ( \
-+ (op_prop_br_cond[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_br_cond[64];
-+
-+#define IW_PROP_BR_UNCOND(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_BR)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_BR(Iw) ( \
-+ (op_prop_br[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_br[64];
-+
-+#define IW_PROP_ALU_SUB(Iw) ( \
-+ (op_prop_alu_sub[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_alu_sub[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_alu_sub[64];
-+extern unsigned char opx_prop_alu_sub[64];
-+
-+#define IW_PROP_FORCE_XOR(Iw) ( \
-+ (op_prop_force_xor[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_force_xor[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_force_xor[64];
-+extern unsigned char opx_prop_force_xor[64];
-+
-+#define IW_PROP_LOAD8(Iw) ( \
-+ (op_prop_load8[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load8[64];
-+
-+#define IW_PROP_LOAD16(Iw) ( \
-+ (op_prop_load16[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load16[64];
-+
-+#define IW_PROP_LOAD32(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_LDW)) || \
-+ ((GET_IW_OP((Iw)) == OP_LDWIO)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_LOAD_SIGNED(Iw) ( \
-+ (op_prop_load_signed[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load_signed[64];
-+
-+#define IW_PROP_LOAD_UNSIGNED(Iw) ( \
-+ (op_prop_load_unsigned[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load_unsigned[64];
-+
-+#define IW_PROP_LOAD(Iw) ( \
-+ (op_prop_load[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load[64];
-+
-+#define IW_PROP_LOAD_INITD_FLUSHD(Iw) ( \
-+ (op_prop_load_initd_flushd[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load_initd_flushd[64];
-+
-+#define IW_PROP_LOAD_NON_IO(Iw) ( \
-+ (op_prop_load_non_io[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load_non_io[64];
-+
-+#define IW_PROP_STORE8(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_STB)) || \
-+ ((GET_IW_OP((Iw)) == OP_STBIO)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_STORE16(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_STH)) || \
-+ ((GET_IW_OP((Iw)) == OP_STHIO)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_STORE32(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_STW)) || \
-+ ((GET_IW_OP((Iw)) == OP_STWIO)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_STORE(Iw) ( \
-+ (op_prop_store[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_store[64];
-+
-+#define IW_PROP_STORE_NON_IO(Iw) ( \
-+ (op_prop_store_non_io[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_store_non_io[64];
-+
-+#define IW_PROP_MEM(Iw) ( \
-+ (op_prop_mem[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_mem[64];
-+
-+#define IW_PROP_INITD(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_INITD)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_FLUSHD(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_FLUSHD)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_INITD_FLUSHD(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_INITD)) || \
-+ ((GET_IW_OP((Iw)) == OP_FLUSHD)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_INITI_FLUSHI(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_INITI) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_FLUSHI) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_LOAD_IO(Iw) ( \
-+ (op_prop_load_io[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_load_io[64];
-+
-+#define IW_PROP_STORE_IO(Iw) ( \
-+ (op_prop_store_io[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_store_io[64];
-+
-+#define IW_PROP_MEM_IO(Iw) ( \
-+ (op_prop_mem_io[GET_IW_OP(Iw)]))
-+extern unsigned char op_prop_mem_io[64];
-+
-+#define IW_PROP_ARITH(Iw) ( \
-+ (op_prop_arith[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_arith[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_arith[64];
-+extern unsigned char opx_prop_arith[64];
-+
-+#define IW_PROP_A_NOT_SRC(Iw) ( \
-+ ( \
-+ ((GET_IW_OP((Iw)) == OP_CALL)) \
-+ ) \
-+ || (IS_CUSTOM_INST(Iw) && !GET_IW_CUSTOM_READRA(Iw)) \
-+)
-+
-+#define IW_PROP_B_NOT_SRC(Iw) ( \
-+ (op_prop_b_not_src[GET_IW_OP(Iw)]) \
-+ || (IS_CUSTOM_INST(Iw) && !GET_IW_CUSTOM_READRB(Iw)))
-+extern unsigned char op_prop_b_not_src[64];
-+
-+#define IW_PROP_IGNORE_DST(Iw) ( \
-+ (op_prop_ignore_dst[GET_IW_OP(Iw)]) \
-+ || (IS_CUSTOM_INST(Iw) && !GET_IW_CUSTOM_WRITERC(Iw)))
-+extern unsigned char op_prop_ignore_dst[64];
-+
-+#define IW_PROP_SRC2_IS_IMM(Iw) ( \
-+ (op_prop_src2_is_imm[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_src2_is_imm[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_src2_is_imm[64];
-+extern unsigned char opx_prop_src2_is_imm[64];
-+
-+#define IW_PROP_WRCTL_INST(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_WRCTL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_RDCTL_INST(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_RDCTL) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_MUL_SRC1_SIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_MULXSS) && IS_OPX_INST(Iw)) || \
-+ ((GET_IW_OPX((Iw)) == OPX_MULXSU) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_MUL_SRC2_SIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_MULXSS) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_MUL_SHIFT_SRC1_SIGNED(Iw) ( \
-+ (IS_OPX_INST(Iw) && opx_prop_mul_shift_src1_signed[GET_IW_OPX(Iw)]))
-+extern unsigned char opx_prop_mul_shift_src1_signed[64];
-+
-+#define IW_PROP_MUL_SHIFT_SRC2_SIGNED(Iw) ( \
-+ ( \
-+ ((GET_IW_OPX((Iw)) == OPX_MULXSS) && IS_OPX_INST(Iw)) \
-+ ) \
-+ \
-+)
-+
-+#define IW_PROP_DONT_DISPLAY_DST_REG(Iw) ( \
-+ (op_prop_dont_display_dst_reg[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_dont_display_dst_reg[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_dont_display_dst_reg[64];
-+extern unsigned char opx_prop_dont_display_dst_reg[64];
-+
-+#define IW_PROP_DONT_DISPLAY_SRC1_REG(Iw) ( \
-+ (op_prop_dont_display_src1_reg[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_dont_display_src1_reg[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_dont_display_src1_reg[64];
-+extern unsigned char opx_prop_dont_display_src1_reg[64];
-+
-+#define IW_PROP_DONT_DISPLAY_SRC2_REG(Iw) ( \
-+ (op_prop_dont_display_src2_reg[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_dont_display_src2_reg[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_dont_display_src2_reg[64];
-+extern unsigned char opx_prop_dont_display_src2_reg[64];
-+
-+#define IW_PROP_SRC1_NO_X(Iw) ( \
-+ (op_prop_src1_no_x[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_src1_no_x[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_src1_no_x[64];
-+extern unsigned char opx_prop_src1_no_x[64];
-+
-+#define IW_PROP_SRC2_NO_X(Iw) ( \
-+ (op_prop_src2_no_x[GET_IW_OP(Iw)] || \
-+ (IS_OPX_INST(Iw) && opx_prop_src2_no_x[GET_IW_OPX(Iw)])))
-+extern unsigned char op_prop_src2_no_x[64];
-+extern unsigned char opx_prop_src2_no_x[64];
-+
-+/* Instruction information entry */
-+typedef struct {
-+ const char* name; /* Assembly-language instruction name */
-+ int instType; /* INST_TYPE_OP or INST_TYPE_OPX */
-+ unsigned opcode; /* Value of instruction word OP/OPX field */
-+} Nios2InstInfo;
-+
-+/* Instruction types */
-+#define INST_TYPE_OP 0
-+#define INST_TYPE_OPX 1
-+
-+/* Canonical instruction codes independent of encoding */
-+#define CALL_INST_CODE 0
-+#define LDBU_INST_CODE 1
-+#define ADDI_INST_CODE 2
-+#define STB_INST_CODE 3
-+#define BR_INST_CODE 4
-+#define LDB_INST_CODE 5
-+#define CMPGEI_INST_CODE 6
-+#define LDHU_INST_CODE 7
-+#define ANDI_INST_CODE 8
-+#define STH_INST_CODE 9
-+#define BGE_INST_CODE 10
-+#define LDH_INST_CODE 11
-+#define CMPLTI_INST_CODE 12
-+#define ORI_INST_CODE 13
-+#define STW_INST_CODE 14
-+#define BLT_INST_CODE 15
-+#define LDW_INST_CODE 16
-+#define CMPNEI_INST_CODE 17
-+#define XORI_INST_CODE 18
-+#define BNE_INST_CODE 19
-+#define CMPEQI_INST_CODE 20
-+#define LDBUIO_INST_CODE 21
-+#define MULI_INST_CODE 22
-+#define STBIO_INST_CODE 23
-+#define BEQ_INST_CODE 24
-+#define LDBIO_INST_CODE 25
-+#define CMPGEUI_INST_CODE 26
-+#define LDHUIO_INST_CODE 27
-+#define ANDHI_INST_CODE 28
-+#define STHIO_INST_CODE 29
-+#define BGEU_INST_CODE 30
-+#define LDHIO_INST_CODE 31
-+#define CMPLTUI_INST_CODE 32
-+#define CUSTOM_INST_CODE 33
-+#define INITD_INST_CODE 34
-+#define ORHI_INST_CODE 35
-+#define STWIO_INST_CODE 36
-+#define BLTU_INST_CODE 37
-+#define LDWIO_INST_CODE 38
-+#define FLUSHD_INST_CODE 39
-+#define XORHI_INST_CODE 40
-+#define ERET_INST_CODE 41
-+#define ROLI_INST_CODE 42
-+#define ROL_INST_CODE 43
-+#define FLUSHP_INST_CODE 44
-+#define RET_INST_CODE 45
-+#define NOR_INST_CODE 46
-+#define MULXUU_INST_CODE 47
-+#define CMPGE_INST_CODE 48
-+#define BRET_INST_CODE 49
-+#define ROR_INST_CODE 50
-+#define FLUSHI_INST_CODE 51
-+#define JMP_INST_CODE 52
-+#define AND_INST_CODE 53
-+#define CMPLT_INST_CODE 54
-+#define SLLI_INST_CODE 55
-+#define SLL_INST_CODE 56
-+#define OR_INST_CODE 57
-+#define MULXSU_INST_CODE 58
-+#define CMPNE_INST_CODE 59
-+#define SRLI_INST_CODE 60
-+#define SRL_INST_CODE 61
-+#define NEXTPC_INST_CODE 62
-+#define CALLR_INST_CODE 63
-+#define XOR_INST_CODE 64
-+#define MULXSS_INST_CODE 65
-+#define CMPEQ_INST_CODE 66
-+#define DIVU_INST_CODE 67
-+#define DIV_INST_CODE 68
-+#define RDCTL_INST_CODE 69
-+#define MUL_INST_CODE 70
-+#define CMPGEU_INST_CODE 71
-+#define INITI_INST_CODE 72
-+#define TRAP_INST_CODE 73
-+#define WRCTL_INST_CODE 74
-+#define CMPLTU_INST_CODE 75
-+#define ADD_INST_CODE 76
-+#define BREAK_INST_CODE 77
-+#define HBREAK_INST_CODE 78
-+#define SYNC_INST_CODE 79
-+#define SUB_INST_CODE 80
-+#define SRAI_INST_CODE 81
-+#define SRA_INST_CODE 82
-+#define INTR_INST_CODE 83
-+#define RSV_INST_CODE 84
-+#define NUM_NIOS2_INST_CODES 85
-+
-+extern Nios2InstInfo nios2InstInfo[NUM_NIOS2_INST_CODES];
-+
-+/* Returns the instruction code given the 32-bit instruction word */
-+#define GET_INST_CODE(Iw) \
-+ (IS_OPX_INST(Iw) ? opxToInstCode[GET_IW_OPX(Iw)] : opToInstCode[GET_IW_OP(Iw)])
-+extern int opToInstCode[64];
-+extern int opxToInstCode[64];
-+
-+//
-+// MMU Memory Region Macros
-+//
-+#define isMmuUserRegion(Vaddr) \
-+ (GET_MMU_ADDR_USER_REGION(Vaddr) == MMU_ADDR_USER_REGION)
-+#define isMmuKernelMmuRegion(Vaddr) \
-+ (GET_MMU_ADDR_KERNEL_MMU_REGION(Vaddr) == MMU_ADDR_KERNEL_MMU_REGION)
-+#define isMmuKernelRegion(Vaddr) \
-+ (GET_MMU_ADDR_KERNEL_REGION(Vaddr) == MMU_ADDR_KERNEL_REGION)
-+#define isMmuIORegion(Vaddr) \
-+ (GET_MMU_ADDR_IO_REGION(Vaddr) == MMU_ADDR_IO_REGION)
-+
-+// Does this virtual address bypass the TLB?
-+#define vaddrBypassTlb(Vaddr) \
-+ (GET_MMU_ADDR_BYPASS_TLB(Vaddr) == MMU_ADDR_BYPASS_TLB)
-+
-+// If TLB is bypassed, is the address cacheable or uncachable.
-+#define vaddrBypassTlbCacheable(Vaddr) \
-+ (GET_MMU_ADDR_BYPASS_TLB_CACHEABLE(Vaddr) == MMU_ADDR_BYPASS_TLB_CACHEABLE)
-+
-+// Compute physical address for regions that bypass the TLB.
-+// Just need to clear some top bits.
-+#define bypassTlbVaddrToPaddr(Vaddr) \
-+ ((Vaddr) & (MMU_ADDR_BYPASS_TLB_PADDR_MASK << MMU_ADDR_BYPASS_TLB_PADDR_LSB))
-+
-+// Will the physical address fit in the Kernel/IO region virtual address space?
-+#define fitsInKernelRegion(Paddr) \
-+ (GET_MMU_ADDR_KERNEL_REGION(Paddr) == 0)
-+#define fitsInIORegion(Paddr) \
-+ (GET_MMU_ADDR_IO_REGION(Paddr) == 0)
-+
-+// Convert a physical address to a Kernel/IO region virtual address.
-+#define paddrToKernelRegionVaddr(Paddr) \
-+ ((Paddr) | (MMU_ADDR_KERNEL_REGION << MMU_ADDR_KERNEL_REGION_LSB))
-+#define paddrToIORegionVaddr(Paddr) \
-+ ((Paddr) | (MMU_ADDR_IO_REGION << MMU_ADDR_IO_REGION_LSB))
-+
-+// Convert a virtual address to a Kernel/IO region virtual address.
-+// Uses bypassTlbVaddrToPaddr to clear top bits.
-+#define vaddrToKernelRegionVaddr(Vaddr) \
-+ paddrToKernelRegionVaddr(bypassTlbVaddrToPaddr(Vaddr))
-+#define vaddrToIORegionVaddr(Vaddr) \
-+ paddrToIORegionVaddr(bypassTlbVaddrToPaddr(Vaddr))
-+
-+// Convert between VPN/PFN and virtual/physical addresses.
-+#define vpnToVaddr(Vpn) ((Vpn) << MMU_ADDR_VPN_LSB)
-+#define pfnToPaddr(Pfn) ((Pfn) << MMU_ADDR_PFN_LSB)
-+#define vaddrToVpn(Vaddr) GET_MMU_ADDR_VPN(Vaddr)
-+#define paddrToPfn(Paddr) GET_MMU_ADDR_PFN(Paddr)
-+
-+
-+#endif /* _NIOS2_ISA_H_ */
---- binutils-2.15/include/opcode/nios2.h 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/include/opcode/nios2.h 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,357 @@
-+/* nios2.h. Altera New Jersey opcode list for GAS, the GNU assembler.
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+This file is part of GDB, GAS, and the GNU binutils.
-+
-+GDB, GAS, and the GNU binutils are free software; you can redistribute
-+them and/or modify them under the terms of the GNU General Public
-+License as published by the Free Software Foundation; either version
-+1, or (at your option) any later version.
-+
-+GDB, GAS, and the GNU binutils are distributed in the hope that they
-+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 file; see the file COPYING. If not, write to the Free
-+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#ifndef _NIOS2_H_
-+#define _NIOS2_H_
-+
-+
-+/****************************************************************************
-+ * This file contains structures, bit masks and shift counts used
-+ * by the GNU toolchain to define the New Jersey instruction set and
-+ * access various opcode fields.
-+ ****************************************************************************/
-+
-+enum overflow_type
-+{
-+ call_target_overflow = 0,
-+ branch_target_overflow,
-+ address_offset_overflow,
-+ signed_immed16_overflow,
-+ unsigned_immed16_overflow,
-+ unsigned_immed5_overflow,
-+ custom_opcode_overflow,
-+ no_overflow
-+};
-+
-+/*---------------------------------------------------------------------------
-+ This structure holds information for a particular instruction
-+ ---------------------------------------------------------------------------*/
-+
-+/* match When assembling, this
-+ opcode is modified by the arguments to produce the actual opcode
-+ that is used. If pinfo is INSN_MACRO, then this is 0. */
-+
-+/* mask If pinfo is not INSN_MACRO, then this is a bit mask for the
-+ relevant portions of the opcode when disassembling. If the
-+ actual opcode anded with the match field equals the opcode field,
-+ then we have found the correct instruction. If pinfo is
-+ INSN_MACRO, then this field is the macro identifier. */
-+
-+/* For a macro, this is INSN_MACRO. Otherwise, it is a collection
-+ of bits describing the instruction, notably any relevant hazard
-+ information. */
-+
-+struct nios2_opcode
-+{
-+ const char *name; /* The name of the instruction. */
-+ const char *args; /* A string describing the arguments for this instruction. */
-+ const char *args_test; /* Like args, but with an extra argument for the expected opcode */
-+ unsigned long num_args; /* the number of arguments the instruction takes */
-+ unsigned long match; /* The basic opcode for the instruction. */
-+ unsigned long mask; /* mask for the opcode field of the instruction */
-+ unsigned long pinfo; /* is this a real instruction or instruction macro */
-+ enum overflow_type overflow_msg; /* msg template used to generate informative message when fixup overflows */
-+};
-+
-+/* This value is used in the nios2_opcode.pinfo field to indicate that the instruction
-+ is a macro or pseudo-op. This requires special treatment by the assembler, and is
-+ used by the disassembler to determine whether to check for a nop */
-+#define NIOS2_INSN_MACRO 0x80000000
-+#define NIOS2_INSN_MACRO_MOV 0x80000001
-+#define NIOS2_INSN_MACRO_MOVI 0x80000002
-+#define NIOS2_INSN_MACRO_MOVIA 0x80000004
-+
-+#define NIOS2_INSN_RELAXABLE 0x40000000
-+#define NIOS2_INSN_UBRANCH 0x00000010
-+#define NIOS2_INSN_CBRANCH 0x00000020
-+#define NIOS2_INSN_CALL 0x00000040
-+
-+#define NIOS2_INSN_ADDI 0x00000080
-+#define NIOS2_INSN_ANDI 0x00000100
-+#define NIOS2_INSN_ORI 0x00000200
-+#define NIOS2_INSN_XORI 0x00000400
-+
-+
-+
-+/* Associates a register name ($6) with a 5-bit index (eg 6) */
-+struct nios2_reg
-+{
-+ const char *name;
-+ const int index;
-+};
-+
-+
-+/* -------------------------------------------------------------------------
-+ Bitfield masks for New Jersey instructions
-+ -------------------------------------------------------------------------*/
-+
-+/* These are bit masks and shift counts to use to access the various
-+ fields of an instruction. */
-+
-+/* Macros for getting and setting an instruction field */
-+#define GET_INSN_FIELD(X, i) ((i) & OP_MASK_##X) >> OP_SH_##X
-+#define SET_INSN_FIELD(X, i, j) (i) = ((i) &~ (OP_MASK_##X)) | ((j) << OP_SH_##X)
-+
-+
-+/*
-+ We include the auto-generated file nios2-isa.h and define the mask
-+ and shifts below in terms of those in nios2-isa.h. This ensures
-+ that the binutils and hardware are always in sync
-+*/
-+
-+#include "nios2-isa.h"
-+
-+#define OP_MASK_OP (IW_OP_MASK << IW_OP_LSB)
-+#define OP_SH_OP IW_OP_LSB
-+
-+
-+/* Masks and shifts for I-type instructions */
-+
-+#define OP_MASK_IOP (IW_OP_MASK << IW_OP_LSB)
-+#define OP_SH_IOP IW_OP_LSB
-+
-+#define OP_MASK_IMM16 (IW_IMM16_MASK << IW_IMM16_LSB)
-+#define OP_SH_IMM16 IW_IMM16_LSB
-+
-+#define OP_MASK_IRD (IW_B_MASK << IW_B_LSB) // the same as T for I-type
-+#define OP_SH_IRD IW_B_LSB
-+
-+#define OP_MASK_IRT (IW_B_MASK << IW_B_LSB)
-+#define OP_SH_IRT IW_B_LSB
-+
-+#define OP_MASK_IRS (IW_A_MASK << IW_A_LSB)
-+#define OP_SH_IRS IW_A_LSB
-+
-+/* Masks and shifts for R-type instructions */
-+
-+#define OP_MASK_ROP (IW_OP_MASK << IW_OP_LSB)
-+#define OP_SH_ROP IW_OP_LSB
-+
-+#define OP_MASK_ROPX (IW_OPX_MASK << IW_OPX_LSB)
-+#define OP_SH_ROPX IW_OPX_LSB
-+
-+#define OP_MASK_RRD (IW_C_MASK << IW_C_LSB)
-+#define OP_SH_RRD IW_C_LSB
-+
-+#define OP_MASK_RRT (IW_B_MASK << IW_B_LSB)
-+#define OP_SH_RRT IW_B_LSB
-+
-+#define OP_MASK_RRS (IW_A_MASK << IW_A_LSB)
-+#define OP_SH_RRS IW_A_LSB
-+
-+/* Masks and shifts for J-type instructions */
-+
-+#define OP_MASK_JOP (IW_OP_MASK << IW_OP_LSB)
-+#define OP_SH_JOP IW_OP_LSB
-+
-+#define OP_MASK_IMM26 (IW_IMM26_MASK << IW_IMM26_LSB)
-+#define OP_SH_IMM26 IW_IMM26_LSB
-+
-+/* Masks and shifts for CTL instructions */
-+
-+#define OP_MASK_RCTL 0x000007c0
-+#define OP_SH_RCTL 6
-+
-+/* break instruction imm5 field */
-+#define OP_MASK_TRAP_IMM5 0x000007c0
-+#define OP_SH_TRAP_IMM5 6
-+
-+/* instruction imm5 field */
-+#define OP_MASK_IMM5 (IW_SHIFT_IMM5_MASK << IW_SHIFT_IMM5_LSB)
-+#define OP_SH_IMM5 IW_SHIFT_IMM5_LSB
-+
-+/* cache operation fields (type j,i(s)) */
-+#define OP_MASK_CACHE_OPX (IW_B_MASK << IW_B_LSB)
-+#define OP_SH_CACHE_OPX IW_B_LSB
-+#define OP_MASK_CACHE_RRS (IW_A_MASK << IW_A_LSB)
-+#define OP_SH_CACHE_RRS IW_A_LSB
-+
-+/* custom instruction masks */
-+#define OP_MASK_CUSTOM_A 0x00010000
-+#define OP_SH_CUSTOM_A 16
-+
-+#define OP_MASK_CUSTOM_B 0x00008000
-+#define OP_SH_CUSTOM_B 15
-+
-+#define OP_MASK_CUSTOM_C 0x00004000
-+#define OP_SH_CUSTOM_C 14
-+
-+#define OP_MASK_CUSTOM_N 0x00003fc0
-+#define OP_SH_CUSTOM_N 6
-+#define OP_MAX_CUSTOM_N 255
-+
-+/*
-+ The following macros define the opcode matches for each
-+ instruction
-+ code & OP_MASK_INST == OP_MATCH_INST
-+ */
-+
-+/* OP instruction matches */
-+#define OP_MATCH_ADDI OP_ADDI
-+#define OP_MATCH_ANDHI OP_ANDHI
-+#define OP_MATCH_ANDI OP_ANDI
-+#define OP_MATCH_BEQ OP_BEQ
-+#define OP_MATCH_BGE OP_BGE
-+#define OP_MATCH_BGEU OP_BGEU
-+#define OP_MATCH_BLT OP_BLT
-+#define OP_MATCH_BLTU OP_BLTU
-+#define OP_MATCH_BNE OP_BNE
-+#define OP_MATCH_BR OP_BR
-+#define OP_MATCH_FLUSHD OP_FLUSHD
-+#define OP_MATCH_INITD OP_INITD
-+#define OP_MATCH_CALL OP_CALL
-+#define OP_MATCH_CMPEQI OP_CMPEQI
-+#define OP_MATCH_CMPGEI OP_CMPGEI
-+#define OP_MATCH_CMPGEUI OP_CMPGEUI
-+#define OP_MATCH_CMPLTI OP_CMPLTI
-+#define OP_MATCH_CMPLTUI OP_CMPLTUI
-+#define OP_MATCH_CMPNEI OP_CMPNEI
-+#define OP_MATCH_LDB OP_LDB
-+#define OP_MATCH_LDBIO OP_LDBIO
-+#define OP_MATCH_LDBU OP_LDBU
-+#define OP_MATCH_LDBUIO OP_LDBUIO
-+#define OP_MATCH_LDH OP_LDH
-+#define OP_MATCH_LDHIO OP_LDHIO
-+#define OP_MATCH_LDHU OP_LDHU
-+#define OP_MATCH_LDHUIO OP_LDHUIO
-+#define OP_MATCH_LDW OP_LDW
-+#define OP_MATCH_LDWIO OP_LDWIO
-+#define OP_MATCH_MULI OP_MULI
-+#define OP_MATCH_OPX OP_OPX
-+#define OP_MATCH_ORHI OP_ORHI
-+#define OP_MATCH_ORI OP_ORI
-+#define OP_MATCH_STB OP_STB
-+#define OP_MATCH_STBIO OP_STBIO
-+#define OP_MATCH_STH OP_STH
-+#define OP_MATCH_STHIO OP_STHIO
-+#define OP_MATCH_STW OP_STW
-+#define OP_MATCH_STWIO OP_STWIO
-+#define OP_MATCH_CUSTOM OP_CUSTOM
-+#define OP_MATCH_XORHI OP_XORHI
-+#define OP_MATCH_XORI OP_XORI
-+#define OP_MATCH_OPX OP_OPX
-+
-+/* OPX instruction values */
-+#define OP_MATCH_ADD ((OPX_ADD << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_AND ((OPX_AND << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_BREAK ((0x1e << 17) | (OPX_BREAK << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_BRET ((0xf0000000) | (OPX_BRET << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CALLR ((0x1f << 17) | (OPX_CALLR << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPEQ ((OPX_CMPEQ << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPGE ((OPX_CMPGE << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPGEU ((OPX_CMPGEU << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPLT ((OPX_CMPLT << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPLTU ((OPX_CMPLTU << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_CMPNE ((OPX_CMPNE << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_DIV ((OPX_DIV << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_DIVU ((OPX_DIVU << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_JMP ((OPX_JMP << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_MUL ((OPX_MUL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_MULXSS ((OPX_MULXSS << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_MULXSU ((OPX_MULXSU << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_MULXUU ((OPX_MULXUU << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_NEXTPC ((OPX_NEXTPC << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_NOR ((OPX_NOR << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_OR ((OPX_OR << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_RDCTL ((OPX_RDCTL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_RET ((0xf8000000) | (OPX_RET << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_ROL ((OPX_ROL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_ROLI ((OPX_ROLI << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_ROR ((OPX_ROR << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SLL ((OPX_SLL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SLLI ((OPX_SLLI << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SRA ((OPX_SRA << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SRAI ((OPX_SRAI << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SRL ((OPX_SRL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SRLI ((OPX_SRLI << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SUB ((OPX_SUB << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_SYNC ((OPX_SYNC << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_TRAP ((0x1d << 17) | (OPX_TRAP << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_ERET ((0xe8000000) | (OPX_ERET << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_WRCTL ((OPX_WRCTL << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_XOR ((OPX_XOR << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_FLUSHI ((OPX_FLUSHI << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_FLUSHP ((OPX_FLUSHP << IW_OPX_LSB) | (OP_OPX))
-+#define OP_MATCH_INITI ((OPX_INITI << IW_OPX_LSB) | (OP_OPX))
-+
-+/*
-+ Some unusual op masks
-+*/
-+#define OP_MASK_BREAK ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP) & 0xfffff03f)
-+#define OP_MASK_CALLR ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_JMP ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_SYNC ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_TRAP ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP) & 0xfffff83f)
-+#define OP_MASK_WRCTL ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP)) /*& 0xfffff83f */
-+#define OP_MASK_NEXTPC ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_FLUSHI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_INITI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
-+
-+#define OP_MASK_ROLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_SLLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_SRAI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_SRLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
-+#define OP_MASK_RDCTL ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP)) /*& 0xfffff83f */
-+
-+#ifndef OP_MASK
-+#define OP_MASK 0xffffffff
-+#endif
-+
-+/* These are the data structures we use to hold the instruction information */
-+
-+extern const struct nios2_opcode nios2_builtin_opcodes[];
-+extern const int bfd_nios2_num_builtin_opcodes;
-+extern struct nios2_opcode *nios2_opcodes;
-+extern int bfd_nios2_num_opcodes;
-+
-+/* These are the data structures used to hold the operand parsing information */
-+//extern const struct nios2_arg_parser nios2_arg_parsers[];
-+//extern struct nios2_arg_parser* nios2_arg_parsers;
-+//extern const int nios2_num_builtin_arg_parsers;
-+//extern int nios2_num_arg_parsers;
-+
-+/* These are the data structures used to hold the register information */
-+extern const struct nios2_reg nios2_builtin_regs[];
-+extern struct nios2_reg *nios2_regs;
-+extern const int nios2_num_builtin_regs;
-+extern int nios2_num_regs;
-+
-+/* Machine-independent macro for number of opcodes */
-+
-+#define NUMOPCODES bfd_nios2_num_opcodes
-+#define NUMREGISTERS nios2_num_regs;
-+
-+/* these are used in disassembly to get the correct register names */
-+#define NUMREGNAMES 32
-+#define NUMCTLREGNAMES 32
-+#define CTLREGBASE 42
-+#define COPROCREGBASE 83
-+#define NUMCOPROCREGNAMES 32
-+
-+
-+/* this is made extern so that the assembler can use it to find out
-+ what instruction caused an error */
-+extern const struct nios2_opcode *nios2_find_opcode_hash (unsigned long);
-+
-+/* overflow message strings used in the assembler */
-+extern char *overflow_msgs[];
-+
-+#endif // _NIOS2_H
---- binutils-2.15/include/opcode/s-nios2-isa 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/include/opcode/s-nios2-isa 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1 @@
-+timestamp
---- binutils-2.15/ld/Makefile.am 2004-05-17 21:36:15.000000000 +0200
-+++ binutils-2.15-nios2/ld/Makefile.am 2005-05-17 12:20:14.000000000 +0200
-@@ -1440,6 +1440,9 @@ eelf32frvfd.c: $(srcdir)/emulparams/elf3
- $(srcdir)/emulparams/elf32frv.sh \
- $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
- ${GENSCRIPTS} elf32frvfd "$(tdir_frv)"
-+enios2elf.c: $(srcdir)/emulparams/nios2elf.sh \
-+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-+ ${GENSCRIPTS} nios2elf "$(tdir_nios2)"
-
- # We need this for automake to use YLWRAP.
- EXTRA_ld_new_SOURCES = deffilep.y
---- binutils-2.15/ld/Makefile.in 2004-05-17 21:36:15.000000000 +0200
-+++ binutils-2.15-nios2/ld/Makefile.in 2005-05-17 12:20:14.000000000 +0200
-@@ -2166,6 +2166,9 @@ eelf32frvfd.c: $(srcdir)/emulparams/elf3
- $(srcdir)/emulparams/elf32frv.sh \
- $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
- ${GENSCRIPTS} elf32frvfd "$(tdir_frv)"
-+enios2elf.c: $(srcdir)/emulparams/nios2elf.sh \
-+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-+ ${GENSCRIPTS} nios2elf "$(tdir_nios2)"
-
- # The generated emulation files mostly have the same dependencies.
- $(EMULATION_OFILES): ../bfd/bfd.h sysdep.h config.h $(INCDIR)/bfdlink.h \
---- binutils-2.15/ld/configure.tgt 2004-05-17 21:36:15.000000000 +0200
-+++ binutils-2.15-nios2/ld/configure.tgt 2005-05-17 12:20:14.000000000 +0200
-@@ -450,6 +450,7 @@ mn10200-*-*) targ_emul=mn10200 ;;
- mn10300-*-*) targ_emul=mn10300 ;;
- msp430-*-*) targ_emul=msp430x110
- targ_extra_emuls="msp430x112 msp430x1101 msp430x1111 msp430x1121 msp430x1122 msp430x1132 msp430x122 msp430x123 msp430x1222 msp430x1232 msp430x133 msp430x135 msp430x1331 msp430x1351 msp430x147 msp430x148 msp430x149 msp430x155 msp430x156 msp430x157 msp430x167 msp430x168 msp430x169 msp430x311 msp430x312 msp430x313 msp430x314 msp430x315 msp430x323 msp430x325 msp430x336 msp430x337 msp430x412 msp430x413 msp430xE423 msp430xE425 msp430xE427 msp430xW423 msp430xW425 msp430xW427 msp430x435 msp430x436 msp430x437 msp430x447 msp430x448 msp430x449" ;;
-+nios2-*-*|nios2-*-*) targ_emul=nios2elf ;;
- alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
- targ_emul=elf64alpha_fbsd
- targ_extra_emuls="elf64alpha alpha"
---- binutils-2.15/ld/emulparams/nios2elf.sh 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/ld/emulparams/nios2elf.sh 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,15 @@
-+SCRIPT_NAME=elf
-+OUTPUT_FORMAT="elf32-littlenios2"
-+TEXT_START_ADDR=0x0
-+OTHER_GOT_SYMBOLS='
-+ _gp = ALIGN(16) + 0x7ff0;
-+ PROVIDE(gp = _gp);
-+'
-+ARCH=nios2
-+MACHINE=
-+MAXPAGESIZE=256
-+ENTRY=_start
-+EMBEDDED=yes
-+DATA_ADDR=.
-+NOP=0x0001883a
-+
---- binutils-2.15/ld/ldmain.c 2004-05-17 21:36:16.000000000 +0200
-+++ binutils-2.15-nios2/ld/ldmain.c 2005-05-17 12:20:14.000000000 +0200
-@@ -397,6 +397,14 @@ main (int argc, char **argv)
- yyparse ();
- lex_string = NULL;
- }
-+/* NG horrible hack, but it works and I haven't the time to do this properly */
-+#ifdef bfd_set_link_info
-+ bfd_set_link_info(&link_info);
-+#endif
-+#ifdef bfd_set_force_make_executable
-+ bfd_set_force_make_executable(force_make_executable);
-+#endif
-+
-
- if (trace_file_tries)
- {
---- binutils-2.15/ld/nios2_ld_xfail.lst 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/ld/nios2_ld_xfail.lst 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,3 @@
-+
-+
-+
---- binutils-2.15/ld/testsuite/ld-elf/merge.d 2003-05-07 07:08:02.000000000 +0200
-+++ binutils-2.15-nios2/ld/testsuite/ld-elf/merge.d 2005-05-17 12:20:14.000000000 +0200
-@@ -5,6 +5,7 @@
- #xfail: "hppa*-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*" "mcore-*-*"
- #xfail: "mn10*-*-*" "mips64*-*-linux*" "openrisc-*-*" "pj-*-*" "sparc*-*-*"
- #xfail: "xtensa-*-*"
-+#xfail: "nios2-*-*"
-
- .*: file format .*elf.*
-
---- binutils-2.15/ld/testsuite/ld-elfcomm/elfcomm.exp 2003-06-18 05:38:05.000000000 +0200
-+++ binutils-2.15-nios2/ld/testsuite/ld-elfcomm/elfcomm.exp 2005-05-17 12:20:14.000000000 +0200
-@@ -56,6 +56,10 @@ proc dump_common1 { testname } {
- return 1
- }
-
-+if [istarget nios2-*-*] {
-+ set CFLAGS "$CFLAGS -G0"
-+}
-+
- if { ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/common1a.c tmpdir/common1a.o]
- || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/common1b.c tmpdir/common1b.o] } {
- unresolved $test1
---- binutils-2.15/ld/testsuite/ld-scripts/cross2.t 2001-08-27 12:49:55.000000000 +0200
-+++ binutils-2.15-nios2/ld/testsuite/ld-scripts/cross2.t 2005-05-17 12:20:14.000000000 +0200
-@@ -2,5 +2,9 @@ NOCROSSREFS ( .text .data )
- SECTIONS
- {
- .text : { *(.text) *(.text.*) *(.pr) }
-- .data : { *(.data) *(.data.*) *(.sdata) *(.rw) *(.tc0) *(.tc) *(.toc) }
-+ .data :
-+ { *(.data) *(.data.*)
-+ _gp = ABSOLUTE(. + 0x7ff0);
-+ *(.sdata) *(.rw) *(.tc0) *(.tc) *(.toc)
-+ }
- }
---- binutils-2.15/opcodes/Makefile.am 2004-01-07 19:39:40.000000000 +0100
-+++ binutils-2.15-nios2/opcodes/Makefile.am 2005-05-17 12:20:14.000000000 +0200
-@@ -125,6 +125,8 @@ CFILES = \
- mmix-dis.c \
- mmix-opc.c \
- ns32k-dis.c \
-+ nios2-opc.c \
-+ nios2-dis.c \
- openrisc-asm.c \
- openrisc-desc.c \
- openrisc-dis.c \
-@@ -237,6 +239,8 @@ ALL_MACHINES = \
- mmix-opc.lo \
- msp430-dis.lo \
- ns32k-dis.lo \
-+ nios2-opc.lo \
-+ nios2-dis.lo \
- openrisc-asm.lo \
- openrisc-desc.lo \
- openrisc-dis.lo \
-@@ -739,6 +743,13 @@ mmix-opc.lo: mmix-opc.c $(INCDIR)/opcode
- ns32k-dis.lo: ns32k-dis.c $(BFD_H) $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h sysdep.h config.h $(INCDIR)/dis-asm.h \
- $(INCDIR)/opcode/ns32k.h opintl.h
-+nios2-opc.lo: nios2-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
-+ $(INCDIR)/opcode/nios2.h
-+nios2-dis.lo: nios2-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
-+ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/nios2.h \
-+ opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
-+ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-+ $(INCDIR)/elf/nios2.h $(INCDIR)/elf/reloc-macros.h
- openrisc-asm.lo: openrisc-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
- $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h $(INCDIR)/opcode/cgen.h \
- openrisc-opc.h opintl.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
---- binutils-2.15/opcodes/Makefile.in 2004-01-07 19:39:40.000000000 +0100
-+++ binutils-2.15-nios2/opcodes/Makefile.in 2005-05-17 12:20:14.000000000 +0200
-@@ -236,6 +236,8 @@ CFILES = \
- mmix-dis.c \
- mmix-opc.c \
- ns32k-dis.c \
-+ nios2-opc.c \
-+ nios2-dis.c \
- openrisc-asm.c \
- openrisc-desc.c \
- openrisc-dis.c \
-@@ -348,6 +350,8 @@ ALL_MACHINES = \
- mmix-dis.lo \
- mmix-opc.lo \
- msp430-dis.lo \
-+ nios2-opc.lo \
-+ nios2-dis.lo \
- ns32k-dis.lo \
- openrisc-asm.lo \
- openrisc-desc.lo \
-@@ -1232,6 +1236,13 @@ mmix-dis.lo: mmix-dis.c $(INCDIR)/opcode
- $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
- opintl.h
- mmix-opc.lo: mmix-opc.c $(INCDIR)/opcode/mmix.h $(INCDIR)/symcat.h
-+nios2-opc.lo: nios2-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
-+ $(INCDIR)/opcode/nios2.h
-+nios2-dis.lo: nios2-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
-+ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/nios2.h \
-+ opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
-+ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-+ $(INCDIR)/elf/nios2.h $(INCDIR)/elf/reloc-macros.h
- ns32k-dis.lo: ns32k-dis.c $(BFD_H) $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h sysdep.h config.h $(INCDIR)/dis-asm.h \
- $(INCDIR)/opcode/ns32k.h opintl.h
---- binutils-2.15/opcodes/configure 2003-08-05 11:39:31.000000000 +0200
-+++ binutils-2.15-nios2/opcodes/configure 2005-05-17 12:20:14.000000000 +0200
-@@ -4661,6 +4661,7 @@ if test x${all_targets} = xfalse ; then
- bfd_mn10200_arch) ta="$ta m10200-dis.lo m10200-opc.lo" ;;
- bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
- bfd_msp430_arch) ta="$ta msp430-dis.lo" ;;
-+ bfd_nios2_arch) ta="$ta nios2-dis.lo nios2-opc.lo" ;;
- bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
- bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
- bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
---- binutils-2.15/opcodes/configure.in 2003-08-05 11:39:31.000000000 +0200
-+++ binutils-2.15-nios2/opcodes/configure.in 2005-05-17 12:20:14.000000000 +0200
-@@ -202,6 +202,7 @@ if test x${all_targets} = xfalse ; then
- bfd_mn10200_arch) ta="$ta m10200-dis.lo m10200-opc.lo" ;;
- bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
- bfd_msp430_arch) ta="$ta msp430-dis.lo" ;;
-+ bfd_nios2_arch) ta="$ta nios2-dis.lo nios2-opc.lo" ;;
- bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
- bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
- bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
---- binutils-2.15/opcodes/disassemble.c 2003-11-14 16:12:44.000000000 +0100
-+++ binutils-2.15-nios2/opcodes/disassemble.c 2005-05-17 12:20:14.000000000 +0200
-@@ -1,5 +1,5 @@
- /* Select disassembly routine for specified architecture.
-- Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-+ Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
-@@ -72,6 +72,7 @@ Foundation, Inc., 59 Temple Place - Suit
- #define ARCH_z8k
- #define ARCH_frv
- #define ARCH_iq2000
-+#define ARCH_nios2
- #define INCLUDE_SHMEDIA
- #endif
-
-@@ -375,6 +376,11 @@ disassembler (abfd)
- disassemble = print_insn_iq2000;
- break;
- #endif
-+#ifdef ARCH_nios2
-+ case bfd_arch_nios2:
-+ disassemble = print_insn_nios2;
-+ break;
-+#endif
- default:
- return 0;
- }
---- binutils-2.15/opcodes/nios2-dis.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/opcodes/nios2-dis.c 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,445 @@
-+/* nios2-dis.c -- Altera New Jersey disassemble routines.
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+This file is part of GDB, GAS, and the GNU binutils.
-+
-+GDB, GAS, and the GNU binutils are free software; you can redistribute
-+them and/or modify them under the terms of the GNU General Public
-+License as published by the Free Software Foundation; either version
-+1, or (at your option) any later version.
-+
-+GDB, GAS, and the GNU binutils are distributed in the hope that they
-+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 file; see the file COPYING. If not, write to the Free
-+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <string.h>
-+#include "dis-asm.h"
-+#include "opcode/nios2.h"
-+
-+/* No symbol table is available when this code runs out in an embedded
-+ system as when it is used for disassembler support in a monitor. */
-+
-+#if !defined(EMBEDDED_ENV)
-+#define SYMTAB_AVAILABLE 1
-+#include "elf-bfd.h"
-+#include "elf/nios2.h"
-+#endif
-+
-+/* length of New Jersey instruction in bytes */
-+#define INSNLEN 4
-+
-+/* helper function prototypes */
-+static int nios2_disassemble (bfd_vma, unsigned long, disassemble_info *);
-+static void nios2_init_opcode_hash (void);
-+
-+
-+static int nios2_print_insn_arg (const char *argptr, unsigned long opcode,
-+ bfd_vma address, disassemble_info * info);
-+
-+
-+/* print_insn_nios2 is the main disassemble function for New Jersey.
-+ The function diassembler(abfd) (source in disassemble.c)
-+ returns a pointer to this function when the bfd machine type is
-+ New Jersey. print_insn_nios2 reads the instruction word at the
-+ address given, and prints the disassembled instruction on the
-+ stream info->stream using info->fprintf_func. */
-+
-+int
-+print_insn_nios2 (bfd_vma address, disassemble_info * info)
-+{
-+ /* buffer into which the instruction bytes are written */
-+ bfd_byte buffer[INSNLEN];
-+ /* used to indicate return status from function calls */
-+ int status;
-+
-+ assert (info != NULL);
-+
-+ status = (*info->read_memory_func) (address, buffer, INSNLEN, info);
-+ if (status == 0)
-+ {
-+ status =
-+ nios2_disassemble (address, (unsigned long) bfd_getl32 (buffer),
-+ info);
-+ }
-+ else
-+ {
-+ (*info->memory_error_func) (status, address, info);
-+ status = -1;
-+ }
-+ return status;
-+}
-+
-+/* Data structures used by the opcode hash table */
-+
-+typedef struct _nios2_opcode_hash
-+{
-+ const struct nios2_opcode *opcode;
-+ struct _nios2_opcode_hash *next;
-+} nios2_opcode_hash;
-+
-+static bfd_boolean nios2_hash_init = 0;
-+static nios2_opcode_hash *nios2_hash[(OP_MASK_OP) + 1];
-+
-+/* separate hash table for pseudo-ops */
-+static nios2_opcode_hash *nios2_ps_hash[(OP_MASK_OP) + 1];
-+
-+/* Function to initialize the opcode hash table */
-+
-+void
-+nios2_init_opcode_hash ()
-+{
-+ unsigned int i;
-+ register const struct nios2_opcode *op;
-+ nios2_opcode_hash *tmp_hash;
-+
-+ for (i = 0; i <= OP_MASK_OP; ++i)
-+ {
-+ nios2_hash[0] = NULL;
-+ }
-+ for (i = 0; i <= OP_MASK_OP; i++)
-+ {
-+ for (op = nios2_opcodes; op < &nios2_opcodes[NUMOPCODES]; op++)
-+ {
-+ if ((op->pinfo & NIOS2_INSN_MACRO) == NIOS2_INSN_MACRO)
-+ {
-+ if (i == ((op->match >> OP_SH_OP) & OP_MASK_OP) &&
-+ (op->
-+ pinfo & (NIOS2_INSN_MACRO_MOV | NIOS2_INSN_MACRO_MOVI) &
-+ 0x7fffffff) != 0)
-+ {
-+ tmp_hash = nios2_ps_hash[i];
-+ if (tmp_hash == NULL)
-+ {
-+ tmp_hash =
-+ (nios2_opcode_hash *)
-+ malloc (sizeof (nios2_opcode_hash));
-+ nios2_ps_hash[i] = tmp_hash;
-+ }
-+ else
-+ {
-+ while (tmp_hash->next != NULL)
-+ tmp_hash = tmp_hash->next;
-+ tmp_hash->next =
-+ (nios2_opcode_hash *)
-+ malloc (sizeof (nios2_opcode_hash));
-+ tmp_hash = tmp_hash->next;
-+ }
-+ if (tmp_hash == NULL)
-+ {
-+ fprintf (stderr,
-+ "error allocating memory...broken disassembler\n");
-+ abort ();
-+ }
-+ tmp_hash->opcode = op;
-+ tmp_hash->next = NULL;
-+ }
-+ }
-+ else if (i == ((op->match >> OP_SH_OP) & OP_MASK_OP))
-+ {
-+ tmp_hash = nios2_hash[i];
-+ if (tmp_hash == NULL)
-+ {
-+ tmp_hash =
-+ (nios2_opcode_hash *) malloc (sizeof (nios2_opcode_hash));
-+ nios2_hash[i] = tmp_hash;
-+ }
-+ else
-+ {
-+ while (tmp_hash->next != NULL)
-+ tmp_hash = tmp_hash->next;
-+ tmp_hash->next =
-+ (nios2_opcode_hash *) malloc (sizeof (nios2_opcode_hash));
-+ tmp_hash = tmp_hash->next;
-+ }
-+ if (tmp_hash == NULL)
-+ {
-+ fprintf (stderr,
-+ "error allocating memory...broken disassembler\n");
-+ abort ();
-+ }
-+ tmp_hash->opcode = op;
-+ tmp_hash->next = NULL;
-+ }
-+ }
-+ }
-+ nios2_hash_init = 1;
-+#ifdef DEBUG_HASHTABLE
-+ for (i = 0; i <= OP_MASK_OP; ++i)
-+ {
-+ printf ("index: 0x%02X ops: ", i);
-+ tmp_hash = nios2_hash[i];
-+ if (tmp_hash != NULL)
-+ {
-+ while (tmp_hash != NULL)
-+ {
-+ printf ("%s ", tmp_hash->opcode->name);
-+ tmp_hash = tmp_hash->next;
-+ }
-+ }
-+ printf ("\n");
-+ }
-+
-+ for (i = 0; i <= OP_MASK_OP; ++i)
-+ {
-+ printf ("index: 0x%02X ops: ", i);
-+ tmp_hash = nios2_ps_hash[i];
-+ if (tmp_hash != NULL)
-+ {
-+ while (tmp_hash != NULL)
-+ {
-+ printf ("%s ", tmp_hash->opcode->name);
-+ tmp_hash = tmp_hash->next;
-+ }
-+ }
-+ printf ("\n");
-+ }
-+#endif
-+}
-+
-+/* Function which returns a pointer to an nios2_opcode struct for
-+ a given instruction opcode, or NULL if there is an error */
-+
-+const struct nios2_opcode *
-+nios2_find_opcode_hash (unsigned long opcode)
-+{
-+ nios2_opcode_hash *entry;
-+
-+ /* Build a hash table to shorten the search time. */
-+ if (!nios2_hash_init)
-+ {
-+ nios2_init_opcode_hash ();
-+ }
-+
-+ /* first look in the pseudo-op hashtable */
-+ entry = nios2_ps_hash[(opcode >> OP_SH_OP) & OP_MASK_OP];
-+
-+ /* look for a match and if we get one, this is the instruction we decode */
-+ while (entry != NULL)
-+ {
-+ if ((entry->opcode->match) == (opcode & entry->opcode->mask))
-+ return entry->opcode;
-+ else
-+ entry = entry->next;
-+ }
-+
-+ /* if we haven't yet returned, then we need to look in the main
-+ hashtable */
-+ entry = nios2_hash[(opcode >> OP_SH_OP) & OP_MASK_OP];
-+
-+ if (entry == NULL)
-+ return NULL;
-+
-+
-+ while (entry != NULL)
-+ {
-+ if ((entry->opcode->match) == (opcode & entry->opcode->mask))
-+ return entry->opcode;
-+ else
-+ entry = entry->next;
-+ }
-+
-+ return NULL;
-+}
-+
-+/* nios2_disassemble does all the work of disassembling a New Jersey
-+ instruction opcode */
-+
-+int
-+nios2_disassemble (bfd_vma address, unsigned long opcode,
-+ disassemble_info * info)
-+{
-+ const struct nios2_opcode *op;
-+ const char *argstr;
-+
-+ info->bytes_per_line = INSNLEN;
-+ info->bytes_per_chunk = INSNLEN;
-+ info->display_endian = info->endian;
-+ info->insn_info_valid = 1;
-+ info->branch_delay_insns = 0;
-+ info->data_size = 0;
-+ info->insn_type = dis_nonbranch;
-+ info->target = 0;
-+ info->target2 = 0;
-+
-+ /* Find the major opcode and use this to disassemble
-+ the instruction and its arguments */
-+ op = nios2_find_opcode_hash (opcode);
-+
-+ if (op != NULL)
-+ {
-+ bfd_boolean is_nop = FALSE;
-+ if (op->pinfo == NIOS2_INSN_MACRO_MOV)
-+ {
-+ /* check for mov r0, r0 and if it is
-+ change to nop */
-+ int dst, src;
-+ dst = GET_INSN_FIELD (RRD, opcode);
-+ src = GET_INSN_FIELD (RRS, opcode);
-+ if (dst == 0 && src == 0)
-+ {
-+ (*info->fprintf_func) (info->stream, "nop");
-+ is_nop = TRUE;
-+ }
-+ else
-+ {
-+ (*info->fprintf_func) (info->stream, "%s", op->name);
-+ }
-+ }
-+ else
-+ {
-+ (*info->fprintf_func) (info->stream, "%s", op->name);
-+ }
-+
-+ if (!is_nop)
-+ {
-+ argstr = op->args;
-+ if (argstr != NULL && *argstr != '\0')
-+ {
-+ (*info->fprintf_func) (info->stream, "\t");
-+ while (*argstr != '\0')
-+ {
-+ nios2_print_insn_arg (argstr, opcode, address, info);
-+ ++argstr;
-+ }
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* Handle undefined instructions. */
-+ info->insn_type = dis_noninsn;
-+ (*info->fprintf_func) (info->stream, "0x%x", opcode);
-+ }
-+ // this tells the caller how far to advance the program counter
-+ return INSNLEN;
-+}
-+
-+/* The function nios2_print_insn_arg uses the character pointed
-+ to by argptr to determine how it print the next token or separator
-+ character in the arguments to an instruction */
-+int
-+nios2_print_insn_arg (const char *argptr,
-+ unsigned long opcode, bfd_vma address,
-+ disassemble_info * info)
-+{
-+ unsigned long i = 0;
-+ unsigned long reg_base;
-+
-+ assert (argptr != NULL);
-+ assert (info != NULL);
-+
-+ switch (*argptr)
-+ {
-+ case ',':
-+ case '(':
-+ case ')':
-+ (*info->fprintf_func) (info->stream, "%c", *argptr);
-+ break;
-+ case 'd':
-+ i = GET_INSN_FIELD (RRD, opcode);
-+
-+ if (GET_INSN_FIELD (OP, opcode) == OP_MATCH_CUSTOM
-+ && GET_INSN_FIELD (CUSTOM_C, opcode) == 0)
-+ reg_base = COPROCREGBASE;
-+ else
-+ reg_base = 0;
-+
-+ if (i < NUMREGNAMES)
-+ (*info->fprintf_func) (info->stream, "%s",
-+ nios2_regs[i + reg_base].name);
-+ else
-+ (*info->fprintf_func) (info->stream, "unknown");
-+ break;
-+ case 's':
-+ i = GET_INSN_FIELD (RRS, opcode);
-+
-+ if (GET_INSN_FIELD (OP, opcode) == OP_MATCH_CUSTOM
-+ && GET_INSN_FIELD (CUSTOM_A, opcode) == 0)
-+ reg_base = COPROCREGBASE;
-+ else
-+ reg_base = 0;
-+
-+ if (i < NUMREGNAMES)
-+ (*info->fprintf_func) (info->stream, "%s",
-+ nios2_regs[i + reg_base].name);
-+ else
-+ (*info->fprintf_func) (info->stream, "unknown");
-+ break;
-+ case 't':
-+ i = GET_INSN_FIELD (RRT, opcode);
-+
-+ if (GET_INSN_FIELD (OP, opcode) == OP_MATCH_CUSTOM
-+ && GET_INSN_FIELD (CUSTOM_B, opcode) == 0)
-+ reg_base = COPROCREGBASE;
-+ else
-+ reg_base = 0;
-+
-+ if (i < NUMREGNAMES)
-+ (*info->fprintf_func) (info->stream, "%s",
-+ nios2_regs[i + reg_base].name);
-+ else
-+ (*info->fprintf_func) (info->stream, "unknown");
-+ break;
-+ case 'i':
-+ /* 16-bit signed immediate */
-+ i = (signed) (GET_INSN_FIELD (IMM16, opcode) << 16) >> 16;
-+ (*info->fprintf_func) (info->stream, "%d", i);
-+ break;
-+ case 'u':
-+ /* 16-bit unsigned immediate */
-+ i = GET_INSN_FIELD (IMM16, opcode);
-+ (*info->fprintf_func) (info->stream, "%d", i);
-+ break;
-+ case 'o':
-+ /* 16-bit signed immediate address offset */
-+ i = (signed) (GET_INSN_FIELD (IMM16, opcode) << 16) >> 16;
-+ address = address + 4 + i; /* NG changed to byte offset 1/9/03 */
-+ (*info->print_address_func) (address, info);
-+ break;
-+ case 'p':
-+ /* 5-bit unsigned immediate */
-+ i = GET_INSN_FIELD (CACHE_OPX, opcode);
-+ (*info->fprintf_func) (info->stream, "%d", i);
-+ break;
-+ case 'j':
-+ /* 5-bit unsigned immediate */
-+ i = GET_INSN_FIELD (IMM5, opcode);
-+ (*info->fprintf_func) (info->stream, "%d", i);
-+ break;
-+ case 'l':
-+ /* 8-bit unsigned immediate */
-+ /* FIXME - not yet implemented */
-+ i = GET_INSN_FIELD (CUSTOM_N, opcode);
-+ (*info->fprintf_func) (info->stream, "%u", i);
-+ break;
-+ case 'm':
-+ /* 26-bit unsigned immediate */
-+ i = GET_INSN_FIELD (IMM26, opcode);
-+ /* this translates to an address because its only used in call instructions */
-+ address = (address & 0xf0000000) | (i << 2);
-+ (*info->print_address_func) (address, info);
-+ break;
-+ case 'c':
-+ i = GET_INSN_FIELD (IMM5, opcode); /* ctrl register index */
-+ (*info->fprintf_func) (info->stream, "%s",
-+ nios2_regs[CTLREGBASE + i].name);
-+ break;
-+ case 'b':
-+ i = GET_INSN_FIELD (IMM5, opcode);
-+ (*info->fprintf_func) (info->stream, "%d", i);
-+ break;
-+ default:
-+ (*info->fprintf_func) (info->stream, "unknown");
-+ break;
-+ }
-+ return 0;
-+}
---- binutils-2.15/opcodes/nios2-opc.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.15-nios2/opcodes/nios2-opc.c 2005-05-17 12:20:14.000000000 +0200
-@@ -0,0 +1,315 @@
-+/* nios2-opc.c -- Altera New Jersey opcode list.
-+
-+ Copyright (C) 2003
-+ by Nigel Gray (ngray@altera.com).
-+
-+This file is part of GDB, GAS, and the GNU binutils.
-+
-+GDB, GAS, and the GNU binutils are free software; you can redistribute
-+them and/or modify them under the terms of the GNU General Public
-+License as published by the Free Software Foundation; either version
-+1, or (at your option) any later version.
-+
-+GDB, GAS, and the GNU binutils are distributed in the hope that they
-+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 file; see the file COPYING. If not, write to the Free
-+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#include <stdio.h>
-+#include "opcode/nios2.h"
-+
-+/* Register string table */
-+
-+const struct nios2_reg nios2_builtin_regs[] = {
-+ {"zero", 0},
-+ {"at", 1}, // assembler temporary
-+ {"r2", 2},
-+ {"r3", 3},
-+ {"r4", 4},
-+ {"r5", 5},
-+ {"r6", 6},
-+ {"r7", 7},
-+ {"r8", 8},
-+ {"r9", 9},
-+ {"r10", 10},
-+ {"r11", 11},
-+ {"r12", 12},
-+ {"r13", 13},
-+ {"r14", 14},
-+ {"r15", 15},
-+ {"r16", 16},
-+ {"r17", 17},
-+ {"r18", 18},
-+ {"r19", 19},
-+ {"r20", 20},
-+ {"r21", 21},
-+ {"r22", 22},
-+ {"r23", 23},
-+ {"et", 24},
-+ {"bt", 25},
-+ {"gp", 26}, /* global pointer */
-+ {"sp", 27}, /* stack pointer */
-+ {"fp", 28}, /* frame pointer */
-+ {"ea", 29}, /* exception return address */
-+ {"ba", 30}, /* breakpoint return address */
-+ {"ra", 31}, /* return address */
-+
-+ /* alternative names for special registers */
-+ {"r0", 0},
-+ {"r1", 1},
-+ {"r24", 24},
-+ {"r25", 25},
-+ {"r26", 26},
-+ {"r27", 27},
-+ {"r28", 28},
-+ {"r29", 29},
-+ {"r30", 30},
-+ {"r31", 31},
-+
-+ /* control register names */
-+ {"status", 0},
-+ {"estatus", 1},
-+ {"bstatus", 2},
-+ {"ienable", 3},
-+ {"ipending", 4},
-+ {"cpuid", 5},
-+ {"ctl6", 6},
-+ {"ctl7", 7},
-+ {"pteaddr", 8},
-+ {"tlbacc", 9},
-+ {"tlbmisc", 10},
-+ {"ctl11", 11},
-+ {"ctl12", 12},
-+ {"ctl13", 13},
-+ {"ctl14", 14},
-+ {"ctl15", 15},
-+ {"ctl16", 16},
-+ {"ctl17", 17},
-+ {"ctl18", 18},
-+ {"ctl19", 19},
-+ {"ctl20", 20},
-+ {"ctl21", 21},
-+ {"ctl22", 22},
-+ {"ctl23", 23},
-+ {"ctl24", 24},
-+ {"ctl25", 25},
-+ {"ctl26", 26},
-+ {"ctl27", 27},
-+ {"ctl28", 28},
-+ {"ctl29", 29},
-+ {"ctl30", 30},
-+ {"ctl31", 31},
-+ {"ctl0", 0},
-+ {"ctl1", 1},
-+ {"ctl2", 2},
-+ {"ctl3", 3},
-+ {"ctl4", 4},
-+ {"ctl5", 5},
-+ {"ctl8", 8},
-+ {"ctl9", 9},
-+ {"ctl10", 10},
-+
-+ /* coprocessor register names */
-+ {"c0", 0},
-+ {"c1", 1},
-+ {"c2", 2},
-+ {"c3", 3},
-+ {"c4", 4},
-+ {"c5", 5},
-+ {"c6", 6},
-+ {"c7", 7},
-+ {"c8", 8},
-+ {"c9", 9},
-+ {"c10", 10},
-+ {"c11", 11},
-+ {"c12", 12},
-+ {"c13", 13},
-+ {"c14", 14},
-+ {"c15", 15},
-+ {"c16", 16},
-+ {"c17", 17},
-+ {"c18", 18},
-+ {"c19", 19},
-+ {"c20", 20},
-+ {"c21", 21},
-+ {"c22", 22},
-+ {"c23", 23},
-+ {"c24", 24},
-+ {"c25", 25},
-+ {"c26", 26},
-+ {"c27", 27},
-+ {"c28", 28},
-+ {"c29", 29},
-+ {"c30", 30},
-+ {"c31", 31},
-+};
-+
-+#define NIOS2_NUM_REGS \
-+ ((sizeof nios2_builtin_regs) / (sizeof (nios2_builtin_regs[0])))
-+const int nios2_num_builtin_regs = NIOS2_NUM_REGS;
-+
-+/* const removed from the following to allow for dynamic extensions to the
-+ * built-in instruction set. */
-+struct nios2_reg *nios2_regs = (struct nios2_reg *) nios2_builtin_regs;
-+int nios2_num_regs = NIOS2_NUM_REGS;
-+#undef NIOS2_NUM_REGS
-+
-+/* overflow message string templates */
-+
-+char *overflow_msgs[] = {
-+ "call target address 0x%08x out of range 0x%08x to 0x%08x",
-+ "branch offset %d out of range %d to %d",
-+ "%s offset %d out of range %d to %d",
-+ "immediate value %d out of range %d to %d",
-+ "immediate value %u out of range %u to %u",
-+ "immediate value %u out of range %u to %u",
-+ "custom instruction opcode %u out of range %u to %u",
-+};
-+
-+
-+
-+/*--------------------------------------------------------------------------------
-+ This is the opcode table used by the New Jersey GNU as, disassembler and GDB
-+ --------------------------------------------------------------------------------*/
-+
-+/*
-+ The following letters can appear in the args field of the nios2_opcode
-+ structure:
-+
-+ c - a 5-bit control register index or break opcode
-+ d - a 5-bit destination register index
-+ s - a 5-bit left source register index
-+ t - a 5-bit right source register index
-+ i - a 16-bit signed immediate
-+ u - a 16-bit unsigned immediate
-+
-+ j - a 5-bit unsigned immediate
-+ k - a 6-bit unsigned immediate
-+ l - an 8-bit unsigned immediate
-+ m - a 26-bit unsigned immediate
-+*/
-+
-+/* *INDENT-OFF* */
-+/* FIXME: Re-format for GNU standards */
-+const struct nios2_opcode nios2_builtin_opcodes[] =
-+{
-+ /* name, args, args_test num_args, match, mask, pinfo */
-+ {"add", "d,s,t", "d,s,t,E", 3, OP_MATCH_ADD, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"addi", "t,s,i", "t,s,i,E", 3, OP_MATCH_ADDI, OP_MASK_IOP, NIOS2_INSN_ADDI, signed_immed16_overflow },
-+ {"subi", "t,s,i", "t,s,i,E", 3, OP_MATCH_ADDI, OP_MASK_IOP, NIOS2_INSN_MACRO, signed_immed16_overflow },
-+ {"and", "d,s,t", "d,s,t,E", 3, OP_MATCH_AND, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"andhi", "t,s,u", "t,s,u,E", 3, OP_MATCH_ANDHI, OP_MASK_IOP, 0, unsigned_immed16_overflow },
-+ {"andi", "t,s,u", "t,s,u,E", 3, OP_MATCH_ANDI, OP_MASK_IOP, NIOS2_INSN_ANDI, unsigned_immed16_overflow },
-+ {"beq", "s,t,o", "s,t,o,E", 3, OP_MATCH_BEQ, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bge", "s,t,o", "s,t,o,E", 3, OP_MATCH_BGE, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bgeu", "s,t,o", "s,t,o,E", 3, OP_MATCH_BGEU, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bgt", "s,t,o", "s,t,o,E", 3, OP_MATCH_BLT, OP_MASK_IOP, NIOS2_INSN_MACRO|NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bgtu", "s,t,o", "s,t,o,E", 3, OP_MATCH_BLTU, OP_MASK_IOP, NIOS2_INSN_MACRO|NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"ble", "s,t,o", "s,t,o,E", 3, OP_MATCH_BGE, OP_MASK_IOP, NIOS2_INSN_MACRO|NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bleu", "s,t,o", "s,t,o,E", 3, OP_MATCH_BGEU, OP_MASK_IOP, NIOS2_INSN_MACRO|NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"blt", "s,t,o", "s,t,o,E", 3, OP_MATCH_BLT, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bltu", "s,t,o", "s,t,o,E", 3, OP_MATCH_BLTU, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"bne", "s,t,o", "s,t,o,E", 3, OP_MATCH_BNE, OP_MASK_IOP, NIOS2_INSN_CBRANCH, branch_target_overflow },
-+ {"br", "o", "o,E", 1, OP_MATCH_BR, OP_MASK_IOP, NIOS2_INSN_UBRANCH, branch_target_overflow },
-+ {"break", "b", "b,E", 1, OP_MATCH_BREAK, OP_MASK_BREAK, 0, no_overflow },
-+ {"bret", "", "E", 0, OP_MATCH_BRET, OP_MASK, 0, no_overflow },
-+ {"flushd", "i(s)", "i(s)E", 2, OP_MATCH_FLUSHD, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"flushi", "s", "s,E", 1, OP_MATCH_FLUSHI, OP_MASK_FLUSHI, 0, no_overflow },
-+ {"flushp", "", "E", 0, OP_MATCH_FLUSHP, OP_MASK, 0, no_overflow },
-+ {"initd", "i(s)", "i(s)E", 2, OP_MATCH_INITD, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"initi", "s", "s,E", 1, OP_MATCH_INITI, OP_MASK_INITI, 0, no_overflow },
-+ {"call", "m", "m,E", 1, OP_MATCH_CALL, OP_MASK_IOP, NIOS2_INSN_CALL, call_target_overflow },
-+ {"callr", "s", "s,E", 1, OP_MATCH_CALLR, OP_MASK_CALLR, 0, no_overflow },
-+ {"cmpeq", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPEQ, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmpeqi", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPEQI, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"cmpge", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPGE, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmpgei", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPGEI, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"cmpgeu", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPGEU, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmpgeui", "t,s,u", "t,s,u,E", 3, OP_MATCH_CMPGEUI, OP_MASK_IOP, 0, unsigned_immed16_overflow },
-+ {"cmpgt", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPLT, OP_MASK_ROPX | OP_MASK_ROP, NIOS2_INSN_MACRO, no_overflow },
-+ {"cmpgti", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPGEI, OP_MASK_IOP, NIOS2_INSN_MACRO, signed_immed16_overflow },
-+ {"cmpgtu", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPLTU, OP_MASK_ROPX | OP_MASK_ROP, NIOS2_INSN_MACRO, no_overflow },
-+ {"cmpgtui", "t,s,u", "t,s,u,E", 3, OP_MATCH_CMPGEUI, OP_MASK_IOP, NIOS2_INSN_MACRO, unsigned_immed16_overflow },
-+ {"cmple", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPGE, OP_MASK_ROPX | OP_MASK_ROP, NIOS2_INSN_MACRO, no_overflow },
-+ {"cmplei", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPLTI, OP_MASK_IOP, NIOS2_INSN_MACRO, signed_immed16_overflow },
-+ {"cmpleu", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPGEU, OP_MASK_ROPX | OP_MASK_ROP, NIOS2_INSN_MACRO, no_overflow },
-+ {"cmpleui", "t,s,u", "t,s,u,E", 3, OP_MATCH_CMPLTUI, OP_MASK_IOP, NIOS2_INSN_MACRO, unsigned_immed16_overflow },
-+ {"cmplt", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPLT, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmplti", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPLTI, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"cmpltu", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPLTU, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmpltui", "t,s,u", "t,s,u,E", 3, OP_MATCH_CMPLTUI, OP_MASK_IOP, 0, unsigned_immed16_overflow },
-+ {"cmpne", "d,s,t", "d,s,t,E", 3, OP_MATCH_CMPNE, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"cmpnei", "t,s,i", "t,s,i,E", 3, OP_MATCH_CMPNEI, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"div", "d,s,t", "d,s,t,E", 3, OP_MATCH_DIV, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"divu", "d,s,t", "d,s,t,E", 3, OP_MATCH_DIVU, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"jmp", "s", "s,E", 1, OP_MATCH_JMP, OP_MASK_JMP, 0, no_overflow },
-+ {"ldb", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDB, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldbio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDBIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldbu", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDBU, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldbuio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDBUIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldh", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDH, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldhio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDHIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldhu", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDHU, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldhuio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDHUIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldw", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDW, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"ldwio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_LDWIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"mov", "d,s", "d,s,E", 2, OP_MATCH_ADD, OP_MASK_RRT|OP_MASK_ROPX|OP_MASK_ROP, NIOS2_INSN_MACRO_MOV, no_overflow },
-+ {"movhi", "t,u", "t,u,E", 2, OP_MATCH_ORHI, OP_MASK_IRS|OP_MASK_IOP, NIOS2_INSN_MACRO_MOVI, unsigned_immed16_overflow },
-+ {"movui", "t,u", "t,u,E", 2, OP_MATCH_ORI, OP_MASK_IRS|OP_MASK_IOP, NIOS2_INSN_MACRO_MOVI, unsigned_immed16_overflow },
-+ {"movi", "t,i", "t,i,E", 2, OP_MATCH_ADDI, OP_MASK_IRS|OP_MASK_IOP, NIOS2_INSN_MACRO_MOVI, signed_immed16_overflow },
-+ /* movia expands to two instructions so there is no mask or match */
-+ {"movia", "t,o", "t,o,E", 2, OP_MATCH_ORHI, OP_MASK_IOP, NIOS2_INSN_MACRO_MOVIA, no_overflow },
-+ {"mul", "d,s,t", "d,s,t,E", 3, OP_MATCH_MUL, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"muli", "t,s,i", "t,s,i,E", 3, OP_MATCH_MULI, OP_MASK_IOP, 0, signed_immed16_overflow },
-+ {"mulxss", "d,s,t", "d,s,t,E", 3, OP_MATCH_MULXSS, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"mulxsu", "d,s,t", "d,s,t,E", 3, OP_MATCH_MULXSU, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"mulxuu", "d,s,t", "d,s,t,E", 3, OP_MATCH_MULXUU, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"nextpc", "d", "d,E", 1, OP_MATCH_NEXTPC, OP_MASK_NEXTPC, 0, no_overflow },
-+ {"nop", "", "E", 0, OP_MATCH_ADD, OP_MASK, NIOS2_INSN_MACRO_MOV, no_overflow },
-+ {"nor", "d,s,t", "d,s,t,E", 3, OP_MATCH_NOR, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"or", "d,s,t", "d,s,t,E", 3, OP_MATCH_OR, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"orhi", "t,s,u", "t,s,u,E", 3, OP_MATCH_ORHI, OP_MASK_IOP, 0, unsigned_immed16_overflow },
-+ {"ori", "t,s,u", "t,s,u,E", 3, OP_MATCH_ORI, OP_MASK_IOP, NIOS2_INSN_ORI, unsigned_immed16_overflow },
-+ {"rdctl", "d,c", "d,c,E", 2, OP_MATCH_RDCTL, OP_MASK_RDCTL, 0, no_overflow },
-+ {"ret", "", "E", 0, OP_MATCH_RET, OP_MASK, 0, no_overflow },
-+ {"rol", "d,s,t", "d,s,t,E", 3, OP_MATCH_ROL, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"roli", "d,s,j", "d,s,j,E", 3, OP_MATCH_ROLI, OP_MASK_ROLI, 0, unsigned_immed5_overflow },
-+ {"ror", "d,s,t", "d,s,t,E", 3, OP_MATCH_ROR, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"sll", "d,s,t", "d,s,t,E", 3, OP_MATCH_SLL, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"slli", "d,s,j", "d,s,j,E", 3, OP_MATCH_SLLI, OP_MASK_SLLI, 0, unsigned_immed5_overflow },
-+ {"sra", "d,s,t", "d,s,t,E", 3, OP_MATCH_SRA, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"srai", "d,s,j", "d,s,j,E", 3, OP_MATCH_SRAI, OP_MASK_SRAI, 0, unsigned_immed5_overflow },
-+ {"srl", "d,s,t", "d,s,t,E", 3, OP_MATCH_SRL, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"srli", "d,s,j", "d,s,j,E", 3, OP_MATCH_SRLI, OP_MASK_SRLI, 0, unsigned_immed5_overflow },
-+ {"stb", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STB, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"stbio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STBIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"sth", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STH, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"sthio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STHIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"stw", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STW, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"stwio", "t,i(s)", "t,i(s)E", 3, OP_MATCH_STWIO, OP_MASK_IOP, 0, address_offset_overflow },
-+ {"sub", "d,s,t", "d,s,t,E", 3, OP_MATCH_SUB, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"sync", "", "E", 0, OP_MATCH_SYNC, OP_MASK_SYNC, 0, no_overflow },
-+ {"trap", "", "E", 0, OP_MATCH_TRAP, OP_MASK_TRAP, 0, no_overflow },
-+ {"eret", "", "E", 0, OP_MATCH_ERET, OP_MASK, 0, no_overflow },
-+ {"custom", "l,d,s,t", "l,d,s,t,E", 4, OP_MATCH_CUSTOM, OP_MASK_ROP, 0, custom_opcode_overflow },
-+ {"wrctl", "c,s", "c,s,E", 2, OP_MATCH_WRCTL, OP_MASK_WRCTL, 0, no_overflow },
-+ {"xor", "d,s,t", "d,s,t,E", 3, OP_MATCH_XOR, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow },
-+ {"xorhi", "t,s,u", "t,s,u,E", 3, OP_MATCH_XORHI, OP_MASK_IOP, 0, unsigned_immed16_overflow },
-+ {"xori", "t,s,u", "t,s,u,E", 3, OP_MATCH_XORI, OP_MASK_IOP, NIOS2_INSN_XORI, unsigned_immed16_overflow }
-+};
-+/* *INDENT-ON* */
-+
-+#define NIOS2_NUM_OPCODES \
-+ ((sizeof nios2_builtin_opcodes) / (sizeof (nios2_builtin_opcodes[0])))
-+const int bfd_nios2_num_builtin_opcodes = NIOS2_NUM_OPCODES;
-+
-+/* const removed from the following to allow for dynamic extensions to the
-+ * built-in instruction set. */
-+struct nios2_opcode *nios2_opcodes =
-+ (struct nios2_opcode *) nios2_builtin_opcodes;
-+int bfd_nios2_num_opcodes = NIOS2_NUM_OPCODES;
-+#undef NIOS2_NUM_OPCODES
diff --git a/misc/buildroot/toolchain/binutils/2.16.1/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.16.1/300-001_ld_makefile_patch.patch
deleted file mode 100644
index b25d5b7e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.1/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am binutils-2.14.90.0.6/ld/Makefile.am
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.am 2003-09-10 23:12:09.000000000 +0100
-@@ -19,7 +19,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in binutils-2.14.90.0.6/ld/Makefile.in
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.in 2003-09-10 23:12:09.000000000 +0100
-@@ -128,7 +128,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/misc/buildroot/toolchain/binutils/2.16.1/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.16.1/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.1/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.16.1/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.16.1/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.1/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.16.1/sh-flags-off-by-one.patch b/misc/buildroot/toolchain/binutils/2.16.1/sh-flags-off-by-one.patch
deleted file mode 100644
index 19a2f54ca..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.1/sh-flags-off-by-one.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-2005-08-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-
- * elf32-sh.c (sh_elf_get_flags_from_mach): Fix off-by-one error.
-
-Index: bfd/elf32-sh.c
-===================================================================
-RCS file: /cvs/src/src/bfd/elf32-sh.c,v
-retrieving revision 1.128
-retrieving revision 1.129
-diff -u -p -r1.128 -r1.129
---- binutils/bfd/elf32-sh.c 25 Aug 2005 02:32:10 -0000 1.128
-+++ binutils/bfd/elf32-sh.c 25 Aug 2005 05:10:22 -0000 1.129
-@@ -6655,7 +6655,7 @@ sh_elf_set_mach_from_flags (bfd *abfd)
- int
- sh_elf_get_flags_from_mach (unsigned long mach)
- {
-- int i = ARRAY_SIZE (sh_ef_bfd_table);
-+ int i = ARRAY_SIZE (sh_ef_bfd_table) - 1;
-
- for (; i>0; i--)
- if (sh_ef_bfd_table[i] == mach)
diff --git a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-001_ld_makefile_patch.patch
deleted file mode 100644
index b25d5b7e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am binutils-2.14.90.0.6/ld/Makefile.am
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.am 2003-09-10 23:12:09.000000000 +0100
-@@ -19,7 +19,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in binutils-2.14.90.0.6/ld/Makefile.in
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in 2003-08-21 16:28:48.000000000 +0100
-+++ binutils-2.14.90.0.6/ld/Makefile.in 2003-09-10 23:12:09.000000000 +0100
-@@ -128,7 +128,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.90.0.3/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.16.90.0.3/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.16.90.0.3/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.90.0.3/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.16.90.0.3/sh-flags-off-by-one.patch b/misc/buildroot/toolchain/binutils/2.16.90.0.3/sh-flags-off-by-one.patch
deleted file mode 100644
index 19a2f54ca..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.90.0.3/sh-flags-off-by-one.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-2005-08-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-
- * elf32-sh.c (sh_elf_get_flags_from_mach): Fix off-by-one error.
-
-Index: bfd/elf32-sh.c
-===================================================================
-RCS file: /cvs/src/src/bfd/elf32-sh.c,v
-retrieving revision 1.128
-retrieving revision 1.129
-diff -u -p -r1.128 -r1.129
---- binutils/bfd/elf32-sh.c 25 Aug 2005 02:32:10 -0000 1.128
-+++ binutils/bfd/elf32-sh.c 25 Aug 2005 05:10:22 -0000 1.129
-@@ -6655,7 +6655,7 @@ sh_elf_set_mach_from_flags (bfd *abfd)
- int
- sh_elf_get_flags_from_mach (unsigned long mach)
- {
-- int i = ARRAY_SIZE (sh_ef_bfd_table);
-+ int i = ARRAY_SIZE (sh_ef_bfd_table) - 1;
-
- for (; i>0; i--)
- if (sh_ef_bfd_table[i] == mach)
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.5/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.5/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.5/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.5/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.6/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.6/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.6/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.6/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.7/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.7/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.7/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.7/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.16.91.0.7/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.16.91.0.7/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.16.91.0.7/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.10/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.10/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.10/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.10/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.10/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.10/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.10/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-mips-ELF_MAXPAGESIZE-4K.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c718d..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.2/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.3/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.3/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.3/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.3/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.3/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.3/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.3/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.4/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.4/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.4/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.4/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.4/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.4/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.4/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.5/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.5/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.5/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.5/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.5/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.5/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.5/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.6/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.6/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.6/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-006_better_file_error.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-006_better_file_error.patch
deleted file mode 100644
index f337611ed..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.6/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.6/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.6/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.6/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.7/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.7/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.7/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.7/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.7/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.7/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.7/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.8/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.8/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.8/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.8/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.8/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.8/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.9/110-arm-eabi-conf.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.9/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb10..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.9/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61e2..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a90..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/misc/buildroot/toolchain/binutils/2.17.50.0.9/400-makeinfo-version-check.patch b/misc/buildroot/toolchain/binutils/2.17.50.0.9/400-makeinfo-version-check.patch
deleted file mode 100644
index 8445b608a..000000000
--- a/misc/buildroot/toolchain/binutils/2.17.50.0.9/400-makeinfo-version-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up binutils-2.17/configure~ binutils-2.17/configure
---- binutils-2.17/configure~ 2007-12-02 16:56:59.000000000 +0100
-+++ binutils-2.17/configure 2007-12-02 16:56:59.000000000 +0100
-@@ -3637,7 +3637,7 @@ case " $build_configdirs " in
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-3][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/nuttx/arch/c5471/include/arch.h b/nuttx/arch/c5471/include/arch.h
deleted file mode 100644
index a64ecb5e9..000000000
--- a/nuttx/arch/c5471/include/arch.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/************************************************************
- * arch/arch.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/arch.h
- */
-
-#ifndef __ARCH_ARCH_H
-#define __ARCH_ARCH_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ARCH_ARCH_H */
-
diff --git a/nuttx/arch/c5471/include/c5471/irq.h b/nuttx/arch/c5471/include/c5471/irq.h
deleted file mode 100644
index ee1c6ebd4..000000000
--- a/nuttx/arch/c5471/include/c5471/irq.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/************************************************************
- * arch/c5471/irq.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/irq.h
- */
-
-#ifndef __ARCH_C5471_IRQ_H
-#define __ARCH_C5471_IRQ_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* C5471 Interrupts */
-
-#define C5471_IRQ_TIMER0 0
-#define C5471_IRQ_TIMER1 1
-#define C5471_IRQ_TIMER2 2
-#define C5471_IRQ_GPIO0 3
-#define C5471_IRQ_ETHER 4
-#define C5471_IRQ_KBGPIO_0_7 5
-#define C5471_IRQ_UART 6
-#define C5471_IRQ_UART_IRDA 7
-#define C5471_IRQ_KBGPIO_8_15 8
-#define C5471_IRQ_GPIO3 9
-#define C5471_IRQ_GPIO2 10
-#define C5471_IRQ_I2C 11
-#define C5471_IRQ_GPIO1 12
-#define C5471_IRQ_SPI 13
-#define C5471_IRQ_GPIO_4_19 14
-#define C5471_IRQ_API 15
-
-#define C5471_IRQ_WATCHDOG C5471_IRQ_TIMER0
-#define C5471_IRQ_SYSTIMER C5471_IRQ_TIMER2
-#define NR_IRQS (C5471_IRQ_API+1)
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#endif /* __ARCH_C5471_IRQ_H */
-
diff --git a/nuttx/arch/c5471/include/irq.h b/nuttx/arch/c5471/include/irq.h
deleted file mode 100644
index c838ad402..000000000
--- a/nuttx/arch/c5471/include/irq.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/************************************************************
- * arch/irq.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/irq.h
- */
-
-#ifndef __ARCH_IRQ_H
-#define __ARCH_IRQ_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <arch/chip/irq.h>
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* IRQ Stack Frame Format:
- *
- * Context is always saved/restored in the same way:
- *
- * (1) stmia rx, {r0-r14}
- * (2) then the PC and CPSR
- *
- * This results in the following set of indices that
- * can be used to access individual registers in the
- * xcp.regs array:
- */
-
-#define REG_R0 (0)
-#define REG_R1 (1)
-#define REG_R2 (2)
-#define REG_R3 (3)
-#define REG_R4 (4)
-#define REG_R5 (5)
-#define REG_R6 (6)
-#define REG_R7 (7)
-#define REG_R8 (8)
-#define REG_R9 (9)
-#define REG_R10 (10)
-#define REG_R11 (11)
-#define REG_R12 (12)
-#define REG_R13 (13)
-#define REG_R14 (14)
-#define REG_R15 (15)
-#define REG_CPSR (16)
-
-#define XCPTCONTEXT_REGS (17)
-#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS)
-
-#define REG_A1 REG_R0
-#define REG_A2 REG_R1
-#define REG_A3 REG_R2
-#define REG_A4 REG_R3
-#define REG_V1 REG_R4
-#define REG_V2 REG_R5
-#define REG_V3 REG_R6
-#define REG_V4 REG_R7
-#define REG_V5 REG_R8
-#define REG_V6 REG_R9
-#define REG_V7 REG_R10
-#define REG_SB REG_R9
-#define REG_SL REG_R10
-#define REG_FP REG_R11
-#define REG_IP REG_R12
-#define REG_SP REG_R13
-#define REG_LR REG_R14
-#define REG_PC REG_R15
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/* This struct defines the way the registers are stored. We
- * need to save:
- *
- * 1 CPSR
- * 7 Static registers, v1-v7 (aka r4-r10)
- * 1 Frame pointer, fp (aka r11)
- * 1 Stack pointer, sp (aka r13)
- * 1 Return address, lr (aka r14)
- * ---
- * 11 (XCPTCONTEXT_USER_REG)
- *
- * On interrupts, we also need to save:
- * 4 Volatile registers, a1-a4 (aka r0-r3)
- * 1 Scratch Register, ip (aka r12)
- *---
- * 5 (XCPTCONTEXT_IRQ_REGS)
- *
- * For a total of 17 (XCPTCONTEXT_REGS)
- */
-
-#ifndef __ASSEMBLY__
-struct xcptcontext
-{
- /* The following function pointer is non-zero if there
- * are pending signals to be processed.
- */
-
- void *sigdeliver; /* Actual type is sig_deliver_t */
-
- /* These are saved copies of LR and CPSR used during
- * signal processing.
- */
-
- uint32 saved_pc;
- uint32 saved_cpsr;
-
- /* Register save area */
-
- uint32 regs[XCPTCONTEXT_REGS];
-};
-#endif
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* Save the current interrupt enable state & disable IRQs */
-
-static inline irqstate_t irqsave(void)
-{
- unsigned int flags;
- unsigned int temp;
- __asm__ __volatile__
- (
- "\tmrs %0, cpsr\n"
- "\torr %1, %0, #128\n"
- "\tmsr cpsr_c, %1"
- : "=r" (flags), "=r" (temp)
- :
- : "memory");
- return flags;
-}
-
-/* Restore saved IRQ & FIQ state */
-
-static inline void irqrestore(irqstate_t flags)
-{
- __asm__ __volatile__
- (
- "msr cpsr_c, %0"
- :
- : "r" (flags)
- : "memory");
-}
-
-static inline void system_call(swint_t func, int parm1,
- int parm2, int parm3)
-{
- __asm__ __volatile__
- (
- "mov\tr0,%0\n\t"
- "mov\tr1,%1\n\t"
- "mov\tr2,%2\n\t"
- "mov\tr3,%3\n\t"
- "swi\t0x900001\n\t"
- :
- : "r" ((long)(func)), "r" ((long)(parm1)),
- "r" ((long)(parm2)), "r" ((long)(parm3))
- : "r0", "r1", "r2", "r3", "lr");
-}
-#endif
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#endif /* __ARCH_IRQ_H */
-
diff --git a/nuttx/arch/c5471/include/limits.h b/nuttx/arch/c5471/include/limits.h
deleted file mode 100644
index a692c9c36..000000000
--- a/nuttx/arch/c5471/include/limits.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/************************************************************
- * limits.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __ARCH_LIMITS_H
-#define __ARCH_LIMITS_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define CHAR_BIT 8
-#define SCHAR_MIN 0x80
-#define SCHAR_MAX 0x7f
-#define UCHAR_MAX 0xff
-
-/* These could be different on machines where char is unsigned */
-
-#define CHAR_MIN SCHAR_MIN
-#define CHAR_MAX SCHAR_MAX
-
-#define SHRT_MIN 0x8000
-#define SHRT_MAX 0x7fff
-#define USHRT_MAX 0xffff
-
-#define INT_MIN 0x80000000
-#define INT_MAX 0x7fffffff
-#define UINT_MAX 0xffffffff
-
-/* These change on 32-bit and 64-bit platforms */
-
-#define LONG_MAX 0x80000000
-#define LONG_MIN 0x7fffffff
-#define ULONG_MAX 0xffffffff
-
-#define LLONG_MAX 0x8000000000000000
-#define LLONG_MIN 0x7fffffffffffffff
-#define ULLONG_MAX 0xffffffffffffffff
-
-#endif /* __ARCH_LIMITS_H */
diff --git a/nuttx/arch/c5471/include/serial.h b/nuttx/arch/c5471/include/serial.h
deleted file mode 100644
index 1439300b0..000000000
--- a/nuttx/arch/c5471/include/serial.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/************************************************************
- * arch/serial.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __ARCH_SERIAL_H
-#define __ARCH_SERIAL_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* IOCTL commands supported by the ARM serial driver */
-
-#define TIOCSBRK 0x5401 /* BSD compatibility */
-#define TIOCCBRK 0x5402 /* " " " " */
-#define TIOCSERGSTRUCT 0x5403 /* Get up_dev_t for port */
-
-/************************************************************
- * Public Data
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-#endif /* __ARCH_SERIAL_H */
diff --git a/nuttx/arch/c5471/include/types.h b/nuttx/arch/c5471/include/types.h
deleted file mode 100644
index 760790327..000000000
--- a/nuttx/arch/c5471/include/types.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/************************************************************
- * arch/types.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through sys/types.h
- */
-
-#ifndef __ARCH_TYPES_H
-#define __ARCH_TYPES_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Type Declarations
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* These are the sizes of the standard GNU types */
-
-typedef char sbyte;
-typedef unsigned char ubyte;
-typedef unsigned char uint8;
-typedef unsigned char boolean;
-typedef short sint16;
-typedef unsigned short uint16;
-typedef int sint32;
-typedef unsigned int uint32;
-typedef long long sint64;
-typedef unsigned long long uint64;
-
-/* This is the size of the interrupt state save returned by
- * irqsave()
- */
-
-typedef unsigned int irqstate_t;
-
-#endif /* __ASSEMBLY__ */
-
-/************************************************************
- * Global Function Prototypes
- ************************************************************/
-
-#endif /* __ARCH_TYPES_H */
diff --git a/nuttx/arch/c5471/include/watchdog.h b/nuttx/arch/c5471/include/watchdog.h
deleted file mode 100644
index dcf5e8f67..000000000
--- a/nuttx/arch/c5471/include/watchdog.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/************************************************************
- * watchdog.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __ARCH_WATCHDOG_H
-#define __ARCH_WATCHDOG_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* IOCTL commands supported by the C5471 watchdog driver */
-
-#define WDIOC_KEEPALIVE 0x5701 /* Restart the watchdog timer */
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-#endif /* __ARCH_WATCHDOG_H */
diff --git a/nuttx/arch/c5471/src/Makefile b/nuttx/arch/c5471/src/Makefile
deleted file mode 100644
index 1e7933b8f..000000000
--- a/nuttx/arch/c5471/src/Makefile
+++ /dev/null
@@ -1,125 +0,0 @@
-############################################################################
-# arch/c5471/src/Makefile
-#
-# Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-# 3. Neither the name NuttX nor the names of its contributors may be
-# used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-############################################################################
-
--include $(TOPDIR)/Make.defs
-
-CFLAGS += -I$(TOPDIR)/sched
-
-ASRCS = up_vectors.S up_saveusercontext.S up_fullcontextrestore.S
-ifeq ($(CONFIG_DEBUG),y)
-ASRCS += up_lowputc.S
-endif
-AOBJS = $(ASRCS:.S=.o)
-
-CSRCS = up_initialize.c up_initialstate.c up_idle.c up_doirq.c \
- up_irq.c up_syscall.c up_dataabort.c up_prefetchabort.c \
- up_undefinedinsn.c up_interruptcontext.c up_timerisr.c \
- up_createstack.c up_usestack.c up_releasestack.c \
- up_exit.c up_assert.c up_blocktask.c up_unblocktask.c \
- up_releasepending.c up_reprioritizertr.c up_copystate.c \
- up_schedulesigaction.c up_sigdeliver.c up_serial.c \
- up_delay.c up_allocateheap.c up_watchdog.c
-COBJS = $(CSRCS:.c=.o)
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-LDFLAGS = $(ARCHSCRIPT)
-EXTRA_LIBS =
-
-LINKOBJS = up_head$(OBJEXT)
-LINKLIBS =
-LDPATHES = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
-LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
-
-BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
-
-LIBGCC = ${shell $(CC) -print-libgcc-file-name}
-
-all: up_head.o libarch$(LIBEXT)
-
-$(AOBJS) $(LINKOBJS): %.o: %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %.o: %.c
- $(call COMPILE, $<, $@)
-
-libarch$(LIBEXT): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-board/libboard$(LIBEXT):
- $(MAKE) -C board TOPDIR=$(TOPDIR) libboard$(LIBEXT)
-
-nuttx: $(LINKOBJS) board/libboard$(LIBEXT)
- $(LD) --entry=__start $(LDFLAGS) $(LDPATHES) -L$(BOARDDIR) -o $(TOPDIR)/$@ $(LINKOBJS) \
- --start-group $(LDLIBS) -lboard --end-group $(EXTRA_LIBS) $(LIBGCC)
- @$(NM) $(TOPDIR)/$@ | \
- grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
- sort > $(TOPDIR)/System.map
- @export vflashstart=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _vflashstart | cut -d' ' -f1`; \
- if [ ! -z "$$vflashstart" ]; then \
- $(OBJCOPY) --adjust-section-vma=.vector=0x$$vflashstart $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage; \
- mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@; \
- fi
-ifeq ($(CONFIG_RRLOAD_BINARY),y)
- @$(TOPDIR)/tools/mkimage.sh --Prefix $(CROSSDEV) $(TOPDIR)/$@ $(TOPDIR)/$@.rr
- @if [ -w /tftpboot ] ; then \
- cp -f $(TOPDIR)/$@.rr /tftpboot/$@.rr.${CONFIG_ARCH}; \
- fi
-endif
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @$(MAKE) -C board TOPDIR=$(TOPDIR) depend
- @touch $@
-
-depend: .depend
-
-clean:
- @if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
- fi
- @rm -f libarch$(LIBEXT) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) distclean ; \
- fi
- rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/arch/c5471/src/c5471.h b/nuttx/arch/c5471/src/c5471.h
deleted file mode 100644
index 9c085d7d7..000000000
--- a/nuttx/arch/c5471/src/c5471.h
+++ /dev/null
@@ -1,379 +0,0 @@
-/************************************************************
- * c5471.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __C5471_H
-#define __C5471_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-#if defined(CONFIG_ARCH_BOARD_C5471EVM)
-# include <arch/board/c5471evm.h>
-#else
-# warning "Undefined C5471 Board"
-#endif
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Arm7Tdmi *************************************************/
-
-/* CPSR bits */
-
-#define USR26_MODE 0x00
-#define FIQ26_MODE 0x01
-#define IRQ26_MODE 0x02
-#define SVC26_MODE 0x03
-#define USR_MODE 0x10
-#define FIQ_MODE 0x11
-#define IRQ_MODE 0x12
-#define SVC_MODE 0x13
-#define ABT_MODE 0x17
-#define UND_MODE 0x1b
-#define SYSTEM_MODE 0x1f
-#define MODE_MASK 0x1f
-#define T_BIT 0x20
-#define F_BIT 0x40
-#define I_BIT 0x80
-#define CC_V_BIT (1 << 28)
-#define CC_C_BIT (1 << 29)
-#define CC_Z_BIT (1 << 30)
-#define CC_N_BIT (1 << 31)
-
-/* UARTs ****************************************************/
-
-#define UART_IRDA_BASE 0xffff0800
-#define UART_MODEM_BASE 0xffff1000
-#define UARTn_IO_RANGE 0x00000800
-
-/* Common UART Registers. Expressed as offsets from the BASE address */
-
-#define UART_RHR_OFFS 0x00000000 /* Rcv Holding Register */
-#define UART_THR_OFFS 0x00000004 /* Xmit Holding Register */
-#define UART_FCR_OFFS 0x00000008 /* FIFO Control Register */
-#define UART_RFCR_OFFS 0x00000008 /* Rcv FIFO Control Register */
-#define UART_TFCR_OFFS 0x00000008 /* Xmit FIFO Control Register */
-#define UART_SCR_OFFS 0x0000000c /* Status Control Register */
-#define UART_LCR_OFFS 0x00000010 /* Line Control Register */
-#define UART_LSR_OFFS 0x00000014 /* Line Status Register */
-#define UART_SSR_OFFS 0x00000018 /* Supplementary Status Register */
-#define UART_MCR_OFFS 0x0000001c /* Modem Control Register */
-#define UART_MSR_OFFS 0x00000020 /* Modem Status Register */
-#define UART_IER_OFFS 0x00000024 /* Interrupt Enable Register */
-#define UART_ISR_OFFS 0x00000028 /* Interrupt Status Register */
-#define UART_EFR_OFFS 0x0000002c /* Enhanced Feature Register */
-#define UART_XON1_OFFS 0x00000030 /* XON1 Character Register */
-#define UART_XON2_OFFS 0x00000034 /* XON2 Character Register */
-#define UART_XOFF1_OFFS 0x00000038 /* XOFF1 Character Register */
-#define UART_XOFF2_OFFS 0x0000003c /* XOFF2 Character Register */
-#define UART_SPR_OFFS 0x00000040 /* Scratch-pad Register */
-#define UART_DIV_115K_OFFS 0x00000044 /* Divisor for baud generation */
-#define UART_DIV_BIT_RATE_OFFS 0x00000048 /* For baud rate generation */
-#define UART_TCR_OFFS 0x0000004c /* Transmission Control Register */
-#define UART_TLR_OFFS 0x00000050 /* Trigger Level Register */
-#define UART_MDR_OFFS 0x00000054 /* Mode Definition Register */
-
-/* Registers available only for the IrDA UART (absolute address). */
-
-#define UART_IRDA_MDR1 0xffff0854 /* Mode Definition Register 1 */
-#define UART_IRDA_MDR2 0xffff0858 /* Mode Definition Register 2 */
-#define UART_IRDA_TXFLL 0xffff085c /* LS Xmit Frame Length Register */
-#define UART_IRDA_TXFLH 0xffff0860 /* MS Xmit Frame Length Register */
-#define UART_IRDA_RXFLL 0xffff0864 /* LS Rcvd Frame Length Register */
-#define UART_IRDA_RXFLH 0xffff0868 /* MS Rcvd Frame Length Register */
-#define UART_IRDA_SFLSR 0xffff086c /* Status FIFO Line Status Reg */
-#define UART_IRDA_SFREGL 0xffff0870 /* LS Status FIFO Register */
-#define UART_IRDA_SFREGH 0xffff0874 /* MS Status FIFO Register */
-#define UART_IRDA_BLR 0xffff0878 /* Begin of File Length Register */
-#define UART_IRDA_PULSE_WIDTH 0xffff087c /* Pulse Width Register */
-#define UART_IRDA_ACREG 0xffff0880 /* Auxiliary Control Register */
-#define UART_IRDA_PULSE_START 0xffff0884 /* Start time of pulse */
-#define UART_IRDA_RX_W_PTR 0xffff0888 /* RX FIFO write pointer */
-#define UART_IRDA_RX_R_PTR 0xffff088c /* RX FIFO read pointer */
-#define UART_IRDA_TX_W_PTR 0xffff0890 /* TX FIFO write pointer */
-#define UART_IRDA_TX_R_PTR 0xffff0894 /* TX FIFO read pointer */
-#define UART_IRDA_STATUS_W_PTR 0xffff0898 /* Write pointer of status FIFO */
-#define UART_IRDA_STATUS_R_PTR 0xffff089c /* Read pointer of status FIFO */
-#define UART_IRDA_RESUME 0xffff08a0 /* Resume register */
-#define UART_IRDA_MUX 0xffff08a4 /* Selects UART_IRDA output mux */
-
-/* Registers available for the Modem UART (absolute addresses) */
-
-#define UART_MODEM_MDR 0xffff1054 /* Mode Definition Register */
-#define UART_MODEM_UASR 0xffff1058 /* UART Auto-baud Status Register */
-#define UART_MODEM_RDPTR_URX 0xffff105c /* RX FIFO Read Pointer Register */
-#define UART_MODEM_WRPTR_URX 0xffff1060 /* RX FIFO Write Pointer Register */
-#define UART_MODEM_RDPTR_UTX 0xffff1064 /* TX FIFO Read Pointer Register */
-#define UART_MODEM_WRPTR_UTX 0xffff1068 /* TX FIFO Write Pointer Register */
-
-/* UART Settings ********************************************/
-
-/* Miscellaneous UART settings. */
-
-#define UART_RX_FIFO_NOEMPTY 0x00000001
-#define UART_SSR_TXFULL 0x00000001
-#define UART_LSR_TREF 0x00000020
-
-#define UART_XMIT_FIFO_SIZE 64
-#define UART_IRDA_XMIT_FIFO_SIZE 64
-
-/* UART_LCR Register */
- /* Bits 31-7: Reserved */
-#define UART_LCR_BOC 0x00000040 /* Bit 6: Break Control */
- /* Bit 5: Parity Type 2 */
-#define UART_LCR_PAREVEN 0x00000010 /* Bit 4: Parity Type 1 */
-#define UART_LCR_PARODD 0x00000000
-#define UART_LCR_PAREN 0x00000008 /* Bit 3: Paity Enable */
-#define UART_LCR_PARDIS 0x00000000
-#define UART_LCR_2STOP 0x00000004 /* Bit 2: Number of stop bits */
-#define UART_LCR_1STOP 0x00000000
-#define UART_LCR_5BITS 0x00000000 /* Bits 0-1: Word-length */
-#define UART_LCR_6BITS 0x00000001
-#define UART_LCR_7BITS 0x00000002
-#define UART_LCR_8BITS 0x00000003
-
-#define UART_FCR_FTL 0x00000000
-#define UART_FCR_FIFO_EN 0x00000001
-#define UART_FCR_TX_CLR 0x00000002
-#define UART_FCR_RX_CLR 0x00000004
-
-#define UART_IER_RECVINT 0x00000001
-#define UART_IER_XMITINT 0x00000002
-#define UART_IER_LINESTSINT 0x00000004
-#define UART_IER_MODEMSTSINT 0x00000008 /* IrDA UART only */
-#define UART_IER_XOFFINT 0x00000020
-#define UART_IER_RTSINT 0x00000040 /* IrDA UART only */
-#define UART_IER_CTSINT 0x00000080 /* IrDA UART only */
-#define UART_IER_INTMASK 0x000000ff
-
-#define BAUD_115200 0x00000001
-#define BAUD_57600 0x00000002
-#define BAUD_38400 0x00000003
-#define BAUD_19200 0x00000006
-#define BAUD_9600 0x0000000C
-#define BAUD_4800 0x00000018
-#define BAUD_2400 0x00000030
-#define BAUD_1200 0x00000060
-
-#define MDR_UART_MODE 0x00000000 /* Both IrDA and Modem UARTs */
-#define MDR_SIR_MODE 0x00000001 /* IrDA UART only */
-#define MDR_AUTOBAUDING_MODE 0x00000002 /* Modem UART only */
-#define MDR_RESET_MODE 0x00000007 /* Both IrDA and Modem UARTs */
-
-/* SPI ******************************************************/
-
-#define MAX_SPI 3
-
-#define SPI_REGISTER_BASE 0xffff2000
-
-/* GIO ******************************************************/
-
-#define MAX_GIO (35)
-
-#define GIO_REGISTER_BASE 0xffff2800
-
-#define GPIO_IO 0xffff2800 /* Writeable when I/O is configured
- * as an output; reads value on I/O
- * pin when I/O is configured as an
- * input */
-#define GPIO_CIO 0xffff2804 /* GPIO configuration register */
-#define GPIO_IRQA 0xffff2808 /* In conjunction with GPIO_IRQB
- * determines the behavior when GPIO
- * pins configured as input IRQ */
-#define GPIO_IRQB 0xffff280c /* Determines the behavior when GPIO
- * pins configured as input IRQ */
-#define GPIO_DDIO 0xffff2810 /* Delta Detect Register
- * (detects changes in the I/O pins) */
-#define GPIO_EN 0xffff2814 /* Selects register for muxed GPIOs */
-
-#define KGIO_REGISTER_BASE 0xffff2900
-
-#define KBGPIO_IO 0xffff2900 /* Keyboard I/O bits: Writeable
- * when KBGPIO is configured as an
- * output; reads value on I/O pin
- * when KBGPIO is configured as an
- * input */
-#define KBGPIO_CIO 0xffff2904 /* KBGPIO configuration register */
-#define KBGPIO_IRQA 0xffff2908 /* In conjunction with KBGPIO_IRQB
- * determines the behavior when
- * KBGPIO pins configured as input
- * IRQ */
-#define KBGPIO_IRQB 0xffff290c /* In conjunction with KBGPIO_IRQA
- * determines the behavior when
- * KBGPIO pins configured as input
- * IRQ */
-#define KBGPIO_DDIO 0xffff2910 /* Delta Detect Register (detects
- * changes in the KBGPIO pins) */
-#define KBGPIO_EN 0xffff2914 /* Selects register for muxed
- * KBGPIOs */
-
-/* Timers ***************************************************/
-
-#define C5471_TIMER0_CTRL 0xffff2a00
-#define C5471_TIMER0_CNT 0xffff2a04
-#define C5471_TIMER1_CTRL 0xffff2b00
-#define C5471_TIMER1_CNT 0xffff2b04
-#define C5471_TIMER2_CTRL 0xffff2c00
-
-#define C5471_TIMER2_CNT 0xffff2c04
-
-/* Interrupts */
-
-#define HAVE_SRC_IRQ_BIN_REG 0
-
-#define INT_FIRST_IO 0xffff2d00
-#define INT_IO_RANGE 0x5C
-
-#define IT_REG 0xffff2d00
-#define MASK_IT_REG 0xffff2d04
-#define SRC_IRQ_REG 0xffff2d08
-#define SRC_FIQ_REG 0xffff2d0c
-#define SRC_IRQ_BIN_REG 0xffff2d10
-#define INT_CTRL_REG 0xffff2d18
-
-#define ILR_IRQ0_REG 0xffff2d1C /* 0-Timer 0 */
-#define ILR_IRQ1_REG 0xffff2d20 /* 1-Timer 1 */
-#define ILR_IRQ2_REG 0xffff2d24 /* 2-Timer 2 */
-#define ILR_IRQ3_REG 0xffff2d28 /* 3-GPIO0 */
-#define ILR_IRQ4_REG 0xffff2d2c /* 4-Ethernet */
-#define ILR_IRQ5_REG 0xffff2d30 /* 5-KBGPIO[7:0] */
-#define ILR_IRQ6_REG 0xffff2d34 /* 6-Uart serial */
-#define ILR_IRQ7_REG 0xffff2d38 /* 7-Uart IRDA */
-#define ILR_IRQ8_REG 0xffff2d3c /* 8-KBGPIO[15:8] */
-#define ILR_IRQ9_REG 0xffff2d40 /* 9-GPIO3 */
-#define ILR_IRQ10_REG 0xffff2d44 /* 10-GPIO2 */
-#define ILR_IRQ11_REG 0xffff2d48 /* 11-I2C */
-#define ILR_IRQ12_REG 0xffff2d4c /* 12-GPIO1 */
-#define ILR_IRQ13_REG 0xffff2d50 /* 13-SPI */
-#define ILR_IRQ14_REG 0xffff2d54 /* 14-GPIO[19:4] */
-#define ILR_IRQ15_REG 0xffff2d58 /* 15-API */
-
-/* I2C ******************************************************/
-
-#define MAX_I2C 1
-
-/* API ******************************************************/
-
-#define DSPRAM_BASE 0xffe00000 /* DSPRAM base address */
-#define DSPRAM_END 0xffe03fff
-
-/* This is the API address range in the DSP address space. */
-
-#define DSPMEM_DSP_START 0x2000
-#define DSPMEM_DSP_END 0x3fff
-
-/* This is the API address range in the ARM address space. */
-
-#define DSPMEM_ARM_START DSPRAM_BASE /* Defined in hardware.h */
-#define DSPMEM_ARM_END DSPRAM_END
-
-/* DSPMEM_IN_RANGE is a generic macro to test is a value is within
- * a range of values.
- */
-
-#define DSPMEM_IN_RANGE(addr, start, end) \
- ((((__u32)(addr)) >= (start)) && (((__u32)(addr)) <= (end)))
-
-/* DSPMEM_ADDR_ALIGNED verifies that a potential DSP address is
- * properly word aligned.
- */
-
-#define DSPMEM_ADDR_ALIGNED(addr, cpu) ((((__u32)(addr)) & 1) == 0)
-
-/* DSPMEM_DSP_ADDR checks if a DSP address lies in within the
- * DSP's API address range.
- */
-
-#define DSPMEM_DSP_ADDR(addr, cpu) \
- DSPMEM_IN_RANGE(addr, DSPMEM_DSP_START, DSPMEM_DSP_END)
-
-/* DSPMEM_ARM_ADDR checks if a ARM address lies in within the
- * ARM's API address range.
- */
-
-#define DSPMEM_ARM_ADDR(addr) \
- DSPMEM_IN_RANGE(addr, DSPMEM_ARM_START, DSPMEM_ARM_END)
-
-/* DSPMEM_DSP_TO_ARM maps a DSP API address into an ARM API address */
-
-#define DSPMEM_DSP_TO_ARM(addr, cpu) \
- ((((__u32)(addr) - DSPMEM_DSP_START) << 1) + DSPMEM_ARM_START)
-
-/* DSPMEM_ARM_TO_DSP maps an ARM API address into a DSP API address */
-
-#define DSPMEM_ARM_TO_DSP(addr) \
- ((((__u32)(addr) - DSPMEM_ARM_START) >> 1) + DSPMEM_DSP_START)
-
-/************************************************************
- * Inline Functions
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-# define getreg8(a) (*(volatile ubyte *)(a))
-# define putreg8(v,a) (*(volatile ubyte *)(a) = (v))
-# define getreg32(a) (*(volatile uint32 *)(a))
-# define putreg32(v,a) (*(volatile uint32 *)(a) = (v))
-
-
-/* Some compiler options will convert short loads and stores into byte loads
- * and stores. We don't want this to happen for IO reads and writes!
- */
-
-/* # define getreg16(a) (*(volatile uint16 *)(a)) */
-static inline unsigned short getreg16(unsigned int addr)
-{
- unsigned short retval;
- __asm__ __volatile__("\tldrh %0, [%1]\n\t" : "=r"(retval) : "r"(addr));
- return retval;
-}
-
-/* define putreg16(v,a) (*(volatile uint16 *)(a) = (v)) */
-static inline void putreg16(uint16 val, unsigned int addr)
-{
- __asm__ __volatile__("\tstrh %0, [%1]\n\t": : "r"(val), "r"(addr));
-}
-
-#endif
-
-#endif /* __C5471_H */
diff --git a/nuttx/arch/c5471/src/up_allocateheap.c b/nuttx/arch/c5471/src/up_allocateheap.c
deleted file mode 100644
index 3ee7a6820..000000000
--- a/nuttx/arch/c5471/src/up_allocateheap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/************************************************************
- * up_allocateheap.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_allocate_heap
- *
- * Description:
- * The heap may be statically allocated by
- * defining CONFIG_HEAP_BASE and CONFIG_HEAP_SIZE. If these
- * are not defined, then this function will be called to
- * dynamically set aside the heap region.
- *
- ************************************************************/
-
-void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
-{
- up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
-}
diff --git a/nuttx/arch/c5471/src/up_assert.c b/nuttx/arch/c5471/src/up_assert.c
deleted file mode 100644
index 0dad02f89..000000000
--- a/nuttx/arch/c5471/src/up_assert.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/************************************************************
- * up_assert.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_getsp
- ************************************************************/
-
-/* I don't know if the builtin to get SP is enabled */
-
-static inline uint32 up_getsp(void)
-{
- uint32 sp;
- __asm__
- (
- "\tmov %0, sp\n\t"
- : "=r"(sp)
- );
- return sp;
-}
-
-/************************************************************
- * Name: up_stackdump
- ************************************************************/
-
-#ifdef CONFIG_ARCH_STACKDUMP
-static void up_stackdump(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- uint32 sp = up_getsp();
- uint32 stack_base;
- uint32 stack_size;
-
- if (rtcb->pid == 0)
- {
- stack_base = g_heapbase - 4;
- stack_size = CONFIG_PROC_STACK_SIZE;
- }
- else
- {
- stack_base = (uint32)rtcb->adj_stack_ptr;
- stack_size = (uint32)rtcb->adj_stack_size;
- }
-
- lldbg("stack_base: %08x\n", stack_base);
- lldbg("stack_size: %08x\n", stack_size);
- lldbg("sp: %08x\n", sp);
-
- if (sp >= stack_base || sp < stack_base - stack_size)
- {
- lldbg("ERROR: Stack pointer is not within allocated stack\n");
- return;
- }
- else
- {
- uint32 stack = sp & ~0x1f;
-
- for (stack = sp & ~0x1f; stack < stack_base; stack += 32)
- {
- uint32 *ptr = (uint32*)stack;
- lldbg("%08x: %08x %08x %08x %08x %08x %08x %08x %08x\n",
- stack, ptr[0], ptr[1], ptr[2], ptr[3],
- ptr[4], ptr[5], ptr[6], ptr[7]);
- }
- }
-}
-#else
-# define up_stackdump()
-#endif
-
-/************************************************************
- * Name: _up_assert
- ************************************************************/
-
-static void _up_assert(int errorcode) /* __attribute__ ((noreturn)) */
-{
- /* Are we in an interrupt handler or the idle task? */
-
- if (current_regs || ((_TCB*)g_readytorun.head)->pid == 0)
- {
- (void)irqsave();
- for(;;)
- {
-#ifdef CONFIG_ARCH_LEDS
- up_ledon(LED_PANIC);
- up_delay(250);
- up_ledoff(LED_PANIC);
- up_delay(250);
-#endif
- }
- }
- else
- {
- exit(errorcode);
- }
-}
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_assert
- ************************************************************/
-
-void up_assert(const ubyte *filename, int lineno)
-{
-#if CONFIG_TASK_NAME_SIZE > 0
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-#endif
-
- up_ledon(LED_ASSERTION);
-#if CONFIG_TASK_NAME_SIZE > 0
- lldbg("Assertion failed at file:%s line: %d task: %s\n",
- filename, lineno, rtcb->name);
-#else
- lldbg("Assertion failed at file:%s line: %d\n",
- filename, lineno);
-#endif
- up_stackdump();
- _up_assert(EXIT_FAILURE);
-}
-
-/************************************************************
- * Name: up_assert_code
- ************************************************************/
-
-void up_assert_code(const ubyte *filename, int lineno, int errorcode)
-{
-#if CONFIG_TASK_NAME_SIZE > 0
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-#endif
-
- up_ledon(LED_ASSERTION);
-#if CONFIG_TASK_NAME_SIZE > 0
- lldbg("Assertion failed at file:%s line: %d task: %s error code: %d\n",
- filename, lineno, rtcb->name, errorcode);
-#else
- lldbg("Assertion failed at file:%s line: %d error code: %d\n",
- filename, lineno, errorcode);
-#endif
- up_stackdump();
- _up_assert(errorcode);
-}
diff --git a/nuttx/arch/c5471/src/up_blocktask.c b/nuttx/arch/c5471/src/up_blocktask.c
deleted file mode 100644
index ce2f430ff..000000000
--- a/nuttx/arch/c5471/src/up_blocktask.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/************************************************************
- * up_blocktask.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_block_task
- *
- * Description:
- * The currently executing task at the head of
- * the ready to run list must be stopped. Save its context
- * and move it to the inactive list specified by task_state.
- *
- * Inputs:
- * tcb: Refers to a task in the ready-to-run list (normally
- * the task at the the head of the list). It most be
- * stopped, its context saved and moved into one of the
- * waiting task lists. It it was the task at the head
- * of the ready-to-run list, then a context to the new
- * ready to run task must be performed.
- * task_state: Specifies which waiting task list should be
- * hold the blocked task TCB.
- *
- ************************************************************/
-
-void up_block_task(_TCB *tcb, tstate_t task_state)
-{
- /* Verify that the context switch can be performed */
-
- if ((tcb->task_state < FIRST_READY_TO_RUN_STATE) ||
- (tcb->task_state > LAST_READY_TO_RUN_STATE))
- {
- PANIC(OSERR_BADBLOCKSTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- boolean switch_needed;
-
- lldbg("Blocking TCB=%p\n", tcb);
-
- /* Remove the tcb task from the ready-to-run list. If we
- * are blocking the task at the head of the task list (the
- * most likely case), then a context switch to the next
- * ready-to-run task is needed. In this case, it should
- * also be true that rtcb == tcb.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Add the task to the specified blocked task list */
-
- sched_addblocked(tcb, (tstate_t)task_state);
-
- /* If there are any pending tasks, then add them to the g_readytorun
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- switch_needed |= sched_mergepending();
- }
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* Are we in an interrupt handler? */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the user C context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/c5471/src/up_copystate.c b/nuttx/arch/c5471/src/up_copystate.c
deleted file mode 100644
index bd9db8161..000000000
--- a/nuttx/arch/c5471/src/up_copystate.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/************************************************************
- * up_copystate.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_undefinedinsn
- ************************************************************/
-
-/* A little faster than most memcpy's */
-
-void up_copystate(uint32 *dest, uint32 *src)
-{
- int i;
- for (i = 0; i < XCPTCONTEXT_REGS; i++)
- {
- *dest++ = *src++;
- }
-}
-
diff --git a/nuttx/arch/c5471/src/up_createstack.c b/nuttx/arch/c5471/src/up_createstack.c
deleted file mode 100644
index 5af781c51..000000000
--- a/nuttx/arch/c5471/src/up_createstack.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/************************************************************
- * up_createstack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_create_stack
- *
- * Description:
- * Allocate a stack for a new thread and setup
- * up stack-related information in the TCB.
- *
- * The following TCB fields must be initialized:
- * adj_stack_size: Stack size after adjustment for hardware,
- * processor, etc. This value is retained only for debug
- * purposes.
- * stack_alloc_ptr: Pointer to allocated stack
- * adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The
- * initial value of the stack pointer.
- *
- * Inputs:
- * tcb: The TCB of new task
- * stack_size: The requested stack size. At least this much
- * must be allocated.
- ************************************************************/
-
-STATUS up_create_stack(_TCB *tcb, size_t stack_size)
-{
- if (tcb->stack_alloc_ptr &&
- tcb->adj_stack_size != stack_size)
- {
- sched_free(tcb->stack_alloc_ptr);
- tcb->stack_alloc_ptr = NULL;
- }
-
- if (!tcb->stack_alloc_ptr)
- {
- tcb->stack_alloc_ptr = (uint32 *)kzmalloc(stack_size);
- }
-
- if (tcb->stack_alloc_ptr)
- {
- size_t top_of_stack;
- size_t size_of_stack;
-
- /* The Arm7Tdmi uses a push-down stack: the stack grows
- * toward loweraddresses in memory. The stack pointer
- * register, points to the lowest, valid work address
- * (the "top" of the stack). Items on the stack are
- * referenced as positive word offsets from sp.
- */
-
- top_of_stack = (uint32)tcb->stack_alloc_ptr + stack_size - 4;
-
- /* The Arm7Tdmi stack must be aligned at word (4 byte)
- * boundaries. If necessary top_of_stack must be rounded
- * down to the next boundary
- */
-
- top_of_stack &= ~3;
- size_of_stack = top_of_stack - (uint32)tcb->stack_alloc_ptr + 4;
-
- /* Save the adjusted stack values in the _TCB */
-
- tcb->adj_stack_ptr = (uint32*)top_of_stack;
- tcb->adj_stack_size = size_of_stack;
-
- up_ledon(LED_STACKCREATED);
- return OK;
- }
-
- return ERROR;
-}
diff --git a/nuttx/arch/c5471/src/up_dataabort.c b/nuttx/arch/c5471/src/up_dataabort.c
deleted file mode 100644
index ca1ade723..000000000
--- a/nuttx/arch/c5471/src/up_dataabort.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/************************************************************
- * up_dataabort.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_dataabort
- ************************************************************/
-
-void up_dataabort(uint32 *regs)
-{
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/c5471/src/up_delay.c b/nuttx/arch/c5471/src/up_delay.c
deleted file mode 100644
index 373602d53..000000000
--- a/nuttx/arch/c5471/src/up_delay.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/************************************************************
- * up_delay.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <string.h>
-#include <errno.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <nuttx/fs.h>
-#include <arch/serial.h>
-#include "c5471.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define LOOPS_PER_MSEC 1250
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Private Variables
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_delay
- *
- * Description:
- * Delay inline for the requested number of milliseconds.
- * NOT multi-tasking friendly.
- *
- ************************************************************/
-
-void up_delay(int milliseconds)
-{
- volatile int i;
- volatile int j;
-
- for (i = 0; i < milliseconds; i++)
- {
- for (j = 0; j < LOOPS_PER_MSEC; j++)
- {
- }
- }
-}
diff --git a/nuttx/arch/c5471/src/up_doirq.c b/nuttx/arch/c5471/src/up_doirq.c
deleted file mode 100644
index 73d6f8a76..000000000
--- a/nuttx/arch/c5471/src/up_doirq.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/************************************************************
- * up_doirq.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <assert.h>
-#include "c5471.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Public Data
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-void up_doirq(int irq, uint32* regs)
-{
- up_ledon(LED_INIRQ);
-#ifdef CONFIG_SUPPRESS_INTERRUPTS
- PANIC(OSERR_ERREXCEPTION);
-#else
- if ((unsigned)irq < NR_IRQS)
- {
- /* Current regs non-zero indicates that we are processing
- * an interrupt; current_regs is also used to manage
- * interrupt level context switches.
- */
-
- current_regs = regs;
-
- /* Mask and acknowledge the interrupt */
-
- up_maskack_irq(irq);
-
- /* Deliver the IRQ */
-
- irq_dispatch(irq, regs);
-
- /* Indicate that we are no long in an interrupt handler */
-
- current_regs = NULL;
-
- /* Unmask the last interrupt (global interrupts are still
- * disabled.
- */
-
- up_enable_irq(irq);
- }
- up_ledoff(LED_INIRQ);
-#endif
-}
diff --git a/nuttx/arch/c5471/src/up_exit.c b/nuttx/arch/c5471/src/up_exit.c
deleted file mode 100644
index 4d117fce4..000000000
--- a/nuttx/arch/c5471/src/up_exit.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
- * up_exit.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-#ifdef CONFIG_DUMP_ON_EXIT
-#include <nuttx/fs.h>
-#endif
-
-/****************************************************************************
- * Private Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: _up_dumponexit
- *
- * Description:
- * Dump the state of all tasks whenever on task exits. This is debug
- * instrumentation that was added to check file-related reference counting
- * but could be useful again sometime in the future.
- *
- ****************************************************************************/
-
-#if defined(CONFIG_DUMP_ON_EXIT) && defined(CONFIG_DEBUG)
-static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
-{
- int i;
-
- lldbg(" TCB=%p name=%s\n", tcb, tcb->argv[0]);
- if (tcb->filelist)
- {
- lldbg(" filelist refcount=%d\n",
- tcb->filelist->fl_crefs);
-
- for (i = 0; i < CONFIG_NFILE_DESCRIPTORS; i++)
- {
- struct inode *inode = tcb->filelist->fl_files[i].f_inode;
- if (inode)
- {
- lldbg(" fd=%d refcount=%d\n",
- i, inode->i_crefs);
- }
- }
- }
-
- if (tcb->streams)
- {
- lldbg(" streamlist refcount=%d\n",
- tcb->streams->sl_crefs);
-
- for (i = 0; i < CONFIG_NFILE_STREAMS; i++)
- {
- struct file_struct *filep = &tcb->streams->sl_streams[i];
- if (filep->fs_filedes >= 0)
- {
- lldbg(" fd=%d nbytes=%d\n",
- filep->fs_filedes,
- filep->fs_bufpos - filep->fs_bufstart);
- }
- }
- }
-}
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: _exit
- *
- * Description:
- * This function causes the currently executing task to cease
- * to exist. This is a special case of task_delete() where the task to
- * be deleted is the currently executing task. It is more complex because
- * a context switch must be perform to the the next ready to run task.
- *
- ****************************************************************************/
-
-void _exit(int status)
-{
- _TCB* tcb;
-
- /* Disable interrupts. They will be restored when the next
- * task is started.
- */
-
- (void)irqsave();
-
- lldbg("TCB=%p exitting\n", tcb);
-
-#if defined(CONFIG_DUMP_ON_EXIT) && defined(CONFIG_DEBUG)
- lldbg("Other tasks:\n");
- sched_foreach(_up_dumponexit, NULL);
-#endif
-
- /* Destroy the task at the head of the ready to run list. */
-
- (void)task_deletecurrent();
-
- /* Now, perform the context switch to the new ready-to-run task at the
- * head of the list.
- */
-
- tcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", tcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(tcb->xcp.regs);
-}
-
diff --git a/nuttx/arch/c5471/src/up_fullcontextrestore.S b/nuttx/arch/c5471/src/up_fullcontextrestore.S
deleted file mode 100644
index 4d0303ba2..000000000
--- a/nuttx/arch/c5471/src/up_fullcontextrestore.S
+++ /dev/null
@@ -1,117 +0,0 @@
-/**************************************************************************
- * up_fullcontextrestore.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_fullcontextrestore
- **************************************************************************/
-
- .globl up_fullcontextrestore
- .type up_fullcontextrestore, function
-up_fullcontextrestore:
-
- /* On entry, a1 (r0) holds address of the register save area */
-
- /* Recover all registers except for r0, r1, R15, and CPSR */
-
- add r1, r0, #(4*REG_R2) /* Offset to REG_R2 storage */
- ldmia r1, {r2-r14} /* Recover registers */
-
- /* Create a stack frame to hold the PC */
-
- sub sp, sp, #(3*4) /* Frame for three registers */
- ldr r1, [r0, #(4*REG_R0)] /* Fetch the stored r0 value */
- str r1, [sp] /* Save it at the top of the stack */
- ldr r1, [r0, #(4*REG_R1)] /* Fetch the stored r1 value */
- str r1, [sp, #4] /* Save it in the stack */
- ldr r1, [r0, #(4*REG_PC)] /* Fetch the stored pc value */
- str r1, [sp, #8] /* Save it at the bottom of the frame */
-
- /* Now we can restore the CPSR. We wait until we are completely
- * finished with the context save data to do this. Restore the CPSR
- * may re-enable and interrupts and we couldt be in a context
- * where save structure is only protected by interrupts being disabled.
- */
-
- ldr r1, [r0, #(4*REG_CPSR)] /* Fetch the stored CPSR value */
- msr cpsr, r1 /* Set the CPSR */
-
- /* Now recover r0 and r1 */
-
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add sp, sp, #(2*4)
-
- /* Then return to the address at the stop of the stack,
- * destroying the stack frame
- */
-
- ldr pc, [sp], #4
- .size up_fullcontextrestore, . - up_fullcontextrestore
-
diff --git a/nuttx/arch/c5471/src/up_head.S b/nuttx/arch/c5471/src/up_head.S
deleted file mode 100644
index d681a177e..000000000
--- a/nuttx/arch/c5471/src/up_head.S
+++ /dev/null
@@ -1,162 +0,0 @@
-/************************************************************
- * up_head.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "c5471.h"
-
-/************************************************************
- * Macros
- ************************************************************/
-
- /* This macro will modify r0, r1, r2 and r14 */
-
-#ifdef CONFIG_DEBUG
- .macro showprogress, code
- mov r0, #\code
- bl up_lowputc
- .endm
-#else
- .macro showprogress, code
- .endm
-#endif
-
-/************************************************************
- * OS Entry Point
- ************************************************************/
-
-/* We assume the bootloader has already initialized most of the h/w for
- * us and that only leaves us having to do some os specific things
- * below.
- */
- .text
- .global __start
- .type __start, #function
-__start:
-
- /* First, setup initial processor mode */
-
- mov r0, #(SVC_MODE | I_BIT | F_BIT )
- msr cpsr, r0
-
- showprogress 'A'
-
- /* Setup system stack (and get the BSS range) */
-
- adr r0, LC0
- ldmia r0, {r4, r5, sp}
-
- /* Clear system BSS section */
-
- mov r0, #0
-1: cmp r4, r5
- strcc r0, [r4], #4
- bcc 1b
-
- showprogress 'B'
-
- /* Copy system .data sections to new home in RAM. */
-
-#ifdef CONFIG_BOOT_FROM_FLASH
-
- adr r3, LC2
- ldmia r3, {r0, r1, r2}
-
-1: ldmia r0!, {r3 - r10}
- stmia r1!, {r3 - r10}
- cmp r1, r2
- blt 1b
-
-#endif
- /* Perform early serial initialization */
-
- mov fp, #0
- bl up_earlyserialinit
-
-#ifdef CONFIG_DEBUG
- mov r0, #'C'
- bl up_putc
- mov r0, #'\n'
- bl up_putc
-#endif
- /* Initialize onboard LEDs */
-
-#ifdef CONFIG_ARCH_LEDS
- bl up_ledinit
-#endif
-
- /* Then jump to OS entry */
-
- b os_start
-
- /* Variables:
- * _sbss is the start of the BSS region (see ld.script)
- * _ebss is the end of the BSS regsion (see ld.script)
- * The idle task stack starts at the end of BSS and is
- * of size CONFIG_PROC_STACK_SIZE. The heap continues
- * from there until the end of memory. See g_heapbase
- * below.
- */
-
-LC0: .long _sbss
- .long _ebss
- .long _ebss+CONFIG_PROC_STACK_SIZE-4
-
-#ifdef CONFIG_BOOT_FROM_FLASH
-LC2: .long _eronly /* Where .data defaults are stored in FLASH */
- .long _sdata /* Where .data needs to reside in SDRAM */
- .long _edata
-#endif
- .size __start, .-__start
-
- /* This global variable is unsigned long g_heapbase and is
- * exported from here only because of its coupling to LCO
- * above.
- */
-
- .data
- .align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
- .long _ebss+CONFIG_PROC_STACK_SIZE
- .size g_heapbase, .-g_heapbase
-
- .end
-
diff --git a/nuttx/arch/c5471/src/up_idle.c b/nuttx/arch/c5471/src/up_idle.c
deleted file mode 100644
index 9a6bc9900..000000000
--- a/nuttx/arch/c5471/src/up_idle.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/************************************************************
- * up_idle.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_idle
- *
- * Description:
- * up_idle() is the logic that will be executed when their
- * is no other ready-to-run task. This is processor idle
- * time and will continue until some interrupt occurs to
- * cause a context switch from the idle task.
- *
- * Processing in this state may be processor-specific. e.g.,
- * this is where power management operations might be
- * performed.
- *
- ************************************************************/
-
-void up_idle(void)
-{
-#if defined(CONFIG_SUPPRESS_INTERRUPTS) || defined(CONFIG_SUPPRESS_TIMER_INTS)
- /* If the system is idle and there are no timer interrupts,
- * then process "fake" timer interrupts. Hopefully, something
- * will wake up.
- */
-
- sched_process_timer();
-#endif
-}
-
diff --git a/nuttx/arch/c5471/src/up_initialize.c b/nuttx/arch/c5471/src/up_initialize.c
deleted file mode 100644
index 04ca68914..000000000
--- a/nuttx/arch/c5471/src/up_initialize.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/************************************************************
- * up_initialize.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/fs.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_initialize
- *
- * Description:
- * up_initialize will be called once during OS
- * initialization after the basic OS services have been
- * initialized. The architecture specific details of
- * initializing the OS will be handled here. Such things as
- * setting up interrupt service routines, starting the
- * clock, and registering device drivers are some of the
- * things that are different for each processor and hardware
- * platform.
- *
- * up_initialize is called after the OS initialized but
- * before the init process has been started and before the
- * libraries have been initialized. OS services and driver
- * services are available.
- *
- ************************************************************/
-
-void up_initialize(void)
-{
- /* Initialize global variables */
-
- current_regs = NULL;
-
- /* Initialize the interrupt subsystem */
-
- up_irqinitialize();
-
- /* Initialize the system timer interrupt */
-
-#if !defined(CONFIG_SUPPRESS_INTERRUPTS) && !defined(CONFIG_SUPPRESS_TIMER_INTS)
- up_timerinit();
-#endif
-
- /* Register devices */
-
- devnull_register(); /* Standard /dev/null */
-
- /* Initialize the serial device driver */
-
- up_serialinit();
- up_ledon(LED_IRQSENABLED);
-}
diff --git a/nuttx/arch/c5471/src/up_initialstate.c b/nuttx/arch/c5471/src/up_initialstate.c
deleted file mode 100644
index 76792f695..000000000
--- a/nuttx/arch/c5471/src/up_initialstate.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/************************************************************
- * up_initialstate.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <string.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-#include "c5471.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_initial_state
- *
- * Description:
- * A new thread is being started and a new TCB
- * has been created. This function is called to initialize
- * the processor specific portions of the new TCB.
- *
- * This function must setup the intial architecture registers
- * and/or stack so that execution will begin at tcb->start
- * on the next context switch.
- *
- ************************************************************/
-
-void up_initial_state(_TCB *tcb)
-{
- struct xcptcontext *xcp = &tcb->xcp;
-
- /* Initialize the initial exception register context structure */
-
- memset(xcp, 0, sizeof(struct xcptcontext));
- xcp->regs[REG_SP] = (uint32)tcb->adj_stack_ptr;
- xcp->regs[REG_PC] = (uint32)tcb->start;
-#ifdef CONFIG_SUPPRESS_INTERRUPTS
- xcp->regs[REG_CPSR] = SVC_MODE | I_BIT | F_BIT;
-#else
- xcp->regs[REG_CPSR] = SVC_MODE | F_BIT;
-#endif
-}
diff --git a/nuttx/arch/c5471/src/up_internal.h b/nuttx/arch/c5471/src/up_internal.h
deleted file mode 100644
index fc3333bf9..000000000
--- a/nuttx/arch/c5471/src/up_internal.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/************************************************************
- * up_internal.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __UP_INTERNAL_H
-#define __UP_INTERNAL_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-
-#if defined(CONFIG_ARCH_BOARD_C5471EVM)
-# include <arch/board/c5471evm.h>
-#else
-# warning "Undefined C5471 Board"
-#endif
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Bring-up debug configurations. These are here (vs defconfig)
- * because these should only be controlled during low level
- * board bring-up and not part of normal platform configuration.
- */
-
-#undef CONFIG_SUPPRESS_INTERRUPTS /* Do not enable interrupts */
-#undef CONFIG_SUPPRESS_TIMER_INTS /* No timer */
-#undef CONFIG_SUPPRESS_SERIAL_INTS /* Console will poll */
-#define CONFIG_SUPPRESS_UART_CONFIG 1 /* Do not reconfig UART */
-#undef CONFIG_DUMP_ON_EXIT /* Dump task state on exit */
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-typedef void (*up_vector_t)(void);
-#endif
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-/* This holds a references to the current interrupt level
- * register storage structure. If is non-NULL only during
- * interrupt processing.
- */
-
-extern uint32 *current_regs;
-
-/* This is the beginning of heap as provided from up_head.S.
- * This is the first address in DRAM after the loaded
- * program+bss+idle stack. The end of the heap is
- * CONFIG_DRAM_END
- */
-
-extern uint32 g_heapbase;
-#endif
-
-/************************************************************
- * Inline Functions
- ************************************************************/
-
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* Defined in files with the same name as the function */
-
-extern void up_copystate(uint32 *dest, uint32 *src);
-extern void up_dataabort(uint32 *regs);
-extern void up_delay(int milliseconds);
-extern void up_doirq(int irq, uint32* regs);
-extern void up_fullcontextrestore(uint32 *regs) __attribute__ ((noreturn));
-extern void up_irqinitialize(void);
-extern void up_prefetchabort(uint32 *regs);
-extern int up_saveusercontext(uint32 *regs);
-extern void up_sigdeliver(void);
-extern void up_syscall(uint32 *regs);
-extern int up_timerisr(int irq, uint32 *regs);
-extern void up_undefinedinsn(uint32 *regs);
-
-#ifdef CONFIG_DEBUG
-extern void up_lowputc(char ch);
-#else
-# define up_lowputc(ch)
-#endif
-
-/* Defined in up_vectors.S */
-
-extern void up_vectorundefinsn(void);
-extern void up_vectorswi(void);
-extern void up_vectorprefetch(void);
-extern void up_vectordata(void);
-extern void up_vectoraddrexcptn(void);
-extern void up_vectorirq(void);
-extern void up_vectorfiq(void);
-
-/* Defined in up_serial.c */
-
-extern void up_earlyserialinit(void);
-extern void up_serialinit(void);
-
-/* Defined in up_watchdog.c */
-
-extern void up_wdtinit(void);
-
-/* Defined in up_timerisr.c */
-
-extern void up_timerinit(void);
-
-/* Defined in up_irq.c */
-
-extern void up_maskack_irq(int irq);
-
-/* Defined in up_leds.c */
-
-#ifdef CONFIG_ARCH_LEDS
-extern void up_ledinit(void);
-extern void up_ledon(int led);
-extern void up_ledoff(int led);
-#else
-# define up_ledinit()
-# define up_ledon(led)
-# define up_ledoff(led)
-#endif
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __UP_INTERNAL_H */
diff --git a/nuttx/arch/c5471/src/up_interruptcontext.c b/nuttx/arch/c5471/src/up_interruptcontext.c
deleted file mode 100644
index b6df69ea4..000000000
--- a/nuttx/arch/c5471/src/up_interruptcontext.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/************************************************************
- * up_interruptcontext.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/arch.h>
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_interrupt_context
- *
- * Description: Return TRUE is we are currently executing in
- * the interrupt handler context.
- ************************************************************/
-
-boolean up_interrupt_context(void)
-{
- return current_regs != NULL;
-}
diff --git a/nuttx/arch/c5471/src/up_irq.c b/nuttx/arch/c5471/src/up_irq.c
deleted file mode 100644
index fabd47b26..000000000
--- a/nuttx/arch/c5471/src/up_irq.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/************************************************************
- * up_irq.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/irq.h>
-#include "c5471.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define ILR_EDGESENSITIVE 0x00000020
-#define ILR_PRIORITY 0x0000001E
-
-/************************************************************
- * Public Data
- ************************************************************/
-
-uint32 *current_regs;
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/* The value of _vflashstart is defined in ld.script. It
- * could be hard-coded because we know that correct IRAM
- * area is 0xffc00000.
- */
-
-extern int _svectors; /* Type does not matter */
-
-/* The C5471 has FLASH at the low end of memory. The
- * rrload bootloaer will catch all interrupts and re-vector
- * them to vectors stored in IRAM. The following table is
- * used to initialize those vectors.
- */
-
-static up_vector_t g_vectorinittab[] =
-{
- (up_vector_t)NULL,
- up_vectorundefinsn,
- up_vectorswi,
- up_vectorprefetch,
- up_vectordata,
- up_vectoraddrexcptn,
- up_vectorirq,
- up_vectorfiq
-};
-#define NVECTORS ((sizeof(g_vectorinittab)) / sizeof(up_vector_t))
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_ackirq
- *
- * Description:
- * Acknowlede the IRQ.Bit 0 of the Interrupt Control
- * Register == New IRQ agreement (NEW_IRQ_AGR). Reset IRQ
- * output. Clear source IRQ register. Enables a new IRQ
- * generation. Reset by internal logic.
- *
- ************************************************************/
-
-static inline void up_ackirq(unsigned int irq)
-{
- uint32 reg;
- reg = getreg32(SRC_IRQ_REG); /* Insure appropriate IT_REG bit clears */
- putreg32(reg | 0x00000001, INT_CTRL_REG); /* write the NEW_IRQ_AGR bit. */
-}
-
-/************************************************************
- * Name: up_ackfiq
- *
- * Description:
- * Acknowledge the FIQ. Bit 1 of the Interrupt Control
- * Register == New FIQ agreement (NEW_FIQ_AGR). Reset FIQ
- * output. Clear source FIQ register. Enables a new FIQ
- * generation. Reset by internal logic.
- *
- ************************************************************/
-
-static inline void up_ackfiq(unsigned int irq)
-{
- uint32 reg;
- reg = getreg32(SRC_FIQ_REG); /* Insure appropriate IT_REG bit clears */
- putreg32(reg | 0x00000002, INT_CTRL_REG); /* write the NEW_FIQ_AGR bit. */
-}
-
-/************************************************************
- * Name: up_vectorinitialize
- ************************************************************/
-
-static inline void up_vectorinitialize(void)
-{
- up_vector_t *src = g_vectorinittab;
- up_vector_t *dest = (up_vector_t*)&_svectors;
- int i;
-
- for (i = 0; i < NVECTORS; i++)
- {
- *dest++ = *src++;
- }
-}
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_irqinitialize
- ************************************************************/
-
-void up_irqinitialize(void)
-{
- /* Disable all interrupts. */
-
- putreg32(0x0000ffff, MASK_IT_REG);
-
- /* Clear any pending interrupts */
-
- up_ackirq(0);
- up_ackfiq(0);
- putreg32(0x00000000, IT_REG);
-
- /* Override hardware defaults */
-
- putreg32(ILR_EDGESENSITIVE | ILR_PRIORITY, ILR_IRQ2_REG);
- putreg32(ILR_EDGESENSITIVE | ILR_PRIORITY, ILR_IRQ4_REG);
- putreg32(ILR_PRIORITY, ILR_IRQ6_REG);
- putreg32(ILR_EDGESENSITIVE | ILR_PRIORITY, ILR_IRQ15_REG);
-
- /* Initialize hardware interrupt vectors */
-
- up_vectorinitialize();
- current_regs = NULL;
-
- /* And finally, enable interrupts */
-
-#ifndef CONFIG_SUPPRESS_INTERRUPTS
- irqrestore(SVC_MODE | F_BIT);
-#endif
-}
-
-/************************************************************
- * Name: up_disable_irq
- *
- * Description:
- * Disable the IRQ specified by 'irq'
- *
- ************************************************************/
-
-void up_disable_irq(int irq)
-{
- if ((unsigned)irq < NR_IRQS)
- {
- uint32 reg = getreg32(MASK_IT_REG);
- putreg32(reg | (1 << irq), MASK_IT_REG);
- }
-}
-
-/************************************************************
- * Name: up_enable_irq
- *
- * Description:
- * Enable the IRQ specified by 'irq'
- *
- ************************************************************/
-
-void up_enable_irq(int irq)
-{
- if ((unsigned)irq < NR_IRQS)
- {
- uint32 reg = getreg32(MASK_IT_REG);
- putreg32(reg & ~(1 << irq), MASK_IT_REG);
- }
-}
-
-/************************************************************
- * Name: up_maskack_irq
- *
- * Description:
- * Mask the IRQ and acknowledge it
- *
- ************************************************************/
-
-void up_maskack_irq(int irq)
-{
- uint32 reg = getreg32(INT_CTRL_REG);
-
- /* Mask the interrupt */
-
- reg = getreg32(MASK_IT_REG);
- putreg32(reg | (1 << irq), MASK_IT_REG);
-
- /* Set the NEW_IRQ_AGR bit. This clears the IRQ src register
- * enables generation of a new IRQ.
- */
-
- reg = getreg32(INT_CTRL_REG);
- putreg32(reg | 0x00000001, INT_CTRL_REG); /* write the NEW_IRQ_AGR bit. */
-}
diff --git a/nuttx/arch/c5471/src/up_lowputc.S b/nuttx/arch/c5471/src/up_lowputc.S
deleted file mode 100644
index 050870c4c..000000000
--- a/nuttx/arch/c5471/src/up_lowputc.S
+++ /dev/null
@@ -1,127 +0,0 @@
-/**************************************************************************
- * up_lowputc.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "c5471.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_lowputc
- **************************************************************************/
-
-/* This assembly language version has the advantage that it can does not
- * require a C stack and uses only r0-r1. Hence it can be used during
- * early boot phases.
- */
-
- .text
- .global up_lowputc
- .type up_lowputc, function
-up_lowputc:
- /* On entry, r0 holds the character to be printed */
-
-#ifdef CONFIG_SERIAL_IRDA_CONSOLE
- ldr r2, =UART_IRDA_BASE /* r2=IRDA UART base */
-#else
- ldr r2, =UART_MODEM_BASE /* r2=Modem UART base */
-#endif
-
- /* Poll bit 0 of the UART_SSR register. When the bit
- * is clear, the TX FIFO is no longer full
- */
-
-1: ldr r1, [r2, #UART_SSR_OFFS]
- tst r1, #UART_SSR_TXFULL
- bne 1b
-
- /* Send the character by writing it into the UART_THR
- * register.
- */
-
- str r0, [r2, #UART_THR_OFFS]
-
- /* Wait for the tranmsit holding regiser (THR) to be
- * emptied. This is detemined when bit 6 of the LSR
- * is set.
- */
-
-2: ldr r1, [r2, #UART_LSR_OFFS]
- tst r1, #0x00000020
- beq 2b
-
- /* If the character that we just sent was a linefeed,
- * then send a carriage return as well.
- */
-
- teq r0, #'\n'
- moveq r0, #'\r'
- beq 1b
-
- /* And return */
-
- mov pc, lr
-
diff --git a/nuttx/arch/c5471/src/up_prefetchabort.c b/nuttx/arch/c5471/src/up_prefetchabort.c
deleted file mode 100644
index 7756b7c35..000000000
--- a/nuttx/arch/c5471/src/up_prefetchabort.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/************************************************************
- * up_prefetchabort.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/irq.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_prefetchabort
- ************************************************************/
-
-void up_prefetchabort(uint32 *regs)
-{
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/c5471/src/up_releasepending.c b/nuttx/arch/c5471/src/up_releasepending.c
deleted file mode 100644
index 2b4179687..000000000
--- a/nuttx/arch/c5471/src/up_releasepending.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/************************************************************
- * up_releasepending.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_release_pending
- *
- * Description:
- * Release and ready-to-run tasks that have
- * collected in the pending task list. This can call a
- * context switch if a new task is placed at the head of
- * the ready to run list.
- *
- ************************************************************/
-
-void up_release_pending(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-
- lldbg("From TCB=%p\n", rtcb);
-
- /* Merge the g_pendingtasks list into the g_readytorun task list */
-
- /* sched_lock(); */
- if (sched_mergepending())
- {
- /* The currently active task has changed! We will need to
- * switch contexts. First check if we are operating in
- * interrupt context:
- */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the exception context into the TCB of the task that
- * was currently active. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task
- * restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
-}
diff --git a/nuttx/arch/c5471/src/up_releasestack.c b/nuttx/arch/c5471/src/up_releasestack.c
deleted file mode 100644
index e300c93bf..000000000
--- a/nuttx/arch/c5471/src/up_releasestack.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/************************************************************
- * up_releasestack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_release_stack
- *
- * Description:
- * A task has been stopped. Free all stack
- * related resources retained int the defunct TCB.
- *
- ************************************************************/
-
-void up_release_stack(_TCB *dtcb)
-{
- if (dtcb->stack_alloc_ptr)
- {
- sched_free(dtcb->stack_alloc_ptr);
- dtcb->stack_alloc_ptr = NULL;
- }
-
- dtcb->adj_stack_size = 0;
-}
diff --git a/nuttx/arch/c5471/src/up_reprioritizertr.c b/nuttx/arch/c5471/src/up_reprioritizertr.c
deleted file mode 100644
index 58f31bba5..000000000
--- a/nuttx/arch/c5471/src/up_reprioritizertr.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/************************************************************
- * up_reprioritizertr.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- * Called when the priority of a running or
- * ready-to-run task changes and the reprioritization will
- * cause a context switch. Two cases:
- *
- * 1) The priority of the currently running task drops and the next
- * task in the ready to run list has priority.
- * 2) An idle, ready to run task's priority has been raised above the
- * the priority of the current, running task and it now has the
- * priority.
- *
- * Inputs:
- * tcb: The TCB of the task that has been reprioritized
- * priority: The new task priority
- *
- ************************************************************/
-
-void up_reprioritize_rtr(_TCB *tcb, ubyte priority)
-{
- /* Verify that the caller is sane */
-
- if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
- tcb->task_state > LAST_READY_TO_RUN_STATE ||
- priority < SCHED_PRIORITY_MIN ||
- priority > SCHED_PRIORITY_MAX)
- {
- PANIC(OSERR_BADREPRIORITIZESTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- boolean switch_needed;
-
- lldbg("TCB=%p PRI=%d\n", tcb, priority);
-
- /* Remove the tcb task from the ready-to-run list.
- * sched_removereadytorun will return TRUE if we just
- * remove the head of the ready to run list.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Setup up the new task priority */
-
- tcb->sched_priority = (ubyte)priority;
-
- /* Return the task to the specified blocked task list.
- * sched_addreadytorun will return TRUE if the task was
- * added to the new list. We will need to perform a context
- * switch only if the EXCLUSIVE or of the two calls is non-zero
- * (i.e., one and only one the calls changes the head of the
- * ready-to-run list).
- */
-
- switch_needed ^= sched_addreadytorun(tcb);
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* If we are going to do a context switch, then now is the right
- * time to add any pending tasks back into the ready-to-run list.
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- sched_mergepending();
- }
-
- /* Are we in an interrupt handler? */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the exception context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/c5471/src/up_saveusercontext.S b/nuttx/arch/c5471/src/up_saveusercontext.S
deleted file mode 100644
index 142f3660f..000000000
--- a/nuttx/arch/c5471/src/up_saveusercontext.S
+++ /dev/null
@@ -1,119 +0,0 @@
-/**************************************************************************
- * up_saveusercontext.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_saveusercontext
- **************************************************************************/
-
- .text
- .globl up_saveusercontext
- .type up_saveusercontext, function
-up_saveusercontext:
- /* On entry, a1 (r0) holds address of struct xcptcontext.
- * Offset to the user region.
- */
-
- /* Make sure that the return value will be non-zero (the
- * value of the other volatile registers don't matter --
- * r1-r3, ip). This function is called throught the
- * noraml C calling conventions and the values of these
- * registers cannot be assumed at the point of setjmp
- * return.
- */
-
- mov ip, #1
- str ip, [r0, #(4*REG_R0)]
-
- /* Save the volatile registers (plus r12 which really
- * doesn't need to be saved)
- */
-
- add r1, r0, #(4*REG_R4)
- stmia r1, {r4-r14}
-
- /* Save the current cpsr */
-
- mrs r2, cpsr /* R3 = CPSR value */
- add r1, r0, #(4*REG_CPSR)
- str r2, [r1]
-
- /* Finally save the return address as the PC so that we
- * return to the exit from this function.
- */
-
- add r1, r0, #(4*REG_PC)
- str lr, [r1]
-
- /* Return 0 */
-
- mov r0, #0 /* Return value == 0 */
- mov pc, lr /* Return */
- .size up_saveusercontext, . - up_saveusercontext
-
diff --git a/nuttx/arch/c5471/src/up_schedulesigaction.c b/nuttx/arch/c5471/src/up_schedulesigaction.c
deleted file mode 100644
index 47b565e2b..000000000
--- a/nuttx/arch/c5471/src/up_schedulesigaction.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/************************************************************
- * up_schedulesigaction.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-#include "c5471.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_schedule_sigaction
- *
- * Description:
- * This function is called by the OS when one or more
- * signal handling actions have been queued for execution.
- * The architecture specific code must configure things so
- * that the 'igdeliver' callback is executed on the thread
- * specified by 'tcb' as soon as possible.
- *
- * This function may be called from interrupt handling logic.
- *
- * This operation should not cause the task to be unblocked
- * nor should it cause any immediate execution of sigdeliver.
- * Typically, a few cases need to be considered:
- *
- * (1) This function may be called from an interrupt handler
- * During interrupt processing, all xcptcontext structures
- * should be valid for all tasks. That structure should
- * be modified to invoke sigdeliver() either on return
- * from (this) interrupt or on some subsequent context
- * switch to the recipient task.
- * (2) If not in an interrupt handler and the tcb is NOT
- * the currently executing task, then again just modify
- * the saved xcptcontext structure for the recipient
- * task so it will invoke sigdeliver when that task is
- * later resumed.
- * (3) If not in an interrupt handler and the tcb IS the
- * currently executing task -- just call the signal
- * handler now.
- *
- ************************************************************/
-
-void up_schedule_sigaction(_TCB *tcb, sig_deliver_t sigdeliver)
-{
- /* Refuse to handle nested signal actions */
-
- dbg("tcb=0x%p sigdeliver=0x%p\n", tcb, sigdeliver);
-
- if (!tcb->xcp.sigdeliver)
- {
- irqstate_t flags;
-
- /* Make sure that interrupts are disabled */
-
- flags = irqsave();
-
- /* First, handle some special cases when the signal is
- * being delivered to the currently executing task.
- */
-
- dbg("rtcb=0x%p current_regs=0x%p\n", g_readytorun.head, current_regs);
-
- if (tcb == (_TCB*)g_readytorun.head)
- {
- /* CASE 1: We are not in an interrupt handler and
- * a task is signalling itself for some reason.
- */
-
- if (!current_regs)
- {
- /* In this case just deliver the signal now. */
-
- sigdeliver(tcb);
- }
-
- /* CASE 2: We are in an interrupt handler AND the
- * interrupted task is the same as the one that
- * must receive the signal, then we will have to modify
- * the return state as well as the state in the TCB.
- */
-
- else
- {
- /* Save the return lr and cpsr and one scratch register
- * These will be restored by the signal trampoline after
- * the signals have been delivered.
- */
-
- tcb->xcp.sigdeliver = sigdeliver;
- tcb->xcp.saved_pc = current_regs[REG_PC];
- tcb->xcp.saved_cpsr = current_regs[REG_CPSR];
-
- /* Then set up to vector to the trampoline with interrupts
- * disabled
- */
-
- current_regs[REG_PC] = (uint32)up_sigdeliver;
- current_regs[REG_CPSR] = SVC_MODE | I_BIT | F_BIT;
-
- /* And make sure that the saved context in the TCB
- * is the same as the interrupt return context.
- */
-
- up_copystate(tcb->xcp.regs, current_regs);
- }
- }
-
- /* Otherwise, we are (1) signaling a task is not running
- * from an interrupt handler or (2) we are not in an
- * interrupt handler and the running task is signalling
- * some non-running task.
- */
-
- else
- {
- /* Save the return lr and cpsr and one scratch register
- * These will be restored by the signal trampoline after
- * the signals have been delivered.
- */
-
- tcb->xcp.sigdeliver = sigdeliver;
- tcb->xcp.saved_pc = tcb->xcp.regs[REG_PC];
- tcb->xcp.saved_cpsr = tcb->xcp.regs[REG_CPSR];
-
- /* Then set up to vector to the trampoline with interrupts
- * disabled
- */
-
- tcb->xcp.regs[REG_PC] = (uint32)up_sigdeliver;
- tcb->xcp.regs[REG_CPSR] = SVC_MODE | I_BIT | F_BIT;
- }
-
- irqrestore(flags);
- }
-}
diff --git a/nuttx/arch/c5471/src/up_serial.c b/nuttx/arch/c5471/src/up_serial.c
deleted file mode 100644
index 7b2b9a24e..000000000
--- a/nuttx/arch/c5471/src/up_serial.c
+++ /dev/null
@@ -1,865 +0,0 @@
-/****************************************************************************
- * up_serial.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <string.h>
-#include <errno.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <nuttx/serial.h>
-#include <arch/serial.h>
-#include "c5471.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define BASE_BAUD 115200
-
-#if defined(CONFIG_UART_IRDA_HWFLOWCONTROL) || defined(CONFIG_UART_MODEM_HWFLOWCONTROL)
-# define CONFIG_UART_HWFLOWCONTROL
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct uart_regs_s
-{
- uint32 ier;
- uint32 lcr;
- uint32 fcr;
-#ifdef CONFIG_UART_HWFLOWCONTROL
- uint32 efr;
- uint32 tcr;
-#endif
-};
-
-struct up_dev_s
-{
- unsigned int uartbase; /* Base address of UART registers */
- unsigned int baud_base; /* Base baud for conversions */
- unsigned int baud; /* Configured baud */
- ubyte xmit_fifo_size; /* Size of transmit FIFO */
- ubyte irq; /* IRQ associated with this UART */
- ubyte parity; /* 0=none, 1=odd, 2=even */
- ubyte bits; /* Number of bits (7 or 8) */
-#ifdef CONFIG_UART_HWFLOWCONTROL
- boolean flowcontrol; /* TRUE: Hardware flow control
- * is enabled. */
-#endif
- boolean stopbits2; /* TRUE: Configure with 2
- * stop bits instead of 1 */
- struct uart_regs_s regs; /* Shadow copy of readonly regs */
-};
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static int up_setup(struct uart_dev_s *dev);
-static void up_shutdown(struct uart_dev_s *dev);
-static int up_attach(struct uart_dev_s *dev);
-static void up_detach(struct uart_dev_s *dev);
-static int up_interrupt(int irq, void *context);
-static int up_ioctl(struct file *filep, int cmd, unsigned long arg);
-static int up_receive(struct uart_dev_s *dev, unsigned int *status);
-static void up_rxint(struct uart_dev_s *dev, boolean enable);
-static boolean up_rxavailable(struct uart_dev_s *dev);
-static void up_send(struct uart_dev_s *dev, int ch);
-static void up_txint(struct uart_dev_s *dev, boolean enable);
-static boolean up_txready(struct uart_dev_s *dev);
-static boolean up_txempty(struct uart_dev_s *dev);
-
-/****************************************************************************
- * Private Variables
- ****************************************************************************/
-
-struct uart_ops_s g_uart_ops =
-{
- .setup = up_setup,
- .shutdown = up_shutdown,
- .attach = up_attach,
- .detach = up_detach,
- .ioctl = up_ioctl,
- .receive = up_receive,
- .rxint = up_rxint,
- .rxavailable = up_rxavailable,
- .send = up_send,
- .txint = up_txint,
- .txready = up_txready,
- .txempty = up_txempty,
-};
-
-/* I/O buffers */
-
-static char g_irdarxbuffer[CONFIG_UART_IRDA_RXBUFSIZE];
-static char g_irdatxbuffer[CONFIG_UART_IRDA_TXBUFSIZE];
-static char g_modemrxbuffer[CONFIG_UART_MODEM_RXBUFSIZE];
-static char g_modemtxbuffer[CONFIG_UART_MODEM_TXBUFSIZE];
-
-/* This describes the state of the C5471 serial IRDA port. */
-
-static struct up_dev_s g_irdapriv =
-{
- .xmit_fifo_size = UART_IRDA_XMIT_FIFO_SIZE,
- .baud_base = BASE_BAUD,
- .uartbase = UART_IRDA_BASE,
- .baud = CONFIG_UART_IRDA_BAUD,
- .irq = C5471_IRQ_UART_IRDA,
- .parity = CONFIG_UART_IRDA_PARITY,
- .bits = CONFIG_UART_IRDA_BITS,
-#ifdef CONFIG_UART_IRDA_HWFLOWCONTROL
- .flowcontrol = TRUE,
-#endif
- .stopbits2 = CONFIG_UART_IRDA_2STOP,
-};
-
-static uart_dev_t g_irdaport =
-{
- .recv =
- {
- .size = CONFIG_UART_IRDA_RXBUFSIZE,
- .buffer = g_irdarxbuffer,
- },
- .xmit =
- {
- .size = CONFIG_UART_IRDA_TXBUFSIZE,
- .buffer = g_irdatxbuffer,
- },
- .ops = &g_uart_ops,
- .priv = &g_irdapriv,
-};
-
-/* This describes the state of the C5471 serial Modem port. */
-
-static struct up_dev_s g_modempriv =
-{
- .xmit_fifo_size = UART_XMIT_FIFO_SIZE,
- .baud_base = BASE_BAUD,
- .uartbase = UART_MODEM_BASE,
- .baud = CONFIG_UART_MODEM_BAUD,
- .irq = C5471_IRQ_UART,
- .parity = CONFIG_UART_MODEM_PARITY,
- .bits = CONFIG_UART_MODEM_BITS,
-#ifdef CONFIG_UART_MODEM_HWFLOWCONTROL
- .flowcontrol = TRUE,
-#endif
- .stopbits2 = CONFIG_UART_MODEM_2STOP,
-};
-
-static uart_dev_t g_modemport =
-{
- .recv =
- {
- .size = CONFIG_UART_MODEM_RXBUFSIZE,
- .buffer = g_modemrxbuffer,
- },
- .xmit =
- {
- .size = CONFIG_UART_MODEM_TXBUFSIZE,
- .buffer = g_modemtxbuffer,
- },
- .ops = &g_uart_ops,
- .priv = &g_modempriv,
-};
-
-/* Now, which one with be tty0/console and which tty1? */
-
-#ifdef CONFIG_SERIAL_IRDA_CONSOLE
-# define CONSOLE_DEV g_irdaport
-# define TTYS0_DEV g_irdaport
-# define TTYS1_DEV g_modemport
-#else
-# define CONSOLE_DEV g_modemport
-# define TTYS0_DEV g_modemport
-# define TTYS1_DEV g_irdaport
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_inserial
- ****************************************************************************/
-
-static inline uint32 up_inserial(struct up_dev_s *priv, uint32 offset)
-{
- return getreg32(priv->uartbase + offset);
-}
-
-/****************************************************************************
- * Name: up_serialout
- ****************************************************************************/
-
-static inline void up_serialout(struct up_dev_s *priv, uint32 offset, uint32 value)
-{
- putreg32(value, priv->uartbase + offset);
-}
-
-/****************************************************************************
- * Name: up_disableuartint
- ****************************************************************************/
-
-static inline void up_disableuartint(struct up_dev_s *priv, uint16 *ier)
-{
- if (ier)
- {
- *ier = priv->regs.ier & UART_IER_INTMASK;
- }
- priv->regs.ier &= ~UART_IER_INTMASK;
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
-}
-
-/****************************************************************************
- * Name: up_restoreuartint
- ****************************************************************************/
-
-static inline void up_restoreuartint(struct up_dev_s *priv, uint16 ier)
-{
- priv->regs.ier |= ier & (UART_IER_RECVINT|UART_IER_XMITINT);
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
-}
-
-/****************************************************************************
- * Name: up_waittxready
- ****************************************************************************/
-
-static inline void up_waittxready(struct up_dev_s *priv)
-{
- int tmp;
-
- for (tmp = 1000 ; tmp > 0 ; tmp--)
- {
- if ((up_inserial(priv, UART_SSR_OFFS) & UART_SSR_TXFULL) == 0)
- {
- break;
- }
- }
-}
-/****************************************************************************
- * Name: up_disablebreaks
- ****************************************************************************/
-
-static inline void up_disablebreaks(struct up_dev_s *priv)
-{
- priv->regs.lcr &= ~UART_LCR_BOC;
- up_serialout(priv, UART_LCR_OFFS, priv->regs.lcr);
-}
-
-/****************************************************************************
- * Name: up_enablebreaks
- ****************************************************************************/
-
-static inline void up_enablebreaks(struct up_dev_s *priv)
-{
- priv->regs.lcr |= UART_LCR_BOC;
- up_serialout(priv, UART_LCR_OFFS, priv->regs.lcr);
-}
-
-/****************************************************************************
- * Name: up_setrate
- ****************************************************************************/
-
-static inline void up_setrate(struct up_dev_s *priv, unsigned int rate)
-{
- uint32 div_bit_rate;
-
- switch (rate)
- {
- case 115200:
- div_bit_rate = BAUD_115200;
- break;
- case 57600:
- div_bit_rate = BAUD_57600;
- break;
- case 38400:
- div_bit_rate = BAUD_38400;
- break;
- case 19200:
- div_bit_rate = BAUD_19200;
- break;
- case 4800:
- div_bit_rate = BAUD_4800;
- break;
- case 2400:
- div_bit_rate = BAUD_2400;
- break;
- case 1200:
- div_bit_rate = BAUD_1200;
- break;
- case 9600:
- default:
- div_bit_rate = BAUD_9600;
- break;
- }
-
- up_serialout(priv, UART_DIV_BIT_RATE_OFFS, div_bit_rate);
-}
-
-/****************************************************************************
- * Name: up_setup
- *
- * Description:
- * Configure the UART baud, bits, parity, fifos, etc. This
- * method is called the first time that the serial port is
- * opened.
- *
- ****************************************************************************/
-
-static int up_setup(struct uart_dev_s *dev)
-{
-#ifndef CONFIG_SUPPRESS_UART_CONFIG
- struct up_dev_s *priv = dev->priv;
- unsigned int cval;
-
- if (priv->bits == 7)
- {
- cval = UART_LCR_7BITS;
- }
- else
- {
- cval = UART_LCR_8BITS;
- }
-
- if (priv->stopbits2)
- {
- cval |= UART_LCR_2STOP;
- }
-
- if (priv->parity == 1) /* Odd parity */
- {
- cval |= (UART_LCR_PAREN|UART_LCR_PARODD);
- }
- else if (priv->parity == 2) /* Even parity */
- {
- cval |= (UART_LCR_PAREN|UART_LCR_PAREVEN);
- }
-
- /* Both the IrDA and MODEM UARTs support RESET and UART mode. */
-
- up_serialout(priv, UART_MDR_OFFS, MDR_RESET_MODE);
- up_delay(5);
- up_serialout(priv, UART_MDR_OFFS, MDR_UART_MODE);
- up_delay(5);
-
- priv->regs.ier = up_inserial(priv, UART_IER_OFFS);
- priv->regs.lcr = up_inserial(priv, UART_LCR_OFFS);
-#ifdef CONFIG_UART_HWFLOWCONTROL
- if (priv->flowcontrol)
- {
- priv->regs.efr = up_inserial(priv, UART_EFR_OFFS);
- priv->regs.tcr = up_inserial(priv, UART_TCR_OFFS);
- }
-#endif
-
- up_disableuartint(priv, NULL);
-
- up_serialout(priv, UART_EFR_OFFS, 0x0010); /* Enable fifo control */
- up_serialout(priv, UART_TFCR_OFFS, 0); /* Reset to 0 */
- up_serialout(priv, UART_RFCR_OFFS, UART_FCR_RX_CLR); /* Clear RX fifo */
- up_serialout(priv, UART_TFCR_OFFS, UART_FCR_TX_CLR); /* Clear TX fifo */
- up_serialout(priv, UART_TFCR_OFFS, UART_FCR_FIFO_EN); /* Enable RX/TX fifos */
-
- up_disablebreaks(priv);
-
- /* Set the RX and TX trigger levels to the minimum */
-
- priv->regs.fcr = (priv->regs.fcr & 0xffffffcf) | UART_FCR_FTL;
- up_serialout(priv, UART_RFCR_OFFS, priv->regs.fcr);
-
- priv->regs.fcr = (priv->regs.fcr & 0xffffff3f) | UART_FCR_FTL;
- up_serialout(priv, UART_RFCR_OFFS, priv->regs.fcr);
-
- up_setrate(priv, priv->baud);
-
- priv->regs.lcr &= 0xffffffe0; /* clear original field, and... */
- priv->regs.lcr |= (uint32)cval; /* Set new bits in that field. */
- up_serialout(priv, UART_LCR_OFFS, priv->regs.lcr);
-
-#ifdef CONFIG_UART_HWFLOWCONTROL
- if (priv->flowcontrol)
- {
- /* Set the FIFO level triggers for flow control
- * Halt = 48 bytes, resume = 12 bytes
- */
-
- priv->regs.tcr = (priv->regs.tcr & 0xffffff00) | 0x0000003c;
- up_serialout(priv, UART_TCR_OFFS, priv->regs.tcr);
-
- /* Enable RTS/CTS flow control */
-
- priv->regs.efr |= 0x000000c0;
- up_serialout(priv, UART_EFR_OFFS, priv->regs.efr);
- }
- else
- {
- /* Disable RTS/CTS flow control */
-
- priv->regs.efr &= 0xffffff3f;
- up_serialout(priv, UART_EFR_OFFS, priv->regs.efr);
- }
-#endif
-#endif
- return OK;
-}
-
-/****************************************************************************
- * Name: up_shutdown
- *
- * Description:
- * Disable the UART. This method is called when the serial port is closed
- *
- ****************************************************************************/
-
-static void up_shutdown(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)CONSOLE_DEV.priv;
- up_disableuartint(priv, NULL);
-}
-
-/****************************************************************************
- * Name: up_attach
- *
- * Description:
- * Configure the UART to operation in interrupt driven mode. This method is
- * called when the serial port is opened. Normally, this is just after the
- * the setup() method is called, however, the serial console may operate in
- * a non-interrupt driven mode during the boot phase.
- *
- * RX and TX interrupts are not enabled when by the attach method (unless the
- * hardware supports multiple levels of interrupt enabling). The RX and TX
- * interrupts are not enabled until the txint() and rxint() methods are called.
- *
- ****************************************************************************/
-
-static int up_attach(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- int ret;
-
- /* Attach and enable the IRQ */
-
- ret = irq_attach(priv->irq, up_interrupt);
- if (ret == OK)
- {
- /* Enable the interrupt (RX and TX interrupts are still disabled
- * in the UART
- */
-
- up_enable_irq(priv->irq);
- }
- return ret;
-}
-
-/****************************************************************************
- * Name: up_detach
- *
- * Description:
- * Detach UART interrupts. This method is called when the serial port is
- * closed normally just before the shutdown method is called. The exception is
- * the serial console which is never shutdown.
- *
- ****************************************************************************/
-
-static void up_detach(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- up_disable_irq(priv->irq);
- irq_detach(priv->irq);
-}
-
-/****************************************************************************
- * Name: up_interrupt
- *
- * Description:
- * This is the UART interrupt handler. It will be invoked
- * when an interrupt received on the 'irq' It should call
- * uart_transmitchars or uart_receivechar to perform the
- * appropriate data transfers. The interrupt handling logic\
- * must be able to map the 'irq' number into the approprite
- * uart_dev_s structure in order to call these functions.
- *
- ****************************************************************************/
-
-static int up_interrupt(int irq, void *context)
-{
- struct uart_dev_s *dev = NULL;
- struct up_dev_s *priv;
- volatile uint32 cause;
-
- if (g_irdapriv.irq == irq)
- {
- dev = &g_irdaport;
- }
- else if (g_modempriv.irq == irq)
- {
- dev = &g_modemport;
- }
- else
- {
- PANIC(OSERR_INTERNAL);
- }
- priv = (struct up_dev_s*)dev->priv;
-
- cause = up_inserial(priv, UART_ISR_OFFS) & 0x0000003f;
-
- if ((cause & 0x0000000c) == 0x0000000c)
- {
- uint32 ier_val = 0;
-
- /* Is this an interrupt from the IrDA UART? */
-
- if (irq == C5471_IRQ_UART_IRDA)
- {
- /* Save the currently enabled IrDA UART interrupts
- * so that we can restore the IrDA interrupt state
- * below.
- */
-
- ier_val = up_inserial(priv, UART_IER_OFFS);
-
- /* Then disable all IrDA UART interrupts */
-
- up_serialout(priv, UART_IER_OFFS, 0);
- }
-
- /* Receive characters from the RX fifo */
-
- uart_recvchars(dev);
-
- /* read UART_RHR to clear int condition
- * toss = up_inserialchar(priv,&status);
- */
-
- /* Is this an interrupt from the IrDA UART? */
-
- if (irq == C5471_IRQ_UART_IRDA)
- {
- /* Restore the IrDA UART interrupt enables */
-
- up_serialout(priv, UART_IER_OFFS, ier_val);
- }
- }
- else if ((cause & 0x0000000c) == 0x00000004)
- {
- uart_recvchars(dev);
- }
-
- if ((cause & 0x00000002) != 0)
- {
- uart_xmitchars(dev);
- }
-
- return OK;
-}
-
-/****************************************************************************
- * Name: up_ioctl
- *
- * Description:
- * All ioctl calls will be routed through this method
- *
- ****************************************************************************/
-
-static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
-{
- struct inode *inode = filep->f_inode;
- struct uart_dev_s *dev = inode->i_private;
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- int ret = OK;
-
- switch (cmd)
- {
- case TIOCSERGSTRUCT:
- {
- struct up_dev_s *user = (struct up_dev_s*)arg;
- if (!user)
- {
- *get_errno_ptr() = EINVAL;
- ret = ERROR;
- }
- else
- {
- memcpy(user, dev, sizeof(struct up_dev_s));
- }
- }
- break;
-
- case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */
- {
- irqstate_t flags = irqsave();
- up_enablebreaks(priv);
- irqrestore(flags);
- }
- break;
-
- case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */
- {
- irqstate_t flags;
- flags = irqsave();
- up_disablebreaks(priv);
- irqrestore(flags);
- }
- break;
-
- default:
- *get_errno_ptr() = ENOTTY;
- ret = ERROR;
- break;
- }
-
- return ret;
-}
-
-/****************************************************************************
- * Name: up_receive
- *
- * Description:
- * Called (usually) from the interrupt level to receive one character from
- * the UART. Error bits associated with the receipt are provided in the
- * the return 'status'.
- *
- ****************************************************************************/
-
-static int up_receive(struct uart_dev_s *dev, unsigned int *status)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- uint32 rhr;
- uint32 lsr;
-
- /* Construct a 16bit status word that uses the high byte to
- * hold the status bits associated with framing,parity,break
- * and a low byte that holds error bits of LSR for
- * conditions such as overflow, etc.
- */
-
- rhr = up_inserial(priv, UART_RHR_OFFS);
- lsr = up_inserial(priv, UART_LSR_OFFS);
-
- *status = (unsigned int)((rhr & 0x0000ff00) | (lsr & 0x000000ff));
-
- return rhr & 0x000000ff;
-}
-
-/****************************************************************************
- * Name: up_rxint
- *
- * Description:
- * Call to enable or disable RX interrupts
- *
- ****************************************************************************/
-
-static void up_rxint(struct uart_dev_s *dev, boolean enable)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- if (enable)
- {
-#ifndef CONFIG_SUPPRESS_SERIAL_INTS
- priv->regs.ier |= UART_IER_RECVINT;
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
-#endif
- }
- else
- {
- priv->regs.ier &= ~UART_IER_RECVINT;
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
- }
-}
-
-/****************************************************************************
- * Name: up_rxavailable
- *
- * Description:
- * Return TRUE if the receive fifo is not empty
- *
- ****************************************************************************/
-
-static boolean up_rxavailable(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return up_inserial(priv, UART_LSR_OFFS) & UART_RX_FIFO_NOEMPTY;
-}
-
-/****************************************************************************
- * Name: up_send
- *
- * Description:
- * This method will send one byte on the UART
- *
- ****************************************************************************/
-
-static void up_send(struct uart_dev_s *dev, int ch)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- up_serialout(priv, UART_THR_OFFS, (ubyte)ch);
-}
-
-/****************************************************************************
- * Name: up_txint
- *
- * Description:
- * Call to enable or disable TX interrupts
- *
- ****************************************************************************/
-
-static void up_txint(struct uart_dev_s *dev, boolean enable)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- if (enable)
- {
-#ifndef CONFIG_SUPPRESS_SERIAL_INTS
- priv->regs.ier |= UART_IER_XMITINT;
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
-#endif
- }
- else
- {
- priv->regs.ier &= ~UART_IER_XMITINT;
- up_serialout(priv, UART_IER_OFFS, priv->regs.ier);
- }
-}
-
-/****************************************************************************
- * Name: up_txready
- *
- * Description:
- * Return TRUE if the tranmsit fifo is not full
- *
- ****************************************************************************/
-
-static boolean up_txready(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return (up_inserial(priv, UART_SSR_OFFS) & UART_SSR_TXFULL) == 0;
-}
-
-/****************************************************************************
- * Name: up_txempty
- *
- * Description:
- * Return TRUE if the transmit fifo is empty
- *
- ****************************************************************************/
-
-static boolean up_txempty(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return (up_inserial(priv, UART_LSR_OFFS) & UART_LSR_TREF) != 0;
-}
-
-/****************************************************************************
- * Public Funtions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_serialinit
- *
- * Description:
- * Performs the low level UART initialization early in
- * debug so that the serial console will be available
- * during bootup. This must be called before up_serialinit.
- *
- ****************************************************************************/
-
-void up_earlyserialinit(void)
-{
- up_disableuartint(TTYS0_DEV.priv, NULL);
- up_disableuartint(TTYS1_DEV.priv, NULL);
-
- CONSOLE_DEV.isconsole = TRUE;
- up_setup(&CONSOLE_DEV);
-}
-
-/****************************************************************************
- * Name: up_serialinit
- *
- * Description:
- * Register serial console and serial ports. This assumes
- * that up_earlyserialinit was called previously.
- *
- ****************************************************************************/
-
-void up_serialinit(void)
-{
- (void)uart_register("/dev/console", &CONSOLE_DEV);
- (void)uart_register("/dev/ttyS0", &TTYS0_DEV);
- (void)uart_register("/dev/ttyS1", &TTYS1_DEV);
-}
-
-/****************************************************************************
- * Name: up_putc
- *
- * Description:
- * Provide priority, low-level access to support OS debug
- * writes
- *
- ****************************************************************************/
-
-int up_putc(int ch)
-{
- struct up_dev_s *priv = (struct up_dev_s*)CONSOLE_DEV.priv;
- uint16 ier;
-
- up_disableuartint(priv, &ier);
- up_waittxready(priv);
- up_serialout(priv, UART_THR_OFFS, (ubyte)ch);
-
- /* Check for LF */
-
- if (ch == '\n')
- {
- /* Add CR */
-
- up_waittxready(priv);
- up_serialout(priv, UART_THR_OFFS, '\r');
- }
-
- up_waittxready(priv);
- up_restoreuartint(priv, ier);
- return ch;
-}
-
diff --git a/nuttx/arch/c5471/src/up_sigdeliver.c b/nuttx/arch/c5471/src/up_sigdeliver.c
deleted file mode 100644
index 8ec10599a..000000000
--- a/nuttx/arch/c5471/src/up_sigdeliver.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/************************************************************
- * up_sigdeliver.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-#include "c5471.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_sigdeliver
- *
- * Description:
- * This is the a signal handling trampoline. When a
- * signal action was posted. The task context was mucked
- * with and forced to branch to this location with interrupts
- * disabled.
- *
- ************************************************************/
-
-void up_sigdeliver(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- uint32 regs[XCPTCONTEXT_REGS];
- sig_deliver_t sigdeliver;
-
- /* Save the errno. This must be preserved throughout the
- * signal handling so that the the user code final gets
- * the correct errno value (probably EINTR).
- */
-
- int saved_errno = rtcb->errno;
-
- up_ledon(LED_SIGNAL);
-
- dbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n",
- rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head);
- ASSERT(rtcb->xcp.sigdeliver != NULL);
-
- /* Save the real return state on the stack. */
-
- up_copystate(regs, rtcb->xcp.regs);
- regs[REG_PC] = rtcb->xcp.saved_pc;
- regs[REG_CPSR] = rtcb->xcp.saved_cpsr;
-
- /* Get a local copy of the sigdeliver function pointer.
- * we do this so that we can nullify the sigdeliver
- * function point in the TCB and accept more signal
- * deliveries while processing the current pending
- * signals.
- */
-
- sigdeliver = rtcb->xcp.sigdeliver;
- rtcb->xcp.sigdeliver = NULL;
-
- /* Then restore the task interrupt statat. */
-
- irqrestore(regs[REG_CPSR]);
-
- /* Deliver the signals */
-
- sigdeliver(rtcb);
-
- /* Output any debug messaged BEFORE restoreing errno
- * (becuase they may alter errno), then restore the
- * original errno that is needed by the user logic
- * (it is probably EINTR).
- */
-
- dbg("Resuming\n");
- rtcb->errno = saved_errno;
-
- /* Then restore the correct state for this thread of
- * execution.
- */
-
- up_ledoff(LED_SIGNAL);
- up_fullcontextrestore(regs);
-}
diff --git a/nuttx/arch/c5471/src/up_syscall.c b/nuttx/arch/c5471/src/up_syscall.c
deleted file mode 100644
index be4cee745..000000000
--- a/nuttx/arch/c5471/src/up_syscall.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/************************************************************
- * up_syscall.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "c5471.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * vectors
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_syscall
- *
- * Description:
- * SWI interrupts will vection here with insn=the SWI
- * instruction and xcp=the interrupt context
- *
- * The handler may get the SWI number be de-referencing
- * the return address saved in the xcp and decoding
- * the SWI instruction
- *
- ************************************************************/
-
-void up_syscall(uint32 *regs)
-{
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/c5471/src/up_timerisr.c b/nuttx/arch/c5471/src/up_timerisr.c
deleted file mode 100644
index d3c03a191..000000000
--- a/nuttx/arch/c5471/src/up_timerisr.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/************************************************************
- * up_timerisr.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "clock_internal.h"
-#include "up_internal.h"
-#include "c5471.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* We want the general purpose timer running at the rate
- * MSEC_PER_TICK. The C5471 clock is 47.5MHz and we're using
- * a timer PTV value of 3 (3 == divide incoming frequency by
- * 16) which then yields a 16 bitCLKS_PER_INT value
- * of 29687.
- *
- * 47500000 / 16 = 2968750 clocks/sec
- * 2968750 / 100 = 29687 clocks/ 100Hz interrupt
- *
- */
-
-#define CLKS_PER_INT 29687
-#define CLKS_PER_INT_SHIFT 5
-#define AR 0x00000010
-#define ST 0x00000008
-#define PTV 0x00000003
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Function: up_timerisr
- *
- * Description:
- * The timer ISR will perform a variety of services for
- * various portions of the systems.
- *
- ************************************************************/
-
-int up_timerisr(int irq, uint32 *regs)
-{
- /* Process timer interrupt */
-
- sched_process_timer();
- return 0;
-}
-
-/************************************************************
- * Function: up_timerinit
- *
- * Description:
- * This function is called during start-up to initialize
- * the timer interrupt.
- *
- ************************************************************/
-
-void up_timerinit(void)
-{
- uint32 val;
-
- up_disable_irq(C5471_IRQ_SYSTIMER);
-
- /* Start the general purpose timer running in auto-reload mode
- * so that an interrupt is generated at the rate MSEC_PER_TICK.
- */
-
- val = ((CLKS_PER_INT-1) << CLKS_PER_INT_SHIFT) | AR | ST | PTV;
- putreg32(val, C5471_TIMER2_CTRL);
-
- /* Attach and enable the timer interrupt */
-
- irq_attach(C5471_IRQ_SYSTIMER, (xcpt_t)up_timerisr);
- up_enable_irq(C5471_IRQ_SYSTIMER);
-}
-
diff --git a/nuttx/arch/c5471/src/up_unblocktask.c b/nuttx/arch/c5471/src/up_unblocktask.c
deleted file mode 100644
index b12f8a98c..000000000
--- a/nuttx/arch/c5471/src/up_unblocktask.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/************************************************************
- * up_unblocktask.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "clock_internal.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_unblock_task
- *
- * Description:
- * A task is currently in an inactive task list
- * but has been prepped to execute. Move the TCB to the
- * ready-to-run list, restore its context, and start execution.
- *
- * Inputs:
- * tcb: Refers to the tcb to be unblocked. This tcb is
- * in one of the waiting tasks lists. It must be moved to
- * the ready-to-run list and, if it is the highest priority
- * ready to run taks, executed.
- *
- ************************************************************/
-
-void up_unblock_task(_TCB *tcb)
-{
- /* Verify that the context switch can be performed */
-
- if ((tcb->task_state < FIRST_BLOCKED_STATE) ||
- (tcb->task_state > LAST_BLOCKED_STATE))
- {
- PANIC(OSERR_BADUNBLOCKSTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-
- lldbg("Unblocking TCB=%p\n", tcb);
-
- /* Remove the task from the blocked task list */
-
- sched_removeblocked(tcb);
-
- /* Reset its timeslice. This is only meaningful for round
- * robin tasks but it doesn't hurt to do it for all tasks
- */
-
-#if CONFIG_RR_INTERVAL > 0
- tcb->timeslice = CONFIG_RR_INTERVAL / MSEC_PER_TICK;
-#endif
-
- /* Add the task in the correct location in the prioritized
- * g_readytorun task list
- */
-
- if (sched_addreadytorun(tcb))
- {
- /* The currently active task has changed! We need to do
- * a context switch to the new task.
- *
- * Are we in an interrupt handler?
- */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* We are not in an interrupt handler. Copy the user C context
- * into the TCB of the task that was previously active. if
- * up_saveusercontext returns a non-zero value, then this is really the
- * previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the new task that is ready to
- * run (probably tcb). This is the new rtcb at the head of the
- * g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/c5471/src/up_undefinedinsn.c b/nuttx/arch/c5471/src/up_undefinedinsn.c
deleted file mode 100644
index 25c46b133..000000000
--- a/nuttx/arch/c5471/src/up_undefinedinsn.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/************************************************************
- * up_undefinedinsn.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_undefinedinsn
- ************************************************************/
-
-void up_undefinedinsn(uint32 *regs)
-{
- PANIC(OSERR_UNDEFINEDINSN);
-}
diff --git a/nuttx/arch/c5471/src/up_usestack.c b/nuttx/arch/c5471/src/up_usestack.c
deleted file mode 100644
index db2c1796e..000000000
--- a/nuttx/arch/c5471/src/up_usestack.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/************************************************************
- * up_usestack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_use_stack
- *
- * Description:
- * Setup up stack-related information in the TCB
- * using pre-allocated stack memory
- *
- * The following TCB fields must be initialized:
- * adj_stack_size: Stack size after adjustment for hardware,
- * processor, etc. This value is retained only for debug
- * purposes.
- * stack_alloc_ptr: Pointer to allocated stack
- * adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The
- * initial value of the stack pointer.
- *
- * Inputs:
- * tcb: The TCB of new task
- * stack_size: The allocated stack size.
- *
- ************************************************************/
-
-STATUS up_use_stack(_TCB *tcb, void *stack, size_t stack_size)
-{
- size_t top_of_stack;
- size_t size_of_stack;
-
- if (tcb->stack_alloc_ptr)
- {
- sched_free(tcb->stack_alloc_ptr);
- }
-
- /* Save the stack allocation */
-
- tcb->stack_alloc_ptr = stack;
-
- /* The Arm7Tdmi uses a push-down stack: the stack grows
- * toward loweraddresses in memory. The stack pointer
- * register, points to the lowest, valid work address
- * (the "top" of the stack). Items on the stack are
- * referenced as positive word offsets from sp.
- */
-
- top_of_stack = (uint32)tcb->stack_alloc_ptr + stack_size - 4;
-
- /* The Arm7Tdmi stack must be aligned at word (4 byte)
- * boundaries. If necessary top_of_stack must be rounded
- * down to the next boundary
- */
-
- top_of_stack &= ~3;
- size_of_stack = top_of_stack - (uint32)tcb->stack_alloc_ptr + 4;
-
- /* Save the adjusted stack values in the _TCB */
-
- tcb->adj_stack_size = top_of_stack;
- tcb->adj_stack_size = size_of_stack;
-
- return OK;
-}
diff --git a/nuttx/arch/c5471/src/up_vectors.S b/nuttx/arch/c5471/src/up_vectors.S
deleted file mode 100644
index d54c43f2b..000000000
--- a/nuttx/arch/c5471/src/up_vectors.S
+++ /dev/null
@@ -1,449 +0,0 @@
-/************************************************************
- * up_vectors.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <nuttx/irq.h>
-#include "c5471.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Global Data
- ************************************************************/
-
- .data
-g_irqtmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-g_undeftmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-g_aborttmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-
-/************************************************************
- * Macros
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
- .text
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
- .text
-
-/************************************************************
- * Name: up_vectorirq
- *
- * Description:
- * Interrupt excetpion. Entered in IRQ mode with spsr = SVC
- * CPSR, lr = SVC PC
- ************************************************************/
-
- .global up_vectorirq
- .type up_vectorirq, %function
-up_vectorirq:
- /* On entry, we are in IRQ mode. We are free to use
- * the IRQ mode r13 and r14.
- *
- */
-
- ldr r13, .Lirqtmp
- sub lr, lr, #4
- str lr, [r13] @ save lr_IRQ
- mrs lr, spsr
- str lr, [r13, #4] @ save spsr_IRQ
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #I_BIT | SVC_MODE
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lirqtmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Now decode the interrupt */
-
-#if 0
- ldr lr, =SRC_IRQ_BIN_REG /* Fetch encoded IRQ */
- ldr r0, [lr]
- and r0, r0, #0x0f /* Valid range is 0..15 */
-
- /* Problems here... cannot read SRC_IRQ_BIN_REQ (and/or
- * SRC_IRQ_REQ because this will clear edge triggered
- * interrupts. Plus, no way to validate spurious
- * interrupt.
- */
-#else
- ldr r6, =SRC_IRQ_REG
- ldr r6, [r6] /* Get source IRQ reg */
- mov r0, #0 /* Assume IRQ0_IRQ set */
-.Lmorebits:
- tst r6, #1 /* Is IRQ set? */
- bne .Lhaveirq /* Yes... we have the IRQ */
- add r0, r0, #1 /* Setup next IRQ */
- mov r6, r6, lsr #1 /* Shift right one */
- cmp r0, #16 /* Only 16 valid bits */
- bcc .Lmorebits /* Keep until we have looked
- * at all bits */
- b .Lnoirqset /* If we get here, there is
- * no pending interrupt */
-.Lhaveirq:
-#endif
- /* Then call the IRQ handler with interrupt disabled. */
-
- mov fp, #0 /* Init frame pointer */
- mov r1, sp /* Get r1=xcp */
- bl up_doirq /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-.Lnoirqset:
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lirqtmp:
- .word g_irqtmp
-
- .align 5
-
-/************************************************************
- * Function: up_vectorswi
- *
- * Description:
- * SWI interrupt. We enter the SWI in SVC mode
- ************************************************************/
-
- .global up_vectorswi
- .type up_vectorswi, %function
-up_vectorswi:
-
- /* The c547x rrload bootloader intemediates all
- * interrupts. For the* case of the SWI, it mucked
- * with the stack to create some temporary registers.
- * We'll have to recover from this mucking here.
- */
-
- ldr r14, [sp,#-0x4] /* rrload workaround */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp), r14(lr), r15(pc)
- * and CPSR in r1-r4 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14 /* R14 is altered on return from SWI */
- mov r3, r14 /* Save r14 as the PC as well */
- mrs r4, spsr /* Get the saved CPSR */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the SWI handler with interrupt disabled.
- * void up_syscall(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_syscall /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr, r0
- ldmia sp, {r0-r15}^ /* Return */
-
- .align 5
-
-/************************************************************
- * Name: up_vectordata
- *
- * Description:
- * Data abort Exception dispatcher. Give control to data
- * abort handler. This function is entered in ABORT mode
- * with spsr = SVC CPSR, lr = SVC PC
- *
- ************************************************************/
-
- .global up_vectordata
- .type up_vectordata, %function
-up_vectordata:
- /* On entry we are free to use the ABORT mode registers
- * r13 and r14
- */
-
- ldr r13, .Ldaborttmp /* Points to temp storage */
- sub lr, lr, #8 /* Fixup return */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #I_BIT | SVC_MODE
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Ldaborttmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the data abort handler with interrupt disabled.
- * void up_dataabort(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_dataabort /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Ldaborttmp:
- .word g_aborttmp
-
- .align 5
-
-/************************************************************
- * Name: up_vectorprefetch
- *
- * Description:
- * Prefetch abort exception. Entered in ABT mode with
- * spsr = SVC CPSR, lr = SVC PC
- ************************************************************/
-
- .global up_vectorprefetch
- .type up_vectorprefetch, %function
-up_vectorprefetch:
- /* On entry we are free to use the ABORT mode registers
- * r13 and r14
- */
-
- ldr r13, .Lpaborttmp /* Points to temp storage */
- sub lr, lr, #4 /* Fixup return */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #I_BIT | SVC_MODE
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lpaborttmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the prefetch abort handler with interrupt disabled.
- * void up_prefetchabort(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_prefetchabort /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lpaborttmp:
- .word g_aborttmp
-
- .align 5
-
-/************************************************************
- * Name: up_vectorundefinsn
- *
- * Description:
- * Undefined instruction entry exception. Entered in
- * UND mode, spsr = SVC CPSR, lr = SVC PC
- *
- ************************************************************/
-
- .global up_vectorundefinsn
- .type up_vectorundefinsn, %function
-up_vectorundefinsn:
- /* On entry we are free to use the UND mode registers
- * r13 and r14
- */
-
- ldr r13, .Lundeftmp /* Points to temp storage */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #I_BIT | SVC_MODE
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lundeftmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the undef insn handler with interrupt disabled.
- * void up_undefinedinsn(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_undefinedinsn /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lundeftmp:
- .word g_undeftmp
-
- .align 5
-
-/************************************************************
- * Name: up_vectorfiq
- *
- * Description:
- * Shouldn't happen
- ************************************************************/
-
- .global up_vectorfiq
- .type up_vectorfiq, %function
-up_vectorfiq:
- subs pc, lr, #4
-
-/************************************************************
- * Name: up_vectoraddrexcption
- *
- * Description:
- * Shouldn't happen
- *
- ************************************************************/
-
- .global up_vectoraddrexcptn
- .type up_vectoraddrexcptn, %function
-up_vectoraddrexcptn:
- b up_vectoraddrexcptn
- .end
diff --git a/nuttx/arch/c5471/src/up_watchdog.c b/nuttx/arch/c5471/src/up_watchdog.c
deleted file mode 100644
index efa233d4f..000000000
--- a/nuttx/arch/c5471/src/up_watchdog.c
+++ /dev/null
@@ -1,392 +0,0 @@
-/**************************************************************************
- * up_watchdog.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <stdio.h>
-#include <debug.h>
-#include <errno.h>
-#include <nuttx/fs.h>
-#include <nuttx/irq.h>
-#include <arch/watchdog.h>
-#include "c5471.h"
-
-/**************************************************************************
- * Definitions
- **************************************************************************/
-
-#undef CONFIG_SOFTWARE_TEST
-#undef CONFIG_SOFTWARE_REBOOT
-#undef CONFIG_WATCHDOG_STRICT
-
-#define MAX_WDT_USEC 353200
-#define MAX_PRESCALER 256
-#define C5471_TIMER_STOP 0
-
-#define C5471_TIMER_PRESCALER 0x07 /* Bits 0-2: Prescale value */
-#define C5471_TIMER_STARTBIT (1 << 3) /* Bit 3: Start timer bit */
-#define C5471_TIMER_AUTORELOAD (1 << 4) /* Bit 4: Auto-reload timer */
-#define C5471_TIMER_LOADTIM (0xffff << 5) /* Bits 20-5: Load timer value */
-#define C5471_TIMER_MODE (1 << 21) /* Bit 21: Timer mode */
-#define C5471_DISABLE_VALUE1 (0xf5 << 22) /* Bits 29-22: WD disable */
-#define C5471_DISABLE_VALUE2 (0xa0 << 22)
-
-#define CLOCK_KHZ 47500
-#define CLOCK_MHZx2 95
-
-/* Macros to manage access to to watchdog timer macros */
-
-#define c5471_wdt_cntl (*(volatile uint32*)C5471_TIMER0_CTRL)
-#define c5471_wdt_count (*(volatile uint32*)C5471_TIMER0_CNT)
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/* Local implementation of timer interface */
-
-static inline unsigned int wdt_prescaletoptv(unsigned int prescale);
-
-static int wdt_setusec(uint32 usec);
-static int wdt_interrupt(int irq, void *context);
-
-static int wdt_open(struct file *filep);
-static int wdt_close(struct file *filep);
-static ssize_t wdt_read(struct file *filep, char *buffer, size_t buflen);
-static ssize_t wdt_write(struct file *filep, const char *buffer, size_t buflen);
-static int wdt_ioctl(struct file *filep, int cmd, uint32 arg);
-
-/**************************************************************************
- * Private Data
- **************************************************************************/
-
-static boolean g_wdtopen;
-
-struct file_operations g_wdtops =
-{
- .open = wdt_open,
- .close = wdt_close,
- .read = wdt_read,
- .write = wdt_write,
- .ioctl = wdt_ioctl,
-};
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: wdt_prescaletoptv
- **************************************************************************/
-
-static inline unsigned int wdt_prescaletoptv(unsigned int prescale)
-{
- unsigned int ptv = 0;
-
- if (prescale > 255)
- {
- ptv = 7;
- }
- else
- {
- unsigned int value = prescale >> 1;
-
- /* 0: 0-2
- * 1: 3-4
- * 2: 5-8
- * 3: 9-16
- * 4: 17-32
- * 5: 33-64
- * 6: 65-128
- * 7: 129-
- */
-
- while (value > 1)
- {
- value >>= 1;
- ptv++;
- }
- }
-
- dbg("prescale=%d -> ptv=%d\n", prescale, ptv);
- return ptv;
-}
-
-/**************************************************************************
- * Name: wdt_setusec
- **************************************************************************/
-
-static int wdt_setusec(uint32 usec)
-{
- /* prescaler: clock / prescaler = #clock ticks per counter in ptv
- * divisor: #counts until the interrupt comes.
- */
-
- uint32 prescaler = MAX_PRESCALER;
- uint32 divisor = 1;
- uint32 mode;
-
- dbg("usec=%d\n", usec);
-
- /* Calculate a value of prescaler and divisor that will be able
- * to count to the usec. It may not be exact or the best
- * possible set, but it's a quick and simple algorithm.
- *
- * divisor max = 0x10000
- * prescaler max = MAX_PRESCALER
- */
-
- do
- {
- divisor = (CLOCK_MHZx2 * usec) / (prescaler * 2);
- dbg("divisor=0x%x prescaler=0x%x\n", divisor, prescaler);
-
- if (divisor >= 0x10000)
- {
- if (prescaler == MAX_PRESCALER)
- {
- /* This is the max possible ~2.5 seconds. */
-
- dbg("prescaler=0x%x too big!\n", prescaler);
- return ERROR;
- }
-
- prescaler <<= 1;
- if (prescaler > MAX_PRESCALER)
- {
- prescaler = MAX_PRESCALER;
- }
- }
- }
- while (divisor >= 0x10000);
-
- dbg("prescaler=0x%x divisor=0x%x\n", prescaler, divisor);
-
- mode = wdt_prescaletoptv(prescaler);
- mode &= ~C5471_TIMER_AUTORELOAD; /* One shot mode. */
- mode |= divisor << 5;
- dbg("mode=0x%x\n", mode);
-
- c5471_wdt_cntl = mode;
-
- /* Now start the watchdog */
-
- c5471_wdt_cntl |= C5471_TIMER_STARTBIT;
- dbg("cntl_timer=0x%x\n", c5471_wdt_cntl);
-
- return 0;
-}
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: wdt_interrupt
- **************************************************************************/
-
-static int wdt_interrupt(int irq, void *context)
-{
- dbg("expired\n");
-
-#if defined(CONFIG_SOFTWARE_REBOOT)
-# if defined(CONFIG_SOFTWARE_TEST)
- dbg(" Test only\n");
-# else
- dbg(" Re-booting\n");
-# warning "Add logic to reset CPU here"
-# endif
-#else
- dbg(" No reboot\n");
-#endif
- return OK;
-}
-
-/**************************************************************************
- * Name: wdt_read
- **************************************************************************/
-
-static ssize_t wdt_read(struct file *filep, char *buffer, size_t buflen)
-{
- /* We are going to return "NNNNNNNN NNNNNNNN." The followig logic will
- * not work if the user provides a buffer smaller than 18 bytes.
- */
-
- dbg("buflen=%d\n", buflen);
- if (buflen >= 18)
- {
- sprintf(buffer, "#08x %08x\n", c5471_wdt_cntl, c5471_wdt_count);
- return 18;
- }
- return 0;
-}
-
-/**************************************************************************
- * Name: wdt_write
- **************************************************************************/
-
-static ssize_t wdt_write(struct file *filep, const char *buffer, size_t buflen)
-{
- dbg("buflen=%d\n", buflen);
- if (buflen)
- {
- /* Reset the timer to the maximum delay */
-
- wdt_setusec(MAX_WDT_USEC);
- return 1;
- }
-
- return 0;
-}
-
-/**************************************************************************
- * Name: wdt_ioctl
- **************************************************************************/
-
-static int wdt_ioctl(struct file *filep, int cmd, uint32 arg)
-{
- dbg("ioctl Call: cmd=0x%x arg=0x%x", cmd, arg);
-
- /* Process the the IOCTL command (see arch/watchdog.h) */
-
- switch(cmd)
- {
- case WDIOC_KEEPALIVE:
- wdt_setusec(MAX_WDT_USEC);
- break;
-
- default:
- *get_errno_ptr() = ENOTTY;
- return ERROR;
- }
-
- return OK;
-}
-
-/**************************************************************************
- * Name: wdt_open
- **************************************************************************/
-
-static int wdt_open(struct file *filep)
-{
- dbg("");
-
- if (g_wdtopen)
- {
- *get_errno_ptr() = EBUSY;
- }
-
- /* This will automatically load the timer with its max
- * count and start it running.
- */
-
- c5471_wdt_cntl = C5471_DISABLE_VALUE1;
- c5471_wdt_cntl = C5471_DISABLE_VALUE2;
-
- g_wdtopen = TRUE;
- return OK;
-}
-
-/**************************************************************************
- * Name: wdt_close
- **************************************************************************/
-
-static int wdt_close(struct file *filep)
-{
- dbg("");
-
- /* The task controlling the watchdog has terminated. Take the timer
- * the
- * watchdog in interrupt mode -- we are going to reset unless the
- * reopened again soon.
- */
-
-#ifndef CONFIG_WATCHDOG_STRICT
- c5471_wdt_cntl = C5471_TIMER_MODE;
-#endif
-
- g_wdtopen = FALSE;
- return 0;
-}
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_wdtinit
- **************************************************************************/
-
-int up_wdtinit(void)
-{
- int ret;
-
- dbg("C547x Watchdog Driver\n");
-
- /* Register as /dev/wdt */
-
- ret = register_driver("/dev/wdt", &g_wdtops, 0666, NULL);
- if (ret)
- {
- return ERROR;
- }
-
- /* Register for an interrupt level callback through wdt_interrupt */
-
- dbg("Attach to IRQ=%d\n", C5471_IRQ_WATCHDOG);
-
- /* Make sure that the timer is stopped */
-
- c5471_wdt_cntl = C5471_TIMER_STOP;
-
- /* Request the interrupt. */
-
- ret = irq_attach(C5471_IRQ_WATCHDOG, wdt_interrupt);
- if (ret)
- {
- unregister_driver("/dev/wdt");
- return ERROR;
- }
-
- return OK;
-}
diff --git a/nuttx/arch/dm320/include/arch.h b/nuttx/arch/dm320/include/arch.h
deleted file mode 100644
index a64ecb5e9..000000000
--- a/nuttx/arch/dm320/include/arch.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/************************************************************
- * arch/arch.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/arch.h
- */
-
-#ifndef __ARCH_ARCH_H
-#define __ARCH_ARCH_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ARCH_ARCH_H */
-
diff --git a/nuttx/arch/dm320/include/dm320/irq.h b/nuttx/arch/dm320/include/dm320/irq.h
deleted file mode 100644
index 424cffab3..000000000
--- a/nuttx/arch/dm320/include/dm320/irq.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/************************************************************
- * arch/dm320/irq.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/irq.h
- */
-
-#ifndef __ARCH_DM320_IRQ_H
-#define __ARCH_DM320_IRQ_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* DM320 Interrupts */
-
-#define DM320_IRQ_TMR0 0 /* IRQ0: Timer 0 Interrupt */
-#define DM320_IRQ_TMR1 1 /* IRQ1: Timer 1 Interrupt */
-#define DM320_IRQ_TMR2 2 /* IRQ2: Timer 2 Interrupt (CCD timer 0) */
-#define DM320_IRQ_TMR3 3 /* IRQ3: Timer 3 Interrupt (CCD timer 1) */
-#define DM320_IRQ_CCDVD0 4 /* IRQ4: CCD VD Interrupt #0 */
-#define DM320_IRQ_CCDVD1 5 /* IRQ5: CCD VD Interrupt #1 */
-#define DM320_IRQ_CCDWEN 6 /* IRQ6: CCD WEN Interrupt */
-#define DM320_IRQ_VENC 7 /* IRQ7: Video Encoder Interrupt */
-#define DM320_IRQ_SP0 8 /* IRQ8: Serial Port 0 Interrupt (with DMA) */
-#define DM320_IRQ_SP1 9 /* IRQ9: Serial Port 1 Interrupt */
-#define DM320_IRQ_EXTHOST 10 /* IRQ10: External host interrupt */
-#define DM320_IRQ_IMGBUF 11 /* IRQ11: Image Buffer */
-#define DM320_IRQ_UART0 12 /* IRQ12: UART0 Interrupt */
-#define DM320_IRQ_UART1 13 /* IRQ13: UART1 Interrupt */
-#define DM320_IRQ_USB0 14 /* IRQ14: USB 0 Interrupt (DMA) */
-#define DM320_IRQ_USB1 15 /* IRQ15: USB 1 Interrupt (Core) */
-#define DM320_IRQ_VLYNQ 16 /* IRQ16: VLYNQ Interrupt */
-#define DM320_IRQ_MTC0 17 /* IRQ17: Memory Traffic Controller 0 (DMA) */
-#define DM320_IRQ_MTC1 18 /* IRQ18: Memory Traffic Controller 1 (CFC_RDY) */
-#define DM320_IRQ_MMCSD0 19 /* IRQ19: MMC/SD or MS 0 Interrupt */
-#define DM320_IRQ_MMCSD1 20 /* IRQ20: MMC/SD or MS 1 Interrupt */
-#define DM320_IRQ_EXT0 21 /* IRQ21: External Interrupt #0 (GIO0) */
-#define DM320_IRQ_EXT1 22 /* IRQ22: External Interrupt #1 (GIO1) */
-#define DM320_IRQ_EXT2 23 /* IRQ23: External Interrupt #2 (GIO2) */
-#define DM320_IRQ_EXT3 24 /* IRQ24: External Interrupt #3 (GIO3) */
-#define DM320_IRQ_EXT4 25 /* IRQ25: External Interrupt #4 (GIO4) */
-#define DM320_IRQ_EXT5 26 /* IRQ26: External Interrupt #5 (GIO5) */
-#define DM320_IRQ_EXT6 27 /* IRQ27: External Interrupt #6 (GIO6) */
-#define DM320_IRQ_EXT7 28 /* IRQ28: External Interrupt #7 (GIO7) */
-#define DM320_IRQ_EXT8 29 /* IRQ29: External Interrupt #8 (GIO8) */
-#define DM320_IRQ_EXT9 30 /* IRQ30: External Interrupt #9 (GIO9) */
-#define DM320_IRQ_EXT10 31 /* IRQ31: External Interrupt #10 (GIO10) */
-#define DM320_IRQ_EXT11 32 /* IRQ32: External Interrupt #11 (GIO11) */
-#define DM320_IRQ_EXT12 33 /* IRQ33: External Interrupt #12 (GIO12) */
-#define DM320_IRQ_EXT13 34 /* IRQ34: External Interrupt #13 (GIO13) */
-#define DM320_IRQ_EXT14 35 /* IRQ35: External Interrupt #14 (GIO14) */
-#define DM320_IRQ_EXT15 36 /* IRQ36: External Interrupt #15 (GIO15) */
-#define DM320_IRQ_PREV0 37 /* IRQ37: Preview Engine 0 (Preview Over) */
-#define DM320_IRQ_PREV1 38 /* IRQ38: Preview Engine 1 (Preview Historgram Over) */
-#define DM320_IRQ_WDT 39 /* IRQ39: Watchdog Timer Interrupt */
-#define DM320_IRQ_I2C 40 /* IRQ40: I2C Interrupt */
-#define DM320_IRQ_CLKC 41 /* IRQ41: Clock controller Interrupt (wake up) */
-#define DM320_IRQ_E2ICE 42 /* IRQ42: Embedded ICE Interrupt */
-#define DM320_IRQ_ARMCOMRX 43 /* IRQ43: ARMCOMM Receive Interrupt */
-#define DM320_IRQ_ARMCOMTX 44 /* IRQ44: ARMCOMM Transmit Interrupt */
-#define DM320_IRQ_RSV 45 /* IRQ45: Reserved Interrupt */
-
-#define DM320_IRQ_SYSTIMER DM320_IRQ_TMR0
-#define NR_IRQS (DM320_IRQ_RSV+1)
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#endif /* __ARCH_DM320_IRQ_H */
-
diff --git a/nuttx/arch/dm320/include/irq.h b/nuttx/arch/dm320/include/irq.h
deleted file mode 100644
index c838ad402..000000000
--- a/nuttx/arch/dm320/include/irq.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/************************************************************
- * arch/irq.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through nuttx/irq.h
- */
-
-#ifndef __ARCH_IRQ_H
-#define __ARCH_IRQ_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <arch/chip/irq.h>
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* IRQ Stack Frame Format:
- *
- * Context is always saved/restored in the same way:
- *
- * (1) stmia rx, {r0-r14}
- * (2) then the PC and CPSR
- *
- * This results in the following set of indices that
- * can be used to access individual registers in the
- * xcp.regs array:
- */
-
-#define REG_R0 (0)
-#define REG_R1 (1)
-#define REG_R2 (2)
-#define REG_R3 (3)
-#define REG_R4 (4)
-#define REG_R5 (5)
-#define REG_R6 (6)
-#define REG_R7 (7)
-#define REG_R8 (8)
-#define REG_R9 (9)
-#define REG_R10 (10)
-#define REG_R11 (11)
-#define REG_R12 (12)
-#define REG_R13 (13)
-#define REG_R14 (14)
-#define REG_R15 (15)
-#define REG_CPSR (16)
-
-#define XCPTCONTEXT_REGS (17)
-#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS)
-
-#define REG_A1 REG_R0
-#define REG_A2 REG_R1
-#define REG_A3 REG_R2
-#define REG_A4 REG_R3
-#define REG_V1 REG_R4
-#define REG_V2 REG_R5
-#define REG_V3 REG_R6
-#define REG_V4 REG_R7
-#define REG_V5 REG_R8
-#define REG_V6 REG_R9
-#define REG_V7 REG_R10
-#define REG_SB REG_R9
-#define REG_SL REG_R10
-#define REG_FP REG_R11
-#define REG_IP REG_R12
-#define REG_SP REG_R13
-#define REG_LR REG_R14
-#define REG_PC REG_R15
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-/* This struct defines the way the registers are stored. We
- * need to save:
- *
- * 1 CPSR
- * 7 Static registers, v1-v7 (aka r4-r10)
- * 1 Frame pointer, fp (aka r11)
- * 1 Stack pointer, sp (aka r13)
- * 1 Return address, lr (aka r14)
- * ---
- * 11 (XCPTCONTEXT_USER_REG)
- *
- * On interrupts, we also need to save:
- * 4 Volatile registers, a1-a4 (aka r0-r3)
- * 1 Scratch Register, ip (aka r12)
- *---
- * 5 (XCPTCONTEXT_IRQ_REGS)
- *
- * For a total of 17 (XCPTCONTEXT_REGS)
- */
-
-#ifndef __ASSEMBLY__
-struct xcptcontext
-{
- /* The following function pointer is non-zero if there
- * are pending signals to be processed.
- */
-
- void *sigdeliver; /* Actual type is sig_deliver_t */
-
- /* These are saved copies of LR and CPSR used during
- * signal processing.
- */
-
- uint32 saved_pc;
- uint32 saved_cpsr;
-
- /* Register save area */
-
- uint32 regs[XCPTCONTEXT_REGS];
-};
-#endif
-
-/************************************************************
- * Inline functions
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* Save the current interrupt enable state & disable IRQs */
-
-static inline irqstate_t irqsave(void)
-{
- unsigned int flags;
- unsigned int temp;
- __asm__ __volatile__
- (
- "\tmrs %0, cpsr\n"
- "\torr %1, %0, #128\n"
- "\tmsr cpsr_c, %1"
- : "=r" (flags), "=r" (temp)
- :
- : "memory");
- return flags;
-}
-
-/* Restore saved IRQ & FIQ state */
-
-static inline void irqrestore(irqstate_t flags)
-{
- __asm__ __volatile__
- (
- "msr cpsr_c, %0"
- :
- : "r" (flags)
- : "memory");
-}
-
-static inline void system_call(swint_t func, int parm1,
- int parm2, int parm3)
-{
- __asm__ __volatile__
- (
- "mov\tr0,%0\n\t"
- "mov\tr1,%1\n\t"
- "mov\tr2,%2\n\t"
- "mov\tr3,%3\n\t"
- "swi\t0x900001\n\t"
- :
- : "r" ((long)(func)), "r" ((long)(parm1)),
- "r" ((long)(parm2)), "r" ((long)(parm3))
- : "r0", "r1", "r2", "r3", "lr");
-}
-#endif
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-/************************************************************
- * Public Function Prototypes
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#endif /* __ARCH_IRQ_H */
-
diff --git a/nuttx/arch/dm320/include/limits.h b/nuttx/arch/dm320/include/limits.h
deleted file mode 100644
index a692c9c36..000000000
--- a/nuttx/arch/dm320/include/limits.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/************************************************************
- * limits.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __ARCH_LIMITS_H
-#define __ARCH_LIMITS_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define CHAR_BIT 8
-#define SCHAR_MIN 0x80
-#define SCHAR_MAX 0x7f
-#define UCHAR_MAX 0xff
-
-/* These could be different on machines where char is unsigned */
-
-#define CHAR_MIN SCHAR_MIN
-#define CHAR_MAX SCHAR_MAX
-
-#define SHRT_MIN 0x8000
-#define SHRT_MAX 0x7fff
-#define USHRT_MAX 0xffff
-
-#define INT_MIN 0x80000000
-#define INT_MAX 0x7fffffff
-#define UINT_MAX 0xffffffff
-
-/* These change on 32-bit and 64-bit platforms */
-
-#define LONG_MAX 0x80000000
-#define LONG_MIN 0x7fffffff
-#define ULONG_MAX 0xffffffff
-
-#define LLONG_MAX 0x8000000000000000
-#define LLONG_MIN 0x7fffffffffffffff
-#define ULLONG_MAX 0xffffffffffffffff
-
-#endif /* __ARCH_LIMITS_H */
diff --git a/nuttx/arch/dm320/include/serial.h b/nuttx/arch/dm320/include/serial.h
deleted file mode 100644
index 1439300b0..000000000
--- a/nuttx/arch/dm320/include/serial.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/************************************************************
- * arch/serial.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __ARCH_SERIAL_H
-#define __ARCH_SERIAL_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* IOCTL commands supported by the ARM serial driver */
-
-#define TIOCSBRK 0x5401 /* BSD compatibility */
-#define TIOCCBRK 0x5402 /* " " " " */
-#define TIOCSERGSTRUCT 0x5403 /* Get up_dev_t for port */
-
-/************************************************************
- * Public Data
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-#endif /* __ARCH_SERIAL_H */
diff --git a/nuttx/arch/dm320/include/types.h b/nuttx/arch/dm320/include/types.h
deleted file mode 100644
index 760790327..000000000
--- a/nuttx/arch/dm320/include/types.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/************************************************************
- * arch/types.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/* This file should never be included directed but, rather,
- * only indirectly through sys/types.h
- */
-
-#ifndef __ARCH_TYPES_H
-#define __ARCH_TYPES_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Type Declarations
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* These are the sizes of the standard GNU types */
-
-typedef char sbyte;
-typedef unsigned char ubyte;
-typedef unsigned char uint8;
-typedef unsigned char boolean;
-typedef short sint16;
-typedef unsigned short uint16;
-typedef int sint32;
-typedef unsigned int uint32;
-typedef long long sint64;
-typedef unsigned long long uint64;
-
-/* This is the size of the interrupt state save returned by
- * irqsave()
- */
-
-typedef unsigned int irqstate_t;
-
-#endif /* __ASSEMBLY__ */
-
-/************************************************************
- * Global Function Prototypes
- ************************************************************/
-
-#endif /* __ARCH_TYPES_H */
diff --git a/nuttx/arch/dm320/src/Makefile b/nuttx/arch/dm320/src/Makefile
deleted file mode 100644
index 8ce53aa74..000000000
--- a/nuttx/arch/dm320/src/Makefile
+++ /dev/null
@@ -1,125 +0,0 @@
-############################################################################
-# arch/dm320/src/Makefile
-#
-# Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-# 3. Neither the name NuttX nor the names of its contributors may be
-# used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-############################################################################
-
--include $(TOPDIR)/Make.defs
-
-CFLAGS += -I$(TOPDIR)/sched
-
-ASRCS = up_vectors.S up_saveusercontext.S up_fullcontextrestore.S \
- up_restart.S up_cache.S up_lowputc.S
-AOBJS = $(ASRCS:.S=.o)
-
-CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_boot.c \
- up_copystate.c up_createstack.c up_dataabort.c up_delay.c \
- up_doirq.c up_exit.c up_idle.c up_initialize.c \
- up_initialstate.c up_interruptcontext.c up_irq.c \
- up_prefetchabort.c up_releasepending.c up_releasestack.c \
- up_reprioritizertr.c up_schedulesigaction.c up_serial.c \
- up_sigdeliver.c up_syscall.c up_timerisr.c up_unblocktask.c \
- up_undefinedinsn.c up_usestack.c
-COBJS = $(CSRCS:.c=.o)
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-LDFLAGS = $(ARCHSCRIPT)
-EXTRA_LIBS =
-
-LINKOBJS = up_head$(OBJEXT)
-LINKLIBS =
-LDPATHES = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
-LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
-
-BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
-
-LIBGCC = ${shell $(CC) -print-libgcc-file-name}
-
-all: up_head.o libarch$(LIBEXT)
-
-$(AOBJS) $(LINKOBJS): %.o: %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %.o: %.c
- $(call COMPILE, $<, $@)
-
-libarch$(LIBEXT): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-board/libboard$(LIBEXT):
- $(MAKE) -C board TOPDIR=$(TOPDIR) libboard$(LIBEXT)
-
-nuttx: $(LINKOBJS) board/libboard$(LIBEXT)
- $(LD) --entry=__start $(LDFLAGS) $(LDPATHES) -L$(BOARDDIR) -o $(TOPDIR)/$@ $(LINKOBJS) \
- --start-group $(LDLIBS) -lboard --end-group $(EXTRA_LIBS) $(LIBGCC)
- @$(NM) $(TOPDIR)/$@ | \
- grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
- sort > $(TOPDIR)/System.map
- @export vflashstart=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _vflashstart | cut -d' ' -f1`; \
- if [ ! -z "$$vflashstart" ]; then \
- $(OBJCOPY) --adjust-section-vma=.vector=0x$$vflashstart $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage; \
- mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@; \
- fi
-ifeq ($(CONFIG_RRLOAD_BINARY),y)
- @$(TOPDIR)/tools/mkimage.sh --Prefix $(CROSSDEV) $(TOPDIR)/$@ $(TOPDIR)/$@.rr
- @if [ -w /tftpboot ] ; then \
- cp -f $(TOPDIR)/$@.rr /tftpboot/$@.rr.${CONFIG_ARCH}; \
- fi
-endif
-
-.depend: Makefile $(SRCS)
- @if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) depend ; \
- if
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
- fi
- @rm -f libarch$(LIBEXT) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) distclean ; \
- fi
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/arch/dm320/src/arm9.h b/nuttx/arch/dm320/src/arm9.h
deleted file mode 100644
index 4c862dcee..000000000
--- a/nuttx/arch/dm320/src/arm9.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/************************************************************************************
- * arm9.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __ARM9_H
-#define __ARM9_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/**************************************************************************
- * Conditional Compilation
- **************************************************************************/
-
-#undef CONFIG_ALIGNMENT_TRAP
-#undef CONFIG_DCACHE_WRITETHROUGH
-#undef CONFIG_CACHE_ROUND_ROBIN
-#undef CONFIG_DCACHE_DISABLE
-#undef CONFIG_ICACHE_DISABLE
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* ARM9EJS **************************************************************************/
-
-/* PSR bits */
-
-#define MODE_MASK 0x0000001f
-#define USR26_MODE 0x00000000
-#define FIQ26_MODE 0x00000001
-#define IRQ26_MODE 0x00000002
-#define SVC26_MODE 0x00000003
-#define USR_MODE 0x00000010
-#define FIQ_MODE 0x00000011
-#define IRQ_MODE 0x00000012
-#define SVC_MODE 0x00000013
-#define ABT_MODE 0x00000017
-#define UND_MODE 0x0000001b
-#define MODE32_BIT 0x00000010
-#define SYSTEM_MODE 0x0000001f
-#define PSR_T_BIT 0x00000020
-#define PSR_F_BIT 0x00000040
-#define PSR_I_BIT 0x00000080
-#define PSR_J_BIT 0x01000000
-#define PSR_Q_BIT 0x08000000
-#define PSR_V_BIT 0x10000000
-#define PSR_C_BIT 0x20000000
-#define PSR_Z_BIT 0x40000000
-#define PSR_N_BIT 0x80000000
-
-/* CR1 bits (CP#15 CR1) */
-
-#define CR_M 0x00000001 /* MMU enable */
-#define CR_A 0x00000002 /* Alignment abort enable */
-#define CR_C 0x00000004 /* Dcache enable */
-#define CR_W 0x00000008 /* Write buffer enable */
-#define CR_P 0x00000010 /* 32-bit exception handler */
-#define CR_D 0x00000020 /* 32-bit data address range */
-#define CR_L 0x00000040 /* Implementation defined */
-#define CR_B 0x00000080 /* Big endian */
-#define CR_S 0x00000100 /* System MMU protection */
-#define CR_R 0x00000200 /* ROM MMU protection */
-#define CR_F 0x00000400 /* Implementation defined */
-#define CR_Z 0x00000800 /* Implementation defined */
-#define CR_I 0x00001000 /* Icache enable */
-#define CR_V 0x00002000 /* Vectors relocated to 0xffff0000 */
-#define CR_RR 0x00004000 /* Round Robin cache replacement */
-#define CR_L4 0x00008000 /* LDR pc can set T bit */
-#define CR_DT 0x00010000
-#define CR_IT 0x00040000
-#define CR_ST 0x00080000
-#define CR_FI 0x00200000 /* Fast interrupt (lower latency mode) */
-#define CR_U 0x00400000 /* Unaligned access operation */
-#define CR_XP 0x00800000 /* Extended page tables */
-#define CR_VE 0x01000000 /* Vectored interrupts */
-
-/* Hardware page table definitions.
- *
- * Level 1 Descriptor (PMD)
- *
- * Common definitions.
- */
-
-#define PMD_TYPE_MASK 0x00000003 /* Bits 1:0: Type of descriptor */
-#define PMD_TYPE_FAULT 0x00000000
-#define PMD_TYPE_COARSE 0x00000001
-#define PMD_TYPE_SECT 0x00000002
-#define PMD_TYPE_FINE 0x00000003
- /* Bits 3:2: Depends on descriptor */
-#define PMD_BIT4 0x00000010 /* Bit 4: Must be one */
-#define PMD_DOMAIN_MASK 0x000001e0 /* Bits 8:5: Domain control bits */
-#define PMD_DOMAIN(x) ((x) << 5)
-#define PMD_PROTECTION 0x00000200 /* Bit 9: v5 only */
- /* Bits 31:10: Depend on descriptor */
-
-/* Level 1 Section Descriptor. Section descriptors allow fast, single
- * level mapping between 1Mb address regions.
- */
- /* Bits 1:0: Type of mapping */
-#define PMD_SECT_BUFFERABLE 0x00000004 /* Bit 2: 1=bufferable */
-#define PMD_SECT_CACHEABLE 0x00000008 /* Bit 3: 1=cacheable */
- /* Bit 4: Common, must be one */
- /* Bits 8:5: Common domain control */
- /* Bit 9: Common protection */
-#define PMD_SECT_AP_MASK 0x00000c00 /* Bits 11:10: Access permission */
-#define PMD_SECT_AP_WRITE 0x00000400
-#define PMD_SECT_AP_READ 0x00000800
- /* Bits 19:20: Should be zero */
-#define PMD_SECT_TEX_MASK 0xfff00000 /* Bits 31:20: v5, Physical page */
-#define PMD_SECT_APX 0x00008000 /* Bit 15: v6 only */
-#define PMD_SECT_S 0x00010000 /* Bit 16: v6 only */
-#define PMD_SECT_nG 0x00020000 /* Bit 17: v6 only */
-
-#define PMD_SECT_UNCACHED (0)
-#define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
-#define PMD_SECT_WT (PMD_SECT_CACHEABLE)
-#define PMD_SECT_WB (PMD_SECT_CACHEABLE|PMD_SECT_BUFFERABLE)
-#define PMD_SECT_MINICACHE (PMD_SECT_TEX(1)|PMD_SECT_CACHEABLE)
-#define PMD_SECT_WBWA (PMD_SECT_TEX(1)|PMD_SECT_CACHEABLE|PMD_SECT_BUFFERABLE)
-
-/* Level 1 Coarse Table Descriptor. Coarse Table Descriptors support
- * two level mapping between 16Kb memory regions.
- */
- /* Bits 1:0: Type of mapping */
- /* Bits 3:2: Should be zero */
- /* Bit 4: Common, must be one */
- /* Bits 8:5: Common domain control */
- /* Bits 9: Should be zero */
-#define PMD_COARSE_TEX_MASK 0xfffffc00 /* Bits 31:10: v5, Physical page */
-
-/* Level 1 Fine Table Descriptor. Coarse Table Descriptors support
- * two level mapping between 4Kb memory regions.
- */
-
- /* Bits 1:0: Type of mapping */
- /* Bits 3:2: Should be zero */
- /* Bit 4: Common, must be one */
- /* Bits 8:5: Common domain control */
- /* Bits 11:9: Should be zero */
-#define PMD_FINE_TEX_MASK 0xfffff000 /* Bits 31:12: v5, Physical page */
-
-/* Level 2 Table Descriptor (PTE). -- All tables */
-
-#define PTE_TYPE_MASK (3 << 0) /* Bits: 1:0: Type of mapping */
-#define PTE_TYPE_FAULT (0 << 0) /* None */
-#define PTE_TYPE_LARGE (1 << 0) /* 64Kb of memory */
-#define PTE_TYPE_SMALL (2 << 0) /* 4Kb of memory */
-#define PTE_TYPE_TINY (3 << 0) /* 1Kb of memory (v5)*/
-#define PTE_BUFFERABLE (1 << 2) /* Bit 2: 1=bufferable */
-#define PTE_CACHEABLE (1 << 3) /* Bit 3: 1=cacheable */
- /* Bits 31:4: Depend on type */
-
-/* Large page -- 64Kb */
- /* Bits: 1:0: Type of mapping */
- /* Bits: 3:2: Bufferable/cacheable */
-#define PTE_LARGE_AP_MASK (0xff << 4) /* Bits 11:4 Access permissions */
-#define PTE_LARGE_AP_UNO_SRO (0x00 << 4)
-#define PTE_LARGE_AP_UNO_SRW (0x55 << 4)
-#define PTE_LARGE_AP_URO_SRW (0xaa << 4)
-#define PTE_LARGE_AP_URW_SRW (0xff << 4)
- /* Bits 15:12: Should be zero */
-#define PTE_LARGE_TEX_MASK 0xffff0000 /* Bits 31:16: v5, Physical page */
-
-/* Small page -- 4Kb */
-
- /* Bits: 1:0: Type of mapping */
- /* Bits: 3:2: Bufferable/cacheable */
-#define PTE_SMALL_AP_MASK (0xff << 4) /* Bits: 11:4: Access permissions */
-#define PTE_SMALL_AP_UNO_SRO (0x00 << 4)
-#define PTE_SMALL_AP_UNO_SRW (0x55 << 4)
-#define PTE_SMALL_AP_URO_SRW (0xaa << 4)
-#define PTE_SMALL_AP_URW_SRW (0xff << 4)
-#define PTE_SMALL_TEX_MASK 0xfffff000 /* Bits: 31:12: Physical page */
-
-/* Tiny page -- 1Kb */
-
- /* Bits: 1:0: Type of mapping */
- /* Bits: 3:2: Bufferable/cacheable */
-#define PTE_EXT_AP_MASK (3 << 4) /* Bits: 5:4: Access persions */
-#define PTE_EXT_AP_UNO_SRO (0 << 4)
-#define PTE_EXT_AP_UNO_SRW (1 << 4)
-#define PTE_EXT_AP_URO_SRW (2 << 4)
-#define PTE_EXT_AP_URW_SRW (3 << 4)
- /* Bits: 9:6: Should be zero */
-#define PTE_TINY_TEX_MASK 0xfffffc00 /* Bits: 31:10: Physical page */
-
-/* Default MMU flags for memory and IO */
-
-#define MMU_MEMFLAGS \
- (PMD_TYPE_SECT|PMD_SECT_WB|PMD_BIT4|PMD_SECT_AP_WRITE|PMD_SECT_AP_READ)
-
-#define MMU_IOFLAGS \
- (PMD_TYPE_SECT|PMD_BIT4|PMD_SECT_AP_WRITE|PMD_SECT_AP_READ)
-
-#define MMU_L1_VECTORFLAGS (PMD_TYPE_COARSE|PMD_BIT4)
-#define MMU_L2_VECTORFLAGS (PTE_TYPE_SMALL|PTE_SMALL_AP_UNO_SRW)
-
-/* Mapped section size */
-
-#define SECTION_SIZE (1 << 20) /* 1Mb */
-
-/* We place the page tables 16K below the beginning of .text. The
- * following value is assume to be the (virtual) start address of
- * .text. Currently, we expect the least significant 16 bits to be
- * 0x4000, but we could probably relax this restriction.
- */
-
-#define PGTABLE_SIZE 0x00004000
-#define NUTTX_START_VADDR (DM320_SDRAM_VADDR+PGTABLE_SIZE)
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#endif
-
-#endif /* __ARM9_H */
diff --git a/nuttx/arch/dm320/src/dm320-gio.h b/nuttx/arch/dm320/src/dm320-gio.h
deleted file mode 100644
index d310e982e..000000000
--- a/nuttx/arch/dm320/src/dm320-gio.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/************************************************************************************
- * dm320-gio.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_GIO_H
-#define __DM320_GIO_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* General I/O Registers */
-
-#define DM320_GIO_DIR0 (DM320_PERIPHERALS_VADDR + 0x0580) /* GIO Direction Register 0 */
-#define DM320_GIO_DIR1 (DM320_PERIPHERALS_VADDR + 0x0582) /* GIO Direction Register 1 */
-#define DM320_GIO_DIR2 (DM320_PERIPHERALS_VADDR + 0x0584) /* GIO Direction Register 2 */
-#define DM320_GIO_INV0 (DM320_PERIPHERALS_VADDR + 0x0586) /* GIO Inversion Register 0 */
-#define DM320_GIO_INV1 (DM320_PERIPHERALS_VADDR + 0x0588) /* GIO Inversion Register 1 */
-#define DM320_GIO_INV2 (DM320_PERIPHERALS_VADDR + 0x058A) /* GIO Inversion Register 2 */
-#define DM320_GIO_BITSET0 (DM320_PERIPHERALS_VADDR + 0x058C) /* GIO Bit Set Register 0 */
-#define DM320_GIO_BITSET1 (DM320_PERIPHERALS_VADDR + 0x058E) /* GIO Bit Set Register 1 */
-#define DM320_GIO_BITSET2 (DM320_PERIPHERALS_VADDR + 0x0590) /* GIO Bit Set Register 2 */
-#define DM320_GIO_BITCLR0 (DM320_PERIPHERALS_VADDR + 0x0592) /* GIO Bit Clear Register 0 */
-#define DM320_GIO_BITCLR1 (DM320_PERIPHERALS_VADDR + 0x0594) /* GIO Bit Clear Register 1 */
-#define DM320_GIO_BITCLR2 (DM320_PERIPHERALS_VADDR + 0x0596) /* GIO Bit Clear Register 2 */
-#define DM320_GIO_IRQPORT (DM320_PERIPHERALS_VADDR + 0x0598) /* GIO IRQ Port Setting Register */
-#define DM320_GIO_IRQEDGE (DM320_PERIPHERALS_VADDR + 0x059A) /* GIO IRQ Edge Setting Register */
-#define DM320_GIO_CHAT0 (DM320_PERIPHERALS_VADDR + 0x059C) /* GIO Chatter Setting Register 0 */
-#define DM320_GIO_CHAT1 (DM320_PERIPHERALS_VADDR + 0x059E) /* GIO Chatter Setting Register 1 */
-#define DM320_GIO_CHAT2 (DM320_PERIPHERALS_VADDR + 0x05A0) /* GIO Chatter Setting Register 2 */
-#define DM320_GIO_NCHAT (DM320_PERIPHERALS_VADDR + 0x05A2) /* GIO Chatter Value Register */
-#define DM320_GIO_FSEL0 (DM320_PERIPHERALS_VADDR + 0x05A4) /* GIO Function Select Register 0 */
-#define DM320_GIO_FSEL1 (DM320_PERIPHERALS_VADDR + 0x05A6) /* GIO Function Select Register 1 */
-#define DM320_GIO_FSEL2 (DM320_PERIPHERALS_VADDR + 0x05A8) /* GIO Function Select Register 2 */
-#define DM320_GIO_FSEL3 (DM320_PERIPHERALS_VADDR + 0x05AA) /* GIO Function Select Register 3 */
-
-/* Macros for GIO access */
-
-#define _GIO_READ_REG(pin, reg0, reg1, reg2, bval) \
- do { \
- register uint32 _reg; register int _pin; \
- if ((pin) < 16) { _reg = (reg0); _pin = (pin); } \
- else if ((pin) < 32) { _reg = (reg1); _pin = ((pin) - 16); } \
- else { _reg = (reg2); _pin = ((pin) - 32); } \
- bval = ((getreg16(_reg) & (1<<_pin)) != 0); \
- }
-
-#define _GIO_SET_REG(pin, reg0, reg1, reg2) \
- do { \
- register uint32 _reg; register int _pin; \
- if ((pin) < 16) { _reg = (reg0); _pin = (pin); } \
- else if ((pin) < 32) { _reg = (reg1); _pin = ((pin) - 16); } \
- else { _reg = (reg2); _pin = ((pin) - 32); } \
- putreg16((getreg16(_reg) | (1 << _pin)), _reg)); \
- } while (0)
-
-#define _GIO_CLEAR_REG(pin, reg0, reg1, reg2) \
- do { \
- register uint32 _reg; register int _pin; \
- if ((pin) < 16) { _reg = (reg0); _pin = (pin); } \
- else if ((pin) < 32) { _reg = (reg1); _pin = ((pin) - 16); } \
- else { _reg = (reg2); _pin = ((pin) - 32); } \
- putreg16((getreg16(_reg) & ~(1 << _pin)), _reg)); \
- } while (0)
-
-/* Select GIO input or output */
-
-#define GIO_INPUT(pin) \
- _GIO_SET_REG((pin), DM320_GIO_DIR0, DM320_GIO_DIR1, DM320_GIO_DIR2)
-#define GIO_OUTPUT(pin) \
- _GIO_CLEAR_REG((pin), DM320_GIO_DIR0, DM320_GIO_DIR1, DM320_GIO_DIR2)
-
-/* Select inverted or non-inverted GIO */
-
-#define GIO_INVERTED(pin) \
- _GIO_SET_REG((pin), DM320_GIO_INV0, DM320_GIO_INV1, DM320_GIO_INV2)
-#define GIO_NONINVERTED(pin) \
- _GIO_CLEAR_REG((pin), DM320_GIO_INV0, DM320_GIO_INV1, DM320_GIO_INV2)
-
-/* Set and clear outputs */
-
-#define GIO_SET_OUTPUT(pin) \
- _GIO_SET_REG((pin), DM320_GIO_BITSET0, DM320_GIO_BITSET1, DM320_GIO_BITSET2)
-#define GIO_CLEAR_OUTPUT(pin) \
- _GIO_SET_REG((pin), DM320_GIO_BITCLR0, DM320_GIO_BITCLR1, DM320_GIO_BITCLR2)
-
-/* Read input */
-
-#define GIO_READ_INPUT(pin, bval) \
- _GIO_READ_REG((pin), DM320_GIO_BITSET0, DM320_GIO_BITSET1, DM320_GIO_BITSET2, (bval))
-
-/* Configure GIO pins */
-
-#define _GIO_SET_CONFIG(reg, sh, val) \
- putreg16(((getreg16(reg) & ~(3 << sh)) | (val << sh)), (reg))
-
-#define GIO_CONFIGURE(pin, val) \
- do {\
- if ((pin) < 10) _GIO_SET_CONFIG(DM320_GIO_FSEL0, 0, (val)); \
- else if ((pin) < 17) _GIO_SET_CONFIG(DM320_GIO_FSEL0, 2*((pin)-9), (val)); \
- else if ((pin) < 25) _GIO_SET_CONFIG(DM320_GIO_FSEL1, 2*((pin)-17), (val)); \
- else if ((pin) < 33) _GIO_SET_CONFIG(DM320_GIO_FSEL2, 2*((pin)-25), (val)); \
- else _GIO_SET_CONFIG(DM320_GIO_FSEL3, 2*((pin)-33), (val)); \
- }
-
-/* Configure GIO interrupts (pins 1-15) */
-
-#define GIO_INTERRUPT(pin) \
- if (pin < 16) putreg16((getreg16(DM320_GIO_IRQPORT) | (1<<(pin))), DM320_GIO_IRQPORT)
-#define GIO_NONINTERRUPT(pin) \
- if (pin < 16) putreg16((getreg16(DM320_GIO_IRQPORT) & ~(1<<(pin))), DM320_GIO_IRQPORT)
-#define GIO_FALLINGEDGE(pin) \
- if (pin < 16) { \
- putreg16((getreg16(DM320_GIO_IRQEDGE) & ~(1<<(pin))), DM320_GIO_IRQEDGE) \
- putreg16((getreg16(DM320_GIO_INV0) & ~(1<<(pin))), DM320_GIO_INV0); \
- }
-#define GIO_RISINGEDGE(pin) \
- if (pin < 16) { \
- putreg16((getreg16(DM320_GIO_IRQEDGE) & ~(1<<(pin))), DM320_GIO_IRQEDGE); \
- putreg16((getreg16(DM320_GIO_INV0) | (1<<(pin))), DM320_GIO_INV0); \
- }
-#define GIO_BOTHEDGES(pin) \
- if (pin < 16) { \
- putreg16((getreg16(DM320_GIO_IRQEDGE) | (1<<(pin))), DM320_GIO_IRQEDGE); \
- putreg16((getreg16(DM320_GIO_INV0) & ~(1<<(pin))), DM320_GIO_INV0); \
- }
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#endif
-
-#endif /* __DM320_GIO_H */
diff --git a/nuttx/arch/dm320/src/dm320-intc.h b/nuttx/arch/dm320/src/dm320-intc.h
deleted file mode 100644
index 125f07bb4..000000000
--- a/nuttx/arch/dm320/src/dm320-intc.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/************************************************************************************
- * dm320.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_INTC_H
-#define __DM320_INTC_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* Interrupt Controller Registers */
-
-#define DM320_INTC_FIQ0 (DM320_PERIPHERALS_VADDR + 0x0500) /* FIQ Interrupt Flag Register #0 */
-#define DM320_INTC_FIQ1 (DM320_PERIPHERALS_VADDR + 0x0502) /* FIQ Interrupt Flag Register #1 */
-#define DM320_INTC_FIQ2 (DM320_PERIPHERALS_VADDR + 0x0504) /* FIQ Interrupt Flag Register #2 */
-#define DM320_INTC_IRQ0 (DM320_PERIPHERALS_VADDR + 0x0508) /* IRQ Interrupt Flag Register #0 */
-#define DM320_INTC_IRQ1 (DM320_PERIPHERALS_VADDR + 0x050A) /* IRQ Interrupt Flag Register #1 */
-#define DM320_INTC_IRQ2 (DM320_PERIPHERALS_VADDR + 0x050C) /* IRQ Interrupt Flag Register #2 */
-#define DM320_INTC_FIQENTRY0 (DM320_PERIPHERALS_VADDR + 0x0510) /* FIQ Entry Address Register #0 */
-#define DM320_INTC_FIQENTRY1 (DM320_PERIPHERALS_VADDR + 0x0512) /* FIQ Entry Address Register #1 */
-#define DM320_INTC_FIQENTLCK0 (DM320_PERIPHERALS_VADDR + 0x0514) /* FIQ Lock Entry Address Register #1 */
-#define DM320_INTC_FIQENTLCK1 (DM320_PERIPHERALS_VADDR + 0x0516) /* FIQ Lock Entry Address Register #1 */
-#define DM320_INTC_IRQENTRY0 (DM320_PERIPHERALS_VADDR + 0x0518) /* IRQ Entry Address Register #0 */
-#define DM320_INTC_IRQENTRY1 (DM320_PERIPHERALS_VADDR + 0x051A) /* IRQ Entry Address Register #1 */
-#define DM320_INTC_IRQENTLCK0 (DM320_PERIPHERALS_VADDR + 0x051C) /* IRQ Lock Entry Address Register #1 */
-#define DM320_INTC_IRQENTLCK1 (DM320_PERIPHERALS_VADDR + 0x051E) /* Lock Entry Address Register #1 */
-#define DM320_INTC_FISEL0 (DM320_PERIPHERALS_VADDR + 0x0520) /* FIQ select register #0 */
-#define DM320_INTC_FISEL1 (DM320_PERIPHERALS_VADDR + 0x0522) /* FIQ select register #1 */
-#define DM320_INTC_FISEL2 (DM320_PERIPHERALS_VADDR + 0x0524) /* FIQ select register #2 */
-#define DM320_INTC_EINT0 (DM320_PERIPHERALS_VADDR + 0x0528) /* Interrupt Enable Register #0 */
-#define DM320_INTC_EINT1 (DM320_PERIPHERALS_VADDR + 0x052A) /* Interrupt Enable Register #1 */
-#define DM320_INTC_EINT2 (DM320_PERIPHERALS_VADDR + 0x052C) /* Interrupt Enable Register #2 */
-#define DM320_INTC_INTRAW (DM320_PERIPHERALS_VADDR + 0x0530) /* Interrupt Raw Register */
-#define DM320_INTC_EABASE0 (DM320_PERIPHERALS_VADDR + 0x0538) /* Entry Table Base Address Register #0 */
-#define DM320_INTC_EABASE1 (DM320_PERIPHERALS_VADDR + 0x053A) /* Entry Table Base Address Register #1 */
-#define DM320_INTC_INTPRI00 (DM320_PERIPHERALS_VADDR + 0x0540) /* Interrupt Priority Register #0 */
-#define DM320_INTC_INTPRI01 (DM320_PERIPHERALS_VADDR + 0x0542) /* Interrupt Priority Register #1 */
-#define DM320_INTC_INTPRI02 (DM320_PERIPHERALS_VADDR + 0x0544) /* Interrupt Priority Register #2 */
-#define DM320_INTC_INTPRI03 (DM320_PERIPHERALS_VADDR + 0x0546) /* Interrupt Priority Register #3 */
-#define DM320_INTC_INTPRI04 (DM320_PERIPHERALS_VADDR + 0x0548) /* Interrupt Priority Register #4 */
-#define DM320_INTC_INTPRI05 (DM320_PERIPHERALS_VADDR + 0x054A) /* Interrupt Priority Register #5 */
-#define DM320_INTC_INTPRI06 (DM320_PERIPHERALS_VADDR + 0x054C) /* Interrupt Priority Register #6 */
-#define DM320_INTC_INTPRI07 (DM320_PERIPHERALS_VADDR + 0x054E) /* Interrupt Priority Register #7 */
-#define DM320_INTC_INTPRI08 (DM320_PERIPHERALS_VADDR + 0x0550) /* Interrupt Priority Register #8 */
-#define DM320_INTC_INTPRI09 (DM320_PERIPHERALS_VADDR + 0x0552) /* Interrupt Priority Register #9 */
-#define DM320_INTC_INTPRI10 (DM320_PERIPHERALS_VADDR + 0x0554) /* Interrupt Priority Register #10 */
-#define DM320_INTC_INTPRI11 (DM320_PERIPHERALS_VADDR + 0x0556) /* Interrupt Priority Register #11 */
-#define DM320_INTC_INTPRI12 (DM320_PERIPHERALS_VADDR + 0x0558) /* Interrupt Priority Register #12 */
-#define DM320_INTC_INTPRI13 (DM320_PERIPHERALS_VADDR + 0x055A) /* Interrupt Priority Register #13 */
-#define DM320_INTC_INTPRI14 (DM320_PERIPHERALS_VADDR + 0x055C) /* Interrupt Priority Register #14 */
-#define DM320_INTC_INTPRI15 (DM320_PERIPHERALS_VADDR + 0x055E) /* Interrupt Priority Register #15 */
-#define DM320_INTC_INTPRI16 (DM320_PERIPHERALS_VADDR + 0x0560) /* Interrupt Priority Register #16 */
-#define DM320_INTC_INTPRI17 (DM320_PERIPHERALS_VADDR + 0x0562) /* Interrupt Priority Register #17 */
-#define DM320_INTC_INTPRI18 (DM320_PERIPHERALS_VADDR + 0x0564) /* Interrupt Priority Register #18 */
-#define DM320_INTC_INTPRI19 (DM320_PERIPHERALS_VADDR + 0x0566) /* Interrupt Priority Register #19 */
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#endif
-
-#endif /* __DM320_INTC_H */
diff --git a/nuttx/arch/dm320/src/dm320-memorymap.h b/nuttx/arch/dm320/src/dm320-memorymap.h
deleted file mode 100644
index 55ade0366..000000000
--- a/nuttx/arch/dm320/src/dm320-memorymap.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/************************************************************************************
- * dm320-memorymap.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_MEMORYMAP_H
-#define __DM320_MEMORYMAP_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* Mapped base of all registers *****************************************************/
-
-/* DM320 Physical Memory Map, where:
- *
- * CW = cachable with write buffering
- * -W = Write buffering only
- * -- = Neither
- *
- * The DM320 only has a single control line for external peripherals.
- * To support more than one peripheral, most hardware will use an
- * external memory decode logic, so that physical memory regions is
- * in the hardware specific files dm320-*.h
- */
-
-/* Section/Region Name Phys Address Size TLB Enty CW */
-#define DM320_PERIPHERALS_PSECTION 0x00000000 /* 1Mb 1 section -- */
-#define DM320_IRAM_PADDR 0x00000000 /* 16Kb 1 large page CW */
-#define DM320_PERIPHERALS_PADDR 0x00030000 /* 4Kb 1 small pages -- */
-#define DM320_DSP_ONCHIP_RAM_PADDR 0x00040000 /* 128Kb 1 large page -- */
-#define DM320_AHB_PADDR 0x00060000 /* 4Kb 1 small page -- */
-#define DM320_COPRO_SUB_PADDR 0x00080000 /* 128Kb -- */
-#define DM320_FLASH_PSECTION 0x00100000 /* 16Mb many sections -- */
-#define DM320_EXT_MEM_PADDR 0x00100000 /* 16Mb flash -- */
-#define DM320_SDRAM_PSECTION 0x01000000 /* 496Mb many section -- */
-#define DM320_SDRAM_PADDR 0x01000000 /* 496Mb many sections CW */
-#define DM320_CFI_PSECTION 0x40000000 /* 16Mb 16 sections -- */
-#define DM320_CFI_PADDR 0x40000000 /* 16Mb 16 sections -- */
-#define DM320_SSFDC_PSECTION 0x48000000 /* 16Mb 16 sections -- */
-#define DM320_SSFDC_PADDR 0x48000000 /* 16Mb 16 sections -- */
-#define DM320_CE1_PSECTION 0x50000000 /* 16Mb 16 sections -- */
-#define DM320_CE1_PADDR 0x50000000 /* 16Mb 16 sections -- */
-#define DM320_CE2_PSECTION 0x60000000 /* 16Mb 16 sections -- */
-#define DM320_CE2_PADDR 0x60000000 /* 16Mb 16 sections -- */
-#define DM320_VLYNQ_PSECTION 0x70000000 /* 64MB 64 sections -- */
-#define DM320_VLYNQ_PADDR 0x70000000 /* 64MB 64 sections -- */
-#define DM320_USBOTG_PSECTION 0x80000000 /* 1Mb 1 section -- */
-#define DM320_USBOTG_PADDR 0x80000000 /* 1Kb 1 small page -- */
-
-/* Sizes of sections/regions */
-
-/* Section / Region Name Size */
-#define DM320_PERIPHERALS_NSECTIONS 1 /* 1Mb 1 section -- */
-#define DM320_IRAM_SIZE (16*1024)
-#define DM320_PERIPHERALS_SIZE (4*1024)
-#define DM320_DSP_ONCHIP_RAM_SIZE (128*1024)
-#define DM320_AHB_SIZE (4*1024)
-#define DM320_COPRO_SUB_SIZE (128*1024)
-#define DM320_FLASH_NSECTIONS 16 /* 16Mb 16 sections -- */
-#define DM320_EXT_MEM_SIZE (16*1024*1024)
-#define DM320_CFI_NSECTIONS 16 /* 16Mb 16 sections -- */
-#define DM320_CFI_SIZE (16*1024*1024)
-#define DM320_SSFDC_NSECTIONS 16 /* 16Mb 16 sections -- */
-#define DM320_SSFDC_SIZE (16*1024*1024)
-#define DM320_CE1_NSECTIONS 16 /* 16Mb 16 sections -- */
-#define DM320_CE1_SIZE (16*1024*1024)
-#define DM320_CE2_NSECTIONS 16 /* 16Mb 16 sections -- */
-#define DM320_CE2_SIZE (16*1024*1024)
-#define DM320_VLYNQ_NSECTIONS 64 /* 64MB 64 sections -- */
-#define DM320_VLYNQ_SIZE (64*1024*1024)
-#define DM320_USBOTG_NSECTIONS 1 /* 1Mb 1 section -- */
-#define DM320_USBOTG_SIZE (1024)
-
-/* DM320 Virtual Memory Map */
-
-/* Section/Region Name Virt Address End Size CW */
-#define DM320_SDRAM_VSECTION 0x00000000 /* 0x1effffff 496Mb CW */
-#define DM320_SDRAM_VADDR 0x00000000 /* 0x1effffff 496Mb CW */
- /* 0x1f000000 0xdfffffff UNMAPPED */
-#define DM320_FLASH_VSECTION 0xc0000000 /* 0xc0ffffff 16Mb -- */
-#define DM320_EXT_MEM_VADDR 0xc0000000 /* 0xc0ffffff 16Mb -- */
-#define DM320_CFI_VSECTION 0xc4000000 /* 0xc4ffffff 16Mb -- */
-#define DM320_CFI_VADDR 0xc4000000 /* 0xc4ffffff 16Mb -- */
-#define DM320_SSFDC_VSECTION 0xc8000000 /* 0xc8ffffff 16Mb -- */
-#define DM320_SSFDC_VADDR 0xc8000000 /* 0xc8ffffff 16Mb -- */
-#define DM320_CE1_VSECTION 0xcc000000 /* 0xccffffff 16Mb -- */
-#define DM320_CE1_VADDR 0xcc000000 /* 0xccffffff 16Mb -- */
-#define DM320_CE2_VSECTION 0xd0000000 /* 0xd0ffffff 16Mb -- */
-#define DM320_CE2_VADDR 0xd0000000 /* 0xd0ffffff 16Mb -- */
-#define DM320_USBOTG_VSECTION 0xd4000000 /* 0xd40fffff 1Mb -- */
-#define DM320_USBOTG_VADDR 0xd4000000 /* 0xd40003ff 1Kb -- */
-#define DM320_VLYNQ_VSECTION 0xe0000000 /* 0xefffffff 64Mb -- */
-#define DM320_VLYNQ_VADDR 0xe0000000 /* 0xefffffff 64Mb -- */
-#define DM320_PERIPHERALS_VSECTION 0xf0000000 /* 0xf00fffff 1Mb -- */
-#define DM320_IRAM_VADDR 0xf0000000 /* 0xf0003fff 16Kb -- */
-#define DM320_PERIPHERALS_VADDR 0xf0030000 /* 0xf0030fff 4Kb -- */
-#define DM320_DSP_ONCHIP_RAM_VADDR 0xf0040000 /* 0xf005ffff 128Kb -- */
-#define DM320_AHB_VADDR 0xf0060000 /* 0xf0060fff 4Kb -- */
-#define DM320_COPRO_SUB_VADDR 0xf0080000 /* 0xf009ffff 128Kb -- */
- /* 0xf0100000 0xffefffff UNMAPPED */
-#define DM320_VECTOR_VCOARSE 0xfff00000 /* 0xffffffff 1Mb -- */
- /* 0xfff00000 0xfffeffff UNMAPPED */
-#define DM320_VECTOR_VADDR 0xffff0000 /* 0xffff3fff 16Kb -- */
- /* 0xffff4000 0xffffffff UNMAPPED */
-
-/* Section MMU Flags Flags CW */
-#define DM320_FLASH_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_CFI_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_SSFDC_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_CE1_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_CE2_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_VLYNQ_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_USBOTG_MMUFLAGS MMU_IOFLAGS /* -- */
-#define DM320_PERIPHERALS_MMUFLAGS MMU_IOFLAGS /* -- */
-
-/* 16Kb of memory is reserved at the beginning of SDRAM to hold the
- * page table for the virtual mappings. A portion of this table is
- * not accessible in the virtual address space (for normal operation).
- * We will reuse this memory for coarse page tables as follows:
- */
-
-#define PGTABLE_BASE_PADDR DM320_SDRAM_PADDR
-#define PGTABLE_SDRAM_PADDR PGTABLE_BASE_PADDR
-#define PGTABLE_COARSE_BASE_PADDR (PGTABLE_BASE_PADDR+0x00000800)
-#define PGTABLE_COARSE_END_PADDR (PGTABLE_BASE_PADDR+0x00003000)
-#define PTTABLE_PERIPHERALS_PADDR (PGTABLE_BASE_PADDR+0x00003000)
-#define PGTABLE_END_PADDR (PGTABLE_BASE_PADDR+0x00004000)
-
-#define PGTABLE_BASE_VADDR DM320_SDRAM_VADDR
-#define PGTABLE_SDRAM_VADDR PGTABLE_BASE_VADDR
-#define PGTABLE_COARSE_BASE_VADDR (PGTABLE_BASE_VADDR+0x00000800)
-#define PGTABLE_COARSE_END_VADDR (PGTABLE_BASE_VADDR+0x00003000)
-#define PTTABLE_PERIPHERALS_VADDR (PGTABLE_BASE_VADDR+0x00003000)
-#define PGTABLE_END_VADDR (PGTABLE_BASE_VADDR+0x00004000)
-
-#define PGTBALE_COARSE_TABLE_SIZE (4*256)
-#define PGTABLE_COARSE_ALLOC (PGTABLE_COARSE_END_VADDR-PGTABLE_COARSE_BASE_VADDR)
-#define PGTABLE_NCOARSE_TABLES (PGTABLE_COARSE_SIZE / PGTBALE_COARSE_TABLE_ALLOC)
-
-/* This is the base address of the interrupt vectors on the ARM926 */
-
-#define VECTOR_BASE DM320_VECTOR_VADDR
-
-/* DM320 Peripheral Registers */
-
-#define DM320_TIMER0_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0000) /* Timer 0 */
-#define DM320_TIMER1_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0080) /* Timer 1 */
-#define DM320_TIMER2_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0100) /* Timer 2 */
-#define DM320_TIMER3_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0180) /* Timer 3 */
-#define DM320_SERIAL0_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0200) /* Serial port 0 */
-#define DM320_SERIAL1_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0280) /* Serial port 1 */
-#define DM320_UART0_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0300) /* UART 0 */
-#define DM320_UART1_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0380) /* UART 1 */
-#define DM320_WDT_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0400) /* Watchdog timer */
-#define DM320_MMCSD_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0480) /* MMC/SD */
-#define DM320_INTC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0500) /* Interrupt controller */
-#define DM320_GIO_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0580) /* GIO */
-#define DM320_DSPC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0600) /* DSP controller */
-#define DM320_OSD_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0680) /* OSD */
-#define DM320_CCDC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0700) /* CCD controller */
-#define DM320_VENC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0800) /* Video encoder */
-#define DM320_CLKC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0880) /* Clock controller */
-#define DM320_BUSC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0900) /* Bus controller */
-#define DM320_SDRAMC_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0980) /* SDRAM controller */
-#define DM320_EMIF_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0A00) /* External memory interface */
-#define DM320_PREV_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0A80) /* Preview engine */
-#define DM320_AF_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0B80) /* Hardware 3A (AF/AE/AWB) */
-#define DM320_MSTICK_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0C80) /* Memory stick */
-#define DM320_I2C_REGISTER_BASE (DM320_PERIPHERALS_VADDR + 0x0D80) /* I2C */
-#define DM320_USB_REGISTER_BASE (DM320_USBOTG_VADDR + 0x0000) /* USB full speed OTG */
-#define DM320_USBDMA_REGISTER_BASE (DM320_USBOTG_VADDR + 0x0200) /* USB DMA */
-#define DM320_VLYNQ_REGISTER_BASE (DM320_AHB_VADDR + 0x0300) /* VLYNQ */
-#define DM320_AHBBUSC_REGISTER_BASE (DM320_AHB_VADDR + 0x0F00) /* AHBBUSC */
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#endif
-
-#endif /* __DM320_MEMORYMAP_H */
diff --git a/nuttx/arch/dm320/src/dm320-timer.h b/nuttx/arch/dm320/src/dm320-timer.h
deleted file mode 100644
index fc101e9f9..000000000
--- a/nuttx/arch/dm320/src/dm320-timer.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/************************************************************************************
- * dm320-timer.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_TIMER_H
-#define __DM320_TIMER_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* Timer Registers */
-
-#define DM320_TIMER0_TMMD (DM320_PERIPHERALS_VADDR + 0x0000) /* Timer 0 Mode */
-#define DM320_TIMER0_TMPRSCL (DM320_PERIPHERALS_VADDR + 0x0004) /* Timer 0 Prescalar */
-#define DM320_TIMER0_TMDIV (DM320_PERIPHERALS_VADDR + 0x0006) /* Timer 0 Divisor (count) */
-#define DM320_TIMER0_TMTRG (DM320_PERIPHERALS_VADDR + 0x0008) /* Timer 0 One-Shot Trigger */
-#define DM320_TIMER0_TMCNT (DM320_PERIPHERALS_VADDR + 0x000A) /* Timer 0 Count */
-
-#define DM320_TIMER1_TMMD (DM320_PERIPHERALS_VADDR + 0x0080) /* Timer 1 Mode */
-#define DM320_TIMER1_TMPRSCL (DM320_PERIPHERALS_VADDR + 0x0084) /* Timer 1 Prescalar */
-#define DM320_TIMER1_TMDIV (DM320_PERIPHERALS_VADDR + 0x0086) /* Timer 1 Divisor (count) */
-#define DM320_TIMER1_TMTRG (DM320_PERIPHERALS_VADDR + 0x0088) /* Timer 1 One-Shot Trigger */
-#define DM320_TIMER1_TMCNT (DM320_PERIPHERALS_VADDR + 0x008A) /* Timer 1 Count */
-
-#define DM320_TIMER2_TMMD (DM320_PERIPHERALS_VADDR + 0x0100) /* Timer 2 Mode */
-#define DM320_TIMER2_TMPRSCL (DM320_PERIPHERALS_VADDR + 0x0104) /* Timer 2 Prescalar */
-#define DM320_TIMER2_TMDIV (DM320_PERIPHERALS_VADDR + 0x0106) /* Timer 2 Divisor (count) */
-#define DM320_TIMER2_TMTRG (DM320_PERIPHERALS_VADDR + 0x0108) /* Timer 2 One-Shot Trigger */
-#define DM320_TIMER2_TMCNT (DM320_PERIPHERALS_VADDR + 0x010A) /* Timer 2 Count */
-
-#define DM320_TIMER3_TMMD (DM320_PERIPHERALS_VADDR + 0x0180) /* Timer 2 Mode */
-#define DM320_TIMER3_TMPRSCL (DM320_PERIPHERALS_VADDR + 0x0184) /* Timer 2 Prescalar */
-#define DM320_TIMER3_TMDIV (DM320_PERIPHERALS_VADDR + 0x0186) /* Timer 2 Divisor (count) */
-#define DM320_TIMER3_TMTRG (DM320_PERIPHERALS_VADDR + 0x0188) /* Timer 2 One-Shot Trigger */
-#define DM320_TIMER3_TMCNT (DM320_PERIPHERALS_VADDR + 0x018A) /* Timer 2 Count */
-
-/* Timer 0,1,2,3 Mode Register Bits: */
-
-#define DM320_TMR_MODE_TEST_MASK 0x00fc /* Bits 7:2=Test */
-#define DM320_TMR_MODE_MODE_MASK 0x0003 /* Bits 1:0=timer mode */
-
-# define DM320_TMR_MODE_STOP 0x0000 /* Stop Timer */
-# define DM320_TMR_MODE_ONESHOT 0x0001 /* Start one-shot timer */
-# define DM320_TMR_MODE_FREERUN 0x0002 /* Start free-running timer */
-
-/* Timer 0,1,2,3 Clock Select Register Bits: */
-
-#define DM320_TMR_PRSCL_MASK 0x03ff /* Bits 0:9=Timer prescale value */
-
-/* Timer 0,1,2,3 Clock Divisor (Count) Register Bits: */
-
-#define DM320_TMR_DIV_MASK 0xffff /* Bits 0:15=Timer divisor value */
-
-/* Timer 0,1,2,3 Timer One-Short Trigger Register Bits: */
-
-#define DM320_TMR_TMTRG_MASK 0x0001 /* Bit 0=One short trigger */
-
-# define DM320_TMR_TMTRG_START 0x0001 /* 1 starts one shot timer */
-
-/* Timer 0,1,2,3 Timer Counter Register Bits: */
-
-#define DM320_TMR_COUNT_MASK 0xffff /* Bits 0:15=Current counter value */
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#endif
-
-#endif /* __DM320_TIMER_H */
diff --git a/nuttx/arch/dm320/src/dm320-uart.h b/nuttx/arch/dm320/src/dm320-uart.h
deleted file mode 100644
index b0465459b..000000000
--- a/nuttx/arch/dm320/src/dm320-uart.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/************************************************************************************
- * dm320-uart.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_UART_H
-#define __DM320_UART_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/* UART definitions *****************************************************************/
-
-/* UART Registers (offsets from the register base) */
-
-#define UART_DTRR 0 /* Data Transmission/Reception Register */
-#define UART_BRSR 2 /* Bit Rate Set Register */
-#define UART_MSR 4 /* Mode Set Register */
-#define UART_RFCR 6 /* Reception FIFO Control Register */
-#define UART_TFCR 8 /* Transmission FIFO Control Register */
-#define UART_LCR 10 /* Line Control Register */
-#define UART_SR 12 /* Status Register */
-
-/* UART DTRR register bit definitions */
-
-#define UART_DTRR_RVF 0x1000 /* Receive word valid flag */
-#define UART_DTRR_BF 0x0800 /* Break flag */
-#define UART_DTRR_FE 0x0400 /* Framing error */
-#define UART_DTRR_ORF 0x0200 /* Overrun flag */
-#define UART_DTRR_PEF 0x0100 /* Parity error */
-#define UART_DTRR_DTR_MASK 0x00ff /* Data transmit/receive */
-
-/* UART BRSR register bit definitions */
-/* The UART clock is half of the ARM clock */
-
-#define UART_CLK (DM320_ARM_CLOCK / 2)
-
-/* And baud rate = UART_CLK / 16 / (VALUE+1) */
-
-#define UART_BAUD_2400 ((uint16)(((UART_CLK / 16) / 2400 ) - 1))
-#define UART_BAUD_4800 ((uint16)(((UART_CLK / 16) / 4800 ) - 1))
-#define UART_BAUD_9600 ((uint16)(((UART_CLK / 16) / 9600 ) - 1))
-#define UART_BAUD_14400 ((uint16)(((UART_CLK / 16) / 14400 ) - 1))
-#define UART_BAUD_19200 ((uint16)(((UART_CLK / 16) / 19200 ) - 1))
-#define UART_BAUD_28800 ((uint16)(((UART_CLK / 16) / 28800 ) - 1))
-#define UART_BAUD_38400 ((uint16)(((UART_CLK / 16) / 38400 ) - 1))
-#define UART_BAUD_57600 ((uint16)(((UART_CLK / 16) / 57600 ) - 1))
-#define UART_BAUD_115200 ((uint16)(((UART_CLK / 16) / 115200) - 1))
-#define UART_BAUD_230400 ((uint16)(((UART_CLK / 16) / 230400) - 1))
-#define UART_BAUD_460800 ((uint16)(((UART_CLK / 16) / 460800) - 1))
-#define UART_BAUD_921600 ((uint16)(((UART_CLK / 16) / 921600) - 1))
-
-/* UART MSR register bit definitions */
-
-#define UART_MSR_MODE_BITS 0x001f /* Aata length, stop, & parity */
-#define UART_MSR_CLS 0x0001 /* Char length (1=7bit, 0=8bit) */
-#define UART_DATABIT_7 0x0001 /* Data bit = 7bit */
-#define UART_DATABIT_8 0x0000 /* Data bit = 8bit */
-#define UART_MSR_SBLS 0x0004 /* Stop bit length selection */
-#define UART_STOPBIT_1 0x0000 /* Stop bit = 1bit */
-#define UART_STOPBIT_2 0x0004 /* Stop bit = 2bit */
-#define UART_MSR_PSB 0x0008 /* Parity selection bit */
-#define UART_MSR_PEB 0x0010 /* Parity enable bit */
-#define UART_NOPARITY 0x0000 /* No-parity */
-#define UART_ODDPARITY 0x0018 /* Odd parity */
-#define UART_EVENPARITY 0x0010 /* Even parity */
-#define UART_MSR_RTSC 0x0020 /* RTS receive FIFO control */
-#define UART_MSR_CSTC 0x0040 /* CTS send control */
-#define UART_MSR_TOIC_MASK 0x0c00 /* Timeout interrupt control */
-#define UART_MSR_TOIC_DIS 0x0000 /* Disabled */
-#define UART_MSR_TOIC_3 0x0400 /* 3 bytes */
-#define UART_MSR_TOIC_7 0x0800 /* 7 bytes */
-#define UART_MSR_TOIC_15 0x0c00 /* 15 bytes */
-#define UART_MSR_ALLIE 0xfc00 /* All interrupt bits */
-#define UART_MSR_LSIE 0x1000 /* Line status change int. enable */
-#define UART_MSR_REIE 0x2000 /* Receive error interrupt enable */
-#define UART_MSR_TFTIE 0x4000 /* Transmit FIFO trigger int. enable */
-#define UART_MSR_RFTIE 0x8000 /* Receive FIFO trigger int. enable */
-
-#define UART_MSR_INIT (UART_NOPARITY | UART_STOPBIT_1 | UART_DATABIT_8)
-
-/* UART RFCR register bit definitions */
-
-#define UART_RFCR_RWC_MASK 0x003f /* Receive byte count */
-#define UART_RFCR_RTL_MASK 0x0700 /* Receive trigger level */
-#define UART_RFCR_RTL_1 0x0000 /* 1 byte */
-#define UART_RFCR_RTL_4 0x0100 /* 4 bytes */
-#define UART_RFCR_RTL_8 0x0200 /* 8 bytes */
-#define UART_RFCR_RTL_16 0x0300 /* 16 bytes */
-#define UART_RFCR_RTL_24 0x0400 /* 24 bytes */
-#define UART_RFCR_RTL_32 0x0500 /* 32 bytes */
-#define UART_RFCR_RDEF 0x4000 /* Receive data error flag */
-#define UART_RFCR_RFCB 0x8000 /* Receive FIFO clear bit */
-
-/* UART TFCR register bit definitions */
-
-#define UART_TFCR_TWC_MASK 0x003f /* Transmit byte count */
-#define UART_TFCR_TTL_MASK 0x0700 /* Transmit trigger level */
-#define UART_TFCR_TTL_1 0x0000 /* 1 byte */
-#define UART_TFCR_TTL_4 0x0100 /* 4 bytes */
-#define UART_TFCR_TTL_8 0x0200 /* 8 bytes */
-#define UART_TFCR_TTL_16 0x0300 /* 16 bytes */
-#define UART_TFCR_TTL_24 0x0400 /* 24 bytes */
-#define UART_TFCR_TTL_32 0x0500 /* 32 bytes */
-#define UART_TFCR_TFCB 0x8000 /* Transmit FIFO clear bit */
-
-/* UART LCR register bit definitions */
-
-#define UART_LCR_RTS 0x0004 /* Current RTS value */
-#define UART_LCR_CTS 0x0010 /* Current CTS value */
-#define UART_LCR_DSR 0x0080 /* Current DSR value */
-#define UART_LCR_BOC 0x0100 /* Break output control */
-#define UART_LCR_UTST 0x4000 /* Test mode setting */
-
-#define UART_LCR_INIT 0x0000
-
-/* UART SR register bit definitions */
-
-#define UART_SR_TREF 0x0001 /* Transmit register empty flag */
-#define UART_SR_TFEF 0x0002 /* Transmit FIFO empty flag */
-#define UART_SR_RFNEF 0x0004 /* Receive FIFO not empty flag */
-#define UART_SR_TOIF 0x0100 /* Timeout Interrupt flag */
-#define UART_SR_RFER 0x0200 /* Receive data error flag */
-#define UART_SR_TFTI 0x0400 /* Transmit FIFO trigger level */
-#define UART_SR_RFTI 0x0800 /* Receive FIFO trigger level */
-#define UART_SR_CTSS 0x1000 /* CTS status */
-#define UART_SR_DSRS 0x8000 /* DSR status */
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#endif /* __DM320_UART_H */
diff --git a/nuttx/arch/dm320/src/dm320.h b/nuttx/arch/dm320/src/dm320.h
deleted file mode 100644
index a147abd41..000000000
--- a/nuttx/arch/dm320/src/dm320.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/************************************************************************************
- * dm320.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-#ifndef __DM320_H
-#define __DM320_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include <nuttx/config.h>
-#ifndef __ASSEMBLY__
-# include <sys/types.h>
-#endif
-
-#include "arm9.h"
-
-#if defined(CONFIG_ARCH_BOARD_NTOSD_DM320)
-# include <arch/board/ntosd.h>
-#else
-# warning "Unknown DM320 board"
-#endif
-
-#include "dm320-memorymap.h"
-#include "dm320-uart.h"
-#include "dm320-timer.h"
-#include "dm320-intc.h"
-#include "dm320-gio.h"
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-/************************************************************************************
- * Inline Functions
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-# define getreg8(a) (*(volatile ubyte *)(a))
-# define putreg8(v,a) (*(volatile ubyte *)(a) = (v))
-# define getreg32(a) (*(volatile uint32 *)(a))
-# define putreg32(v,a) (*(volatile uint32 *)(a) = (v))
-
-/* Some compiler options will convert short loads and stores into byte loads
- * and stores. We don't want this to happen for IO reads and writes!
- */
-
-/* # define getreg16(a) (*(volatile uint16 *)(a)) */
-static inline uint16 getreg16(unsigned int addr)
-{
- uint16 retval;
- __asm__ __volatile__("\tldrh %0, [%1]\n\t" : "=r"(retval) : "r"(addr));
- return retval;
-}
-
-/* define putreg16(v,a) (*(volatile uint16 *)(a) = (v)) */
-static inline void putreg16(uint16 val, unsigned int addr)
-{
- __asm__ __volatile__("\tstrh %0, [%1]\n\t": : "r"(val), "r"(addr));
-}
-
-/* Most DM320 registers are 16-bits wide */
-
-#define getreg(a) getreg16(1)
-#define putreg(v,a) putreg16(v,a)
-
-#endif
-
-#endif /* __DM320_H */
diff --git a/nuttx/arch/dm320/src/up_allocateheap.c b/nuttx/arch/dm320/src/up_allocateheap.c
deleted file mode 100644
index 697818e8d..000000000
--- a/nuttx/arch/dm320/src/up_allocateheap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/************************************************************
- * up_allocateheap.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "dm320.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_allocate_heap
- *
- * Description:
- * The heap may be statically allocated by
- * defining CONFIG_HEAP_BASE and CONFIG_HEAP_SIZE. If these
- * are not defined, then this function will be called to
- * dynamically set aside the heap region.
- *
- ************************************************************/
-
-void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
-{
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = (DM320_SDRAM_VADDR + CONFIG_DRAM_SIZE) - g_heapbase;
-}
diff --git a/nuttx/arch/dm320/src/up_assert.c b/nuttx/arch/dm320/src/up_assert.c
deleted file mode 100644
index a69563ab0..000000000
--- a/nuttx/arch/dm320/src/up_assert.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/************************************************************
- * up_assert.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Output debug info if stack dump is selected -- even if
- * debug is not selected.
- */
-
-#ifdef CONFIG_ARCH_STACKDUMP
-# undef lldbg
-# define lldbg lib_lowprintf
-#endif
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_getsp
- ************************************************************/
-
-/* I don't know if the builtin to get SP is enabled */
-
-static inline uint32 up_getsp(void)
-{
- uint32 sp;
- __asm__
- (
- "\tmov %0, sp\n\t"
- : "=r"(sp)
- );
- return sp;
-}
-
-/************************************************************
- * Name: up_stackdump
- ************************************************************/
-
-#ifdef CONFIG_ARCH_STACKDUMP
-static void up_stackdump(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- uint32 sp = up_getsp();
- uint32 stack_base;
- uint32 stack_size;
-
- if (rtcb->pid == 0)
- {
- stack_base = g_heapbase - 4;
- stack_size = CONFIG_PROC_STACK_SIZE;
- }
- else
- {
- stack_base = (uint32)rtcb->adj_stack_ptr;
- stack_size = (uint32)rtcb->adj_stack_size;
- }
-
- lldbg("stack_base: %08x\n", stack_base);
- lldbg("stack_size: %08x\n", stack_size);
- lldbg("sp: %08x\n", sp);
-
- if (sp >= stack_base || sp < stack_base - stack_size)
- {
- lldbg("ERROR: Stack pointer is not within allocated stack\n");
- return;
- }
- else
- {
- uint32 stack = sp & ~0x1f;
-
- for (stack = sp & ~0x1f; stack < stack_base; stack += 32)
- {
- uint32 *ptr = (uint32*)stack;
- lldbg("%08x: %08x %08x %08x %08x %08x %08x %08x %08x\n",
- stack, ptr[0], ptr[1], ptr[2], ptr[3],
- ptr[4], ptr[5], ptr[6], ptr[7]);
- }
- }
-
- if (current_regs)
- {
- int regs;
-
- for (regs = REG_R0; regs <= REG_R15; regs += 8)
- {
- uint32 *ptr = (uint32*)&current_regs[regs];
- lldbg("R%d: %08x %08x %08x %08x %08x %08x %08x %08x\n",
- regs, ptr[0], ptr[1], ptr[2], ptr[3],
- ptr[4], ptr[5], ptr[6], ptr[7]);
- }
- lldbg("CPSR: %08x\n", current_regs[REG_CPSR]);
- }
-}
-#else
-# define up_stackdump()
-#endif
-
-/************************************************************
- * Name: _up_assert
- ************************************************************/
-
-static void _up_assert(int errorcode) /* __attribute__ ((noreturn)) */
-{
- /* Are we in an interrupt handler or the idle task? */
-
- if (current_regs || ((_TCB*)g_readytorun.head)->pid == 0)
- {
- (void)irqsave();
- for(;;)
- {
- }
- }
- else
- {
- exit(errorcode);
- }
-}
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_assert
- ************************************************************/
-
-void up_assert(const ubyte *filename, int lineno)
-{
-#if CONFIG_TASK_NAME_SIZE > 0
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-#endif
-
-#if CONFIG_TASK_NAME_SIZE > 0
- lldbg("Assertion failed at file:%s line: %d task: %s\n",
- filename, lineno, rtcb->name);
-#else
- lldbg("Assertion failed at file:%s line: %d\n",
- filename, lineno);
-#endif
- up_stackdump();
- _up_assert(EXIT_FAILURE);
-}
-
-/************************************************************
- * Name: up_assert_code
- ************************************************************/
-
-void up_assert_code(const ubyte *filename, int lineno, int errorcode)
-{
-#if CONFIG_TASK_NAME_SIZE > 0
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-#endif
-
-#if CONFIG_TASK_NAME_SIZE > 0
- lldbg("Assertion failed at file:%s line: %d task: %s error code: %d\n",
- filename, lineno, rtcb->name, errorcode);
-#else
- lldbg("Assertion failed at file:%s line: %d error code: %d\n",
- filename, lineno, errorcode);
-#endif
- up_stackdump();
- _up_assert(errorcode);
-}
diff --git a/nuttx/arch/dm320/src/up_blocktask.c b/nuttx/arch/dm320/src/up_blocktask.c
deleted file mode 100644
index ce2f430ff..000000000
--- a/nuttx/arch/dm320/src/up_blocktask.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/************************************************************
- * up_blocktask.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_block_task
- *
- * Description:
- * The currently executing task at the head of
- * the ready to run list must be stopped. Save its context
- * and move it to the inactive list specified by task_state.
- *
- * Inputs:
- * tcb: Refers to a task in the ready-to-run list (normally
- * the task at the the head of the list). It most be
- * stopped, its context saved and moved into one of the
- * waiting task lists. It it was the task at the head
- * of the ready-to-run list, then a context to the new
- * ready to run task must be performed.
- * task_state: Specifies which waiting task list should be
- * hold the blocked task TCB.
- *
- ************************************************************/
-
-void up_block_task(_TCB *tcb, tstate_t task_state)
-{
- /* Verify that the context switch can be performed */
-
- if ((tcb->task_state < FIRST_READY_TO_RUN_STATE) ||
- (tcb->task_state > LAST_READY_TO_RUN_STATE))
- {
- PANIC(OSERR_BADBLOCKSTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- boolean switch_needed;
-
- lldbg("Blocking TCB=%p\n", tcb);
-
- /* Remove the tcb task from the ready-to-run list. If we
- * are blocking the task at the head of the task list (the
- * most likely case), then a context switch to the next
- * ready-to-run task is needed. In this case, it should
- * also be true that rtcb == tcb.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Add the task to the specified blocked task list */
-
- sched_addblocked(tcb, (tstate_t)task_state);
-
- /* If there are any pending tasks, then add them to the g_readytorun
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- switch_needed |= sched_mergepending();
- }
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* Are we in an interrupt handler? */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the user C context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/dm320/src/up_boot.c b/nuttx/arch/dm320/src/up_boot.c
deleted file mode 100644
index d433fbbf1..000000000
--- a/nuttx/arch/dm320/src/up_boot.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/************************************************************************************
- * up_boot.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************************/
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/************************************************************************************
- * Private Types
- ************************************************************************************/
-
-/************************************************************************************
- * Private Types
- ************************************************************************************/
-
-struct section_mapping_s
-{
- uint32 physbase; /* Physical address of the region to be mapped */
- uint32 virtbase; /* Virtual address of the region to be mapped */
- uint32 mmuflags; /* MMU settings for the region (e.g., cache-able) */
- uint32 nsections; /* Number of mappings in the region */
-};
-
-/************************************************************************************
- * Public Variables
- ************************************************************************************/
-
-extern uint32 _vector_start; /* Beginning of vector block */
-extern uint32 _vector_end; /* End+1 of vector block */
-
-/************************************************************************************
- * Private Variables
- ************************************************************************************/
-
-static const struct section_mapping_s section_mapping[] =
-{
- { DM320_PERIPHERALS_PSECTION, DM320_PERIPHERALS_VSECTION,
- DM320_PERIPHERALS_MMUFLAGS, DM320_PERIPHERALS_NSECTIONS},
- { DM320_FLASH_PSECTION, DM320_FLASH_VSECTION,
- DM320_FLASH_MMUFLAGS, DM320_FLASH_NSECTIONS},
- { DM320_CFI_PSECTION, DM320_CFI_VSECTION,
- DM320_CFI_MMUFLAGS, DM320_CFI_NSECTIONS},
- { DM320_SSFDC_PSECTION, DM320_SSFDC_VSECTION,
- DM320_SSFDC_MMUFLAGS, DM320_SSFDC_NSECTIONS},
- { DM320_CE1_PSECTION, DM320_CE1_VSECTION,
- DM320_CE1_MMUFLAGS, DM320_CE1_NSECTIONS},
- { DM320_CE2_PSECTION, DM320_CE2_VSECTION,
- DM320_CE2_MMUFLAGS, DM320_CE2_NSECTIONS},
- { DM320_VLYNQ_PSECTION, DM320_VLYNQ_VSECTION,
- DM320_VLYNQ_MMUFLAGS, DM320_VLYNQ_NSECTIONS},
- { DM320_USBOTG_PSECTION, DM320_USBOTG_VSECTION,
- DM320_USBOTG_MMUFLAGS, DM320_USBOTG_NSECTIONS}
-};
-#define NMAPPINGS (sizeof(section_mapping) / sizeof(struct section_mapping_s))
-
-/************************************************************************************
- * Private Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Name: up_setlevel1entry
- ************************************************************************************/
-
-static inline void up_setlevel1entry(uint32 paddr, uint32 vaddr, uint32 mmuflags)
-{
- uint32 *pgtable = (uint32*)PGTABLE_BASE_VADDR;
- uint32 index = vaddr >> 20;
-
- /* Save the page table entry */
-
- pgtable[index] = (paddr | mmuflags);
-}
-
-/************************************************************************************
- * Name: up_setlevel2coarseentry
- ************************************************************************************/
-
-static inline void up_setlevel2coarseentry(uint32 ctabvaddr, uint32 paddr,
- uint32 vaddr, uint32 mmuflags)
-{
- uint32 *ctable = (uint32*)ctabvaddr;
- uint32 index;
-
- /* The coarse table divides a 1Mb address space up into 256 entries, each
- * corresponding to 4Kb of address space. The coarse page table index is
- * related to the offset from the beginning of 1Mb region.
- */
-
- index = (vaddr & 0x000ff000) >> 12;
-
- /* Save the coarse table entry */
-
- ctable[index] = (paddr | mmuflags);
-}
-
-/************************************************************************************
- * Name: up_setupmappings
- ************************************************************************************/
-
-static void up_setupmappings(void)
-{
- int i, j;
-
- for (i = 0; i < NMAPPINGS; i++)
- {
- uint32 sect_paddr = section_mapping[i].physbase;
- uint32 sect_vaddr = section_mapping[i].virtbase;
- uint32 mmuflags = section_mapping[i].mmuflags;
-
- for (j = 0; j < section_mapping[i].nsections; j++)
- {
- up_setlevel1entry(sect_paddr, sect_vaddr, mmuflags);
- sect_paddr += SECTION_SIZE;
- sect_vaddr += SECTION_SIZE;
- }
- }
-}
-
-/************************************************************************************
- * Name: up_vectormapping
- ************************************************************************************/
-
-static void up_vectormapping(void)
-{
- uint32 vector_paddr = DM320_IRAM_PADDR;
- uint32 vector_vaddr = DM320_VECTOR_VADDR;
- uint32 end_paddr = vector_paddr + DM320_IRAM_SIZE;
-
- /* We want to keep our interrupt vectors and interrupt-related logic in zero-wait
- * state internal RAM (IRAM). The DM320 has 16Kb of IRAM positioned at physical
- * address 0x0000:0000; we need to map this to 0xffff:0000.
- */
-
- while (vector_paddr < end_paddr)
- {
- up_setlevel2coarseentry(PGTABLE_COARSE_BASE_VADDR,
- vector_paddr,
- vector_vaddr,
- MMU_L2_VECTORFLAGS);
- vector_paddr += 4096;
- vector_vaddr += 4096;
- }
-
- /* Now set the level 1 descriptor to refer to the level 2 coarse page table. */
-
- up_setlevel1entry(PGTABLE_COARSE_BASE_PADDR,
- DM320_VECTOR_VCOARSE,
- MMU_L1_VECTORFLAGS);
-}
-
-/************************************************************************************
- * Name: up_copyvectorblock
- ************************************************************************************/
-
-static void up_copyvectorblock(void)
-{
- uint32 *src = (uint32*)&_vector_start;
- uint32 *end = (uint32*)&_vector_end;
- uint32 *dest = (uint32*)VECTOR_BASE;
-
- while (src < end)
- {
- *dest++ = *src++;
- }
-}
-
-/************************************************************************************
- * Public Functions
- ************************************************************************************/
-
-void up_boot(void)
-{
- /* __start provided the basic MMU mappings for SDRAM. Now provide mappings for all
- * IO regions (Including the vector region).
- */
-
- up_setupmappings();
-
- /* Provide a special mapping for the IRAM interrupt vector positioned in high
- * memory.
- */
-
- up_vectormapping();
-
- /* Setup up vector block. _vector_start and _vector_end are exported from
- * up_vector.S
- */
-
- up_copyvectorblock();
-}
diff --git a/nuttx/arch/dm320/src/up_cache.S b/nuttx/arch/dm320/src/up_cache.S
deleted file mode 100644
index 61452f8ec..000000000
--- a/nuttx/arch/dm320/src/up_cache.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/********************************************************************
- * up_cache.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************/
-
-/********************************************************************
- * Included Files
- ********************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/********************************************************************
- * Definitions
- ********************************************************************/
-
-#define CACHE_DLINESIZE 32
-
-/********************************************************************
- * Assembly Macros
- ********************************************************************/
-
-/**************************************************************************
- * Name: up_flushicache
- **************************************************************************/
-
-/* Esure coherency between the Icache and the Dcache in the region described
- * by r0=start and r1=end.
- */
- .globl up_flushicache
- .type up_flushicache,%function
-up_flushicache:
- bic r0, r0, #CACHE_DLINESIZE - 1
-1: mcr p15, 0, r0, c7, c10, 1 /* Clean D entry */
- mcr p15, 0, r0, c7, c5, 1 /* Invalidate I entry */
- add r0, r0, #CACHE_DLINESIZE
- cmp r0, r1
- blo 1b
- mcr p15, 0, r0, c7, c10, 4 /* Drain WB */
- mov pc, lr
- .size up_flushicache, .-up_flushicache
- .end
-
diff --git a/nuttx/arch/dm320/src/up_copystate.c b/nuttx/arch/dm320/src/up_copystate.c
deleted file mode 100644
index bd9db8161..000000000
--- a/nuttx/arch/dm320/src/up_copystate.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/************************************************************
- * up_copystate.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_undefinedinsn
- ************************************************************/
-
-/* A little faster than most memcpy's */
-
-void up_copystate(uint32 *dest, uint32 *src)
-{
- int i;
- for (i = 0; i < XCPTCONTEXT_REGS; i++)
- {
- *dest++ = *src++;
- }
-}
-
diff --git a/nuttx/arch/dm320/src/up_createstack.c b/nuttx/arch/dm320/src/up_createstack.c
deleted file mode 100644
index b3a0b66a8..000000000
--- a/nuttx/arch/dm320/src/up_createstack.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/************************************************************
- * up_createstack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_create_stack
- *
- * Description:
- * Allocate a stack for a new thread and setup
- * up stack-related information in the TCB.
- *
- * The following TCB fields must be initialized:
- * adj_stack_size: Stack size after adjustment for hardware,
- * processor, etc. This value is retained only for debug
- * purposes.
- * stack_alloc_ptr: Pointer to allocated stack
- * adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The
- * initial value of the stack pointer.
- *
- * Inputs:
- * tcb: The TCB of new task
- * stack_size: The requested stack size. At least this much
- * must be allocated.
- ************************************************************/
-
-STATUS up_create_stack(_TCB *tcb, size_t stack_size)
-{
- if (tcb->stack_alloc_ptr &&
- tcb->adj_stack_size != stack_size)
- {
- sched_free(tcb->stack_alloc_ptr);
- tcb->stack_alloc_ptr = NULL;
- }
-
- if (!tcb->stack_alloc_ptr)
- {
- tcb->stack_alloc_ptr = (uint32 *)kzmalloc(stack_size);
- }
-
- if (tcb->stack_alloc_ptr)
- {
- size_t top_of_stack;
- size_t size_of_stack;
-
- /* The Arm7Tdmi uses a push-down stack: the stack grows
- * toward loweraddresses in memory. The stack pointer
- * register, points to the lowest, valid work address
- * (the "top" of the stack). Items on the stack are
- * referenced as positive word offsets from sp.
- */
-
- top_of_stack = (uint32)tcb->stack_alloc_ptr + stack_size - 4;
-
- /* The Arm7Tdmi stack must be aligned at word (4 byte)
- * boundaries. If necessary top_of_stack must be rounded
- * down to the next boundary
- */
-
- top_of_stack &= ~3;
- size_of_stack = top_of_stack - (uint32)tcb->stack_alloc_ptr + 4;
-
- /* Save the adjusted stack values in the _TCB */
-
- tcb->adj_stack_ptr = (uint32*)top_of_stack;
- tcb->adj_stack_size = size_of_stack;
-
- return OK;
- }
-
- return ERROR;
-}
diff --git a/nuttx/arch/dm320/src/up_dataabort.c b/nuttx/arch/dm320/src/up_dataabort.c
deleted file mode 100644
index 219fc1229..000000000
--- a/nuttx/arch/dm320/src/up_dataabort.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/************************************************************
- * up_dataabort.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Output debug info if stack dump is selected -- even if
- * debug is not selected.
- */
-
-#ifdef CONFIG_ARCH_STACKDUMP
-# undef lldbg
-# define lldbg lib_lowprintf
-#endif
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_dataabort
- ************************************************************/
-
-void up_dataabort(uint32 *regs)
-{
- lldbg("Data abort at 0x%x\n", regs[REG_PC]);
- current_regs = regs;
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/dm320/src/up_delay.c b/nuttx/arch/dm320/src/up_delay.c
deleted file mode 100644
index e46ca09bb..000000000
--- a/nuttx/arch/dm320/src/up_delay.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/************************************************************
- * up_delay.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <string.h>
-#include <errno.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <nuttx/fs.h>
-#include <arch/serial.h>
-#include "dm320.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define LOOPS_PER_MSEC 1250
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Private Variables
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_delay
- *
- * Description:
- * Delay inline for the requested number of milliseconds.
- * NOT multi-tasking friendly.
- *
- ************************************************************/
-
-void up_delay(int milliseconds)
-{
- volatile int i;
- volatile int j;
-
- for (i = 0; i < milliseconds; i++)
- {
- for (j = 0; j < LOOPS_PER_MSEC; j++)
- {
- }
- }
-}
diff --git a/nuttx/arch/dm320/src/up_doirq.c b/nuttx/arch/dm320/src/up_doirq.c
deleted file mode 100644
index c1d8ef2d0..000000000
--- a/nuttx/arch/dm320/src/up_doirq.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/********************************************************************************
- * up_doirq.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************************/
-
-/********************************************************************************
- * Included Files
- ********************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <assert.h>
-#include <debug.h>
-#include "dm320.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/********************************************************************************
- * Definitions
- ********************************************************************************/
-
-/********************************************************************************
- * Public Data
- ********************************************************************************/
-
-/********************************************************************************
- * Private Data
- ********************************************************************************/
-
-/********************************************************************************
- * Private Functions
- ********************************************************************************/
-
-/********************************************************************************
- * Public Funtions
- ********************************************************************************/
-
-void up_doirq(uint32* regs)
-{
-#ifdef CONFIG_SUPPRESS_INTERRUPTS
- lib_lowprintf("Unexpected IRQ\n");
- current_regs = regs;
- PANIC(OSERR_ERREXCEPTION);
-#else
- /* Decode the interrupt. First, fetch the interrupt id register. */
-
- uint16 irqentry = getreg16(DM320_INTC_IRQENTRY0);
-
- /* The irqentry value is an offset into a table. Zero means no interrupt. */
-
- if (irqentry != 0)
- {
- /* If non-zero, then we can map the table offset into an IRQ number */
-
- int irq = (irqentry >> 2) - 1;
-
- /* Verify that the resulting IRQ number is valie */
-
- if ((unsigned)irq < NR_IRQS)
- {
- /* Mask and acknowledge the interrupt */
-
- up_maskack_irq(irq);
-
- /* Current regs non-zero indicates that we are processing an interrupt;
- * current_regs is also used to manage interrupt level context switches.
- */
-
- current_regs = regs;
-
- /* Deliver the IRQ */
-
- irq_dispatch(irq, regs);
-
- /* Indicate that we are no long in an interrupt handler */
-
- current_regs = NULL;
-
- /* Unmask the last interrupt (global interrupts are still
- * disabled.
- */
-
- up_enable_irq(irq);
- }
- }
-#endif
-}
diff --git a/nuttx/arch/dm320/src/up_exit.c b/nuttx/arch/dm320/src/up_exit.c
deleted file mode 100644
index a95b8855b..000000000
--- a/nuttx/arch/dm320/src/up_exit.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
- * up_exit.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-#ifdef CONFIG_DUMP_ON_EXIT
-#include <nuttx/fs.h>
-#endif
-
-/****************************************************************************
- * Private Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: _up_dumponexit
- *
- * Description:
- * Dump the state of all tasks whenever on task exits. This is debug
- * instrumentation that was added to check file-related reference counting
- * but could be useful again sometime in the future.
- *
- ****************************************************************************/
-
-#if defined(CONFIG_DUMP_ON_EXIT) && defined(CONFIG_DEBUG)
-static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
-{
- int i;
- dbg(" TCB=%p name=%s\n", tcb, tcb->argv[0]);
- if (tcb->filelist)
- {
- dbg(" filelist refcount=%d\n",
- tcb->filelist->fl_crefs);
-
- for (i = 0; i < CONFIG_NFILE_DESCRIPTORS; i++)
- {
- struct inode *inode = tcb->filelist->fl_files[i].f_inode;
- if (inode)
- {
- dbg(" fd=%d refcount=%d\n",
- i, inode->i_crefs);
- }
- }
- }
-
- if (tcb->streams)
- {
- dbg(" streamlist refcount=%d\n",
- tcb->streams->sl_crefs);
-
- for (i = 0; i < CONFIG_NFILE_STREAMS; i++)
- {
- struct file_struct *filep = &tcb->streams->sl_streams[i];
- if (filep->fs_filedes >= 0)
- {
- dbg(" fd=%d nbytes=%d\n",
- filep->fs_filedes,
- filep->fs_bufpos - filep->fs_bufstart);
- }
- }
- }
-}
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: _exit
- *
- * Description:
- * This function causes the currently executing task to cease
- * to exist. This is a special case of task_delete() where the task to
- * be deleted is the currently executing task. It is more complex because
- * a context switch must be perform to the the next ready to run task.
- *
- ****************************************************************************/
-
-void _exit(int status)
-{
- _TCB* tcb;
-
- /* Disable interrupts. They will be restored when the next
- * task is started.
- */
-
- (void)irqsave();
-
- lldbg("TCB=%p exitting\n", tcb);
-
-#if defined(CONFIG_DUMP_ON_EXIT) && defined(CONFIG_DEBUG)
- lldbg("Other tasks:\n");
- sched_foreach(_up_dumponexit, NULL);
-#endif
-
- /* Destroy the task at the head of the ready to run list. */
-
- (void)task_deletecurrent();
-
- /* Now, perform the context switch to the new ready-to-run task at the
- * head of the list.
- */
-
- tcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", tcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(tcb->xcp.regs);
-}
-
diff --git a/nuttx/arch/dm320/src/up_fullcontextrestore.S b/nuttx/arch/dm320/src/up_fullcontextrestore.S
deleted file mode 100644
index 4d0303ba2..000000000
--- a/nuttx/arch/dm320/src/up_fullcontextrestore.S
+++ /dev/null
@@ -1,117 +0,0 @@
-/**************************************************************************
- * up_fullcontextrestore.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_fullcontextrestore
- **************************************************************************/
-
- .globl up_fullcontextrestore
- .type up_fullcontextrestore, function
-up_fullcontextrestore:
-
- /* On entry, a1 (r0) holds address of the register save area */
-
- /* Recover all registers except for r0, r1, R15, and CPSR */
-
- add r1, r0, #(4*REG_R2) /* Offset to REG_R2 storage */
- ldmia r1, {r2-r14} /* Recover registers */
-
- /* Create a stack frame to hold the PC */
-
- sub sp, sp, #(3*4) /* Frame for three registers */
- ldr r1, [r0, #(4*REG_R0)] /* Fetch the stored r0 value */
- str r1, [sp] /* Save it at the top of the stack */
- ldr r1, [r0, #(4*REG_R1)] /* Fetch the stored r1 value */
- str r1, [sp, #4] /* Save it in the stack */
- ldr r1, [r0, #(4*REG_PC)] /* Fetch the stored pc value */
- str r1, [sp, #8] /* Save it at the bottom of the frame */
-
- /* Now we can restore the CPSR. We wait until we are completely
- * finished with the context save data to do this. Restore the CPSR
- * may re-enable and interrupts and we couldt be in a context
- * where save structure is only protected by interrupts being disabled.
- */
-
- ldr r1, [r0, #(4*REG_CPSR)] /* Fetch the stored CPSR value */
- msr cpsr, r1 /* Set the CPSR */
-
- /* Now recover r0 and r1 */
-
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add sp, sp, #(2*4)
-
- /* Then return to the address at the stop of the stack,
- * destroying the stack frame
- */
-
- ldr pc, [sp], #4
- .size up_fullcontextrestore, . - up_fullcontextrestore
-
diff --git a/nuttx/arch/dm320/src/up_head.S b/nuttx/arch/dm320/src/up_head.S
deleted file mode 100644
index 387541079..000000000
--- a/nuttx/arch/dm320/src/up_head.S
+++ /dev/null
@@ -1,324 +0,0 @@
-/********************************************************************
- * up_head.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************/
-
-/********************************************************************
- * Included Files
- ********************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/**************************************************************************
- * Conditional Compilation
- **************************************************************************/
-
-#undef ALIGNMENT_TRAP
-#undef CPU_DCACHE_WRITETHROUGH
-#undef CPU_CACHE_ROUND_ROBIN
-#undef CPU_DCACHE_DISABLE
-#undef CPU_ICACHE_DISABLE
-
-/********************************************************************
- * Definitions
- ********************************************************************/
-
-/* The physical address of the beginning of SDRAM is provided by
- * CONFIG_DRAM_BASE. The size of installed SDRAM is provided by
- * CONFIG_DRAM_SIZE. The virtual address of SDRAM is provided by
- * DM320_SDRAM_VADDR.
- */
-
-#define NSDRAM_SECTIONS (CONFIG_DRAM_SIZE >> 20)
-
-/********************************************************************
- * Assembly Macros
- ********************************************************************/
-
-/* Since the page table is closely related to the NuttX base
- * address, we can convert the page table base address to the
- * base address of the section containing both.
- */
-
- .macro mksection, section, pgtable
- bic \section, \pgtable, #0x000ff000
- .endm
-
-/* This macro will modify r0, r1, r2 and r14 */
-
-#ifdef CONFIG_DEBUG
- .macro showprogress, code
- mov r0, #\code
- bl up_lowputc
- .endm
-#else
- .macro showprogress, code
- .endm
-#endif
-
-/********************************************************************
- * Name: __start
- ********************************************************************/
-
-/* We assume the bootloader has already initialized most of the h/w for
- * us and that only leaves us having to do some os specific things
- * below.
- */
- .text
- .global __start
- .type __start, #function
-__start:
- /* Make sure that we are in SVC mode with all IRQs disabled */
-
- mov r0, #(SVC_MODE | PSR_I_BIT | PSR_F_BIT)
- msr cpsr_c, r0
-
- /* Clear the 16K level 1 page table */
-
- ldr r4, .LCppgtable /* r4=phys. page table */
- mov r0, r4
- mov r1, #0
- add r2, r0, #PGTABLE_SIZE
-.Lpgtableclear:
- str r1, [r0], #4
- str r1, [r0], #4
- str r1, [r0], #4
- str r1, [r0], #4
- teq r0, r2
- bne .Lpgtableclear
-
- /* Create identity mapping for first MB section to support
- * this startup logic executing out of the physical address
- * space. This identity mapping will be removed by .Lvstart
- * (see below).
- */
-
- mksection r0, r4 /* r0=phys. base section */
- ldr r1, .LCmmuflags /* FLGS=MMU_MEMFLAGS */
- add r3, r1, r0 /* r3=flags + base */
- str r3, [r4, r0, lsr #18] /* identity mapping */
-
- /* Create a "normal" single section mapping for the first
- * MB of memory. Now, we have the first 1MB mapping to
- * both phyical and virtual addresses. The reset of the
- * SDRAM mapping will be completed in .Lvstart once we have
- * moved the physical mapping out of the way.
- */
-
- ldr r2, .LCvpgtable /* r2=virt. page table */
- mksection r0, r2 /* r0=virt. base section */
- str r3, [r4, r0, lsr #18] /* identity mapping */
-
- /* The following logic will set up the ARM926 for normal operation */
-
- mov r0, #0
- mcr p15, 0, r0, c7, c7 /* Invalidate I,D caches */
- mcr p15, 0, r0, c7, c10, 4 /* Drain write buffer */
- mcr p15, 0, r0, c8, c7 /* Invalidate I,D TLBs */
- mcr p15, 0, r4, c2, c0 /* Load page table pointer */
-
-#ifdef CPU_DCACHE_WRITETHROUGH
- mov r0, #4 /* Disable write-back on caches explicitly */
- mcr p15, 7, r0, c15, c0, 0
-#endif
-
- /* Enable the MMU and caches
- * lr = Resume at .Lvstart with the MMU enabled
- */
-
- ldr lr, .LCvstart /* Abs. virtual address */
-
- mov r0, #0x1f /* Domains 0, 1 = client */
- mcr p15, 0, r0, c3, c0 /* Load domain access register */
- mrc p15, 0, r0, c1, c0 /* Get control register */
-
- /* Clear bits (see start.h) */
-
- bic r0, r0, #(CR_R|CR_F|CR_Z)
- bic r0, r0, #(CR_A|CR_C|CR_W)
- bic r0, r0, #(CR_I)
-
- /* Set bits (see start.h) */
-
- orr r0, r0, #(CR_M|CR_P|CR_D)
- orr r0, r0, #(CR_S|CR_V)
-
-#ifdef CPU_CACHE_ROUND_ROBIN
- orr r0, r0, #(CR_RR)
-#endif
-#ifndef CPU_DCACHE_DISABLE
- orr r0, r0, #(CR_C)
-#endif
-#ifndef CPU_ICACHE_DISABLE
- orr r0, r0, #(CR_I)
-#endif
-#ifdef ALIGNMENT_TRAP
- orr r0, r0, #(CR_A)
-#endif
- mcr p15, 0, r0, c1, c0, 0 /* write control reg */
-
- /* Get TMP=2 Processor ID register */
-
- mrc p15, 0, r1, c0, c0, 0 /* read id reg */
- mov r1, r1
- mov r1, r1
-
- mov pc, lr
-
-/**************************************************************************
- * PC_Relative Data
- **************************************************************************/
-
- /* These addresses are all virtual address */
-
- .type .LCvstart, %object
-.LCvstart:
- .long .Lvstart
- .type .LCmmuflags, %object
-.LCmmuflags:
- .long MMU_MEMFLAGS
- .type .LCppagetable, %object
-.LCppgtable:
- .long DM320_SDRAM_PADDR
- .type .LCvpagetable, %object
-.LCvpgtable:
- .long DM320_SDRAM_VADDR
- .size _start, .-_start
-
-/**************************************************************************
- * Name: .Lvstart
- **************************************************************************/
-
-/* The following is executed after the MMU has been enabled. This uses
- * absolute addresses; this is not position independent.
- */
- .align 5
- .local .Lvstart
- .type .Lvstart, %function
-.Lvstart:
-
- /* Remove the temporary null mapping */
-
- ldr r4, .LCvpgtable /* r4=virtual page table */
- ldr r1, .LCppgtable /* r1=phys. page table */
- mksection r3, r1 /* r2=phys. base addr */
- mov r0, #0 /* flags + base = 0 */
- str r0, [r4, r3, lsr #18] /* Undo identity mapping */
-
- /* Now setup the pagetables for our normal SDRAM mappings
- * mapped region. We round NUTTX_START_VADDR down to the
- * nearest megabyte boundary.
- */
-
- ldr r1, .LCmmuflags /* FLGS=MMU_MEMFLAGS */
- add r3, r3, r1 /* r3=flags + base */
-
- add r0, r4, #(NUTTX_START_VADDR & 0xff000000) >> 18
- bic r2, r3, #0x00f00000
- str r2, [r0]
-
- add r0, r0, #(NUTTX_START_VADDR & 0x00f00000) >> 18
- str r3, [r0], #4
-
- /* Now map the remaining NSDRAM_SECTIONS-1 SDRAM sections */
-
- .rept NSDRAM_SECTIONS-1
- add r3, r3, #SECTION_SIZE
- str r3, [r0], #4
- .endr
-
- /* Zero BSS and set up the stack pointer */
-
- adr r0, .Linitparms
- ldmia r0, {r0, r1, sp}
-
- /* Clear the frame pointer and .bss */
-
- mov fp, #0
-
-.Lbssinit:
- cmp r0, r1 /* Clear up to _bss_end_ */
- strcc fp, [r0],#4
- bcc .Lbssinit
-
- /* Perform early C-level initialization */
-
- bl up_boot
-
- /* Set up the LEDs */
-
-#ifdef CONFIG_ARCH_LEDS
- bl up_ledinit
-#endif
- /* Perform early serial initialization */
-
-#ifdef CONFIG_DEV_CONSOLE
- bl up_earlyserialinit
-#endif
-
- /* Finally branch to the OS entry point */
-
- mov lr, #0
- b os_start
-
- /* Variables:
- * _sbss is the start of the BSS region (see ld.script)
- * _ebss is the end of the BSS regsion (see ld.script)
- * The idle task stack starts at the end of BSS and is
- * of size CONFIG_PROC_STACK_SIZE. The heap continues
- * from there until the end of memory. See g_heapbase
- * below.
- */
-
-.Linitparms:
- .long _sbss
- .long _ebss
- .long _ebss+CONFIG_PROC_STACK_SIZE-4
- .size .Lvstart, .-.Lvstart
-
- /* This global variable is unsigned long g_heapbase and is
- * exported from here only because of its coupling to .Linitparms
- * above.
- */
-
- .data
- .align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
- .long _ebss+CONFIG_PROC_STACK_SIZE
- .size g_heapbase, .-g_heapbase
- .end
-
diff --git a/nuttx/arch/dm320/src/up_idle.c b/nuttx/arch/dm320/src/up_idle.c
deleted file mode 100644
index 9a6bc9900..000000000
--- a/nuttx/arch/dm320/src/up_idle.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/************************************************************
- * up_idle.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_idle
- *
- * Description:
- * up_idle() is the logic that will be executed when their
- * is no other ready-to-run task. This is processor idle
- * time and will continue until some interrupt occurs to
- * cause a context switch from the idle task.
- *
- * Processing in this state may be processor-specific. e.g.,
- * this is where power management operations might be
- * performed.
- *
- ************************************************************/
-
-void up_idle(void)
-{
-#if defined(CONFIG_SUPPRESS_INTERRUPTS) || defined(CONFIG_SUPPRESS_TIMER_INTS)
- /* If the system is idle and there are no timer interrupts,
- * then process "fake" timer interrupts. Hopefully, something
- * will wake up.
- */
-
- sched_process_timer();
-#endif
-}
-
diff --git a/nuttx/arch/dm320/src/up_initialize.c b/nuttx/arch/dm320/src/up_initialize.c
deleted file mode 100644
index 5c5c66d8e..000000000
--- a/nuttx/arch/dm320/src/up_initialize.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/************************************************************
- * up_initialize.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/fs.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_initialize
- *
- * Description:
- * up_initialize will be called once during OS
- * initialization after the basic OS services have been
- * initialized. The architecture specific details of
- * initializing the OS will be handled here. Such things as
- * setting up interrupt service routines, starting the
- * clock, and registering device drivers are some of the
- * things that are different for each processor and hardware
- * platform.
- *
- * up_initialize is called after the OS initialized but
- * before the init process has been started and before the
- * libraries have been initialized. OS services and driver
- * services are available.
- *
- ************************************************************/
-
-void up_initialize(void)
-{
- /* Initialize global variables */
-
- current_regs = NULL;
-
- /* Initialize the interrupt subsystem */
-
- up_irqinitialize();
-
- /* Initialize the system timer interrupt */
-
-#if !defined(CONFIG_SUPPRESS_INTERRUPTS) && !defined(CONFIG_SUPPRESS_TIMER_INTS)
- up_timerinit();
-#endif
-
- /* Register devices */
-
- devnull_register(); /* Standard /dev/null */
-
- /* Initialize the serial device driver */
-
-#ifdef CONFIG_DEV_CONSOLE
- up_serialinit();
-#endif
-}
diff --git a/nuttx/arch/dm320/src/up_initialstate.c b/nuttx/arch/dm320/src/up_initialstate.c
deleted file mode 100644
index 312748795..000000000
--- a/nuttx/arch/dm320/src/up_initialstate.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/************************************************************
- * up_initialstate.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <string.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_initial_state
- *
- * Description:
- * A new thread is being started and a new TCB
- * has been created. This function is called to initialize
- * the processor specific portions of the new TCB.
- *
- * This function must setup the intial architecture registers
- * and/or stack so that execution will begin at tcb->start
- * on the next context switch.
- *
- ************************************************************/
-
-void up_initial_state(_TCB *tcb)
-{
- struct xcptcontext *xcp = &tcb->xcp;
-
- /* Initialize the initial exception register context structure */
-
- memset(xcp, 0, sizeof(struct xcptcontext));
- xcp->regs[REG_SP] = (uint32)tcb->adj_stack_ptr;
- xcp->regs[REG_PC] = (uint32)tcb->start;
-#ifdef CONFIG_SUPPRESS_INTERRUPTS
- xcp->regs[REG_CPSR] = SVC_MODE | PSR_I_BIT | PSR_F_BIT;
-#else
- xcp->regs[REG_CPSR] = SVC_MODE | PSR_F_BIT;
-#endif
-}
diff --git a/nuttx/arch/dm320/src/up_internal.h b/nuttx/arch/dm320/src/up_internal.h
deleted file mode 100644
index 16112d980..000000000
--- a/nuttx/arch/dm320/src/up_internal.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/************************************************************
- * up_internal.h
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-#ifndef __UP_INTERNAL_H
-#define __UP_INTERNAL_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Bring-up debug configurations. These are here (vs defconfig)
- * because these should only be controlled during low level
- * board bring-up and not part of normal platform configuration.
- */
-
-#undef CONFIG_SUPPRESS_INTERRUPTS /* Do not enable interrupts */
-#undef CONFIG_SUPPRESS_TIMER_INTS /* No timer */
-#undef CONFIG_SUPPRESS_SERIAL_INTS /* Console will poll */
-#define CONFIG_SUPPRESS_UART_CONFIG 1 /* Do not reconfig UART */
-#define CONFIG_DUMP_ON_EXIT 1 /* Dump task state on exit */
-
-/************************************************************
- * Public Types
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-typedef void (*up_vector_t)(void);
-#endif
-
-/************************************************************
- * Public Variables
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-/* This holds a references to the current interrupt level
- * register storage structure. If is non-NULL only during
- * interrupt processing.
- */
-
-extern uint32 *current_regs;
-
-/* This is the beginning of heap as provided from up_head.S.
- * This is the first address in DRAM after the loaded
- * program+bss+idle stack. The end of the heap is
- * CONFIG_DRAM_END
- */
-
-extern uint32 g_heapbase;
-#endif
-
-/************************************************************
- * Inline Functions
- ************************************************************/
-
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* Defined in files with the same name as the function */
-
-extern void up_boot(void);
-extern void up_copystate(uint32 *dest, uint32 *src);
-extern void up_dataabort(uint32 *regs);
-extern void up_delay(int milliseconds);
-extern void up_doirq(uint32* regs);
-extern void up_fullcontextrestore(uint32 *regs) __attribute__ ((noreturn));
-extern void up_irqinitialize(void);
-extern void up_prefetchabort(uint32 *regs);
-extern int up_saveusercontext(uint32 *regs);
-extern void up_sigdeliver(void);
-extern void up_syscall(uint32 *regs);
-extern int up_timerisr(int irq, uint32 *regs);
-extern void up_undefinedinsn(uint32 *regs);
-
-#ifdef CONFIG_DEBUG
-extern void up_lowputc(char ch);
-#else
-# define up_lowputc(ch)
-#endif
-
-/* Defined in up_vectors.S */
-
-extern void up_vectorundefinsn(void);
-extern void up_vectorswi(void);
-extern void up_vectorprefetch(void);
-extern void up_vectordata(void);
-extern void up_vectoraddrexcptn(void);
-extern void up_vectorirq(void);
-extern void up_vectorfiq(void);
-
-/* Defined in up_serial.c */
-
-extern void up_earlyserialinit(void);
-extern void up_serialinit(void);
-
-/* Defined in up_watchdog.c */
-
-extern void up_wdtinit(void);
-
-/* Defined in up_timerisr.c */
-
-extern void up_timerinit(void);
-
-/* Defined in up_irq.c */
-
-extern void up_maskack_irq(int irq);
-
-/* Defined in board/up_leds.c */
-
-#ifdef CONFIG_ARCH_LEDS
-extern void up_ledinit(void);
-extern void up_ledon(int led);
-extern void up_ledoff(int led);
-#else
-# define up_ledinit()
-# define up_ledon(led)
-# define up_ledoff(led)
-#endif
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __UP_INTERNAL_H */
diff --git a/nuttx/arch/dm320/src/up_interruptcontext.c b/nuttx/arch/dm320/src/up_interruptcontext.c
deleted file mode 100644
index b6df69ea4..000000000
--- a/nuttx/arch/dm320/src/up_interruptcontext.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/************************************************************
- * up_interruptcontext.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/arch.h>
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_interrupt_context
- *
- * Description: Return TRUE is we are currently executing in
- * the interrupt handler context.
- ************************************************************/
-
-boolean up_interrupt_context(void)
-{
- return current_regs != NULL;
-}
diff --git a/nuttx/arch/dm320/src/up_irq.c b/nuttx/arch/dm320/src/up_irq.c
deleted file mode 100644
index bdf8f1f6c..000000000
--- a/nuttx/arch/dm320/src/up_irq.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/************************************************************
- * up_irq.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <nuttx/irq.h>
-#include "dm320.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Public Data
- ************************************************************/
-
-uint32 *current_regs;
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/* The value of _vflashstart is defined in ld.script. It
- * could be hard-coded because we know that correct IRAM
- * area is 0xffc00000.
- */
-
-extern int _svectors; /* Type does not matter */
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_irqinitialize
- ************************************************************/
-
-void up_irqinitialize(void)
-{
- /* Clear, disable and configure all interrupts. */
-
- putreg16(0, DM320_INTC_EINT0); /* Mask all IRQs/FIQs */
- putreg16(0, DM320_INTC_EINT1);
- putreg16(0, DM320_INTC_EINT2);
-
- putreg16(0, DM320_INTC_INTRAW); /* No masked interrupts in status */
-
- putreg16(0, DM320_INTC_FISEL0); /* No FIQs */
- putreg16(0, DM320_INTC_FISEL1);
- putreg16(0, DM320_INTC_FISEL2);
-
- putreg16(0xffff, DM320_INTC_FIQ0); /* Clear all pending FIQs */
- putreg16(0xffff, DM320_INTC_FIQ1);
- putreg16(0xffff, DM320_INTC_FIQ2);
-
- putreg16(0xffff, DM320_INTC_IRQ0); /* Clear all pending IRQs */
- putreg16(0xffff, DM320_INTC_IRQ1);
- putreg16(0xffff, DM320_INTC_IRQ2);
-
- /* Make sure that the base addresses are zero and that
- * the table increment is 4 bytes.
- */
-
- putreg16(0, DM320_INTC_EABASE0);
- putreg16(0, DM320_INTC_EABASE1);
-
- /* currents_regs is non-NULL only while processing an interrupt */
-
- current_regs = NULL;
-
- /* And finally, enable interrupts */
-
-#ifndef CONFIG_SUPPRESS_INTERRUPTS
- irqrestore(SVC_MODE | PSR_F_BIT);
-#endif
-}
-
-/************************************************************
- * Name: up_disable_irq
- *
- * Description:
- * Disable the IRQ specified by 'irq'
- *
- ************************************************************/
-
-void up_disable_irq(int irq)
-{
- /* Disable the interrupt by clearing the corresponding bit in
- * the IRQ enable register.
- */
-
- if (irq < 16)
- {
- /* IRQs0-15 are controlled by the IRQ0 enable register
- * Clear the associated bit to disable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT0) & ~(1 << irq)), DM320_INTC_EINT0);
- }
- else if (irq < 32)
- {
- /* IRQs16-31 are controlled by the IRQ1 enable register
- * Clear the associated bit to disable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT1) & ~(1 << (irq-16))), DM320_INTC_EINT1);
- }
- else
- {
- /* IRQs32- are controlled by the IRQ2 enable register
- * Clear the associated bit to disable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT2) & ~(1 << (irq-32))), DM320_INTC_EINT2);
- }
-}
-
-/************************************************************
- * Name: up_enable_irq
- *
- * Description:
- * Enable the IRQ specified by 'irq'
- *
- ************************************************************/
-
-void up_enable_irq(int irq)
-{
- /* Enable the interrupt by setting the corresponding bit in
- * the IRQ enable register.
- */
-
- if (irq < 16)
- {
- /* IRQs0-15 are controlled by the IRQ0 enable register
- * Set the associated bit to enable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT0) | (1 << irq)), DM320_INTC_EINT0);
- }
- else if (irq < 32)
- {
- /* IRQs16-31 are controlled by the IRQ1 enable register
- * Set the associated bit to enable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT1) | (1 << (irq-16))), DM320_INTC_EINT1);
- }
- else
- {
- /* IRQs32- are controlled by the IRQ2 enable register
- * Set the associated bit to enable the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT2) | (1 << (irq-32))), DM320_INTC_EINT2);
- }
-}
-
-/************************************************************
- * Name: up_maskack_irq
- *
- * Description:
- * Mask the IRQ and acknowledge it
- *
- ************************************************************/
-
-void up_maskack_irq(int irq)
-{
- /* Disable the interrupt by clearing the corresponding bit in
- * the IRQ enable register. And acknowlege it by setting the
- * corresponding bit in the IRQ status register.
- */
-
- if (irq < 16)
- {
- /* IRQs0-15 are controlled by the IRQ0 enable register
- * Clear the associated enable bit to disable the interrupt
- * Set the associated status bit to clear the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT0) & ~(1<< irq)), DM320_INTC_EINT0);
- putreg16((1 << irq), DM320_INTC_IRQ0);
- }
- else if (irq < 32)
- {
- /* IRQs16-31 are controlled by the IRQ1 enable register
- * Clear the associated enable bit to disable the interrupt
- * Set the associated status bit to clear the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT1) & ~(1<< (irq-16))), DM320_INTC_EINT1);
- putreg16((1 << (irq-16)), DM320_INTC_IRQ1);
- }
- else
- {
- /* IRQs32- are controlled by the IRQ2 enable register
- * Clear the associated enable bit to disable the interrupt
- * Set the associated status bit to clear the interrupt
- */
-
- putreg16((getreg16(DM320_INTC_EINT2) & ~(1<< (irq-32))), DM320_INTC_EINT2);
- putreg16((1 << (irq-32)), DM320_INTC_IRQ2);
- }
-}
diff --git a/nuttx/arch/dm320/src/up_lowputc.S b/nuttx/arch/dm320/src/up_lowputc.S
deleted file mode 100644
index 591c97643..000000000
--- a/nuttx/arch/dm320/src/up_lowputc.S
+++ /dev/null
@@ -1,127 +0,0 @@
-/**************************************************************************
- * up_lowputc.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_lowputc
- **************************************************************************/
-
-/* This assembly language version has the advantage that it can does not
- * require a C stack and uses only r0-r1. Hence it can be used during
- * early boot phases.
- */
-
- .text
- .global up_lowputc
- .type up_lowputc, function
-up_lowputc:
- /* On entry, r0 holds the character to be printed */
-
-#ifdef CONFIG_UART0_SERIAL_CONSOLE
- ldr r2, =DM320_UART0_REGISTER_BASE /* r2=UART0 base */
-#else
- ldr r2, =DM320_UART1_REGISTER_BASE /* r2=UART1 base */
-#endif
-
- /* Poll the TX fifo trigger level bit of the UART_SSR
- * register. When the bit is non-zero, the TX FIFO is no
- * longer full
- */
-
-1: ldrh r1, [r2, #UART_SR]
- tst r1, #UART_SR_TFTI
- beq 1b
-
- /* Send the character by writing it into the UART_DTRR
- * register.
- */
-
- strh r0, [r2, #UART_DTRR]
-
- /* Wait for the tranmsit regiser to be emptied. This is
- * detemined when TX register empty bit of the SR is zero.
- */
-
-2: ldrh r1, [r2, #UART_SR]
- tst r1, #UART_SR_TREF
- bne 2b
-
- /* If the character that we just sent was a linefeed,
- * then send a carriage return as well.
- */
-
- teq r0, #'\n'
- moveq r0, #'\r'
- beq 1b
-
- /* And return */
-
- mov pc, lr
-
diff --git a/nuttx/arch/dm320/src/up_prefetchabort.c b/nuttx/arch/dm320/src/up_prefetchabort.c
deleted file mode 100644
index 5ce514be8..000000000
--- a/nuttx/arch/dm320/src/up_prefetchabort.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/************************************************************
- * up_prefetchabort.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Output debug info if stack dump is selected -- even if
- * debug is not selected.
- */
-
-#ifdef CONFIG_ARCH_STACKDUMP
-# undef lldbg
-# define lldbg lib_lowprintf
-#endif
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_prefetchabort
- ************************************************************/
-
-void up_prefetchabort(uint32 *regs)
-{
- lldbg("Prefetch abort at 0x%x\n", regs[REG_PC]);
- current_regs = regs;
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/dm320/src/up_releasepending.c b/nuttx/arch/dm320/src/up_releasepending.c
deleted file mode 100644
index 2b4179687..000000000
--- a/nuttx/arch/dm320/src/up_releasepending.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/************************************************************
- * up_releasepending.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_release_pending
- *
- * Description:
- * Release and ready-to-run tasks that have
- * collected in the pending task list. This can call a
- * context switch if a new task is placed at the head of
- * the ready to run list.
- *
- ************************************************************/
-
-void up_release_pending(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-
- lldbg("From TCB=%p\n", rtcb);
-
- /* Merge the g_pendingtasks list into the g_readytorun task list */
-
- /* sched_lock(); */
- if (sched_mergepending())
- {
- /* The currently active task has changed! We will need to
- * switch contexts. First check if we are operating in
- * interrupt context:
- */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the exception context into the TCB of the task that
- * was currently active. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task
- * restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
-}
diff --git a/nuttx/arch/dm320/src/up_releasestack.c b/nuttx/arch/dm320/src/up_releasestack.c
deleted file mode 100644
index e300c93bf..000000000
--- a/nuttx/arch/dm320/src/up_releasestack.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/************************************************************
- * up_releasestack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_release_stack
- *
- * Description:
- * A task has been stopped. Free all stack
- * related resources retained int the defunct TCB.
- *
- ************************************************************/
-
-void up_release_stack(_TCB *dtcb)
-{
- if (dtcb->stack_alloc_ptr)
- {
- sched_free(dtcb->stack_alloc_ptr);
- dtcb->stack_alloc_ptr = NULL;
- }
-
- dtcb->adj_stack_size = 0;
-}
diff --git a/nuttx/arch/dm320/src/up_reprioritizertr.c b/nuttx/arch/dm320/src/up_reprioritizertr.c
deleted file mode 100644
index 58f31bba5..000000000
--- a/nuttx/arch/dm320/src/up_reprioritizertr.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/************************************************************
- * up_reprioritizertr.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- * Called when the priority of a running or
- * ready-to-run task changes and the reprioritization will
- * cause a context switch. Two cases:
- *
- * 1) The priority of the currently running task drops and the next
- * task in the ready to run list has priority.
- * 2) An idle, ready to run task's priority has been raised above the
- * the priority of the current, running task and it now has the
- * priority.
- *
- * Inputs:
- * tcb: The TCB of the task that has been reprioritized
- * priority: The new task priority
- *
- ************************************************************/
-
-void up_reprioritize_rtr(_TCB *tcb, ubyte priority)
-{
- /* Verify that the caller is sane */
-
- if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
- tcb->task_state > LAST_READY_TO_RUN_STATE ||
- priority < SCHED_PRIORITY_MIN ||
- priority > SCHED_PRIORITY_MAX)
- {
- PANIC(OSERR_BADREPRIORITIZESTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- boolean switch_needed;
-
- lldbg("TCB=%p PRI=%d\n", tcb, priority);
-
- /* Remove the tcb task from the ready-to-run list.
- * sched_removereadytorun will return TRUE if we just
- * remove the head of the ready to run list.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Setup up the new task priority */
-
- tcb->sched_priority = (ubyte)priority;
-
- /* Return the task to the specified blocked task list.
- * sched_addreadytorun will return TRUE if the task was
- * added to the new list. We will need to perform a context
- * switch only if the EXCLUSIVE or of the two calls is non-zero
- * (i.e., one and only one the calls changes the head of the
- * ready-to-run list).
- */
-
- switch_needed ^= sched_addreadytorun(tcb);
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* If we are going to do a context switch, then now is the right
- * time to add any pending tasks back into the ready-to-run list.
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- sched_mergepending();
- }
-
- /* Are we in an interrupt handler? */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* Copy the exception context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_saveusercontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/dm320/src/up_restart.S b/nuttx/arch/dm320/src/up_restart.S
deleted file mode 100644
index ed1ecde5b..000000000
--- a/nuttx/arch/dm320/src/up_restart.S
+++ /dev/null
@@ -1,136 +0,0 @@
-/********************************************************************
- * up_head.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************/
-
-/********************************************************************
- * Included Files
- ********************************************************************/
-
-#include <nuttx/config.h>
-#include "up_internal.h"
-#include "dm320.h"
-
-/********************************************************************
- * Definitions
- ********************************************************************/
-
-/********************************************************************
- * Assembly Macros
- ********************************************************************/
-
-/* Since the page table is closely related to the NuttX base
- * address, we can convert the page table base address to the
- * base address of the section containing both.
- */
-
- .macro mksection, section, pgtable
- bic \section, \pgtable, #0x000ff000
- .endm
-
-/**************************************************************************
- * Name: up_restart
- **************************************************************************/
-
- .text
- .globl up_restart
- .type up_restart, %function
-up_restart:
- /* Make sure that we are in SVC mode with all IRQs disabled */
-
- mov r0, #(SVC_MODE | PSR_I_BIT | PSR_F_BIT)
- msr cpsr_c, r0
-
- /* Create identity mapping for first MB section to support
- * this re-start logic executing out of the physical address
- * space.
- */
-
- mksection r0, r4 /* r0=phys. base section */
- ldr r1, .LCmmuflags /* FLGS=MMU_MEMFLAGS */
- add r3, r1, r0 /* r3=flags + base */
- str r3, [r4, r0, lsr #18] /* identity mapping */
-
- /* Jump into the physical address space */
-
- ldr pc, .LCphysrestart
- nop
- nop
-
- /* We are now executing at our physical address, with the
- * MMU disabled.
- */
-
-up_phyrestart:
-
- mov r0, #0
- mcr p15, 0, r0, c7, c7 /* Invalidate I,D caches */
- mcr p15, 0, r0, c7, c10, 4 /* Drain write buffer */
- mcr p15, 0, r0, c8, c7 /* Invalidate I,D TLBs */
-
- /* Clear bits in control register (see start.h): Disable,
- * MMU, Data cache, alignment traps, write buffer, Instruction
- * cache, exceptions at 0xffff0000, round robin)
- */
-
- mrc p15, 0, r0, c1, c0 /* Get control register */
- bic r0, r0, #(CR_M|CR_C|CR_A|CR_W)
- bic r0, r0, #(CR_S|CR_I|CR_V|CR_RR)
- mcr p15, 0, r0, c1, c0, 0 /* Write control reg */
-
- /* We know that the the bootloader entry point is at the
- * beginning of flash.
- */
-#if 1
- ldr pc, .LCbtldrentry /* Restart bootloader */
-#else
- b __start /* Restart Nuttx */
-#endif
-
- .type .LCphysrestart, %object
-.LCphysrestart:
- .long (up_phyrestart - DM320_SDRAM_VADDR + DM320_SDRAM_PADDR)
-.LCbtldrentry:
- .long DM320_EXT_MEM_PADDR
-
-/**************************************************************************
- * PC_Relative Data
- **************************************************************************/
-
- .type .LCmmuflags, %object
-.LCmmuflags:
- .long MMU_MEMFLAGS
- .size up_restart, .-up_restart
-
- .end
-
diff --git a/nuttx/arch/dm320/src/up_saveusercontext.S b/nuttx/arch/dm320/src/up_saveusercontext.S
deleted file mode 100644
index 142f3660f..000000000
--- a/nuttx/arch/dm320/src/up_saveusercontext.S
+++ /dev/null
@@ -1,119 +0,0 @@
-/**************************************************************************
- * up_saveusercontext.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- **************************************************************************/
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_saveusercontext
- **************************************************************************/
-
- .text
- .globl up_saveusercontext
- .type up_saveusercontext, function
-up_saveusercontext:
- /* On entry, a1 (r0) holds address of struct xcptcontext.
- * Offset to the user region.
- */
-
- /* Make sure that the return value will be non-zero (the
- * value of the other volatile registers don't matter --
- * r1-r3, ip). This function is called throught the
- * noraml C calling conventions and the values of these
- * registers cannot be assumed at the point of setjmp
- * return.
- */
-
- mov ip, #1
- str ip, [r0, #(4*REG_R0)]
-
- /* Save the volatile registers (plus r12 which really
- * doesn't need to be saved)
- */
-
- add r1, r0, #(4*REG_R4)
- stmia r1, {r4-r14}
-
- /* Save the current cpsr */
-
- mrs r2, cpsr /* R3 = CPSR value */
- add r1, r0, #(4*REG_CPSR)
- str r2, [r1]
-
- /* Finally save the return address as the PC so that we
- * return to the exit from this function.
- */
-
- add r1, r0, #(4*REG_PC)
- str lr, [r1]
-
- /* Return 0 */
-
- mov r0, #0 /* Return value == 0 */
- mov pc, lr /* Return */
- .size up_saveusercontext, . - up_saveusercontext
-
diff --git a/nuttx/arch/dm320/src/up_schedulesigaction.c b/nuttx/arch/dm320/src/up_schedulesigaction.c
deleted file mode 100644
index 79179212b..000000000
--- a/nuttx/arch/dm320/src/up_schedulesigaction.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/************************************************************
- * up_schedulesigaction.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-#include "dm320.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_schedule_sigaction
- *
- * Description:
- * This function is called by the OS when one or more
- * signal handling actions have been queued for execution.
- * The architecture specific code must configure things so
- * that the 'igdeliver' callback is executed on the thread
- * specified by 'tcb' as soon as possible.
- *
- * This function may be called from interrupt handling logic.
- *
- * This operation should not cause the task to be unblocked
- * nor should it cause any immediate execution of sigdeliver.
- * Typically, a few cases need to be considered:
- *
- * (1) This function may be called from an interrupt handler
- * During interrupt processing, all xcptcontext structures
- * should be valid for all tasks. That structure should
- * be modified to invoke sigdeliver() either on return
- * from (this) interrupt or on some subsequent context
- * switch to the recipient task.
- * (2) If not in an interrupt handler and the tcb is NOT
- * the currently executing task, then again just modify
- * the saved xcptcontext structure for the recipient
- * task so it will invoke sigdeliver when that task is
- * later resumed.
- * (3) If not in an interrupt handler and the tcb IS the
- * currently executing task -- just call the signal
- * handler now.
- *
- ************************************************************/
-
-void up_schedule_sigaction(_TCB *tcb, sig_deliver_t sigdeliver)
-{
- /* Refuse to handle nested signal actions */
-
- dbg("tcb=0x%p sigdeliver=0x%p\n", tcb, sigdeliver);
-
- if (!tcb->xcp.sigdeliver)
- {
- irqstate_t flags;
-
- /* Make sure that interrupts are disabled */
-
- flags = irqsave();
-
- /* First, handle some special cases when the signal is
- * being delivered to the currently executing task.
- */
-
- dbg("rtcb=0x%p current_regs=0x%p\n", g_readytorun.head, current_regs);
-
- if (tcb == (_TCB*)g_readytorun.head)
- {
- /* CASE 1: We are not in an interrupt handler and
- * a task is signalling itself for some reason.
- */
-
- if (!current_regs)
- {
- /* In this case just deliver the signal now. */
-
- sigdeliver(tcb);
- }
-
- /* CASE 2: We are in an interrupt handler AND the
- * interrupted task is the same as the one that
- * must receive the signal, then we will have to modify
- * the return state as well as the state in the TCB.
- */
-
- else
- {
- /* Save the return lr and cpsr and one scratch register
- * These will be restored by the signal trampoline after
- * the signals have been delivered.
- */
-
- tcb->xcp.sigdeliver = sigdeliver;
- tcb->xcp.saved_pc = current_regs[REG_PC];
- tcb->xcp.saved_cpsr = current_regs[REG_CPSR];
-
- /* Then set up to vector to the trampoline with interrupts
- * disabled
- */
-
- current_regs[REG_PC] = (uint32)up_sigdeliver;
- current_regs[REG_CPSR] = SVC_MODE | PSR_I_BIT | PSR_F_BIT;
-
- /* And make sure that the saved context in the TCB
- * is the same as the interrupt return context.
- */
-
- up_copystate(tcb->xcp.regs, current_regs);
- }
- }
-
- /* Otherwise, we are (1) signaling a task is not running
- * from an interrupt handler or (2) we are not in an
- * interrupt handler and the running task is signalling
- * some non-running task.
- */
-
- else
- {
- /* Save the return lr and cpsr and one scratch register
- * These will be restored by the signal trampoline after
- * the signals have been delivered.
- */
-
- tcb->xcp.sigdeliver = sigdeliver;
- tcb->xcp.saved_pc = tcb->xcp.regs[REG_PC];
- tcb->xcp.saved_cpsr = tcb->xcp.regs[REG_CPSR];
-
- /* Then set up to vector to the trampoline with interrupts
- * disabled
- */
-
- tcb->xcp.regs[REG_PC] = (uint32)up_sigdeliver;
- tcb->xcp.regs[REG_CPSR] = SVC_MODE | PSR_I_BIT | PSR_F_BIT;
- }
-
- irqrestore(flags);
- }
-}
diff --git a/nuttx/arch/dm320/src/up_serial.c b/nuttx/arch/dm320/src/up_serial.c
deleted file mode 100644
index bf6560f1c..000000000
--- a/nuttx/arch/dm320/src/up_serial.c
+++ /dev/null
@@ -1,777 +0,0 @@
-/****************************************************************************
- * up_serial.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <string.h>
-#include <errno.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include <nuttx/serial.h>
-#include <arch/serial.h>
-#include "dm320.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define BASE_BAUD 115200
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct up_dev_s
-{
- uint32 uartbase; /* Base address of UART registers */
- uint32 baud; /* Configured baud */
- uint16 msr; /* Saved MSR value */
- ubyte irq; /* IRQ associated with this UART */
- ubyte parity; /* 0=none, 1=odd, 2=even */
- ubyte bits; /* Number of bits (7 or 8) */
- boolean stopbits2; /* TRUE: Configure with 2
- * stop bits instead of 1 */
-};
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static int up_setup(struct uart_dev_s *dev);
-static void up_shutdown(struct uart_dev_s *dev);
-static int up_attach(struct uart_dev_s *dev);
-static void up_detach(struct uart_dev_s *dev);
-static int up_interrupt(int irq, void *context);
-static int up_ioctl(struct file *filep, int cmd, unsigned long arg);
-static int up_receive(struct uart_dev_s *dev, uint32 *status);
-static void up_rxint(struct uart_dev_s *dev, boolean enable);
-static boolean up_rxavailable(struct uart_dev_s *dev);
-static void up_send(struct uart_dev_s *dev, int ch);
-static void up_txint(struct uart_dev_s *dev, boolean enable);
-static boolean up_txready(struct uart_dev_s *dev);
-static boolean up_txempty(struct uart_dev_s *dev);
-
-/****************************************************************************
- * Private Variables
- ****************************************************************************/
-
-struct uart_ops_s g_uart_ops =
-{
- .setup = up_setup,
- .shutdown = up_shutdown,
- .attach = up_attach,
- .detach = up_detach,
- .ioctl = up_ioctl,
- .receive = up_receive,
- .rxint = up_rxint,
- .rxavailable = up_rxavailable,
- .send = up_send,
- .txint = up_txint,
- .txready = up_txready,
- .txempty = up_txempty,
-};
-
-/* I/O buffers */
-
-static char g_uart0rxbuffer[CONFIG_UART0_RXBUFSIZE];
-static char g_uart0txbuffer[CONFIG_UART0_TXBUFSIZE];
-static char g_uart1rxbuffer[CONFIG_UART1_RXBUFSIZE];
-static char g_uart1txbuffer[CONFIG_UART1_TXBUFSIZE];
-
-/* This describes the state of the DM320 uart0 port. */
-
-static struct up_dev_s g_uart0priv =
-{
- .uartbase = DM320_UART0_REGISTER_BASE,
- .baud = CONFIG_UART0_BAUD,
- .irq = DM320_IRQ_UART0,
- .parity = CONFIG_UART0_PARITY,
- .bits = CONFIG_UART0_BITS,
- .stopbits2 = CONFIG_UART0_2STOP,
-};
-
-static uart_dev_t g_uart0port =
-{
- .recv =
- {
- .size = CONFIG_UART0_RXBUFSIZE,
- .buffer = g_uart0rxbuffer,
- },
- .xmit =
- {
- .size = CONFIG_UART0_TXBUFSIZE,
- .buffer = g_uart0txbuffer,
- },
- .ops = &g_uart_ops,
- .priv = &g_uart0priv,
-};
-
-/* This describes the state of the DM320 uart1 port. */
-
-static struct up_dev_s g_uart1priv =
-{
- .uartbase = DM320_UART1_REGISTER_BASE,
- .baud = CONFIG_UART1_BAUD,
- .irq = DM320_IRQ_UART1,
- .parity = CONFIG_UART1_PARITY,
- .bits = CONFIG_UART1_BITS,
- .stopbits2 = CONFIG_UART1_2STOP,
-};
-
-static uart_dev_t g_uart1port =
-{
- .recv =
- {
- .size = CONFIG_UART1_RXBUFSIZE,
- .buffer = g_uart1rxbuffer,
- },
- .xmit =
- {
- .size = CONFIG_UART1_TXBUFSIZE,
- .buffer = g_uart1txbuffer,
- },
- .ops = &g_uart_ops,
- .priv = &g_uart1priv,
-};
-
-/* Now, which one with be tty0/console and which tty1? */
-
-#ifdef CONFIG_SERIAL_IRDA_CONSOLE
-# define CONSOLE_DEV g_uart1port
-# define TTYS0_DEV g_uart1port
-# define TTYS1_DEV g_uart0port
-#else
-# define CONSOLE_DEV g_uart0port
-# define TTYS0_DEV g_uart0port
-# define TTYS1_DEV g_uart1port
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_serialin
- ****************************************************************************/
-
-static inline uint16 up_serialin(struct up_dev_s *priv, uint32 offset)
-{
- return getreg16(priv->uartbase + offset);
-}
-
-/****************************************************************************
- * Name: up_serialout
- ****************************************************************************/
-
-static inline void up_serialout(struct up_dev_s *priv, uint32 offset, uint16 value)
-{
- putreg16(value, priv->uartbase + offset);
-}
-
-/****************************************************************************
- * Name: up_disableuartint
- ****************************************************************************/
-
-static inline void up_disableuartint(struct up_dev_s *priv, uint16 *msr)
-{
- if (msr)
- {
- *msr = priv->msr & UART_MSR_ALLIE;
- }
-
- priv->msr &= ~UART_MSR_ALLIE;
- up_serialout(priv, UART_MSR, priv->msr);
-}
-
-/****************************************************************************
- * Name: up_restoreuartint
- ****************************************************************************/
-
-static inline void up_restoreuartint(struct up_dev_s *priv, uint16 msr)
-{
- priv->msr |= msr & UART_MSR_ALLIE;
- up_serialout(priv, UART_MSR, priv->msr);
-}
-
-/****************************************************************************
- * Name: up_waittxready
- ****************************************************************************/
-
-static inline void up_waittxready(struct up_dev_s *priv)
-{
- int tmp;
-
- for (tmp = 1000 ; tmp > 0 ; tmp--)
- {
- if ((up_serialin(priv, UART_SR) & UART_SR_TFTI) != 0)
- {
- break;
- }
- }
-}
-
-/****************************************************************************
- * Name: up_enablebreaks
- ****************************************************************************/
-
-static inline void up_enablebreaks(struct up_dev_s *priv, boolean enable)
-{
- uint16 lcr = up_serialin(priv, UART_LCR);
- if (enable)
- {
- lcr |= UART_LCR_BOC;
- }
- else
- {
- lcr &= ~UART_LCR_BOC;
- }
- up_serialout(priv, UART_LCR, lcr);
-}
-
-/****************************************************************************
- * Name: up_setup
- *
- * Description:
- * Configure the UART baud, bits, parity, fifos, etc. This
- * method is called the first time that the serial port is
- * opened.
- *
- ****************************************************************************/
-
-static int up_setup(struct uart_dev_s *dev)
-{
-#ifndef CONFIG_SUPPRESS_UART_CONFIG
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- uint16 brsr;
-
- /* Clear fifos */
-
- up_serialout(priv, UART_RFCR, 0x8000);
- up_serialout(priv, UART_TFCR, 0x8000);
-
- /* Set rx and tx triggers */
-
- up_serialout(priv, UART_RFCR, UART_RFCR_RTL_1);
- up_serialout(priv, UART_TFCR, UART_TFCR_TTL_16);
-
- /* Set up the MSR */
-
- priv->msr = up_serialin(priv, UART_MSR);
- if (priv->bits == 7)
- {
- priv->msr |= UART_DATABIT_7;
- }
- else
- {
- priv->msr &= ~UART_MSR_CLS;
- }
-
- if (priv->stopbits2)
- {
- priv->msr |= UART_STOPBIT_2;
- }
- else
- {
- priv->msr &= ~UART_MSR_SBLS;
- }
-
- if (priv->parity == 1)
- {
- priv->msr |= UART_ODDPARITY;
- }
- else if (priv->parity == 2)
- {
- priv->msr |= UART_EVENPARITY;
- }
- else
- {
- priv->msr &= ~(UART_MSR_PSB|UART_MSR_PEB);
- }
-
- /* Set up the BRSR */
-
- switch (priv->baud)
- {
- case 2400:
- brsr = UART_BAUD_2400;
- break;
- case 4800:
- brsr = UART_BAUD_4800;
- break;
- default:
- case 9600:
- brsr = UART_BAUD_9600;
- break;
- case 14400:
- brsr = UART_BAUD_14400;
- break;
- case 19200:
- brsr = UART_BAUD_19200;
- break;
- case 28800:
- brsr = UART_BAUD_28800;
- break;
- case 3840:
- brsr = UART_BAUD_38400;
- break;
- case 57600:
- brsr = UART_BAUD_57600;
- break;
- case 115200:
- brsr = UART_BAUD_115200;
- break;
- case 230400:
- brsr = UART_BAUD_230400;
- break;
- case 460800:
- brsr = UART_BAUD_460800;
- break;
- case 921600:
- brsr = UART_BAUD_921600;
- break;
- }
-
- /* Setup the new UART configuration */
-
- up_serialout(priv,UART_MSR, priv->msr);
- up_serialout(priv, UART_BRSR, brsr);
- up_enablebreaks(priv, FALSE);
-#endif
- return OK;
-}
-
-/****************************************************************************
- * Name: up_shutdown
- *
- * Description:
- * Disable the UART. This method is called when the serial
- * port is closed
- *
- ****************************************************************************/
-
-static void up_shutdown(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- up_disableuartint(priv, NULL);
-}
-
-/****************************************************************************
- * Name: up_attach
- *
- * Description:
- * Configure the UART to operation in interrupt driven mode. This method is
- * called when the serial port is opened. Normally, this is just after the
- * the setup() method is called, however, the serial console may operate in
- * a non-interrupt driven mode during the boot phase.
- *
- * RX and TX interrupts are not enabled when by the attach method (unless the
- * hardware supports multiple levels of interrupt enabling). The RX and TX
- * interrupts are not enabled until the txint() and rxint() methods are called.
- *
- ****************************************************************************/
-
-static int up_attach(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- int ret;
-
- /* Attach and enable the IRQ */
-
- ret = irq_attach(priv->irq, up_interrupt);
- if (ret == OK)
- {
- /* Enable the interrupt (RX and TX interrupts are still disabled
- * in the UART
- */
-
- up_enable_irq(priv->irq);
- }
- return ret;
-}
-
-/****************************************************************************
- * Name: up_detach
- *
- * Description:
- * Detach UART interrupts. This method is called when the serial port is
- * closed normally just before the shutdown method is called. The exception is
- * the serial console which is never shutdown.
- *
- ****************************************************************************/
-
-static void up_detach(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- up_disable_irq(priv->irq);
- irq_detach(priv->irq);
-}
-
-/****************************************************************************
- * Name: up_interrupt
- *
- * Description:
- * This is the UART interrupt handler. It will be invoked
- * when an interrupt received on the 'irq' It should call
- * uart_transmitchars or uart_receivechar to perform the
- * appropriate data transfers. The interrupt handling logic\
- * must be able to map the 'irq' number into the approprite
- * uart_dev_s structure in order to call these functions.
- *
- ****************************************************************************/
-
-static int up_interrupt(int irq, void *context)
-{
- struct uart_dev_s *dev = NULL;
- struct up_dev_s *priv;
- uint16 status;
- int passes = 0;
-
- if (g_uart1priv.irq == irq)
- {
- dev = &g_uart1port;
- }
- else if (g_uart0priv.irq == irq)
- {
- dev = &g_uart0port;
- }
- else
- {
- PANIC(OSERR_INTERNAL);
- }
- priv = (struct up_dev_s*)dev->priv;
-
- /* Loop until there are no characters to be transferred or,
- * until we have been looping for a long time.
- */
-
- for(;;)
- {
- /* Get the current UART status and check for loop
- * termination conditions
- */
-
- status = up_serialin(priv, UART_SR);
- status &= (UART_SR_RFTI | UART_SR_TFTI);
-
- if (status == 0 || passes > 256)
- {
- return OK;
- }
-
- /* Handline incoming, receive bytes */
-
- if (status & UART_SR_RFTI)
- {
- uart_recvchars(dev);
- }
-
- /* Handle outgoing, transmit bytes */
-
- if (status & UART_SR_TFTI)
- {
- uart_xmitchars(dev);
- }
-
- /* Keep track of how many times we do this in case there
- * is some hardware failure condition.
- */
-
- passes++;
- }
-}
-
-/****************************************************************************
- * Name: up_ioctl
- *
- * Description:
- * All ioctl calls will be routed through this method
- *
- ****************************************************************************/
-
-static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
-{
- struct inode *inode = filep->f_inode;
- struct uart_dev_s *dev = inode->i_private;
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- int ret = OK;
-
- switch (cmd)
- {
- case TIOCSERGSTRUCT:
- {
- struct up_dev_s *user = (struct up_dev_s*)arg;
- if (!user)
- {
- *get_errno_ptr() = EINVAL;
- ret = ERROR;
- }
- else
- {
- memcpy(user, dev, sizeof(struct up_dev_s));
- }
- }
- break;
-
- case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */
- {
- irqstate_t flags = irqsave();
- up_enablebreaks(priv, TRUE);
- irqrestore(flags);
- }
- break;
-
- case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */
- {
- irqstate_t flags;
- flags = irqsave();
- up_enablebreaks(priv, FALSE);
- irqrestore(flags);
- }
- break;
-
- default:
- *get_errno_ptr() = ENOTTY;
- ret = ERROR;
- break;
- }
-
- return ret;
-}
-
-/****************************************************************************
- * Name: up_receive
- *
- * Description:
- * Called (usually) from the interrupt level to receive one
- * character from the UART. Error bits associated with the
- * receipt are provided in the the return 'status'.
- *
- ****************************************************************************/
-
-static int up_receive(struct uart_dev_s *dev, uint32 *status)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- uint16 dtrr;
-
- dtrr = up_serialin(priv, UART_DTRR);
- *status = dtrr;
- return dtrr & UART_DTRR_DTR_MASK;
-}
-
-/****************************************************************************
- * Name: up_rxint
- *
- * Description:
- * Call to enable or disable RX interrupts
- *
- ****************************************************************************/
-
-static void up_rxint(struct uart_dev_s *dev, boolean enable)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- if (enable)
- {
-#ifndef CONFIG_SUPPRESS_SERIAL_INTS
- priv->msr |= UART_MSR_RFTIE;
-#endif
- }
- else
- {
- priv->msr &= ~UART_MSR_RFTIE;
- }
- up_serialout(priv, UART_MSR, priv->msr);
-}
-
-/****************************************************************************
- * Name: up_rxavailable
- *
- * Description:
- * Return TRUE if the receive fifo is not empty
- *
- ****************************************************************************/
-
-static boolean up_rxavailable(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return ((up_serialin(priv, UART_SR) & UART_SR_RFNEF) != 0);
-}
-
-/****************************************************************************
- * Name: up_send
- *
- * Description:
- * This method will send one byte on the UART
- *
- ****************************************************************************/
-
-static void up_send(struct uart_dev_s *dev, int ch)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- up_serialout(priv, UART_DTRR, (uint16)ch);
-}
-
-/****************************************************************************
- * Name: up_txint
- *
- * Description:
- * Call to enable or disable TX interrupts
- *
- ****************************************************************************/
-
-static void up_txint(struct uart_dev_s *dev, boolean enable)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- if (enable)
- {
-#ifndef CONFIG_SUPPRESS_SERIAL_INTS
- priv->msr |= UART_MSR_TFTIE;
-#endif
- }
- else
- {
- priv->msr &= ~UART_MSR_TFTIE;
- }
- up_serialout(priv, UART_MSR, priv->msr);
-}
-
-/****************************************************************************
- * Name: up_txready
- *
- * Description:
- * Return TRUE if the tranmsit fifo is not full
- *
- ****************************************************************************/
-
-static boolean up_txready(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return ((up_serialin(priv, UART_SR) & UART_SR_TFTI) != 0);
-}
-
-/****************************************************************************
- * Name: up_txempty
- *
- * Description:
- * Return TRUE if the transmit fifo is empty
- *
- ****************************************************************************/
-
-static boolean up_txempty(struct uart_dev_s *dev)
-{
- struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
- return ((up_serialin(priv, UART_SR) & UART_SR_TREF) == 0);
-}
-
-/****************************************************************************
- * Public Funtions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_serialinit
- *
- * Description:
- * Performs the low level UART initialization early in
- * debug so that the serial console will be available
- * during bootup. This must be called before up_serialinit.
- *
- ****************************************************************************/
-
-void up_earlyserialinit(void)
-{
- up_disableuartint(TTYS0_DEV.priv, NULL);
- up_disableuartint(TTYS1_DEV.priv, NULL);
-
- CONSOLE_DEV.isconsole = TRUE;
- up_setup(&CONSOLE_DEV);
-}
-
-/****************************************************************************
- * Name: up_serialinit
- *
- * Description:
- * Register serial console and serial ports. This assumes
- * that up_earlyserialinit was called previously.
- *
- ****************************************************************************/
-
-void up_serialinit(void)
-{
- (void)uart_register("/dev/console", &CONSOLE_DEV);
- (void)uart_register("/dev/ttyS0", &TTYS0_DEV);
- (void)uart_register("/dev/ttyS1", &TTYS1_DEV);
-}
-
-/****************************************************************************
- * Name: up_putc
- *
- * Description:
- * Provide priority, low-level access to support OS debug
- * writes
- *
- ****************************************************************************/
-
-int up_putc(int ch)
-{
- struct up_dev_s *priv = (struct up_dev_s*)CONSOLE_DEV.priv;
- uint16 ier;
-
- up_disableuartint(priv, &ier);
- up_waittxready(priv);
- up_serialout(priv, UART_DTRR, (uint16)ch);
-
- /* Check for LF */
-
- if (ch == '\n')
- {
- /* Add CR */
-
- up_waittxready(priv);
- up_serialout(priv, UART_DTRR, '\r');
- }
-
- up_waittxready(priv);
- up_restoreuartint(priv, ier);
- return ch;
-}
-
diff --git a/nuttx/arch/dm320/src/up_sigdeliver.c b/nuttx/arch/dm320/src/up_sigdeliver.c
deleted file mode 100644
index 3d4e98bc1..000000000
--- a/nuttx/arch/dm320/src/up_sigdeliver.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/************************************************************
- * up_sigdeliver.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/irq.h>
-#include <nuttx/arch.h>
-#include "os_internal.h"
-#include "up_internal.h"
-#include "dm320.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_sigdeliver
- *
- * Description:
- * This is the a signal handling trampoline. When a
- * signal action was posted. The task context was mucked
- * with and forced to branch to this location with interrupts
- * disabled.
- *
- ************************************************************/
-
-void up_sigdeliver(void)
-{
- _TCB *rtcb = (_TCB*)g_readytorun.head;
- uint32 regs[XCPTCONTEXT_REGS];
- sig_deliver_t sigdeliver;
-
- /* Save the errno. This must be preserved throughout the
- * signal handling so that the the user code final gets
- * the correct errno value (probably EINTR).
- */
-
- int saved_errno = rtcb->errno;
-
- dbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n",
- rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head);
- ASSERT(rtcb->xcp.sigdeliver != NULL);
-
- /* Save the real return state on the stack. */
-
- up_copystate(regs, rtcb->xcp.regs);
- regs[REG_PC] = rtcb->xcp.saved_pc;
- regs[REG_CPSR] = rtcb->xcp.saved_cpsr;
-
- /* Get a local copy of the sigdeliver function pointer.
- * we do this so that we can nullify the sigdeliver
- * function point in the TCB and accept more signal
- * deliveries while processing the current pending
- * signals.
- */
-
- sigdeliver = rtcb->xcp.sigdeliver;
- rtcb->xcp.sigdeliver = NULL;
-
- /* Then restore the task interrupt statat. */
-
- irqrestore(regs[REG_CPSR]);
-
- /* Deliver the signals */
-
- sigdeliver(rtcb);
-
- /* Output any debug messaged BEFORE restoreing errno
- * (becuase they may alter errno), then restore the
- * original errno that is needed by the user logic
- * (it is probably EINTR).
- */
-
- dbg("Resuming\n");
- rtcb->errno = saved_errno;
-
- /* Then restore the correct state for this thread of
- * execution.
- */
-
- up_fullcontextrestore(regs);
-}
diff --git a/nuttx/arch/dm320/src/up_syscall.c b/nuttx/arch/dm320/src/up_syscall.c
deleted file mode 100644
index b8f142720..000000000
--- a/nuttx/arch/dm320/src/up_syscall.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/************************************************************
- * up_syscall.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include "dm320.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Output debug info if stack dump is selected -- even if
- * debug is not selected.
- */
-
-#ifdef CONFIG_ARCH_STACKDUMP
-# undef lldbg
-# define lldbg lib_lowprintf
-#endif
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * vectors
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_syscall
- *
- * Description:
- * SWI interrupts will vection here with insn=the SWI
- * instruction and xcp=the interrupt context
- *
- * The handler may get the SWI number be de-referencing
- * the return address saved in the xcp and decoding
- * the SWI instruction
- *
- ************************************************************/
-
-void up_syscall(uint32 *regs)
-{
- lldbg("Syscall from 0x%x\n", regs[REG_PC]);
- current_regs = regs;
- PANIC(OSERR_ERREXCEPTION);
-}
diff --git a/nuttx/arch/dm320/src/up_timerisr.c b/nuttx/arch/dm320/src/up_timerisr.c
deleted file mode 100644
index 4666caa80..000000000
--- a/nuttx/arch/dm320/src/up_timerisr.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/************************************************************
- * up_timerisr.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "clock_internal.h"
-#include "up_internal.h"
-#include "dm320.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* DM320 Timers
- *
- * Each of the general-purpose timers can run in one of two modes: one-
- * shot mode and free-run mode. In one-shot mode, an interrupt only
- * occurs once and then the timer must be explicitly reset to begin the
- * timing operation again. In free-run mode, when the timer generates an
- * interrupt, the timer counter is automatically reloaded to start the count
- * operation again. Use the bit field MODE in TMMDx to configure the
- * timer for one-shot more or free-run mode. The bit field MODE in TMMDx
- * also allows you to stop the timer.
- *
- * Either the ARM clock divided by 2 (CLK_ARM/2) or an external clock
- * connected to the M27XI pin can be selected as the clock source of the
- * timer.
- *
- * The actual clock frequency used in the timer count operation is the input
- * clock divided by: 1 plus the value set in the bit field PRSCL of the
- * register TMPRSCLx (10 bits). The timer expires when it reaches the
- * value set in the bit field DIV of the register TMDIVx (16 bits) plus 1.
- * PRSCL+1 is the source clock frequency divide factor and DIV+1 is the
- * timer count value. The frequency of a timer interrupt is given by the
- * following equation:
- *
- * Interrupt Frequency = (Source Clock Frequency) / (PRSCL+1) / (DIV+1)
- */
-
-/* System Timer
- *
- * Timer0 is dedicated as the system timer. The rate of system timer
- * interrupts is assumed to to 10MS per tick / 100Hz. The following
- * register settings are used for timer 0
- *
- * System clock formula:
- * Interrupt Frequency = (Source Clock Frequency) / (PRSCL+1) / (DIV+1)
- * Source Clock Frequency = 27MHz (PLL clock)
- * DIV = 26,999 (Yields 1Khz timer clock)
- * PRSCL = 9 (Produces 100Hz interrupts)
- */
-
-#define DM320_TMR0_MODE DM320_TMR_MODE_FREERUN /* Free running */
-#define DM320_TMR0_DIV 26999 /* (see above) */
-#define DM320_TMR0_PRSCL 9 /* (see above) */
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Function: up_timerisr
- *
- * Description:
- * The timer ISR will perform a variety of services for
- * various portions of the systems.
- *
- ************************************************************/
-
-int up_timerisr(int irq, uint32 *regs)
-{
- /* Process timer interrupt */
-
- sched_process_timer();
- return 0;
-}
-
-/************************************************************
- * Function: up_timerinit
- *
- * Description:
- * This function is called during start-up to initialize
- * the timer interrupt.
- *
- ************************************************************/
-
-void up_timerinit(void)
-{
- up_disable_irq(DM320_IRQ_SYSTIMER);
-
- /* Start timer0 running so that an interrupt is generated at
- * the rate MSEC_PER_TICK.
- */
-
- putreg16(DM320_TMR0_PRSCL, DM320_TIMER0_TMPRSCL); /* Timer 0 Prescalar */
- putreg16(DM320_TMR0_DIV, DM320_TIMER0_TMDIV); /* Timer 0 Divisor (count) */
-
- /* Start the timer */
-
- putreg16(DM320_TMR0_MODE, DM320_TIMER0_TMMD); /* Timer 0 Mode */
-
- /* Attach and enable the timer interrupt */
-
- irq_attach(DM320_IRQ_SYSTIMER, (xcpt_t)up_timerisr);
- up_enable_irq(DM320_IRQ_SYSTIMER);
-}
-
diff --git a/nuttx/arch/dm320/src/up_unblocktask.c b/nuttx/arch/dm320/src/up_unblocktask.c
deleted file mode 100644
index 848ddd0cc..000000000
--- a/nuttx/arch/dm320/src/up_unblocktask.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/************************************************************
- * up_unblocktask.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include "clock_internal.h"
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Funtions
- ************************************************************/
-
-/************************************************************
- * Public Funtions
- ************************************************************/
-
-/************************************************************
- * Name: up_unblock_task
- *
- * Description:
- * A task is currently in an inactive task list
- * but has been prepped to execute. Move the TCB to the
- * ready-to-run list, restore its context, and start execution.
- *
- * Inputs:
- * tcb: Refers to the tcb to be unblocked. This tcb is
- * in one of the waiting tasks lists. It must be moved to
- * the ready-to-run list and, if it is the highest priority
- * ready to run taks, executed.
- *
- ************************************************************/
-
-void up_unblock_task(_TCB *tcb)
-{
- /* Verify that the context switch can be performed */
- if ((tcb->task_state < FIRST_BLOCKED_STATE) ||
- (tcb->task_state > LAST_BLOCKED_STATE))
- {
- PANIC(OSERR_BADUNBLOCKSTATE);
- }
- else
- {
- _TCB *rtcb = (_TCB*)g_readytorun.head;
-
- lldbg("Unblocking TCB=%p\n", tcb);
-
- /* Remove the task from the blocked task list */
-
- sched_removeblocked(tcb);
-
- /* Reset its timeslice. This is only meaningful for round
- * robin tasks but it doesn't hurt to do it for all tasks.
- */
-
-#if CONFIG_RR_INTERVAL > 0
- tcb->timeslice = CONFIG_RR_INTERVAL / MSEC_PER_TICK;
-#endif
-
- /* Add the task in the correct location in the prioritized
- * g_readytorun task list
- */
-
- if (sched_addreadytorun(tcb))
- {
- /* The currently active task has changed! We need to do
- * a context switch to the new task.
- *
- * Are we in an interrupt handler?
- */
-
- if (current_regs)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current_regs into the OLD rtcb.
- */
-
- up_copystate(rtcb->xcp.regs, current_regs);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_copystate(current_regs, rtcb->xcp.regs);
- }
-
- /* We are not in an interrupt andler. Copy the user C context
- * into the TCB of the task that was previously active. if
- * up_saveusercontext returns a non-zero value, then this is really the
- * previously running task restarting!
- */
-
- else if (!up_saveusercontext(rtcb->xcp.regs))
- {
- /* Restore the exception context of the new task that is ready to
- * run (probably tcb). This is the new rtcb at the head of the
- * g_readytorun task list.
- */
-
- rtcb = (_TCB*)g_readytorun.head;
- lldbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_fullcontextrestore(rtcb->xcp.regs);
- }
- }
- }
-}
diff --git a/nuttx/arch/dm320/src/up_undefinedinsn.c b/nuttx/arch/dm320/src/up_undefinedinsn.c
deleted file mode 100644
index ff5489c90..000000000
--- a/nuttx/arch/dm320/src/up_undefinedinsn.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/************************************************************
- * up_undefinedinsn.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include "os_internal.h"
-#include "up_internal.h"
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-/* Output debug info if stack dump is selected -- even if
- * debug is not selected.
- */
-
-#ifdef CONFIG_ARCH_STACKDUMP
-# undef lldbg
-# define lldbg lib_lowprintf
-#endif
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_undefinedinsn
- ************************************************************/
-
-void up_undefinedinsn(uint32 *regs)
-{
- lldbg("Undefined instruction at 0x%x\n", regs[REG_PC]);
- current_regs = regs;
- PANIC(OSERR_UNDEFINEDINSN);
-}
diff --git a/nuttx/arch/dm320/src/up_usestack.c b/nuttx/arch/dm320/src/up_usestack.c
deleted file mode 100644
index db2c1796e..000000000
--- a/nuttx/arch/dm320/src/up_usestack.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/************************************************************
- * up_usestack.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************/
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-#include <nuttx/config.h>
-#include <sys/types.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************
- * Private Types
- ************************************************************/
-
-/************************************************************
- * Private Function Prototypes
- ************************************************************/
-
-/************************************************************
- * Global Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_use_stack
- *
- * Description:
- * Setup up stack-related information in the TCB
- * using pre-allocated stack memory
- *
- * The following TCB fields must be initialized:
- * adj_stack_size: Stack size after adjustment for hardware,
- * processor, etc. This value is retained only for debug
- * purposes.
- * stack_alloc_ptr: Pointer to allocated stack
- * adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The
- * initial value of the stack pointer.
- *
- * Inputs:
- * tcb: The TCB of new task
- * stack_size: The allocated stack size.
- *
- ************************************************************/
-
-STATUS up_use_stack(_TCB *tcb, void *stack, size_t stack_size)
-{
- size_t top_of_stack;
- size_t size_of_stack;
-
- if (tcb->stack_alloc_ptr)
- {
- sched_free(tcb->stack_alloc_ptr);
- }
-
- /* Save the stack allocation */
-
- tcb->stack_alloc_ptr = stack;
-
- /* The Arm7Tdmi uses a push-down stack: the stack grows
- * toward loweraddresses in memory. The stack pointer
- * register, points to the lowest, valid work address
- * (the "top" of the stack). Items on the stack are
- * referenced as positive word offsets from sp.
- */
-
- top_of_stack = (uint32)tcb->stack_alloc_ptr + stack_size - 4;
-
- /* The Arm7Tdmi stack must be aligned at word (4 byte)
- * boundaries. If necessary top_of_stack must be rounded
- * down to the next boundary
- */
-
- top_of_stack &= ~3;
- size_of_stack = top_of_stack - (uint32)tcb->stack_alloc_ptr + 4;
-
- /* Save the adjusted stack values in the _TCB */
-
- tcb->adj_stack_size = top_of_stack;
- tcb->adj_stack_size = size_of_stack;
-
- return OK;
-}
diff --git a/nuttx/arch/dm320/src/up_vectors.S b/nuttx/arch/dm320/src/up_vectors.S
deleted file mode 100644
index 1da4dbb29..000000000
--- a/nuttx/arch/dm320/src/up_vectors.S
+++ /dev/null
@@ -1,457 +0,0 @@
-/********************************************************************
- * up_vectors.S
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name Gregory Nutt nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************/
-
-/********************************************************************
- * Included Files
- ********************************************************************/
-
-#include <nuttx/config.h>
-#include <nuttx/irq.h>
-#include "dm320.h"
-
-/********************************************************************
- * Definitions
- ********************************************************************/
-
-/********************************************************************
- * Global Data
- ********************************************************************/
-
- .data
-g_irqtmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-g_undeftmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-g_aborttmp:
- .word 0 /* Saved lr */
- .word 0 /* Saved spsr */
-
-/********************************************************************
- * Assembly Macros
- ********************************************************************/
-
-/********************************************************************
- * Private Functions
- ********************************************************************/
-
- .text
-
-/********************************************************************
- * Public Functions
- ********************************************************************/
-
- .text
-
-/********************************************************************
- * Name: up_vectorirq
- *
- * Description:
- * Interrupt excetpion. Entered in IRQ mode with spsr = SVC
- * CPSR, lr = SVC PC
- ********************************************************************/
-
- .global up_vectorirq
- .type up_vectorirq, %function
-up_vectorirq:
- /* On entry, we are in IRQ mode. We are free to use
- * the IRQ mode r13 and r14.
- *
- */
-
- ldr r13, .Lirqtmp
- sub lr, lr, #4
- str lr, [r13] @ save lr_IRQ
- mrs lr, spsr
- str lr, [r13, #4] @ save spsr_IRQ
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #(SVC_MODE | PSR_I_BIT)
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lirqtmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the IRQ handler with interrupts disabled. */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r1=xcp */
- bl up_doirq /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-.Lnoirqset:
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lirqtmp:
- .word g_irqtmp
-
- .align 5
-
-/********************************************************************
- * Function: up_vectorswi
- *
- * Description:
- * SWI interrupt. We enter the SWI in SVC mode
- ********************************************************************/
-
- .global up_vectorswi
- .type up_vectorswi, %function
-up_vectorswi:
-
- /* The c547x rrload bootloader intemediates all
- * interrupts. For the* case of the SWI, it mucked
- * with the stack to create some temporary registers.
- * We'll have to recover from this mucking here.
- */
-
- ldr r14, [sp,#-0x4] /* rrload workaround */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp), r14(lr), r15(pc)
- * and CPSR in r1-r4 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14 /* R14 is altered on return from SWI */
- mov r3, r14 /* Save r14 as the PC as well */
- mrs r4, spsr /* Get the saved CPSR */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the SWI handler with interrupt disabled.
- * void up_syscall(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_syscall /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr, r0
- ldmia sp, {r0-r15}^ /* Return */
-
- .align 5
-
-/********************************************************************
- * Name: up_vectordata
- *
- * Description:
- * Data abort Exception dispatcher. Give control to data
- * abort handler. This function is entered in ABORT mode
- * with spsr = SVC CPSR, lr = SVC PC
- *
- ********************************************************************/
-
- .global up_vectordata
- .type up_vectordata, %function
-up_vectordata:
- /* On entry we are free to use the ABORT mode registers
- * r13 and r14
- */
-
- ldr r13, .Ldaborttmp /* Points to temp storage */
- sub lr, lr, #8 /* Fixup return */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #(SVC_MODE | PSR_I_BIT)
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Ldaborttmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the data abort handler with interrupt disabled.
- * void up_dataabort(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_dataabort /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Ldaborttmp:
- .word g_aborttmp
-
- .align 5
-
-/********************************************************************
- * Name: up_vectorprefetch
- *
- * Description:
- * Prefetch abort exception. Entered in ABT mode with
- * spsr = SVC CPSR, lr = SVC PC
- ********************************************************************/
-
- .global up_vectorprefetch
- .type up_vectorprefetch, %function
-up_vectorprefetch:
- /* On entry we are free to use the ABORT mode registers
- * r13 and r14
- */
-
- ldr r13, .Lpaborttmp /* Points to temp storage */
- sub lr, lr, #4 /* Fixup return */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #(SVC_MODE | PSR_I_BIT)
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lpaborttmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the prefetch abort handler with interrupt disabled.
- * void up_prefetchabort(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_prefetchabort /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lpaborttmp:
- .word g_aborttmp
-
- .align 5
-
-/********************************************************************
- * Name: up_vectorundefinsn
- *
- * Description:
- * Undefined instruction entry exception. Entered in
- * UND mode, spsr = SVC CPSR, lr = SVC PC
- *
- ********************************************************************/
-
- .global up_vectorundefinsn
- .type up_vectorundefinsn, %function
-up_vectorundefinsn:
- /* On entry we are free to use the UND mode registers
- * r13 and r14
- */
-
- ldr r13, .Lundeftmp /* Points to temp storage */
- str lr, [r13] /* Save in temp storage */
- mrs lr, spsr /* Get SPSR */
- str lr, [r13, #4] /* Save in temp storage */
-
- /* Then switch back to SVC mode */
-
- bic lr, lr, #MODE_MASK /* Keep F and T bits */
- orr lr, lr, #(SVC_MODE | PSR_I_BIT)
- msr cpsr_c, lr /* Switch to SVC mode */
-
- /* Create a context structure. First set aside a stack frame
- * and store r0-r12 into the frame.
- */
-
- sub sp, sp, #XCPTCONTEXT_SIZE
- stmia sp, {r0-r12} /* Save the SVC mode regs */
-
- /* Get the correct values of r13(sp) and r14(lr) in r1 and r2 */
-
- add r1, sp, #XCPTCONTEXT_SIZE
- mov r2, r14
-
- /* Get the values for r15(pc) and CPSR in r3 and r4 */
-
- ldr r0, .Lundeftmp /* Points to temp storage */
- ldmia r0, {r3, r4} /* Recover r1=lr_IRQ, r2=spsr_IRQ */
-
- add r0, sp, #(4*REG_SP) /* Offset to pc, cpsr storage */
- stmia r0, {r1-r4}
-
- /* Then call the undef insn handler with interrupt disabled.
- * void up_undefinedinsn(struct xcptcontext *xcp)
- */
-
- mov fp, #0 /* Init frame pointer */
- mov r0, sp /* Get r0=xcp */
- bl up_undefinedinsn /* Call the handler */
-
- /* Restore the CPSR, SVC modr registers and return */
-
- ldr r0, [sp, #(4*REG_CPSR)] /* Setup the SVC mode SPSR */
- msr spsr_cxsf, r0
- ldmia sp, {r0-r15}^ /* Return */
-
-.Lundeftmp:
- .word g_undeftmp
-
- .align 5
-
-/********************************************************************
- * Name: up_vectorfiq
- *
- * Description:
- * Shouldn't happen
- ********************************************************************/
-
- .global up_vectorfiq
- .type up_vectorfiq, %function
-up_vectorfiq:
- subs pc, lr, #4
-
-/********************************************************************
- * Name: up_vectoraddrexcption
- *
- * Description:
- * Shouldn't happen
- *
- ********************************************************************/
-
- .globl up_vectoraddrexcptn
- .type up_vectoraddrexcptn, %function
-up_vectoraddrexcptn:
- b up_vectoraddrexcptn
-
-/**************************************************************************
- * Vector initialization block.
- **************************************************************************/
-
-/* These will be relocated to VECTOR_BASE. */
-
- .globl _vector_start
-_vector_start:
- ldr pc, .Lresethandler /* 0x00: Reset */
- ldr pc, .Lundefinedhandler /* 0x04: Undefined instruction */
- ldr pc, .Lswihandler /* 0x08: Software interrupt */
- ldr pc, .Lprefetchaborthandler /* 0x0c: Prefetch abort */
- ldr pc, .Ldataaborthandler /* 0x10: Data abort */
- ldr pc, .Laddrexcptnhandler /* 0x14: Address exception */
- ldr pc, .Lirqhandler /* 0x18: IRQ */
- ldr pc, .Lfiqhandler /* 0x1c: FIQ */
-
-.Lresethandler:
- .long __start
-.Lundefinedhandler:
- .long up_vectorundefinsn
-.Lswihandler:
- .long up_vectorswi
-.Lprefetchaborthandler:
- .long up_vectorprefetch
-.Ldataaborthandler:
- .long up_vectordata
-.Laddrexcptnhandler:
- .long up_vectoraddrexcptn
-.Lirqhandler:
- .long up_vectorirq
-.Lfiqhandler:
- .long up_vectorfiq
- .globl _vector_end
-_vector_end:
- .end
diff --git a/nuttx/tools/zipme.sh b/nuttx/tools/zipme.sh
index 1d125e2e8..edc0e4251 100755
--- a/nuttx/tools/zipme.sh
+++ b/nuttx/tools/zipme.sh
@@ -40,25 +40,6 @@ VERSION=$1
TAR="tar cvf"
ZIP=gzip
-# This is a list of bad directories that have creapt into the CVS tree
-# due to bad imports, renamed directories, unfinished ports, etc.
-
-GARBAGEDIRS="\
- configs/m68332evb/src/src\
- configs/m68332evb/src/include\
- configs/m68332evb/src/doc\
- configs/sim/doc/include\
- configs/sim/doc/src\
- configs/olimex-strp711/tools\
- arch/c5471\
- arch/dm320\
- arch/avr/include/at91uc3\
- arch/avr/src/at91uc3\
- arch/hc/include/mc9s12ne64\
- arch/hc/src/mc9s12ne64\
- netutils/thttpd/extras
-"
-
# Make sure we know what is going on
if [ -z ${VERSION} ] ; then
@@ -112,13 +93,6 @@ find ${NUTTXDIR} -name '*~' -exec rm -f '{}' ';' || \
find ${NUTTXDIR} -name '*.swp' -exec rm -f '{}' ';' || \
{ echo "Removal of VI garbage failed!" ; exit 1 ; }
-# Prepare the nuttx directory -- Remove garbage directories
-
-for dir in ${GARBAGEDIRS}; do
- echo "Removing ${NUTTX}/${dir}"
- rm -rf ${NUTTX}/${dir}
-done
-
# Make sure that all of the necessary soft links are in place
cd ${NUTTX}/Documentation || \