From 559eba20a8ef0930192300143332065510672c65 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 25 Feb 1998 01:08:47 +0000 Subject: [PATCH] * Added test bucket directory for sky tests, which may be run in conjunction with the mips64r5900 tests. It's all meant to be sanitized out without "keep-sky". --- sim/testsuite/.Sanitize | 35 + sim/testsuite/ChangeLog | 8 + sim/testsuite/configure.in | 8 + sim/testsuite/sky/.Sanitize | 47 ++ sim/testsuite/sky/ChangeLog | 7 + sim/testsuite/sky/Makefile.in | 171 +++++ sim/testsuite/sky/configure | 902 ++++++++++++++++++++++++ sim/testsuite/sky/configure.in | 19 + sim/testsuite/sky/t-pke1.trc | 106 +++ sim/testsuite/sky/t-pke1.vif0expect | 1330 +++++++++++++++++++++++++++++++++++ sim/testsuite/sky/t-pke2.trc | 125 ++++ sim/testsuite/sky/t-pke2.vif1expect | 933 ++++++++++++++++++++++++ sim/testsuite/sky/t-pke3.trc | 333 +++++++++ sim/testsuite/sky/t-pke4.run | Bin 0 -> 186145 bytes 14 files changed, 4024 insertions(+) create mode 100644 sim/testsuite/sky/.Sanitize create mode 100644 sim/testsuite/sky/ChangeLog create mode 100644 sim/testsuite/sky/Makefile.in create mode 100755 sim/testsuite/sky/configure create mode 100644 sim/testsuite/sky/configure.in create mode 100644 sim/testsuite/sky/t-pke1.trc create mode 100644 sim/testsuite/sky/t-pke1.vif0expect create mode 100644 sim/testsuite/sky/t-pke2.trc create mode 100644 sim/testsuite/sky/t-pke2.vif1expect create mode 100644 sim/testsuite/sky/t-pke3.trc create mode 100644 sim/testsuite/sky/t-pke4.run diff --git a/sim/testsuite/.Sanitize b/sim/testsuite/.Sanitize index c52e7b3..dee604f 100644 --- a/sim/testsuite/.Sanitize +++ b/sim/testsuite/.Sanitize @@ -29,6 +29,13 @@ else lose_these_too="${r5900_files} ${lose_these_too}" fi +sky_files="sky" +if ( echo $* | grep keep\-sky > /dev/null ) ; then + keep_these_too="${sky_files} ${keep_these_too}" +else + lose_these_too="${sky_files} ${lose_these_too}" +fi + if ( echo $* | grep keep\-v850e > /dev/null ) ; then keep_these_too="v850e-elf ${keep_these_too}" else @@ -117,6 +124,34 @@ else done fi +sky_files="configure configure.in ChangeLog" +if ( echo $* | grep keep\-sky > /dev/null ) ; then + for i in $sky_files ; do + if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping sky stuff in $i + fi + fi + done +else + for i in $sky_files ; do + if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"sky\" from $i... + fi + cp $i new + sed '/start\-sanitize\-sky/,/end-\sanitize\-sky/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + for i in * ; do if test ! -d $i && (grep sanitize $i > /dev/null) ; then echo '***' Some mentions of Sanitize are still left in $i! 1>&2 diff --git a/sim/testsuite/ChangeLog b/sim/testsuite/ChangeLog index 8098e33..f03ed88 100644 --- a/sim/testsuite/ChangeLog +++ b/sim/testsuite/ChangeLog @@ -1,3 +1,11 @@ +start-sanitize-sky +Tue Feb 24 19:47:56 1998 Frank Ch. Eigler + + * configure.in (testdir): Added sky subdir for mips64r5900-sky-elf + target. + * configure: Regenerate. +end-sanitize-sky + Fri Feb 20 11:00:02 1998 Nick Clifton * sim/m32r/unlock.cgs: Fixed test. diff --git a/sim/testsuite/configure.in b/sim/testsuite/configure.in index 28e9fef..2324bd9 100644 --- a/sim/testsuite/configure.in +++ b/sim/testsuite/configure.in @@ -21,6 +21,14 @@ if test -r ${srcdir}/${testdir}/configure ; then configdirs="${configdirs} $testdir" fi +# add any extra subdirectories +case $target in + # start-sanitize-sky + mips64r5900-sky-elf) configdirs="${configdirs} sky" ;; + # end-sanitize-sky + *) ;; +esac + case $target in m32r-*-*) use_cgen=yes ;; *) use_cgen=no ;; diff --git a/sim/testsuite/sky/.Sanitize b/sim/testsuite/sky/.Sanitize new file mode 100644 index 0000000..967d543 --- /dev/null +++ b/sim/testsuite/sky/.Sanitize @@ -0,0 +1,47 @@ +# .Sanitize for devo/sim/testsuite/sky. + +# Each directory to survive its way into a release will need a file +# like this one called "./.Sanitize". All keyword lines must exist, +# and must exist in the order specified by this file. Each directory +# in the tree will be processed, top down, in the following order. + +# Hash started lines like this one are comments and will be deleted +# before anything else is done. Blank lines will also be squashed +# out. + +# The lines between the "Do-first:" line and the "Things-to-keep:" +# line are executed as a /bin/sh shell script before anything else is +# done in this directory. + +Do-first: + +# All files listed between the "Things-to-keep:" line and the +# "Do-last:" line will be kept. All other files will be removed. +# Directories listed in this section will have their own Sanitize +# called. Directories not listed will be removed in their entirety +# with rm -rf. + +Things-to-keep: + +ChangeLog +Makefile.in +configure +configure.in +t-pke1.trc +t-pke1.vif0expect +t-pke2.trc +t-pke2.vif1expect +t-pke3.trc +t-pke4.run + +# + +Things-to-lose: + +# The lines between the "Do-last:" line and the end of the file +# are executed as a /bin/sh shell script after everything else is +# done. + +Do-last: + +# eof diff --git a/sim/testsuite/sky/ChangeLog b/sim/testsuite/sky/ChangeLog new file mode 100644 index 0000000..a65207c --- /dev/null +++ b/sim/testsuite/sky/ChangeLog @@ -0,0 +1,7 @@ +Tue Feb 24 19:32:10 1998 Frank Ch. Eigler + + * ChangeLog, Makefile.in, configure, configure.in, t-pke1.trc, + t-pke1.vif0expect, t-pke2.trc, t-pke2.vif1expect, t-pke3.trc, + t-pke4.run: Created. + + diff --git a/sim/testsuite/sky/Makefile.in b/sim/testsuite/sky/Makefile.in new file mode 100644 index 0000000..57f90d4 --- /dev/null +++ b/sim/testsuite/sky/Makefile.in @@ -0,0 +1,171 @@ +# Makefile for regression testing the sky simulator. + + +VPATH = @srcdir@ +srcdir = @srcdir@ +srcroot = $(srcdir)/.. + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +host_alias = @host_alias@ +target_alias = @target_alias@ +program_transform_name = @program_transform_name@ +build_canonical = @build@ +host_canonical = @host@ +target_canonical = @target@ +target_cpu = @target_cpu@ + + +SHELL = /bin/sh +SUBDIRS = @subdirs@ +RPATH_ENVVAR = @RPATH_ENVVAR@ + +EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \ + echo $${rootme}/../../expect/expect ; \ + else echo expect ; fi` + +RUNTEST = $(RUNTEST_FOR_TARGET) + +RUNTESTFLAGS = + +RUNTEST_FOR_TARGET = `\ + if [ -f $${srcdir}/../../../dejagnu/runtest ]; then \ + echo $${srcdir}/../../../dejagnu/runtest; \ + else \ + if [ "$(host_canonical)" = "$(target_canonical)" ]; then \ + echo runtest; \ + else \ + t='$(program_transform_name)'; echo runtest | sed -e '' $$t; \ + fi; \ + fi` + + +AS_FOR_TARGET = `\ + if [ -x ../../../gas/as-new ]; then \ + echo ../../../gas/as-new ; \ + else \ + echo $(target_alias)-as ; \ + fi` + +LD_FOR_TARGET = `\ + if [ -x ../../../ld/ld-new ]; then \ + echo ../../../ld/ld-new ; \ + else \ + echo $(target_alias)-ld ; \ + fi` + +RUNOPTS = --memory-size=0x1000000 + +RUN_FOR_TARGET = `\ + if [ -x ../../../sim/mips/run ]; then \ + echo ../../../sim/mips/run ; \ + else \ + echo $(target_alias)-run ; \ + fi` $(RUNOPTS) + +GCC_FOR_TARGET = `\ + if [ -x ../../../gcc/xgcc ]; then \ + echo ../../../gcc/xgcc ; \ + else \ + echo $(target_alias)-gcc ; \ + fi` + +C_GEN = /build/sky-tools/c_gen.pl + +.SUFFIXES: .trc .c .run .ok .vif0out .vif0ok .vif0expect .vif1out .vif1ok .vif1expect + +TESTS = \ + t-pke1.c \ + t-pke1.run \ + t-pke1.vif0ok \ + t-pke2.c \ + t-pke2.run \ + t-pke2.vif1ok \ + t-pke3.c \ + t-pke3.run \ + t-pke3.ok \ + t-pke4.ok + +check: sanity $(TESTS) +sanity: + @eval echo AS_FOR_TARGET = $(AS_FOR_TARGET) + @eval echo LD_FOR_TARGET = $(LD_FOR_TARGET) + @eval echo RUN_FOR_TARGET = $(RUN_FOR_TARGET) + @eval echo GCC_FOR_TARGET = $(GCC_FOR_TARGET) + + +# Rules for running the tests + +.run.ok: + rm -f tmp-$* $*.hi + ulimit -t 5 ; $(RUN_FOR_TARGET) $*.run > tmp-$* + mv tmp-$* $*.ok +.run.ko: + rm -f tmp-$* $*.ko + set +e ; \ + ulimit -t 5 ; $(RUN_FOR_TARGET) $*.run > tmp-$* ; \ + if [ $$? -ne 0 ] ; then \ + exit 0 ; \ + else \ + exit 1 ; \ + fi + mv tmp-$* $*.ko +.vif0out.vif0ok: + diff $*.vif0expect $< + touch $@ +.vif1out.vif1ok: + diff $*.vif1expect $< + touch $@ + +# Rules for building all the tests + +.trc.c: + $(C_GEN) $< $@ +.c.run: + $(GCC_FOR_TARGET) -Tr5900idt.ld -o $@ $< +.run.vif0out: + rm -f $@ + -env VIF0_TRACE_FILE=$@ $(RUN_FOR_TARGET) $*.run +.run.vif1out: + rm -f $@ + -env VIF1_TRACE_FILE=$@ $(RUN_FOR_TARGET) $*.run + + + +# +# Standard +# +clean mostlyclean: + -rm -f *~ core *.o a.out *.x *.grt + -rm -f *.vif*out *.ok tmp-* + rm -f $(TESTS) +# if [ x"${SUBDIRS}" != x ] ; then \ +# for dir in ${SUBDIRS}; \ +# do \ +# echo "$$dir:"; \ +# if [ -d $$dir ]; then \ +# (cd $$dir; $(MAKE) clean); \ +# fi; \ +# done ; \ +# else true; fi + +distclean maintainer-clean realclean: clean + -rm -f *~ core + -rm -f Makefile config.status *-init.exp + -rm -fr *.log summary detail *.plog *.sum *.psum site.* +# if [ x"${SUBDIRS}" != x ] ; then \ +# for dir in ${SUBDIRS}; \ +# do \ +# echo "$$dir:"; \ +# if [ -d $$dir ]; then \ +# (cd $$dir; $(MAKE) distclean); \ +# fi; \ +# done ; \ +# else true; fi + +Makefile : Makefile.in config.status + $(SHELL) config.status + +config.status: configure + $(SHELL) config.status --recheck diff --git a/sim/testsuite/sky/configure b/sim/testsuite/sky/configure new file mode 100755 index 0000000..fa656cb --- /dev/null +++ b/sim/testsuite/sky/configure @@ -0,0 +1,902 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.12.1 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.12.1" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Makefile.in + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +CC=${CC-cc} + +ac_aux_dir= +for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:573: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:594: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:612: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set) 2>&1 | grep ac_space` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.12.1" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@CC@%$CC%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/sim/testsuite/sky/configure.in b/sim/testsuite/sky/configure.in new file mode 100644 index 0000000..e74389e --- /dev/null +++ b/sim/testsuite/sky/configure.in @@ -0,0 +1,19 @@ +dnl Process this file file with autoconf to produce a configure script. +dnl This file is a shell script fragment that supplies the information +dnl necessary to tailor a template configure script into the configure +dnl script appropriate for this directory. For more information, check +dnl any existing configure script. + +AC_PREREQ(2.5) +dnl FIXME - think of a truly uniq file to this directory +AC_INIT(Makefile.in) + +CC=${CC-cc} +AC_SUBST(CC) +AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..) +AC_CANONICAL_SYSTEM + +AC_SUBST(target_cpu) + + +AC_OUTPUT(Makefile) diff --git a/sim/testsuite/sky/t-pke1.trc b/sim/testsuite/sky/t-pke1.trc new file mode 100644 index 0000000..053975f --- /dev/null +++ b/sim/testsuite/sky/t-pke1.trc @@ -0,0 +1,106 @@ +# PKE tests from SCEI PKE simulator +# Converted by FChE using emacs macros from "sce-project/scei/pke/sample/tsv432.in" +# Regenerated with word classification using PKE trace output. +0 0x55555555_20000000_00000000_31000066 0x00000000 .PDD +0 0x0000ffff_0000ffff_0000ffff_30000000 0x00000000 ...P +0 0x30000000_7c000000_01000000_0000ffff 0x00000000 PPP. +0 0x00000103_00000102_00000101_00000100 0x00000000 .... +0 0x00001002_00001001_00001000_31000000 0x00000000 ...P +0 0x6c100000_01000404_05000000_00001003 0x00000000 PPP. +0 0x00000003_00000002_00000001_00000000 0x00000000 .... +0 0x00000013_00000012_00000011_00000010 0x00000000 .... +0 0x00000023_00000022_00000021_00000020 0x00000000 .... +0 0x00000033_00000032_00000031_00000030 0x00000000 .... +0 0x00000043_00000042_00000041_00000040 0x00000000 .... +0 0x00000053_00000052_00000051_00000050 0x00000000 .... +0 0x00000063_00000062_00000061_00000060 0x00000000 .... +0 0x00000073_00000072_00000071_00000070 0x00000000 .... +0 0x00000083_00000082_00000081_00000080 0x00000000 .... +0 0x00000093_00000092_00000091_00000090 0x00000000 .... +0 0x000000a3_000000a2_000000a1_000000a0 0x00000000 .... +0 0x000000b3_000000b2_000000b1_000000b0 0x00000000 .... +0 0x000000c3_000000c2_000000c1_000000c0 0x00000000 .... +0 0x000000d3_000000d2_000000d1_000000d0 0x00000000 .... +0 0x000000e3_000000e2_000000e1_000000e0 0x00000000 .... +0 0x000000f3_000000f2_000000f1_000000f0 0x00000000 .... +0 0x00000001_00000000_6c080010_01000408 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +0 0xaaaa0000_20000000_00000073_00000072 0x00000000 .P.. +0 0x00000001_00000000_7c080020_01000402 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x40100401_20000000_00000033_00000032 0x00000000 .P.. +0 0x00000001_00000000_7c100030_01000808 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +0 0x00000081_00000080_00000073_00000072 0x00000000 .... +0 0x00000091_00000090_00000083_00000082 0x00000000 .... +0 0x000000a1_000000a0_00000093_00000092 0x00000000 .... +0 0x000000b1_000000b0_000000a3_000000a2 0x00000000 .... +0 0x000000c1_000000c0_000000b3_000000b2 0x00000000 .... +0 0x000000d1_000000d0_000000c3_000000c2 0x00000000 .... +0 0x000000e1_000000e0_000000d3_000000d2 0x00000000 .... +0 0x000000f1_000000f0_000000e3_000000e2 0x00000000 .... +0 0x80200802_20000000_000000f3_000000f2 0x00000000 .P.. +0 0x00000001_00000000_7c100040_01000808 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +0 0x00000081_00000080_00000073_00000072 0x00000000 .... +0 0x00000091_00000090_00000083_00000082 0x00000000 .... +0 0x000000a1_000000a0_00000093_00000092 0x00000000 .... +0 0x000000b1_000000b0_000000a3_000000a2 0x00000000 .... +0 0x000000c1_000000c0_000000b3_000000b2 0x00000000 .... +0 0x000000d1_000000d0_000000c3_000000c2 0x00000000 .... +0 0x000000e1_000000e0_000000d3_000000d2 0x00000000 .... +0 0x000000f1_000000f0_000000e3_000000e2 0x00000000 .... +0 0x80200802_20000000_000000f3_000000f2 0x00000000 .P.. +0 0x00000001_00000000_7c060060_01000308 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000100_30000000_00000053_00000052 0x00000000 .P.. +0 0x31000000_00000103_00000102_00000101 0x00000000 P... +0 0x00001003_00001002_00001001_00001000 0x00000000 .... +0 0x30000000_90909090_20000000_05000001 0x00000000 P.PP +0 0x00004000_00000100_00000001_ffffffff 0x00000000 .... +0 0x00000002_00000001_00000000_31000000 0x00000000 ...P +0 0x00000000_7c080070_01000404_00000003 0x00000000 .PP. +0 0x00000010_00000003_00000002_00000001 0x00000000 .... +0 0x00000020_00000013_00000012_00000011 0x00000000 .... +0 0x00000030_00000023_00000022_00000021 0x00000000 .... +0 0x00000040_00000033_00000032_00000031 0x00000000 .... +0 0x00000050_00000043_00000042_00000041 0x00000000 .... +0 0x00000060_00000053_00000052_00000051 0x00000000 .... +0 0x00000070_00000063_00000062_00000061 0x00000000 .... +0 0x05000002_00000073_00000072_00000071 0x00000000 P... +0 0x00000000_30000000_90909090_20000000 0x00000000 .P.P +0 0x31000000_00000000_00000001_00000000 0x00000000 P... +0 0x00000003_00000002_00000001_00000000 0x00000000 .... +0 0x00000001_00000001_7c080078_01000404 0x00000000 ..PP +0 0x00000001_00000001_00000003_00000002 0x00000000 .... +0 0x00000001_00000001_00000013_00000012 0x00000000 .... +0 0xffffffff_00000001_00000023_00000022 0x00000000 .... +0 0xfffffffe_00000001_00000033_00000032 0x00000000 .... +0 0x00000002_00000001_00000043_00000042 0x00000000 .... +0 0x00000003_00000001_00000053_00000052 0x00000000 .... +0 0xfffffffb_00000001_00000063_00000062 0x00000000 .... +0 0x00000000_00000000_00000073_00000072 0x00000000 PP.. diff --git a/sim/testsuite/sky/t-pke1.vif0expect b/sim/testsuite/sky/t-pke1.vif0expect new file mode 100644 index 0000000..6249089 --- /dev/null +++ b/sim/testsuite/sky/t-pke1.vif0expect @@ -0,0 +1,1330 @@ +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg MASK:MASK = 0x55555555 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x55555555_20000000_00000000_31000066 0x00000000 .PDD +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x0000ffff_0000ffff_0000ffff_30000000 0x00000000 ...P +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x100 +# Reg NUM:NUM = 0xff +# Write 16 bytes to 0x11004000: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004000: 00 00 00 00 +# Reg NUM:NUM = 0xfe +# Write 16 bytes to 0x11004010: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004004: 00 00 00 00 +# Reg NUM:NUM = 0xfd +# Write 16 bytes to 0x11004020: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004008: 00 00 00 00 +# Reg NUM:NUM = 0xfc +# Write 16 bytes to 0x11004030: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100400c: 00 00 00 00 +# Reg NUM:NUM = 0xfb +# Write 16 bytes to 0x11004040: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004010: 00 00 00 00 +# Reg NUM:NUM = 0xfa +# Write 16 bytes to 0x11004050: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004014: 00 00 00 00 +# Reg NUM:NUM = 0xf9 +# Write 16 bytes to 0x11004060: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004018: 00 00 00 00 +# Reg NUM:NUM = 0xf8 +# Write 16 bytes to 0x11004070: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100401c: 00 00 00 00 +# Reg NUM:NUM = 0xf7 +# Write 16 bytes to 0x11004080: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004020: 00 00 00 00 +# Reg NUM:NUM = 0xf6 +# Write 16 bytes to 0x11004090: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004024: 00 00 00 00 +# Reg NUM:NUM = 0xf5 +# Write 16 bytes to 0x110040a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004028: 00 00 00 00 +# Reg NUM:NUM = 0xf4 +# Write 16 bytes to 0x110040b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100402c: 00 00 00 00 +# Reg NUM:NUM = 0xf3 +# Write 16 bytes to 0x110040c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004030: 00 00 00 00 +# Reg NUM:NUM = 0xf2 +# Write 16 bytes to 0x110040d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004034: 00 00 00 00 +# Reg NUM:NUM = 0xf1 +# Write 16 bytes to 0x110040e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004038: 00 00 00 00 +# Reg NUM:NUM = 0xf0 +# Write 16 bytes to 0x110040f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100403c: 00 00 00 00 +# Reg NUM:NUM = 0xef +# Write 16 bytes to 0x11004100: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004040: 00 00 00 00 +# Reg NUM:NUM = 0xee +# Write 16 bytes to 0x11004110: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004044: 00 00 00 00 +# Reg NUM:NUM = 0xed +# Write 16 bytes to 0x11004120: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004048: 00 00 00 00 +# Reg NUM:NUM = 0xec +# Write 16 bytes to 0x11004130: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100404c: 00 00 00 00 +# Reg NUM:NUM = 0xeb +# Write 16 bytes to 0x11004140: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004050: 00 00 00 00 +# Reg NUM:NUM = 0xea +# Write 16 bytes to 0x11004150: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004054: 00 00 00 00 +# Reg NUM:NUM = 0xe9 +# Write 16 bytes to 0x11004160: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004058: 00 00 00 00 +# Reg NUM:NUM = 0xe8 +# Write 16 bytes to 0x11004170: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100405c: 00 00 00 00 +# Reg NUM:NUM = 0xe7 +# Write 16 bytes to 0x11004180: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004060: 00 00 00 00 +# Reg NUM:NUM = 0xe6 +# Write 16 bytes to 0x11004190: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004064: 00 00 00 00 +# Reg NUM:NUM = 0xe5 +# Write 16 bytes to 0x110041a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004068: 00 00 00 00 +# Reg NUM:NUM = 0xe4 +# Write 16 bytes to 0x110041b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100406c: 00 00 00 00 +# Reg NUM:NUM = 0xe3 +# Write 16 bytes to 0x110041c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004070: 00 00 00 00 +# Reg NUM:NUM = 0xe2 +# Write 16 bytes to 0x110041d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004074: 00 00 00 00 +# Reg NUM:NUM = 0xe1 +# Write 16 bytes to 0x110041e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004078: 00 00 00 00 +# Reg NUM:NUM = 0xe0 +# Write 16 bytes to 0x110041f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100407c: 00 00 00 00 +# Reg NUM:NUM = 0xdf +# Write 16 bytes to 0x11004200: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004080: 00 00 00 00 +# Reg NUM:NUM = 0xde +# Write 16 bytes to 0x11004210: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004084: 00 00 00 00 +# Reg NUM:NUM = 0xdd +# Write 16 bytes to 0x11004220: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004088: 00 00 00 00 +# Reg NUM:NUM = 0xdc +# Write 16 bytes to 0x11004230: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100408c: 00 00 00 00 +# Reg NUM:NUM = 0xdb +# Write 16 bytes to 0x11004240: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004090: 00 00 00 00 +# Reg NUM:NUM = 0xda +# Write 16 bytes to 0x11004250: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004094: 00 00 00 00 +# Reg NUM:NUM = 0xd9 +# Write 16 bytes to 0x11004260: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004098: 00 00 00 00 +# Reg NUM:NUM = 0xd8 +# Write 16 bytes to 0x11004270: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100409c: 00 00 00 00 +# Reg NUM:NUM = 0xd7 +# Write 16 bytes to 0x11004280: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040a0: 00 00 00 00 +# Reg NUM:NUM = 0xd6 +# Write 16 bytes to 0x11004290: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040a4: 00 00 00 00 +# Reg NUM:NUM = 0xd5 +# Write 16 bytes to 0x110042a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040a8: 00 00 00 00 +# Reg NUM:NUM = 0xd4 +# Write 16 bytes to 0x110042b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040ac: 00 00 00 00 +# Reg NUM:NUM = 0xd3 +# Write 16 bytes to 0x110042c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040b0: 00 00 00 00 +# Reg NUM:NUM = 0xd2 +# Write 16 bytes to 0x110042d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040b4: 00 00 00 00 +# Reg NUM:NUM = 0xd1 +# Write 16 bytes to 0x110042e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040b8: 00 00 00 00 +# Reg NUM:NUM = 0xd0 +# Write 16 bytes to 0x110042f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040bc: 00 00 00 00 +# Reg NUM:NUM = 0xcf +# Write 16 bytes to 0x11004300: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040c0: 00 00 00 00 +# Reg NUM:NUM = 0xce +# Write 16 bytes to 0x11004310: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040c4: 00 00 00 00 +# Reg NUM:NUM = 0xcd +# Write 16 bytes to 0x11004320: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040c8: 00 00 00 00 +# Reg NUM:NUM = 0xcc +# Write 16 bytes to 0x11004330: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040cc: 00 00 00 00 +# Reg NUM:NUM = 0xcb +# Write 16 bytes to 0x11004340: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040d0: 00 00 00 00 +# Reg NUM:NUM = 0xca +# Write 16 bytes to 0x11004350: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040d4: 00 00 00 00 +# Reg NUM:NUM = 0xc9 +# Write 16 bytes to 0x11004360: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040d8: 00 00 00 00 +# Reg NUM:NUM = 0xc8 +# Write 16 bytes to 0x11004370: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040dc: 00 00 00 00 +# Reg NUM:NUM = 0xc7 +# Write 16 bytes to 0x11004380: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040e0: 00 00 00 00 +# Reg NUM:NUM = 0xc6 +# Write 16 bytes to 0x11004390: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040e4: 00 00 00 00 +# Reg NUM:NUM = 0xc5 +# Write 16 bytes to 0x110043a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040e8: 00 00 00 00 +# Reg NUM:NUM = 0xc4 +# Write 16 bytes to 0x110043b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040ec: 00 00 00 00 +# Reg NUM:NUM = 0xc3 +# Write 16 bytes to 0x110043c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040f0: 00 00 00 00 +# Reg NUM:NUM = 0xc2 +# Write 16 bytes to 0x110043d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040f4: 00 00 00 00 +# Reg NUM:NUM = 0xc1 +# Write 16 bytes to 0x110043e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040f8: 00 00 00 00 +# Reg NUM:NUM = 0xc0 +# Write 16 bytes to 0x110043f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210040fc: 00 00 00 00 +# Reg NUM:NUM = 0xbf +# Write 16 bytes to 0x11004400: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004100: 00 00 00 00 +# Reg NUM:NUM = 0xbe +# Write 16 bytes to 0x11004410: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004104: 00 00 00 00 +# Reg NUM:NUM = 0xbd +# Write 16 bytes to 0x11004420: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004108: 00 00 00 00 +# Reg NUM:NUM = 0xbc +# Write 16 bytes to 0x11004430: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100410c: 00 00 00 00 +# Reg NUM:NUM = 0xbb +# Write 16 bytes to 0x11004440: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004110: 00 00 00 00 +# Reg NUM:NUM = 0xba +# Write 16 bytes to 0x11004450: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004114: 00 00 00 00 +# Reg NUM:NUM = 0xb9 +# Write 16 bytes to 0x11004460: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004118: 00 00 00 00 +# Reg NUM:NUM = 0xb8 +# Write 16 bytes to 0x11004470: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100411c: 00 00 00 00 +# Reg NUM:NUM = 0xb7 +# Write 16 bytes to 0x11004480: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004120: 00 00 00 00 +# Reg NUM:NUM = 0xb6 +# Write 16 bytes to 0x11004490: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004124: 00 00 00 00 +# Reg NUM:NUM = 0xb5 +# Write 16 bytes to 0x110044a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004128: 00 00 00 00 +# Reg NUM:NUM = 0xb4 +# Write 16 bytes to 0x110044b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100412c: 00 00 00 00 +# Reg NUM:NUM = 0xb3 +# Write 16 bytes to 0x110044c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004130: 00 00 00 00 +# Reg NUM:NUM = 0xb2 +# Write 16 bytes to 0x110044d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004134: 00 00 00 00 +# Reg NUM:NUM = 0xb1 +# Write 16 bytes to 0x110044e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004138: 00 00 00 00 +# Reg NUM:NUM = 0xb0 +# Write 16 bytes to 0x110044f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100413c: 00 00 00 00 +# Reg NUM:NUM = 0xaf +# Write 16 bytes to 0x11004500: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004140: 00 00 00 00 +# Reg NUM:NUM = 0xae +# Write 16 bytes to 0x11004510: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004144: 00 00 00 00 +# Reg NUM:NUM = 0xad +# Write 16 bytes to 0x11004520: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004148: 00 00 00 00 +# Reg NUM:NUM = 0xac +# Write 16 bytes to 0x11004530: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100414c: 00 00 00 00 +# Reg NUM:NUM = 0xab +# Write 16 bytes to 0x11004540: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004150: 00 00 00 00 +# Reg NUM:NUM = 0xaa +# Write 16 bytes to 0x11004550: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004154: 00 00 00 00 +# Reg NUM:NUM = 0xa9 +# Write 16 bytes to 0x11004560: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004158: 00 00 00 00 +# Reg NUM:NUM = 0xa8 +# Write 16 bytes to 0x11004570: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100415c: 00 00 00 00 +# Reg NUM:NUM = 0xa7 +# Write 16 bytes to 0x11004580: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004160: 00 00 00 00 +# Reg NUM:NUM = 0xa6 +# Write 16 bytes to 0x11004590: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004164: 00 00 00 00 +# Reg NUM:NUM = 0xa5 +# Write 16 bytes to 0x110045a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004168: 00 00 00 00 +# Reg NUM:NUM = 0xa4 +# Write 16 bytes to 0x110045b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100416c: 00 00 00 00 +# Reg NUM:NUM = 0xa3 +# Write 16 bytes to 0x110045c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004170: 00 00 00 00 +# Reg NUM:NUM = 0xa2 +# Write 16 bytes to 0x110045d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004174: 00 00 00 00 +# Reg NUM:NUM = 0xa1 +# Write 16 bytes to 0x110045e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004178: 00 00 00 00 +# Reg NUM:NUM = 0xa0 +# Write 16 bytes to 0x110045f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100417c: 00 00 00 00 +# Reg NUM:NUM = 0x9f +# Write 16 bytes to 0x11004600: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004180: 00 00 00 00 +# Reg NUM:NUM = 0x9e +# Write 16 bytes to 0x11004610: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004184: 00 00 00 00 +# Reg NUM:NUM = 0x9d +# Write 16 bytes to 0x11004620: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004188: 00 00 00 00 +# Reg NUM:NUM = 0x9c +# Write 16 bytes to 0x11004630: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100418c: 00 00 00 00 +# Reg NUM:NUM = 0x9b +# Write 16 bytes to 0x11004640: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004190: 00 00 00 00 +# Reg NUM:NUM = 0x9a +# Write 16 bytes to 0x11004650: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004194: 00 00 00 00 +# Reg NUM:NUM = 0x99 +# Write 16 bytes to 0x11004660: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004198: 00 00 00 00 +# Reg NUM:NUM = 0x98 +# Write 16 bytes to 0x11004670: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100419c: 00 00 00 00 +# Reg NUM:NUM = 0x97 +# Write 16 bytes to 0x11004680: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041a0: 00 00 00 00 +# Reg NUM:NUM = 0x96 +# Write 16 bytes to 0x11004690: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041a4: 00 00 00 00 +# Reg NUM:NUM = 0x95 +# Write 16 bytes to 0x110046a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041a8: 00 00 00 00 +# Reg NUM:NUM = 0x94 +# Write 16 bytes to 0x110046b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041ac: 00 00 00 00 +# Reg NUM:NUM = 0x93 +# Write 16 bytes to 0x110046c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041b0: 00 00 00 00 +# Reg NUM:NUM = 0x92 +# Write 16 bytes to 0x110046d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041b4: 00 00 00 00 +# Reg NUM:NUM = 0x91 +# Write 16 bytes to 0x110046e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041b8: 00 00 00 00 +# Reg NUM:NUM = 0x90 +# Write 16 bytes to 0x110046f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041bc: 00 00 00 00 +# Reg NUM:NUM = 0x8f +# Write 16 bytes to 0x11004700: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041c0: 00 00 00 00 +# Reg NUM:NUM = 0x8e +# Write 16 bytes to 0x11004710: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041c4: 00 00 00 00 +# Reg NUM:NUM = 0x8d +# Write 16 bytes to 0x11004720: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041c8: 00 00 00 00 +# Reg NUM:NUM = 0x8c +# Write 16 bytes to 0x11004730: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041cc: 00 00 00 00 +# Reg NUM:NUM = 0x8b +# Write 16 bytes to 0x11004740: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041d0: 00 00 00 00 +# Reg NUM:NUM = 0x8a +# Write 16 bytes to 0x11004750: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041d4: 00 00 00 00 +# Reg NUM:NUM = 0x89 +# Write 16 bytes to 0x11004760: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041d8: 00 00 00 00 +# Reg NUM:NUM = 0x88 +# Write 16 bytes to 0x11004770: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041dc: 00 00 00 00 +# Reg NUM:NUM = 0x87 +# Write 16 bytes to 0x11004780: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041e0: 00 00 00 00 +# Reg NUM:NUM = 0x86 +# Write 16 bytes to 0x11004790: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041e4: 00 00 00 00 +# Reg NUM:NUM = 0x85 +# Write 16 bytes to 0x110047a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041e8: 00 00 00 00 +# Reg NUM:NUM = 0x84 +# Write 16 bytes to 0x110047b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041ec: 00 00 00 00 +# Reg NUM:NUM = 0x83 +# Write 16 bytes to 0x110047c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041f0: 00 00 00 00 +# Reg NUM:NUM = 0x82 +# Write 16 bytes to 0x110047d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041f4: 00 00 00 00 +# Reg NUM:NUM = 0x81 +# Write 16 bytes to 0x110047e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041f8: 00 00 00 00 +# Reg NUM:NUM = 0x80 +# Write 16 bytes to 0x110047f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210041fc: 00 00 00 00 +# Reg NUM:NUM = 0x7f +# Write 16 bytes to 0x11004800: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004200: 00 00 00 00 +# Reg NUM:NUM = 0x7e +# Write 16 bytes to 0x11004810: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004204: 00 00 00 00 +# Reg NUM:NUM = 0x7d +# Write 16 bytes to 0x11004820: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004208: 00 00 00 00 +# Reg NUM:NUM = 0x7c +# Write 16 bytes to 0x11004830: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100420c: 00 00 00 00 +# Reg NUM:NUM = 0x7b +# Write 16 bytes to 0x11004840: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004210: 00 00 00 00 +# Reg NUM:NUM = 0x7a +# Write 16 bytes to 0x11004850: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004214: 00 00 00 00 +# Reg NUM:NUM = 0x79 +# Write 16 bytes to 0x11004860: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004218: 00 00 00 00 +# Reg NUM:NUM = 0x78 +# Write 16 bytes to 0x11004870: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100421c: 00 00 00 00 +# Reg NUM:NUM = 0x77 +# Write 16 bytes to 0x11004880: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004220: 00 00 00 00 +# Reg NUM:NUM = 0x76 +# Write 16 bytes to 0x11004890: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004224: 00 00 00 00 +# Reg NUM:NUM = 0x75 +# Write 16 bytes to 0x110048a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004228: 00 00 00 00 +# Reg NUM:NUM = 0x74 +# Write 16 bytes to 0x110048b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100422c: 00 00 00 00 +# Reg NUM:NUM = 0x73 +# Write 16 bytes to 0x110048c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004230: 00 00 00 00 +# Reg NUM:NUM = 0x72 +# Write 16 bytes to 0x110048d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004234: 00 00 00 00 +# Reg NUM:NUM = 0x71 +# Write 16 bytes to 0x110048e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004238: 00 00 00 00 +# Reg NUM:NUM = 0x70 +# Write 16 bytes to 0x110048f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100423c: 00 00 00 00 +# Reg NUM:NUM = 0x6f +# Write 16 bytes to 0x11004900: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004240: 00 00 00 00 +# Reg NUM:NUM = 0x6e +# Write 16 bytes to 0x11004910: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004244: 00 00 00 00 +# Reg NUM:NUM = 0x6d +# Write 16 bytes to 0x11004920: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004248: 00 00 00 00 +# Reg NUM:NUM = 0x6c +# Write 16 bytes to 0x11004930: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100424c: 00 00 00 00 +# Reg NUM:NUM = 0x6b +# Write 16 bytes to 0x11004940: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004250: 00 00 00 00 +# Reg NUM:NUM = 0x6a +# Write 16 bytes to 0x11004950: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004254: 00 00 00 00 +# Reg NUM:NUM = 0x69 +# Write 16 bytes to 0x11004960: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004258: 00 00 00 00 +# Reg NUM:NUM = 0x68 +# Write 16 bytes to 0x11004970: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100425c: 00 00 00 00 +# Reg NUM:NUM = 0x67 +# Write 16 bytes to 0x11004980: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004260: 00 00 00 00 +# Reg NUM:NUM = 0x66 +# Write 16 bytes to 0x11004990: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004264: 00 00 00 00 +# Reg NUM:NUM = 0x65 +# Write 16 bytes to 0x110049a0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004268: 00 00 00 00 +# Reg NUM:NUM = 0x64 +# Write 16 bytes to 0x110049b0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100426c: 00 00 00 00 +# Reg NUM:NUM = 0x63 +# Write 16 bytes to 0x110049c0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004270: 00 00 00 00 +# Reg NUM:NUM = 0x62 +# Write 16 bytes to 0x110049d0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004274: 00 00 00 00 +# Reg NUM:NUM = 0x61 +# Write 16 bytes to 0x110049e0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004278: 00 00 00 00 +# Reg NUM:NUM = 0x60 +# Write 16 bytes to 0x110049f0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100427c: 00 00 00 00 +# Reg NUM:NUM = 0x5f +# Write 16 bytes to 0x11004a00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004280: 00 00 00 00 +# Reg NUM:NUM = 0x5e +# Write 16 bytes to 0x11004a10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004284: 00 00 00 00 +# Reg NUM:NUM = 0x5d +# Write 16 bytes to 0x11004a20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004288: 00 00 00 00 +# Reg NUM:NUM = 0x5c +# Write 16 bytes to 0x11004a30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100428c: 00 00 00 00 +# Reg NUM:NUM = 0x5b +# Write 16 bytes to 0x11004a40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004290: 00 00 00 00 +# Reg NUM:NUM = 0x5a +# Write 16 bytes to 0x11004a50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004294: 00 00 00 00 +# Reg NUM:NUM = 0x59 +# Write 16 bytes to 0x11004a60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004298: 00 00 00 00 +# Reg NUM:NUM = 0x58 +# Write 16 bytes to 0x11004a70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100429c: 00 00 00 00 +# Reg NUM:NUM = 0x57 +# Write 16 bytes to 0x11004a80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042a0: 00 00 00 00 +# Reg NUM:NUM = 0x56 +# Write 16 bytes to 0x11004a90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042a4: 00 00 00 00 +# Reg NUM:NUM = 0x55 +# Write 16 bytes to 0x11004aa0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042a8: 00 00 00 00 +# Reg NUM:NUM = 0x54 +# Write 16 bytes to 0x11004ab0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042ac: 00 00 00 00 +# Reg NUM:NUM = 0x53 +# Write 16 bytes to 0x11004ac0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042b0: 00 00 00 00 +# Reg NUM:NUM = 0x52 +# Write 16 bytes to 0x11004ad0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042b4: 00 00 00 00 +# Reg NUM:NUM = 0x51 +# Write 16 bytes to 0x11004ae0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042b8: 00 00 00 00 +# Reg NUM:NUM = 0x50 +# Write 16 bytes to 0x11004af0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042bc: 00 00 00 00 +# Reg NUM:NUM = 0x4f +# Write 16 bytes to 0x11004b00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042c0: 00 00 00 00 +# Reg NUM:NUM = 0x4e +# Write 16 bytes to 0x11004b10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042c4: 00 00 00 00 +# Reg NUM:NUM = 0x4d +# Write 16 bytes to 0x11004b20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042c8: 00 00 00 00 +# Reg NUM:NUM = 0x4c +# Write 16 bytes to 0x11004b30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042cc: 00 00 00 00 +# Reg NUM:NUM = 0x4b +# Write 16 bytes to 0x11004b40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042d0: 00 00 00 00 +# Reg NUM:NUM = 0x4a +# Write 16 bytes to 0x11004b50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042d4: 00 00 00 00 +# Reg NUM:NUM = 0x49 +# Write 16 bytes to 0x11004b60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042d8: 00 00 00 00 +# Reg NUM:NUM = 0x48 +# Write 16 bytes to 0x11004b70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042dc: 00 00 00 00 +# Reg NUM:NUM = 0x47 +# Write 16 bytes to 0x11004b80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042e0: 00 00 00 00 +# Reg NUM:NUM = 0x46 +# Write 16 bytes to 0x11004b90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042e4: 00 00 00 00 +# Reg NUM:NUM = 0x45 +# Write 16 bytes to 0x11004ba0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042e8: 00 00 00 00 +# Reg NUM:NUM = 0x44 +# Write 16 bytes to 0x11004bb0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042ec: 00 00 00 00 +# Reg NUM:NUM = 0x43 +# Write 16 bytes to 0x11004bc0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042f0: 00 00 00 00 +# Reg NUM:NUM = 0x42 +# Write 16 bytes to 0x11004bd0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042f4: 00 00 00 00 +# Reg NUM:NUM = 0x41 +# Write 16 bytes to 0x11004be0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042f8: 00 00 00 00 +# Reg NUM:NUM = 0x40 +# Write 16 bytes to 0x11004bf0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210042fc: 00 00 00 00 +# Reg NUM:NUM = 0x3f +# Write 16 bytes to 0x11004c00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004300: 00 00 00 00 +# Reg NUM:NUM = 0x3e +# Write 16 bytes to 0x11004c10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004304: 00 00 00 00 +# Reg NUM:NUM = 0x3d +# Write 16 bytes to 0x11004c20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004308: 00 00 00 00 +# Reg NUM:NUM = 0x3c +# Write 16 bytes to 0x11004c30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100430c: 00 00 00 00 +# Reg NUM:NUM = 0x3b +# Write 16 bytes to 0x11004c40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004310: 00 00 00 00 +# Reg NUM:NUM = 0x3a +# Write 16 bytes to 0x11004c50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004314: 00 00 00 00 +# Reg NUM:NUM = 0x39 +# Write 16 bytes to 0x11004c60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004318: 00 00 00 00 +# Reg NUM:NUM = 0x38 +# Write 16 bytes to 0x11004c70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100431c: 00 00 00 00 +# Reg NUM:NUM = 0x37 +# Write 16 bytes to 0x11004c80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004320: 00 00 00 00 +# Reg NUM:NUM = 0x36 +# Write 16 bytes to 0x11004c90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004324: 00 00 00 00 +# Reg NUM:NUM = 0x35 +# Write 16 bytes to 0x11004ca0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004328: 00 00 00 00 +# Reg NUM:NUM = 0x34 +# Write 16 bytes to 0x11004cb0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100432c: 00 00 00 00 +# Reg NUM:NUM = 0x33 +# Write 16 bytes to 0x11004cc0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004330: 00 00 00 00 +# Reg NUM:NUM = 0x32 +# Write 16 bytes to 0x11004cd0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004334: 00 00 00 00 +# Reg NUM:NUM = 0x31 +# Write 16 bytes to 0x11004ce0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004338: 00 00 00 00 +# Reg NUM:NUM = 0x30 +# Write 16 bytes to 0x11004cf0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100433c: 00 00 00 00 +# Reg NUM:NUM = 0x2f +# Write 16 bytes to 0x11004d00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004340: 00 00 00 00 +# Reg NUM:NUM = 0x2e +# Write 16 bytes to 0x11004d10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004344: 00 00 00 00 +# Reg NUM:NUM = 0x2d +# Write 16 bytes to 0x11004d20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004348: 00 00 00 00 +# Reg NUM:NUM = 0x2c +# Write 16 bytes to 0x11004d30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100434c: 00 00 00 00 +# Reg NUM:NUM = 0x2b +# Write 16 bytes to 0x11004d40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004350: 00 00 00 00 +# Reg NUM:NUM = 0x2a +# Write 16 bytes to 0x11004d50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004354: 00 00 00 00 +# Reg NUM:NUM = 0x29 +# Write 16 bytes to 0x11004d60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004358: 00 00 00 00 +# Reg NUM:NUM = 0x28 +# Write 16 bytes to 0x11004d70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100435c: 00 00 00 00 +# Reg NUM:NUM = 0x27 +# Write 16 bytes to 0x11004d80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004360: 00 00 00 00 +# Reg NUM:NUM = 0x26 +# Write 16 bytes to 0x11004d90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004364: 00 00 00 00 +# Reg NUM:NUM = 0x25 +# Write 16 bytes to 0x11004da0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004368: 00 00 00 00 +# Reg NUM:NUM = 0x24 +# Write 16 bytes to 0x11004db0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100436c: 00 00 00 00 +# Reg NUM:NUM = 0x23 +# Write 16 bytes to 0x11004dc0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004370: 00 00 00 00 +# Reg NUM:NUM = 0x22 +# Write 16 bytes to 0x11004dd0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004374: 00 00 00 00 +# Reg NUM:NUM = 0x21 +# Write 16 bytes to 0x11004de0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004378: 00 00 00 00 +# Reg NUM:NUM = 0x20 +# Write 16 bytes to 0x11004df0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100437c: 00 00 00 00 +# Reg NUM:NUM = 0x1f +# Write 16 bytes to 0x11004e00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004380: 00 00 00 00 +# Reg NUM:NUM = 0x1e +# Write 16 bytes to 0x11004e10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004384: 00 00 00 00 +# Reg NUM:NUM = 0x1d +# Write 16 bytes to 0x11004e20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004388: 00 00 00 00 +# Reg NUM:NUM = 0x1c +# Write 16 bytes to 0x11004e30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100438c: 00 00 00 00 +# Reg NUM:NUM = 0x1b +# Write 16 bytes to 0x11004e40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004390: 00 00 00 00 +# Reg NUM:NUM = 0x1a +# Write 16 bytes to 0x11004e50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004394: 00 00 00 00 +# Reg NUM:NUM = 0x19 +# Write 16 bytes to 0x11004e60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x21004398: 00 00 00 00 +# Reg NUM:NUM = 0x18 +# Write 16 bytes to 0x11004e70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x2100439c: 00 00 00 00 +# Reg NUM:NUM = 0x17 +# Write 16 bytes to 0x11004e80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043a0: 00 00 00 00 +# Reg NUM:NUM = 0x16 +# Write 16 bytes to 0x11004e90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043a4: 00 00 00 00 +# Reg NUM:NUM = 0x15 +# Write 16 bytes to 0x11004ea0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043a8: 00 00 00 00 +# Reg NUM:NUM = 0x14 +# Write 16 bytes to 0x11004eb0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043ac: 00 00 00 00 +# Reg NUM:NUM = 0x13 +# Write 16 bytes to 0x11004ec0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043b0: 00 00 00 00 +# Reg NUM:NUM = 0x12 +# Write 16 bytes to 0x11004ed0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043b4: 00 00 00 00 +# Reg NUM:NUM = 0x11 +# Write 16 bytes to 0x11004ee0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043b8: 00 00 00 00 +# Reg NUM:NUM = 0x10 +# Write 16 bytes to 0x11004ef0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043bc: 00 00 00 00 +# Reg NUM:NUM = 0xf +# Write 16 bytes to 0x11004f00: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043c0: 00 00 00 00 +# Reg NUM:NUM = 0xe +# Write 16 bytes to 0x11004f10: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043c4: 00 00 00 00 +# Reg NUM:NUM = 0xd +# Write 16 bytes to 0x11004f20: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043c8: 00 00 00 00 +# Reg NUM:NUM = 0xc +# Write 16 bytes to 0x11004f30: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043cc: 00 00 00 00 +# Reg NUM:NUM = 0xb +# Write 16 bytes to 0x11004f40: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043d0: 00 00 00 00 +# Reg NUM:NUM = 0xa +# Write 16 bytes to 0x11004f50: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043d4: 00 00 00 00 +# Reg NUM:NUM = 0x9 +# Write 16 bytes to 0x11004f60: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043d8: 00 00 00 00 +# Reg NUM:NUM = 0x8 +# Write 16 bytes to 0x11004f70: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043dc: 00 00 00 00 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004f80: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043e0: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004f90: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043e4: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x11004fa0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043e8: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x11004fb0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043ec: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x11004fc0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043f0: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x11004fd0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043f4: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x11004fe0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043f8: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x11004ff0: ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 +# Write 4 bytes to 0x210043fc: 00 00 00 00 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x30000000_7c000000_01000000_0000ffff 0x00000000 PPP. +0 0x00000103_00000102_00000101_00000100 0x00000000 .... +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x00001002_00001001_00001000_31000000 0x00000000 ...P +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg CYCLE:WL = 0x4 +# Reg CYCLE:CL = 0x4 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x10 +# Reg NUM:NUM = 0xf +# Write 16 bytes to 0x11004000: 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x21004000: 00 00 00 00 +# Reg NUM:NUM = 0xe +# Write 16 bytes to 0x11004010: 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x21004004: 00 00 00 00 +# Reg NUM:NUM = 0xd +# Write 16 bytes to 0x11004020: 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 +# Write 4 bytes to 0x21004008: 00 00 00 00 +# Reg NUM:NUM = 0xc +# Write 16 bytes to 0x11004030: 30 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 +# Write 4 bytes to 0x2100400c: 00 00 00 00 +# Reg NUM:NUM = 0xb +# Write 16 bytes to 0x11004040: 40 00 00 00 41 00 00 00 42 00 00 00 43 00 00 00 +# Write 4 bytes to 0x21004010: 00 00 00 00 +# Reg NUM:NUM = 0xa +# Write 16 bytes to 0x11004050: 50 00 00 00 51 00 00 00 52 00 00 00 53 00 00 00 +# Write 4 bytes to 0x21004014: 00 00 00 00 +# Reg NUM:NUM = 0x9 +# Write 16 bytes to 0x11004060: 60 00 00 00 61 00 00 00 62 00 00 00 63 00 00 00 +# Write 4 bytes to 0x21004018: 00 00 00 00 +# Reg NUM:NUM = 0x8 +# Write 16 bytes to 0x11004070: 70 00 00 00 71 00 00 00 72 00 00 00 73 00 00 00 +# Write 4 bytes to 0x2100401c: 00 00 00 00 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004080: 80 00 00 00 81 00 00 00 82 00 00 00 83 00 00 00 +# Write 4 bytes to 0x21004020: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004090: 90 00 00 00 91 00 00 00 92 00 00 00 93 00 00 00 +# Write 4 bytes to 0x21004024: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x110040a0: a0 00 00 00 a1 00 00 00 a2 00 00 00 a3 00 00 00 +# Write 4 bytes to 0x21004028: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x110040b0: b0 00 00 00 b1 00 00 00 b2 00 00 00 b3 00 00 00 +# Write 4 bytes to 0x2100402c: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x110040c0: c0 00 00 00 c1 00 00 00 c2 00 00 00 c3 00 00 00 +# Write 4 bytes to 0x21004030: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x110040d0: d0 00 00 00 d1 00 00 00 d2 00 00 00 d3 00 00 00 +# Write 4 bytes to 0x21004034: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x110040e0: e0 00 00 00 e1 00 00 00 e2 00 00 00 e3 00 00 00 +# Write 4 bytes to 0x21004038: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110040f0: f0 00 00 00 f1 00 00 00 f2 00 00 00 f3 00 00 00 +# Write 4 bytes to 0x2100403c: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x6c100000_01000404_05000000_00001003 0x00000000 PPP. +0 0x00000003_00000002_00000001_00000000 0x00000000 .... +0 0x00000013_00000012_00000011_00000010 0x00000000 .... +0 0x00000023_00000022_00000021_00000020 0x00000000 .... +0 0x00000033_00000032_00000031_00000030 0x00000000 .... +0 0x00000043_00000042_00000041_00000040 0x00000000 .... +0 0x00000053_00000052_00000051_00000050 0x00000000 .... +0 0x00000063_00000062_00000061_00000060 0x00000000 .... +0 0x00000073_00000072_00000071_00000070 0x00000000 .... +0 0x00000083_00000082_00000081_00000080 0x00000000 .... +0 0x00000093_00000092_00000091_00000090 0x00000000 .... +0 0x000000a3_000000a2_000000a1_000000a0 0x00000000 .... +0 0x000000b3_000000b2_000000b1_000000b0 0x00000000 .... +0 0x000000c3_000000c2_000000c1_000000c0 0x00000000 .... +0 0x000000d3_000000d2_000000d1_000000d0 0x00000000 .... +0 0x000000e3_000000e2_000000e1_000000e0 0x00000000 .... +0 0x000000f3_000000f2_000000f1_000000f0 0x00000000 .... +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg CYCLE:CL = 0x8 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x8 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004100: 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x21004040: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004110: 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x21004044: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x11004120: 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 +# Write 4 bytes to 0x21004048: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x11004130: 30 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 +# Write 4 bytes to 0x2100404c: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x11004180: 40 00 00 00 41 00 00 00 42 00 00 00 43 00 00 00 +# Write 4 bytes to 0x21004060: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x11004190: 50 00 00 00 51 00 00 00 52 00 00 00 53 00 00 00 +# Write 4 bytes to 0x21004064: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x110041a0: 60 00 00 00 61 00 00 00 62 00 00 00 63 00 00 00 +# Write 4 bytes to 0x21004068: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110041b0: 70 00 00 00 71 00 00 00 72 00 00 00 73 00 00 00 +# Write 4 bytes to 0x2100406c: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000000_6c080010_01000408 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg MASK:MASK = 0xaaaa0000 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0xaaaa0000_20000000_00000073_00000072 0x00000000 .P.. +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg CYCLE:CL = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x8 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004200: 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x21004080: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004210: 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x21004084: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x11004220: 02 10 00 00 02 10 00 00 02 10 00 00 02 10 00 00 +# Write 4 bytes to 0x21004088: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x11004230: 03 10 00 00 03 10 00 00 03 10 00 00 03 10 00 00 +# Write 4 bytes to 0x2100408c: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x11004240: 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 +# Write 4 bytes to 0x21004090: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x11004250: 30 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 +# Write 4 bytes to 0x21004094: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x11004260: 02 10 00 00 02 10 00 00 02 10 00 00 02 10 00 00 +# Write 4 bytes to 0x21004098: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x11004270: 03 10 00 00 03 10 00 00 03 10 00 00 03 10 00 00 +# Write 4 bytes to 0x2100409c: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000000_7c080020_01000402 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg MASK:MASK = 0x40100401 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x40100401_20000000_00000033_00000032 0x00000000 .P.. +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg CYCLE:WL = 0x8 +# Reg CYCLE:CL = 0x8 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x10 +# Reg NUM:NUM = 0xf +# Write 16 bytes to 0x11004300: 00 01 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x210040c0: 00 00 00 00 +# Reg NUM:NUM = 0xe +# Write 16 bytes to 0x11004310: 10 00 00 00 01 01 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x210040c4: 00 00 00 00 +# Reg NUM:NUM = 0xd +# Write 16 bytes to 0x11004320: 20 00 00 00 21 00 00 00 02 01 00 00 23 00 00 00 +# Write 4 bytes to 0x210040c8: 00 00 00 00 +# Reg NUM:NUM = 0xc +# Write 16 bytes to 0x11004330: 30 00 00 00 31 00 00 00 32 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040cc: 00 00 00 00 +# Reg NUM:NUM = 0xb +# Write 16 bytes to 0x11004340: 40 00 00 00 41 00 00 00 42 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040d0: 00 00 00 00 +# Reg NUM:NUM = 0xa +# Write 16 bytes to 0x11004350: 50 00 00 00 51 00 00 00 52 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040d4: 00 00 00 00 +# Reg NUM:NUM = 0x9 +# Write 16 bytes to 0x11004360: 60 00 00 00 61 00 00 00 62 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040d8: 00 00 00 00 +# Reg NUM:NUM = 0x8 +# Write 16 bytes to 0x11004370: 70 00 00 00 71 00 00 00 72 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040dc: 00 00 00 00 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004380: 00 01 00 00 81 00 00 00 82 00 00 00 83 00 00 00 +# Write 4 bytes to 0x210040e0: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004390: 90 00 00 00 01 01 00 00 92 00 00 00 93 00 00 00 +# Write 4 bytes to 0x210040e4: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x110043a0: a0 00 00 00 a1 00 00 00 02 01 00 00 a3 00 00 00 +# Write 4 bytes to 0x210040e8: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x110043b0: b0 00 00 00 b1 00 00 00 b2 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040ec: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x110043c0: c0 00 00 00 c1 00 00 00 c2 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040f0: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x110043d0: d0 00 00 00 d1 00 00 00 d2 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040f4: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x110043e0: e0 00 00 00 e1 00 00 00 e2 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040f8: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110043f0: f0 00 00 00 f1 00 00 00 f2 00 00 00 03 01 00 00 +# Write 4 bytes to 0x210040fc: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000000_7c100030_01000808 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +0 0x00000081_00000080_00000073_00000072 0x00000000 .... +0 0x00000091_00000090_00000083_00000082 0x00000000 .... +0 0x000000a1_000000a0_00000093_00000092 0x00000000 .... +0 0x000000b1_000000b0_000000a3_000000a2 0x00000000 .... +0 0x000000c1_000000c0_000000b3_000000b2 0x00000000 .... +0 0x000000d1_000000d0_000000c3_000000c2 0x00000000 .... +0 0x000000e1_000000e0_000000d3_000000d2 0x00000000 .... +0 0x000000f1_000000f0_000000e3_000000e2 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg MASK:MASK = 0x80200802 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x80200802_20000000_000000f3_000000f2 0x00000000 .P.. +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x10 +# Reg NUM:NUM = 0xf +# Write 16 bytes to 0x11004400: 00 10 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x21004100: 00 00 00 00 +# Reg NUM:NUM = 0xe +# Write 16 bytes to 0x11004410: 10 00 00 00 01 10 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x21004104: 00 00 00 00 +# Reg NUM:NUM = 0xd +# Write 16 bytes to 0x11004420: 20 00 00 00 21 00 00 00 02 10 00 00 23 00 00 00 +# Write 4 bytes to 0x21004108: 00 00 00 00 +# Reg NUM:NUM = 0xc +# Write 16 bytes to 0x11004430: 30 00 00 00 31 00 00 00 32 00 00 00 03 10 00 00 +# Write 4 bytes to 0x2100410c: 00 00 00 00 +# Reg NUM:NUM = 0xb +# Write 16 bytes to 0x11004440: 40 00 00 00 41 00 00 00 42 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004110: 00 00 00 00 +# Reg NUM:NUM = 0xa +# Write 16 bytes to 0x11004450: 50 00 00 00 51 00 00 00 52 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004114: 00 00 00 00 +# Reg NUM:NUM = 0x9 +# Write 16 bytes to 0x11004460: 60 00 00 00 61 00 00 00 62 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004118: 00 00 00 00 +# Reg NUM:NUM = 0x8 +# Write 16 bytes to 0x11004470: 70 00 00 00 71 00 00 00 72 00 00 00 03 10 00 00 +# Write 4 bytes to 0x2100411c: 00 00 00 00 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004480: 00 10 00 00 81 00 00 00 82 00 00 00 83 00 00 00 +# Write 4 bytes to 0x21004120: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004490: 90 00 00 00 01 10 00 00 92 00 00 00 93 00 00 00 +# Write 4 bytes to 0x21004124: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x110044a0: a0 00 00 00 a1 00 00 00 02 10 00 00 a3 00 00 00 +# Write 4 bytes to 0x21004128: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x110044b0: b0 00 00 00 b1 00 00 00 b2 00 00 00 03 10 00 00 +# Write 4 bytes to 0x2100412c: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x110044c0: c0 00 00 00 c1 00 00 00 c2 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004130: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x110044d0: d0 00 00 00 d1 00 00 00 d2 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004134: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x110044e0: e0 00 00 00 e1 00 00 00 e2 00 00 00 03 10 00 00 +# Write 4 bytes to 0x21004138: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110044f0: f0 00 00 00 f1 00 00 00 f2 00 00 00 03 10 00 00 +# Write 4 bytes to 0x2100413c: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000000_7c100040_01000808 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +0 0x00000061_00000060_00000053_00000052 0x00000000 .... +0 0x00000071_00000070_00000063_00000062 0x00000000 .... +0 0x00000081_00000080_00000073_00000072 0x00000000 .... +0 0x00000091_00000090_00000083_00000082 0x00000000 .... +0 0x000000a1_000000a0_00000093_00000092 0x00000000 .... +0 0x000000b1_000000b0_000000a3_000000a2 0x00000000 .... +0 0x000000c1_000000c0_000000b3_000000b2 0x00000000 .... +0 0x000000d1_000000d0_000000c3_000000c2 0x00000000 .... +0 0x000000e1_000000e0_000000d3_000000d2 0x00000000 .... +0 0x000000f1_000000f0_000000e3_000000e2 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x80200802_20000000_000000f3_000000f2 0x00000000 .P.. +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg CYCLE:WL = 0x3 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x6 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x11004600: 00 10 00 00 01 00 00 00 02 00 00 00 03 00 00 00 +# Write 4 bytes to 0x21004180: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x11004610: 10 00 00 00 01 10 00 00 12 00 00 00 13 00 00 00 +# Write 4 bytes to 0x21004184: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x11004620: 20 00 00 00 21 00 00 00 02 10 00 00 23 00 00 00 +# Write 4 bytes to 0x21004188: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x11004680: 00 10 00 00 31 00 00 00 32 00 00 00 33 00 00 00 +# Write 4 bytes to 0x210041a0: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x11004690: 40 00 00 00 01 10 00 00 42 00 00 00 43 00 00 00 +# Write 4 bytes to 0x210041a4: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110046a0: 50 00 00 00 51 00 00 00 02 10 00 00 53 00 00 00 +# Write 4 bytes to 0x210041a8: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000000_7c060060_01000308 0x00000000 ..PP +0 0x00000011_00000010_00000003_00000002 0x00000000 .... +0 0x00000021_00000020_00000013_00000012 0x00000000 .... +0 0x00000031_00000030_00000023_00000022 0x00000000 .... +0 0x00000041_00000040_00000033_00000032 0x00000000 .... +0 0x00000051_00000050_00000043_00000042 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x00000100_30000000_00000053_00000052 0x00000000 .P.. +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x31000000_00000103_00000102_00000101 0x00000000 P... +0 0x00001003_00001002_00001001_00001000 0x00000000 .... +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg MODE:MDE = 0x1 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg MASK:MASK = 0x90909090 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x30000000_90909090_20000000_05000001 0x00000000 P.PP +0 0x00004000_00000100_00000001_ffffffff 0x00000000 .... +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x00000002_00000001_00000000_31000000 0x00000000 ...P +# Reg STAT:PPS = 0x2 +# Reg CYCLE:WL = 0x4 +# Reg CYCLE:CL = 0x4 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x8 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004700: ff ff ff ff 02 00 00 00 00 02 00 00 00 40 00 00 +# Write 4 bytes to 0x210041c0: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004710: 0f 00 00 00 12 00 00 00 00 02 00 00 01 40 00 00 +# Write 4 bytes to 0x210041c4: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x11004720: 1f 00 00 00 22 00 00 00 00 02 00 00 02 40 00 00 +# Write 4 bytes to 0x210041c8: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x11004730: 2f 00 00 00 32 00 00 00 00 02 00 00 03 40 00 00 +# Write 4 bytes to 0x210041cc: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x11004740: 3f 00 00 00 42 00 00 00 00 02 00 00 00 40 00 00 +# Write 4 bytes to 0x210041d0: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x11004750: 4f 00 00 00 52 00 00 00 00 02 00 00 01 40 00 00 +# Write 4 bytes to 0x210041d4: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x11004760: 5f 00 00 00 62 00 00 00 00 02 00 00 02 40 00 00 +# Write 4 bytes to 0x210041d8: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x11004770: 6f 00 00 00 72 00 00 00 00 02 00 00 03 40 00 00 +# Write 4 bytes to 0x210041dc: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000000_7c080070_01000404_00000003 0x00000000 .PP. +0 0x00000010_00000003_00000002_00000001 0x00000000 .... +0 0x00000020_00000013_00000012_00000011 0x00000000 .... +0 0x00000030_00000023_00000022_00000021 0x00000000 .... +0 0x00000040_00000033_00000032_00000031 0x00000000 .... +0 0x00000050_00000043_00000042_00000041 0x00000000 .... +0 0x00000060_00000053_00000052_00000051 0x00000000 .... +0 0x00000070_00000063_00000062_00000061 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg MODE:MDE = 0x2 +0 0x05000002_00000073_00000072_00000071 0x00000000 P... +# Reg STAT:FQC = 0x0 +# Reg STAT:PPS = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x00000000_30000000_90909090_20000000 0x00000000 .P.P +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x1 +# Reg NUM:NUM = 0x0 +# Reg STAT:PPS = 0x0 +0 0x31000000_00000000_00000001_00000000 0x00000000 P... +0 0x00000003_00000002_00000001_00000000 0x00000000 .... +# Reg STAT:FQC = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0x8 +# Reg NUM:NUM = 0x7 +# Write 16 bytes to 0x11004780: 01 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 +# Write 4 bytes to 0x210041e0: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 16 bytes to 0x11004790: 02 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 +# Write 4 bytes to 0x210041e4: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 16 bytes to 0x110047a0: 03 00 00 00 03 00 00 00 08 00 00 00 03 00 00 00 +# Write 4 bytes to 0x210041e8: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 16 bytes to 0x110047b0: 04 00 00 00 02 00 00 00 10 00 00 00 06 00 00 00 +# Write 4 bytes to 0x210041ec: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 16 bytes to 0x110047c0: 05 00 00 00 00 00 00 00 20 00 00 00 06 00 00 00 +# Write 4 bytes to 0x210041f0: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 16 bytes to 0x110047d0: 06 00 00 00 02 00 00 00 40 00 00 00 07 00 00 00 +# Write 4 bytes to 0x210041f4: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 16 bytes to 0x110047e0: 07 00 00 00 05 00 00 00 80 00 00 00 09 00 00 00 +# Write 4 bytes to 0x210041f8: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 16 bytes to 0x110047f0: 08 00 00 00 00 00 00 00 00 01 00 00 0c 00 00 00 +# Write 4 bytes to 0x210041fc: 00 00 00 00 +# Reg STAT:PPS = 0x0 +0 0x00000001_00000001_7c080078_01000404 0x00000000 ..PP +0 0x00000001_00000001_00000003_00000002 0x00000000 .... +0 0x00000001_00000001_00000013_00000012 0x00000000 .... +0 0xffffffff_00000001_00000023_00000022 0x00000000 .... +0 0xfffffffe_00000001_00000033_00000032 0x00000000 .... +0 0x00000002_00000001_00000043_00000042 0x00000000 .... +0 0x00000003_00000001_00000053_00000052 0x00000000 .... +0 0xfffffffb_00000001_00000063_00000062 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +0 0x00000000_00000000_00000073_00000072 0x00000000 PP.. +# Reg STAT:FQC = 0x0 +# Reg STAT:PPS = 0x0 diff --git a/sim/testsuite/sky/t-pke2.trc b/sim/testsuite/sky/t-pke2.trc new file mode 100644 index 0000000..6f3a6fe --- /dev/null +++ b/sim/testsuite/sky/t-pke2.trc @@ -0,0 +1,125 @@ +# PKE tests from SCEI VPE simulator +# Converted by FChE by hand from SCEI VPE simulator sample. +# +# DMADATA my_program: a block of VU object code from VPE sample/test00.ppp +# +# Perform an MPG to load following block of 195 instructions into VU1 @ 0 +# I=0 CMD=MPG NUM=195=0xC3 IMM=0 +1 0x4ac30000_00000000_00000000_00000000 0x00000000 PPPP +1 0x000002ff_10020016_000002ff_10010000 0x00000000 .... +1 0x000002ff_420f0074_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1001001a_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1003001e_000002ff_10020016 0x00000000 .... +1 0x000002ff_420f0052_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1004001e_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_81e4237c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_81e6237c_000002ff_81e5237c 0x00000000 .... +1 0x000002ff_11e107ff_000002ff_81e7237c 0x00000000 .... +1 0x000002ff_10090000_000002ff_10030001 0x00000000 .... +1 0x400002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_52090002_000002ff_8000033c 0x00000000 .... +1 0x000002ff_100c005f_000002ff_800506bc 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_10082801_000002ff_090b2800 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_80015af4 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800058b0_000002ff_800b41b0 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_10076004_000002ff_81fe337c 0x00000000 .... +1 0x000002ff_81f5437c_000002ff_100d6005 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800b5ff2 0x00000000 .... +1 0x01f6a97c_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03edb000_000002ff_8000033c 0x00000000 .... +1 0x000002ff_100d6802_000002ff_520b07f6 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800012f0 0x00000000 .... +1 0x01fe21bc_03ecd800_01e0ff5b_81ff03bc 0x00000000 .... +1 0x01fe30be_800c60b2_01fe28bd_800b5ff2 0x00000000 .... +1 0x01fbe17d_81fe337c_01fe3fcb_8000033c 0x00000000 .... +1 0x01e0ef1c_8000033c_000002ff_520b07f9 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_81ff03bc 0x00000000 .... +1 0x000002ff_01f42800_000002ff_800c60b2 0x00000000 .... +1 0x01fbe17d_8000033c_000002ff_8000033c 0x00000000 .... +1 0x01e0ff1c_03e7a000_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_8000033c 0x00000000 .... +1 0x01fbe17d_8000033c_000002ff_800c60b2 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800c60b2 0x00000000 .... +1 0x000002ff_80003efc_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_80091a71 0x00000000 .... +1 0x000002ff_8000033c_400002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_400007be 0x00000000 .... +1 0x000002ff_81e40b7c_000002ff_81e8137c 0x00000000 .... +1 0x000002ff_81e60b7c_000002ff_81e50b7c 0x00000000 .... +1 0x01e821bc_81e9137c_000002ff_81e70b7c 0x00000000 .... +1 0x01e830be_8000033c_01e828bd_8000033c 0x00000000 .... +1 0x01e921bc_81ea137c_01e83b0b_8000033c 0x00000000 .... +1 0x01e930be_8000033c_01e928bd_8000033c 0x00000000 .... +1 0x01ea21bc_81eb137c_01e93b4b_81e3637d 0x00000000 .... +1 0x01ea30be_8000033c_01ea28bd_8000033c 0x00000000 .... +1 0x01eb21bc_8000033c_01ea3b8b_81e36b7d 0x00000000 .... +1 0x01eb30be_8000033c_01eb28bd_8000033c 0x00000000 .... +1 0x000002ff_8000033c_01eb3bcb_81e3737d 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_81e37b7d 0x00000000 .... +1 0x000002ff_8000033c_000002ff_48007800 0x00000000 .... +1 0x01e00158_81e20b7c_01e00118_81e10b7c 0x00000000 .... +1 0x800002ff_3fc90fda_01e00198_81e30b7c 0x00000000 .... +1 0x000002ff_8000033c_01002103_80000ffc 0x00000000 .... +1 0x01e010a2_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8045067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_800017fc_000002ff_8086067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800007bf_01e0319a_8000033c 0x00000000 .... +1 0x000002ff_8046067c_000002ff_8085067c 0x00000000 .... +1 0x01e00218_8000033c_01e001d8_80200ffc 0x00000000 .... +1 0x000002ff_8000033c_01e00258_8000033c 0x00000000 .... +1 0x00804203_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8047067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_802017fc_000002ff_8109067c 0x00000000 .... +1 0x01e039da_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8107067c_000002ff_800007bf 0x00000000 .... +1 0x01e00298_80400ffc_000002ff_8049067c 0x00000000 .... +1 0x01e00318_8000033c_01e002d8_8000033c 0x00000000 .... +1 0x01c728bd_8000033c_01c721bc_8000033c 0x00000000 .... +1 0x00406303_8000033c_01c731ca_8000033c 0x00000000 .... +1 0x01c828bd_8000033c_01c821bc_8000033c 0x00000000 .... +1 0x01c921bc_8000033c_01c8320a_8000033c 0x00000000 .... +1 0x01c9324a_8000033c_01c928bd_8000033c 0x00000000 .... +1 0x000002ff_808a067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_804017fc_000002ff_810b067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800007bf_01e05ada_8000033c 0x00000000 .... +1 0x000002ff_808b067c_000002ff_810a067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x01ca40bd_8000033c_01ca39bc_8000033c 0x00000000 .... +1 0x01cb39bc_8000033c_01ca4a8a_8000033c 0x00000000 .... +1 0x01cb4aca_8000033c_01cb40bd_8000033c 0x00000000 .... +1 0x01cc40bd_8000033c_01cc39bc_8000033c 0x00000000 .... +1 0x000002ff_8000033c_01cc4b0a_8000033c 0x00000000 .... +1 0x000002ff_81c25b7d_000002ff_81c2537d 0x00000000 .... +1 0x000002ff_81c21b7d_000002ff_81c2637d 0x00000000 .... +1 0x000002ff_48007800_000002ff_8000033c 0x00000000 .... +1 0x00000000_00000000_000002ff_8000033c 0x00000000 PP.. +# +# Perform a DIRECT to load following block of words into GPUIF +# I=0 CMD=DIRECTHL NUM=0 IMM=12=0xc +1 0x5100000c_00000000_00000000_00000000 0x00000000 PPPP +# GPUIF tag: PACKED, REGS={A_D}, NLOOP=11, EOP +1 0x00000000_0000000e_10000000_0000800b 0x00000000 .... +# Data words +1 0x00000000_0000004c_00000000_000a0000 0x00000000 .... +1 0x00000000_00000040_01df0000_027f0000 0x00000000 .... +1 0x00000000_00000018_00007100_00006c00 0x00000000 .... +1 0x00000000_0000001a_00000000_00000001 0x00000000 .... +1 0x00000000_0000004e_00000000_01000096 0x00000000 .... +1 0x00000000_00000047_00000000_00070000 0x00000000 .... +1 0x00000000_00000046_00000000_00000001 0x00000000 .... +1 0x00000000_00000058_00000000_00000000 0x00000000 .... +1 0x00000000_00000059_00000000_00000000 0x00000000 .... +1 0x00000000_0000005a_01e00280_00000000 0x00000000 .... +1 0x00000000_0000005b_00000000_00000003 0x00000000 .... +# diff --git a/sim/testsuite/sky/t-pke2.vif1expect b/sim/testsuite/sky/t-pke2.vif1expect new file mode 100644 index 0000000..fe75552 --- /dev/null +++ b/sim/testsuite/sky/t-pke2.vif1expect @@ -0,0 +1,933 @@ +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Reg NUM:NUM = 0xc3 +# Reg NUM:NUM = 0xc2 +# Write 4 bytes to 0x11008000: 00 00 01 10 +# Write 4 bytes to 0x11008004: ff 02 00 00 +# Write 4 bytes to 0x21008000: 00 00 00 00 +# Reg NUM:NUM = 0xc1 +# Write 4 bytes to 0x11008008: 16 00 02 10 +# Write 4 bytes to 0x1100800c: ff 02 00 00 +# Write 4 bytes to 0x21008004: 00 00 00 00 +# Reg NUM:NUM = 0xc0 +# Write 4 bytes to 0x11008010: 3c 03 00 80 +# Write 4 bytes to 0x11008014: ff 02 00 00 +# Write 4 bytes to 0x21008008: 00 00 00 00 +# Reg NUM:NUM = 0xbf +# Write 4 bytes to 0x11008018: 74 00 0f 42 +# Write 4 bytes to 0x1100801c: ff 02 00 00 +# Write 4 bytes to 0x2100800c: 00 00 00 00 +# Reg NUM:NUM = 0xbe +# Write 4 bytes to 0x11008020: 3c 03 00 80 +# Write 4 bytes to 0x11008024: ff 02 00 00 +# Write 4 bytes to 0x21008010: 00 00 00 00 +# Reg NUM:NUM = 0xbd +# Write 4 bytes to 0x11008028: 1a 00 01 10 +# Write 4 bytes to 0x1100802c: ff 02 00 00 +# Write 4 bytes to 0x21008014: 00 00 00 00 +# Reg NUM:NUM = 0xbc +# Write 4 bytes to 0x11008030: 16 00 02 10 +# Write 4 bytes to 0x11008034: ff 02 00 00 +# Write 4 bytes to 0x21008018: 00 00 00 00 +# Reg NUM:NUM = 0xbb +# Write 4 bytes to 0x11008038: 1e 00 03 10 +# Write 4 bytes to 0x1100803c: ff 02 00 00 +# Write 4 bytes to 0x2100801c: 00 00 00 00 +# Reg NUM:NUM = 0xba +# Write 4 bytes to 0x11008040: 3c 03 00 80 +# Write 4 bytes to 0x11008044: ff 02 00 00 +# Write 4 bytes to 0x21008020: 00 00 00 00 +# Reg NUM:NUM = 0xb9 +# Write 4 bytes to 0x11008048: 52 00 0f 42 +# Write 4 bytes to 0x1100804c: ff 02 00 00 +# Write 4 bytes to 0x21008024: 00 00 00 00 +# Reg NUM:NUM = 0xb8 +# Write 4 bytes to 0x11008050: 3c 03 00 80 +# Write 4 bytes to 0x11008054: ff 02 00 00 +# Write 4 bytes to 0x21008028: 00 00 00 00 +# Reg NUM:NUM = 0xb7 +# Write 4 bytes to 0x11008058: 1e 00 04 10 +# Write 4 bytes to 0x1100805c: ff 02 00 00 +# Write 4 bytes to 0x2100802c: 00 00 00 00 +# Reg NUM:NUM = 0xb6 +# Write 4 bytes to 0x11008060: 3c 03 00 80 +# Write 4 bytes to 0x11008064: ff 02 00 00 +# Write 4 bytes to 0x21008030: 00 00 00 00 +# Reg NUM:NUM = 0xb5 +# Write 4 bytes to 0x11008068: 3c 03 00 80 +# Write 4 bytes to 0x1100806c: ff 02 00 00 +# Write 4 bytes to 0x21008034: 00 00 00 00 +# Reg NUM:NUM = 0xb4 +# Write 4 bytes to 0x11008070: 3c 03 00 80 +# Write 4 bytes to 0x11008074: ff 02 00 00 +# Write 4 bytes to 0x21008038: 00 00 00 00 +# Reg NUM:NUM = 0xb3 +# Write 4 bytes to 0x11008078: 7c 23 e4 81 +# Write 4 bytes to 0x1100807c: ff 02 00 00 +# Write 4 bytes to 0x2100803c: 00 00 00 00 +# Reg NUM:NUM = 0xb2 +# Write 4 bytes to 0x11008080: 7c 23 e5 81 +# Write 4 bytes to 0x11008084: ff 02 00 00 +# Write 4 bytes to 0x21008040: 00 00 00 00 +# Reg NUM:NUM = 0xb1 +# Write 4 bytes to 0x11008088: 7c 23 e6 81 +# Write 4 bytes to 0x1100808c: ff 02 00 00 +# Write 4 bytes to 0x21008044: 00 00 00 00 +# Reg NUM:NUM = 0xb0 +# Write 4 bytes to 0x11008090: 7c 23 e7 81 +# Write 4 bytes to 0x11008094: ff 02 00 00 +# Write 4 bytes to 0x21008048: 00 00 00 00 +# Reg NUM:NUM = 0xaf +# Write 4 bytes to 0x11008098: ff 07 e1 11 +# Write 4 bytes to 0x1100809c: ff 02 00 00 +# Write 4 bytes to 0x2100804c: 00 00 00 00 +# Reg NUM:NUM = 0xae +# Write 4 bytes to 0x110080a0: 01 00 03 10 +# Write 4 bytes to 0x110080a4: ff 02 00 00 +# Write 4 bytes to 0x21008050: 00 00 00 00 +# Reg NUM:NUM = 0xad +# Write 4 bytes to 0x110080a8: 00 00 09 10 +# Write 4 bytes to 0x110080ac: ff 02 00 00 +# Write 4 bytes to 0x21008054: 00 00 00 00 +# Reg NUM:NUM = 0xac +# Write 4 bytes to 0x110080b0: 3c 03 00 80 +# Write 4 bytes to 0x110080b4: ff 02 00 00 +# Write 4 bytes to 0x21008058: 00 00 00 00 +# Reg NUM:NUM = 0xab +# Write 4 bytes to 0x110080b8: 3c 03 00 80 +# Write 4 bytes to 0x110080bc: ff 02 00 40 +# Write 4 bytes to 0x2100805c: 00 00 00 00 +# Reg NUM:NUM = 0xaa +# Write 4 bytes to 0x110080c0: 3c 03 00 80 +# Write 4 bytes to 0x110080c4: ff 02 00 00 +# Write 4 bytes to 0x21008060: 00 00 00 00 +# Reg NUM:NUM = 0xa9 +# Write 4 bytes to 0x110080c8: 02 00 09 52 +# Write 4 bytes to 0x110080cc: ff 02 00 00 +# Write 4 bytes to 0x21008064: 00 00 00 00 +# Reg NUM:NUM = 0xa8 +# Write 4 bytes to 0x110080d0: bc 06 05 80 +# Write 4 bytes to 0x110080d4: ff 02 00 00 +# Write 4 bytes to 0x21008068: 00 00 00 00 +# Reg NUM:NUM = 0xa7 +# Write 4 bytes to 0x110080d8: 5f 00 0c 10 +# Write 4 bytes to 0x110080dc: ff 02 00 00 +# Write 4 bytes to 0x2100806c: 00 00 00 00 +# Reg NUM:NUM = 0xa6 +# Write 4 bytes to 0x110080e0: 3c 03 00 80 +# Write 4 bytes to 0x110080e4: ff 02 00 00 +# Write 4 bytes to 0x21008070: 00 00 00 00 +# Reg NUM:NUM = 0xa5 +# Write 4 bytes to 0x110080e8: 3c 03 00 80 +# Write 4 bytes to 0x110080ec: ff 02 00 00 +# Write 4 bytes to 0x21008074: 00 00 00 00 +# Reg NUM:NUM = 0xa4 +# Write 4 bytes to 0x110080f0: 00 28 0b 09 +# Write 4 bytes to 0x110080f4: ff 02 00 00 +# Write 4 bytes to 0x21008078: 00 00 00 00 +# Reg NUM:NUM = 0xa3 +# Write 4 bytes to 0x110080f8: 01 28 08 10 +# Write 4 bytes to 0x110080fc: ff 02 00 00 +# Write 4 bytes to 0x2100807c: 00 00 00 00 +# Reg NUM:NUM = 0xa2 +# Write 4 bytes to 0x11008100: 3c 03 00 80 +# Write 4 bytes to 0x11008104: ff 02 00 00 +# Write 4 bytes to 0x21008080: 00 00 00 00 +# Reg NUM:NUM = 0xa1 +# Write 4 bytes to 0x11008108: 3c 03 00 80 +# Write 4 bytes to 0x1100810c: ff 02 00 00 +# Write 4 bytes to 0x21008084: 00 00 00 00 +# Reg NUM:NUM = 0xa0 +# Write 4 bytes to 0x11008110: f4 5a 01 80 +# Write 4 bytes to 0x11008114: ff 02 00 00 +# Write 4 bytes to 0x21008088: 00 00 00 00 +# Reg NUM:NUM = 0x9f +# Write 4 bytes to 0x11008118: 3c 03 00 80 +# Write 4 bytes to 0x1100811c: ff 02 00 00 +# Write 4 bytes to 0x2100808c: 00 00 00 00 +# Reg NUM:NUM = 0x9e +# Write 4 bytes to 0x11008120: 3c 03 00 80 +# Write 4 bytes to 0x11008124: ff 02 00 00 +# Write 4 bytes to 0x21008090: 00 00 00 00 +# Reg NUM:NUM = 0x9d +# Write 4 bytes to 0x11008128: 3c 03 00 80 +# Write 4 bytes to 0x1100812c: ff 02 00 00 +# Write 4 bytes to 0x21008094: 00 00 00 00 +# Reg NUM:NUM = 0x9c +# Write 4 bytes to 0x11008130: b0 41 0b 80 +# Write 4 bytes to 0x11008134: ff 02 00 00 +# Write 4 bytes to 0x21008098: 00 00 00 00 +# Reg NUM:NUM = 0x9b +# Write 4 bytes to 0x11008138: b0 58 00 80 +# Write 4 bytes to 0x1100813c: ff 02 00 00 +# Write 4 bytes to 0x2100809c: 00 00 00 00 +# Reg NUM:NUM = 0x9a +# Write 4 bytes to 0x11008140: 3c 03 00 80 +# Write 4 bytes to 0x11008144: ff 02 00 00 +# Write 4 bytes to 0x210080a0: 00 00 00 00 +# Reg NUM:NUM = 0x99 +# Write 4 bytes to 0x11008148: 3c 03 00 80 +# Write 4 bytes to 0x1100814c: ff 02 00 00 +# Write 4 bytes to 0x210080a4: 00 00 00 00 +# Reg NUM:NUM = 0x98 +# Write 4 bytes to 0x11008150: 7c 33 fe 81 +# Write 4 bytes to 0x11008154: ff 02 00 00 +# Write 4 bytes to 0x210080a8: 00 00 00 00 +# Reg NUM:NUM = 0x97 +# Write 4 bytes to 0x11008158: 04 60 07 10 +# Write 4 bytes to 0x1100815c: ff 02 00 00 +# Write 4 bytes to 0x210080ac: 00 00 00 00 +# Reg NUM:NUM = 0x96 +# Write 4 bytes to 0x11008160: 05 60 0d 10 +# Write 4 bytes to 0x11008164: ff 02 00 00 +# Write 4 bytes to 0x210080b0: 00 00 00 00 +# Reg NUM:NUM = 0x95 +# Write 4 bytes to 0x11008168: 7c 43 f5 81 +# Write 4 bytes to 0x1100816c: ff 02 00 00 +# Write 4 bytes to 0x210080b4: 00 00 00 00 +# Reg NUM:NUM = 0x94 +# Write 4 bytes to 0x11008170: f2 5f 0b 80 +# Write 4 bytes to 0x11008174: ff 02 00 00 +# Write 4 bytes to 0x210080b8: 00 00 00 00 +# Reg NUM:NUM = 0x93 +# Write 4 bytes to 0x11008178: 3c 03 00 80 +# Write 4 bytes to 0x1100817c: ff 02 00 00 +# Write 4 bytes to 0x210080bc: 00 00 00 00 +# Reg NUM:NUM = 0x92 +# Write 4 bytes to 0x11008180: 3c 03 00 80 +# Write 4 bytes to 0x11008184: ff 02 00 00 +# Write 4 bytes to 0x210080c0: 00 00 00 00 +# Reg NUM:NUM = 0x91 +# Write 4 bytes to 0x11008188: 3c 03 00 80 +# Write 4 bytes to 0x1100818c: 7c a9 f6 01 +# Write 4 bytes to 0x210080c4: 00 00 00 00 +# Reg NUM:NUM = 0x90 +# Write 4 bytes to 0x11008190: 3c 03 00 80 +# Write 4 bytes to 0x11008194: ff 02 00 00 +# Write 4 bytes to 0x210080c8: 00 00 00 00 +# Reg NUM:NUM = 0x8f +# Write 4 bytes to 0x11008198: 3c 03 00 80 +# Write 4 bytes to 0x1100819c: ff 02 00 00 +# Write 4 bytes to 0x210080cc: 00 00 00 00 +# Reg NUM:NUM = 0x8e +# Write 4 bytes to 0x110081a0: 3c 03 00 80 +# Write 4 bytes to 0x110081a4: ff 02 00 00 +# Write 4 bytes to 0x210080d0: 00 00 00 00 +# Reg NUM:NUM = 0x8d +# Write 4 bytes to 0x110081a8: 00 b0 ed 03 +# Write 4 bytes to 0x110081ac: ff 02 00 00 +# Write 4 bytes to 0x210080d4: 00 00 00 00 +# Reg NUM:NUM = 0x8c +# Write 4 bytes to 0x110081b0: f6 07 0b 52 +# Write 4 bytes to 0x110081b4: ff 02 00 00 +# Write 4 bytes to 0x210080d8: 00 00 00 00 +# Reg NUM:NUM = 0x8b +# Write 4 bytes to 0x110081b8: 02 68 0d 10 +# Write 4 bytes to 0x110081bc: ff 02 00 00 +# Write 4 bytes to 0x210080dc: 00 00 00 00 +# Reg NUM:NUM = 0x8a +# Write 4 bytes to 0x110081c0: f0 12 00 80 +# Write 4 bytes to 0x110081c4: ff 02 00 00 +# Write 4 bytes to 0x210080e0: 00 00 00 00 +# Reg NUM:NUM = 0x89 +# Write 4 bytes to 0x110081c8: 3c 03 00 80 +# Write 4 bytes to 0x110081cc: ff 02 00 00 +# Write 4 bytes to 0x210080e4: 00 00 00 00 +# Reg NUM:NUM = 0x88 +# Write 4 bytes to 0x110081d0: bc 03 ff 81 +# Write 4 bytes to 0x110081d4: 5b ff e0 01 +# Write 4 bytes to 0x210080e8: 00 00 00 00 +# Reg NUM:NUM = 0x87 +# Write 4 bytes to 0x110081d8: 00 d8 ec 03 +# Write 4 bytes to 0x110081dc: bc 21 fe 01 +# Write 4 bytes to 0x210080ec: 00 00 00 00 +# Reg NUM:NUM = 0x86 +# Write 4 bytes to 0x110081e0: f2 5f 0b 80 +# Write 4 bytes to 0x110081e4: bd 28 fe 01 +# Write 4 bytes to 0x210080f0: 00 00 00 00 +# Reg NUM:NUM = 0x85 +# Write 4 bytes to 0x110081e8: b2 60 0c 80 +# Write 4 bytes to 0x110081ec: be 30 fe 01 +# Write 4 bytes to 0x210080f4: 00 00 00 00 +# Reg NUM:NUM = 0x84 +# Write 4 bytes to 0x110081f0: 3c 03 00 80 +# Write 4 bytes to 0x110081f4: cb 3f fe 01 +# Write 4 bytes to 0x210080f8: 00 00 00 00 +# Reg NUM:NUM = 0x83 +# Write 4 bytes to 0x110081f8: 7c 33 fe 81 +# Write 4 bytes to 0x110081fc: 7d e1 fb 01 +# Write 4 bytes to 0x210080fc: 00 00 00 00 +# Reg NUM:NUM = 0x82 +# Write 4 bytes to 0x11008200: f9 07 0b 52 +# Write 4 bytes to 0x11008204: ff 02 00 00 +# Write 4 bytes to 0x21008100: 00 00 00 00 +# Reg NUM:NUM = 0x81 +# Write 4 bytes to 0x11008208: 3c 03 00 80 +# Write 4 bytes to 0x1100820c: 1c ef e0 01 +# Write 4 bytes to 0x21008104: 00 00 00 00 +# Reg NUM:NUM = 0x80 +# Write 4 bytes to 0x11008210: bc 03 ff 81 +# Write 4 bytes to 0x11008214: ff 02 00 00 +# Write 4 bytes to 0x21008108: 00 00 00 00 +# Reg NUM:NUM = 0x7f +# Write 4 bytes to 0x11008218: 00 d8 ec 03 +# Write 4 bytes to 0x1100821c: ff 02 00 00 +# Write 4 bytes to 0x2100810c: 00 00 00 00 +# Reg NUM:NUM = 0x7e +# Write 4 bytes to 0x11008220: b2 60 0c 80 +# Write 4 bytes to 0x11008224: ff 02 00 00 +# Write 4 bytes to 0x21008110: 00 00 00 00 +# Reg NUM:NUM = 0x7d +# Write 4 bytes to 0x11008228: 00 28 f4 01 +# Write 4 bytes to 0x1100822c: ff 02 00 00 +# Write 4 bytes to 0x21008114: 00 00 00 00 +# Reg NUM:NUM = 0x7c +# Write 4 bytes to 0x11008230: 3c 03 00 80 +# Write 4 bytes to 0x11008234: ff 02 00 00 +# Write 4 bytes to 0x21008118: 00 00 00 00 +# Reg NUM:NUM = 0x7b +# Write 4 bytes to 0x11008238: 3c 03 00 80 +# Write 4 bytes to 0x1100823c: 7d e1 fb 01 +# Write 4 bytes to 0x2100811c: 00 00 00 00 +# Reg NUM:NUM = 0x7a +# Write 4 bytes to 0x11008240: 3c 03 00 80 +# Write 4 bytes to 0x11008244: ff 02 00 00 +# Write 4 bytes to 0x21008120: 00 00 00 00 +# Reg NUM:NUM = 0x79 +# Write 4 bytes to 0x11008248: 00 a0 e7 03 +# Write 4 bytes to 0x1100824c: 1c ff e0 01 +# Write 4 bytes to 0x21008124: 00 00 00 00 +# Reg NUM:NUM = 0x78 +# Write 4 bytes to 0x11008250: 3c 03 00 80 +# Write 4 bytes to 0x11008254: ff 02 00 00 +# Write 4 bytes to 0x21008128: 00 00 00 00 +# Reg NUM:NUM = 0x77 +# Write 4 bytes to 0x11008258: 00 d8 ec 03 +# Write 4 bytes to 0x1100825c: ff 02 00 00 +# Write 4 bytes to 0x2100812c: 00 00 00 00 +# Reg NUM:NUM = 0x76 +# Write 4 bytes to 0x11008260: b2 60 0c 80 +# Write 4 bytes to 0x11008264: ff 02 00 00 +# Write 4 bytes to 0x21008130: 00 00 00 00 +# Reg NUM:NUM = 0x75 +# Write 4 bytes to 0x11008268: 3c 03 00 80 +# Write 4 bytes to 0x1100826c: 7d e1 fb 01 +# Write 4 bytes to 0x21008134: 00 00 00 00 +# Reg NUM:NUM = 0x74 +# Write 4 bytes to 0x11008270: 3c 03 00 80 +# Write 4 bytes to 0x11008274: ff 02 00 00 +# Write 4 bytes to 0x21008138: 00 00 00 00 +# Reg NUM:NUM = 0x73 +# Write 4 bytes to 0x11008278: 3c 03 00 80 +# Write 4 bytes to 0x1100827c: ff 02 00 00 +# Write 4 bytes to 0x2100813c: 00 00 00 00 +# Reg NUM:NUM = 0x72 +# Write 4 bytes to 0x11008280: 3c 03 00 80 +# Write 4 bytes to 0x11008284: ff 02 00 00 +# Write 4 bytes to 0x21008140: 00 00 00 00 +# Reg NUM:NUM = 0x71 +# Write 4 bytes to 0x11008288: 00 d8 ec 03 +# Write 4 bytes to 0x1100828c: ff 02 00 00 +# Write 4 bytes to 0x21008144: 00 00 00 00 +# Reg NUM:NUM = 0x70 +# Write 4 bytes to 0x11008290: b2 60 0c 80 +# Write 4 bytes to 0x11008294: ff 02 00 00 +# Write 4 bytes to 0x21008148: 00 00 00 00 +# Reg NUM:NUM = 0x6f +# Write 4 bytes to 0x11008298: 3c 03 00 80 +# Write 4 bytes to 0x1100829c: ff 02 00 00 +# Write 4 bytes to 0x2100814c: 00 00 00 00 +# Reg NUM:NUM = 0x6e +# Write 4 bytes to 0x110082a0: 3c 03 00 80 +# Write 4 bytes to 0x110082a4: ff 02 00 00 +# Write 4 bytes to 0x21008150: 00 00 00 00 +# Reg NUM:NUM = 0x6d +# Write 4 bytes to 0x110082a8: fc 3e 00 80 +# Write 4 bytes to 0x110082ac: ff 02 00 00 +# Write 4 bytes to 0x21008154: 00 00 00 00 +# Reg NUM:NUM = 0x6c +# Write 4 bytes to 0x110082b0: 71 1a 09 80 +# Write 4 bytes to 0x110082b4: ff 02 00 00 +# Write 4 bytes to 0x21008158: 00 00 00 00 +# Reg NUM:NUM = 0x6b +# Write 4 bytes to 0x110082b8: 3c 03 00 80 +# Write 4 bytes to 0x110082bc: ff 02 00 00 +# Write 4 bytes to 0x2100815c: 00 00 00 00 +# Reg NUM:NUM = 0x6a +# Write 4 bytes to 0x110082c0: 3c 03 00 80 +# Write 4 bytes to 0x110082c4: ff 02 00 40 +# Write 4 bytes to 0x21008160: 00 00 00 00 +# Reg NUM:NUM = 0x69 +# Write 4 bytes to 0x110082c8: 3c 03 00 80 +# Write 4 bytes to 0x110082cc: ff 02 00 00 +# Write 4 bytes to 0x21008164: 00 00 00 00 +# Reg NUM:NUM = 0x68 +# Write 4 bytes to 0x110082d0: be 07 00 40 +# Write 4 bytes to 0x110082d4: ff 02 00 00 +# Write 4 bytes to 0x21008168: 00 00 00 00 +# Reg NUM:NUM = 0x67 +# Write 4 bytes to 0x110082d8: 3c 03 00 80 +# Write 4 bytes to 0x110082dc: ff 02 00 00 +# Write 4 bytes to 0x2100816c: 00 00 00 00 +# Reg NUM:NUM = 0x66 +# Write 4 bytes to 0x110082e0: 7c 13 e8 81 +# Write 4 bytes to 0x110082e4: ff 02 00 00 +# Write 4 bytes to 0x21008170: 00 00 00 00 +# Reg NUM:NUM = 0x65 +# Write 4 bytes to 0x110082e8: 7c 0b e4 81 +# Write 4 bytes to 0x110082ec: ff 02 00 00 +# Write 4 bytes to 0x21008174: 00 00 00 00 +# Reg NUM:NUM = 0x64 +# Write 4 bytes to 0x110082f0: 7c 0b e5 81 +# Write 4 bytes to 0x110082f4: ff 02 00 00 +# Write 4 bytes to 0x21008178: 00 00 00 00 +# Reg NUM:NUM = 0x63 +# Write 4 bytes to 0x110082f8: 7c 0b e6 81 +# Write 4 bytes to 0x110082fc: ff 02 00 00 +# Write 4 bytes to 0x2100817c: 00 00 00 00 +# Reg NUM:NUM = 0x62 +# Write 4 bytes to 0x11008300: 7c 0b e7 81 +# Write 4 bytes to 0x11008304: ff 02 00 00 +# Write 4 bytes to 0x21008180: 00 00 00 00 +# Reg NUM:NUM = 0x61 +# Write 4 bytes to 0x11008308: 7c 13 e9 81 +# Write 4 bytes to 0x1100830c: bc 21 e8 01 +# Write 4 bytes to 0x21008184: 00 00 00 00 +# Reg NUM:NUM = 0x60 +# Write 4 bytes to 0x11008310: 3c 03 00 80 +# Write 4 bytes to 0x11008314: bd 28 e8 01 +# Write 4 bytes to 0x21008188: 00 00 00 00 +# Reg NUM:NUM = 0x5f +# Write 4 bytes to 0x11008318: 3c 03 00 80 +# Write 4 bytes to 0x1100831c: be 30 e8 01 +# Write 4 bytes to 0x2100818c: 00 00 00 00 +# Reg NUM:NUM = 0x5e +# Write 4 bytes to 0x11008320: 3c 03 00 80 +# Write 4 bytes to 0x11008324: 0b 3b e8 01 +# Write 4 bytes to 0x21008190: 00 00 00 00 +# Reg NUM:NUM = 0x5d +# Write 4 bytes to 0x11008328: 7c 13 ea 81 +# Write 4 bytes to 0x1100832c: bc 21 e9 01 +# Write 4 bytes to 0x21008194: 00 00 00 00 +# Reg NUM:NUM = 0x5c +# Write 4 bytes to 0x11008330: 3c 03 00 80 +# Write 4 bytes to 0x11008334: bd 28 e9 01 +# Write 4 bytes to 0x21008198: 00 00 00 00 +# Reg NUM:NUM = 0x5b +# Write 4 bytes to 0x11008338: 3c 03 00 80 +# Write 4 bytes to 0x1100833c: be 30 e9 01 +# Write 4 bytes to 0x2100819c: 00 00 00 00 +# Reg NUM:NUM = 0x5a +# Write 4 bytes to 0x11008340: 7d 63 e3 81 +# Write 4 bytes to 0x11008344: 4b 3b e9 01 +# Write 4 bytes to 0x210081a0: 00 00 00 00 +# Reg NUM:NUM = 0x59 +# Write 4 bytes to 0x11008348: 7c 13 eb 81 +# Write 4 bytes to 0x1100834c: bc 21 ea 01 +# Write 4 bytes to 0x210081a4: 00 00 00 00 +# Reg NUM:NUM = 0x58 +# Write 4 bytes to 0x11008350: 3c 03 00 80 +# Write 4 bytes to 0x11008354: bd 28 ea 01 +# Write 4 bytes to 0x210081a8: 00 00 00 00 +# Reg NUM:NUM = 0x57 +# Write 4 bytes to 0x11008358: 3c 03 00 80 +# Write 4 bytes to 0x1100835c: be 30 ea 01 +# Write 4 bytes to 0x210081ac: 00 00 00 00 +# Reg NUM:NUM = 0x56 +# Write 4 bytes to 0x11008360: 7d 6b e3 81 +# Write 4 bytes to 0x11008364: 8b 3b ea 01 +# Write 4 bytes to 0x210081b0: 00 00 00 00 +# Reg NUM:NUM = 0x55 +# Write 4 bytes to 0x11008368: 3c 03 00 80 +# Write 4 bytes to 0x1100836c: bc 21 eb 01 +# Write 4 bytes to 0x210081b4: 00 00 00 00 +# Reg NUM:NUM = 0x54 +# Write 4 bytes to 0x11008370: 3c 03 00 80 +# Write 4 bytes to 0x11008374: bd 28 eb 01 +# Write 4 bytes to 0x210081b8: 00 00 00 00 +# Reg NUM:NUM = 0x53 +# Write 4 bytes to 0x11008378: 3c 03 00 80 +# Write 4 bytes to 0x1100837c: be 30 eb 01 +# Write 4 bytes to 0x210081bc: 00 00 00 00 +# Reg NUM:NUM = 0x52 +# Write 4 bytes to 0x11008380: 7d 73 e3 81 +# Write 4 bytes to 0x11008384: cb 3b eb 01 +# Write 4 bytes to 0x210081c0: 00 00 00 00 +# Reg NUM:NUM = 0x51 +# Write 4 bytes to 0x11008388: 3c 03 00 80 +# Write 4 bytes to 0x1100838c: ff 02 00 00 +# Write 4 bytes to 0x210081c4: 00 00 00 00 +# Reg NUM:NUM = 0x50 +# Write 4 bytes to 0x11008390: 3c 03 00 80 +# Write 4 bytes to 0x11008394: ff 02 00 00 +# Write 4 bytes to 0x210081c8: 00 00 00 00 +# Reg NUM:NUM = 0x4f +# Write 4 bytes to 0x11008398: 3c 03 00 80 +# Write 4 bytes to 0x1100839c: ff 02 00 00 +# Write 4 bytes to 0x210081cc: 00 00 00 00 +# Reg NUM:NUM = 0x4e +# Write 4 bytes to 0x110083a0: 7d 7b e3 81 +# Write 4 bytes to 0x110083a4: ff 02 00 00 +# Write 4 bytes to 0x210081d0: 00 00 00 00 +# Reg NUM:NUM = 0x4d +# Write 4 bytes to 0x110083a8: 3c 03 00 80 +# Write 4 bytes to 0x110083ac: ff 02 00 00 +# Write 4 bytes to 0x210081d4: 00 00 00 00 +# Reg NUM:NUM = 0x4c +# Write 4 bytes to 0x110083b0: 00 78 00 48 +# Write 4 bytes to 0x110083b4: ff 02 00 00 +# Write 4 bytes to 0x210081d8: 00 00 00 00 +# Reg NUM:NUM = 0x4b +# Write 4 bytes to 0x110083b8: 3c 03 00 80 +# Write 4 bytes to 0x110083bc: ff 02 00 00 +# Write 4 bytes to 0x210081dc: 00 00 00 00 +# Reg NUM:NUM = 0x4a +# Write 4 bytes to 0x110083c0: 7c 0b e1 81 +# Write 4 bytes to 0x110083c4: 18 01 e0 01 +# Write 4 bytes to 0x210081e0: 00 00 00 00 +# Reg NUM:NUM = 0x49 +# Write 4 bytes to 0x110083c8: 7c 0b e2 81 +# Write 4 bytes to 0x110083cc: 58 01 e0 01 +# Write 4 bytes to 0x210081e4: 00 00 00 00 +# Reg NUM:NUM = 0x48 +# Write 4 bytes to 0x110083d0: 7c 0b e3 81 +# Write 4 bytes to 0x110083d4: 98 01 e0 01 +# Write 4 bytes to 0x210081e8: 00 00 00 00 +# Reg NUM:NUM = 0x47 +# Write 4 bytes to 0x110083d8: da 0f c9 3f +# Write 4 bytes to 0x110083dc: ff 02 00 80 +# Write 4 bytes to 0x210081ec: 00 00 00 00 +# Reg NUM:NUM = 0x46 +# Write 4 bytes to 0x110083e0: fc 0f 00 80 +# Write 4 bytes to 0x110083e4: 03 21 00 01 +# Write 4 bytes to 0x210081f0: 00 00 00 00 +# Reg NUM:NUM = 0x45 +# Write 4 bytes to 0x110083e8: 3c 03 00 80 +# Write 4 bytes to 0x110083ec: ff 02 00 00 +# Write 4 bytes to 0x210081f4: 00 00 00 00 +# Reg NUM:NUM = 0x44 +# Write 4 bytes to 0x110083f0: 3c 03 00 80 +# Write 4 bytes to 0x110083f4: ff 02 00 00 +# Write 4 bytes to 0x210081f8: 00 00 00 00 +# Reg NUM:NUM = 0x43 +# Write 4 bytes to 0x110083f8: 3c 03 00 80 +# Write 4 bytes to 0x110083fc: a2 10 e0 01 +# Write 4 bytes to 0x210081fc: 00 00 00 00 +# Reg NUM:NUM = 0x42 +# Write 4 bytes to 0x11008400: bf 07 00 80 +# Write 4 bytes to 0x11008404: ff 02 00 00 +# Write 4 bytes to 0x21008200: 00 00 00 00 +# Reg NUM:NUM = 0x41 +# Write 4 bytes to 0x11008408: 7c 06 45 80 +# Write 4 bytes to 0x1100840c: ff 02 00 00 +# Write 4 bytes to 0x21008204: 00 00 00 00 +# Reg NUM:NUM = 0x40 +# Write 4 bytes to 0x11008410: 7c 06 86 80 +# Write 4 bytes to 0x11008414: ff 02 00 00 +# Write 4 bytes to 0x21008208: 00 00 00 00 +# Reg NUM:NUM = 0x3f +# Write 4 bytes to 0x11008418: fc 17 00 80 +# Write 4 bytes to 0x1100841c: ff 02 00 00 +# Write 4 bytes to 0x2100820c: 00 00 00 00 +# Reg NUM:NUM = 0x3e +# Write 4 bytes to 0x11008420: 3c 03 00 80 +# Write 4 bytes to 0x11008424: ff 02 00 00 +# Write 4 bytes to 0x21008210: 00 00 00 00 +# Reg NUM:NUM = 0x3d +# Write 4 bytes to 0x11008428: 3c 03 00 80 +# Write 4 bytes to 0x1100842c: ff 02 00 00 +# Write 4 bytes to 0x21008214: 00 00 00 00 +# Reg NUM:NUM = 0x3c +# Write 4 bytes to 0x11008430: 3c 03 00 80 +# Write 4 bytes to 0x11008434: 9a 31 e0 01 +# Write 4 bytes to 0x21008218: 00 00 00 00 +# Reg NUM:NUM = 0x3b +# Write 4 bytes to 0x11008438: bf 07 00 80 +# Write 4 bytes to 0x1100843c: ff 02 00 00 +# Write 4 bytes to 0x2100821c: 00 00 00 00 +# Reg NUM:NUM = 0x3a +# Write 4 bytes to 0x11008440: 7c 06 85 80 +# Write 4 bytes to 0x11008444: ff 02 00 00 +# Write 4 bytes to 0x21008220: 00 00 00 00 +# Reg NUM:NUM = 0x39 +# Write 4 bytes to 0x11008448: 7c 06 46 80 +# Write 4 bytes to 0x1100844c: ff 02 00 00 +# Write 4 bytes to 0x21008224: 00 00 00 00 +# Reg NUM:NUM = 0x38 +# Write 4 bytes to 0x11008450: fc 0f 20 80 +# Write 4 bytes to 0x11008454: d8 01 e0 01 +# Write 4 bytes to 0x21008228: 00 00 00 00 +# Reg NUM:NUM = 0x37 +# Write 4 bytes to 0x11008458: 3c 03 00 80 +# Write 4 bytes to 0x1100845c: 18 02 e0 01 +# Write 4 bytes to 0x2100822c: 00 00 00 00 +# Reg NUM:NUM = 0x36 +# Write 4 bytes to 0x11008460: 3c 03 00 80 +# Write 4 bytes to 0x11008464: 58 02 e0 01 +# Write 4 bytes to 0x21008230: 00 00 00 00 +# Reg NUM:NUM = 0x35 +# Write 4 bytes to 0x11008468: 3c 03 00 80 +# Write 4 bytes to 0x1100846c: ff 02 00 00 +# Write 4 bytes to 0x21008234: 00 00 00 00 +# Reg NUM:NUM = 0x34 +# Write 4 bytes to 0x11008470: 3c 03 00 80 +# Write 4 bytes to 0x11008474: ff 02 00 00 +# Write 4 bytes to 0x21008238: 00 00 00 00 +# Reg NUM:NUM = 0x33 +# Write 4 bytes to 0x11008478: 3c 03 00 80 +# Write 4 bytes to 0x1100847c: 03 42 80 00 +# Write 4 bytes to 0x2100823c: 00 00 00 00 +# Reg NUM:NUM = 0x32 +# Write 4 bytes to 0x11008480: bf 07 00 80 +# Write 4 bytes to 0x11008484: ff 02 00 00 +# Write 4 bytes to 0x21008240: 00 00 00 00 +# Reg NUM:NUM = 0x31 +# Write 4 bytes to 0x11008488: 7c 06 47 80 +# Write 4 bytes to 0x1100848c: ff 02 00 00 +# Write 4 bytes to 0x21008244: 00 00 00 00 +# Reg NUM:NUM = 0x30 +# Write 4 bytes to 0x11008490: 7c 06 09 81 +# Write 4 bytes to 0x11008494: ff 02 00 00 +# Write 4 bytes to 0x21008248: 00 00 00 00 +# Reg NUM:NUM = 0x2f +# Write 4 bytes to 0x11008498: fc 17 20 80 +# Write 4 bytes to 0x1100849c: ff 02 00 00 +# Write 4 bytes to 0x2100824c: 00 00 00 00 +# Reg NUM:NUM = 0x2e +# Write 4 bytes to 0x110084a0: 3c 03 00 80 +# Write 4 bytes to 0x110084a4: ff 02 00 00 +# Write 4 bytes to 0x21008250: 00 00 00 00 +# Reg NUM:NUM = 0x2d +# Write 4 bytes to 0x110084a8: 3c 03 00 80 +# Write 4 bytes to 0x110084ac: da 39 e0 01 +# Write 4 bytes to 0x21008254: 00 00 00 00 +# Reg NUM:NUM = 0x2c +# Write 4 bytes to 0x110084b0: bf 07 00 80 +# Write 4 bytes to 0x110084b4: ff 02 00 00 +# Write 4 bytes to 0x21008258: 00 00 00 00 +# Reg NUM:NUM = 0x2b +# Write 4 bytes to 0x110084b8: 7c 06 07 81 +# Write 4 bytes to 0x110084bc: ff 02 00 00 +# Write 4 bytes to 0x2100825c: 00 00 00 00 +# Reg NUM:NUM = 0x2a +# Write 4 bytes to 0x110084c0: 7c 06 49 80 +# Write 4 bytes to 0x110084c4: ff 02 00 00 +# Write 4 bytes to 0x21008260: 00 00 00 00 +# Reg NUM:NUM = 0x29 +# Write 4 bytes to 0x110084c8: fc 0f 40 80 +# Write 4 bytes to 0x110084cc: 98 02 e0 01 +# Write 4 bytes to 0x21008264: 00 00 00 00 +# Reg NUM:NUM = 0x28 +# Write 4 bytes to 0x110084d0: 3c 03 00 80 +# Write 4 bytes to 0x110084d4: d8 02 e0 01 +# Write 4 bytes to 0x21008268: 00 00 00 00 +# Reg NUM:NUM = 0x27 +# Write 4 bytes to 0x110084d8: 3c 03 00 80 +# Write 4 bytes to 0x110084dc: 18 03 e0 01 +# Write 4 bytes to 0x2100826c: 00 00 00 00 +# Reg NUM:NUM = 0x26 +# Write 4 bytes to 0x110084e0: 3c 03 00 80 +# Write 4 bytes to 0x110084e4: bc 21 c7 01 +# Write 4 bytes to 0x21008270: 00 00 00 00 +# Reg NUM:NUM = 0x25 +# Write 4 bytes to 0x110084e8: 3c 03 00 80 +# Write 4 bytes to 0x110084ec: bd 28 c7 01 +# Write 4 bytes to 0x21008274: 00 00 00 00 +# Reg NUM:NUM = 0x24 +# Write 4 bytes to 0x110084f0: 3c 03 00 80 +# Write 4 bytes to 0x110084f4: ca 31 c7 01 +# Write 4 bytes to 0x21008278: 00 00 00 00 +# Reg NUM:NUM = 0x23 +# Write 4 bytes to 0x110084f8: 3c 03 00 80 +# Write 4 bytes to 0x110084fc: 03 63 40 00 +# Write 4 bytes to 0x2100827c: 00 00 00 00 +# Reg NUM:NUM = 0x22 +# Write 4 bytes to 0x11008500: 3c 03 00 80 +# Write 4 bytes to 0x11008504: bc 21 c8 01 +# Write 4 bytes to 0x21008280: 00 00 00 00 +# Reg NUM:NUM = 0x21 +# Write 4 bytes to 0x11008508: 3c 03 00 80 +# Write 4 bytes to 0x1100850c: bd 28 c8 01 +# Write 4 bytes to 0x21008284: 00 00 00 00 +# Reg NUM:NUM = 0x20 +# Write 4 bytes to 0x11008510: 3c 03 00 80 +# Write 4 bytes to 0x11008514: 0a 32 c8 01 +# Write 4 bytes to 0x21008288: 00 00 00 00 +# Reg NUM:NUM = 0x1f +# Write 4 bytes to 0x11008518: 3c 03 00 80 +# Write 4 bytes to 0x1100851c: bc 21 c9 01 +# Write 4 bytes to 0x2100828c: 00 00 00 00 +# Reg NUM:NUM = 0x1e +# Write 4 bytes to 0x11008520: 3c 03 00 80 +# Write 4 bytes to 0x11008524: bd 28 c9 01 +# Write 4 bytes to 0x21008290: 00 00 00 00 +# Reg NUM:NUM = 0x1d +# Write 4 bytes to 0x11008528: 3c 03 00 80 +# Write 4 bytes to 0x1100852c: 4a 32 c9 01 +# Write 4 bytes to 0x21008294: 00 00 00 00 +# Reg NUM:NUM = 0x1c +# Write 4 bytes to 0x11008530: bf 07 00 80 +# Write 4 bytes to 0x11008534: ff 02 00 00 +# Write 4 bytes to 0x21008298: 00 00 00 00 +# Reg NUM:NUM = 0x1b +# Write 4 bytes to 0x11008538: 7c 06 8a 80 +# Write 4 bytes to 0x1100853c: ff 02 00 00 +# Write 4 bytes to 0x2100829c: 00 00 00 00 +# Reg NUM:NUM = 0x1a +# Write 4 bytes to 0x11008540: 7c 06 0b 81 +# Write 4 bytes to 0x11008544: ff 02 00 00 +# Write 4 bytes to 0x210082a0: 00 00 00 00 +# Reg NUM:NUM = 0x19 +# Write 4 bytes to 0x11008548: fc 17 40 80 +# Write 4 bytes to 0x1100854c: ff 02 00 00 +# Write 4 bytes to 0x210082a4: 00 00 00 00 +# Reg NUM:NUM = 0x18 +# Write 4 bytes to 0x11008550: 3c 03 00 80 +# Write 4 bytes to 0x11008554: ff 02 00 00 +# Write 4 bytes to 0x210082a8: 00 00 00 00 +# Reg NUM:NUM = 0x17 +# Write 4 bytes to 0x11008558: 3c 03 00 80 +# Write 4 bytes to 0x1100855c: ff 02 00 00 +# Write 4 bytes to 0x210082ac: 00 00 00 00 +# Reg NUM:NUM = 0x16 +# Write 4 bytes to 0x11008560: 3c 03 00 80 +# Write 4 bytes to 0x11008564: da 5a e0 01 +# Write 4 bytes to 0x210082b0: 00 00 00 00 +# Reg NUM:NUM = 0x15 +# Write 4 bytes to 0x11008568: bf 07 00 80 +# Write 4 bytes to 0x1100856c: ff 02 00 00 +# Write 4 bytes to 0x210082b4: 00 00 00 00 +# Reg NUM:NUM = 0x14 +# Write 4 bytes to 0x11008570: 7c 06 0a 81 +# Write 4 bytes to 0x11008574: ff 02 00 00 +# Write 4 bytes to 0x210082b8: 00 00 00 00 +# Reg NUM:NUM = 0x13 +# Write 4 bytes to 0x11008578: 7c 06 8b 80 +# Write 4 bytes to 0x1100857c: ff 02 00 00 +# Write 4 bytes to 0x210082bc: 00 00 00 00 +# Reg NUM:NUM = 0x12 +# Write 4 bytes to 0x11008580: 3c 03 00 80 +# Write 4 bytes to 0x11008584: ff 02 00 00 +# Write 4 bytes to 0x210082c0: 00 00 00 00 +# Reg NUM:NUM = 0x11 +# Write 4 bytes to 0x11008588: 3c 03 00 80 +# Write 4 bytes to 0x1100858c: ff 02 00 00 +# Write 4 bytes to 0x210082c4: 00 00 00 00 +# Reg NUM:NUM = 0x10 +# Write 4 bytes to 0x11008590: 3c 03 00 80 +# Write 4 bytes to 0x11008594: bc 39 ca 01 +# Write 4 bytes to 0x210082c8: 00 00 00 00 +# Reg NUM:NUM = 0xf +# Write 4 bytes to 0x11008598: 3c 03 00 80 +# Write 4 bytes to 0x1100859c: bd 40 ca 01 +# Write 4 bytes to 0x210082cc: 00 00 00 00 +# Reg NUM:NUM = 0xe +# Write 4 bytes to 0x110085a0: 3c 03 00 80 +# Write 4 bytes to 0x110085a4: 8a 4a ca 01 +# Write 4 bytes to 0x210082d0: 00 00 00 00 +# Reg NUM:NUM = 0xd +# Write 4 bytes to 0x110085a8: 3c 03 00 80 +# Write 4 bytes to 0x110085ac: bc 39 cb 01 +# Write 4 bytes to 0x210082d4: 00 00 00 00 +# Reg NUM:NUM = 0xc +# Write 4 bytes to 0x110085b0: 3c 03 00 80 +# Write 4 bytes to 0x110085b4: bd 40 cb 01 +# Write 4 bytes to 0x210082d8: 00 00 00 00 +# Reg NUM:NUM = 0xb +# Write 4 bytes to 0x110085b8: 3c 03 00 80 +# Write 4 bytes to 0x110085bc: ca 4a cb 01 +# Write 4 bytes to 0x210082dc: 00 00 00 00 +# Reg NUM:NUM = 0xa +# Write 4 bytes to 0x110085c0: 3c 03 00 80 +# Write 4 bytes to 0x110085c4: bc 39 cc 01 +# Write 4 bytes to 0x210082e0: 00 00 00 00 +# Reg NUM:NUM = 0x9 +# Write 4 bytes to 0x110085c8: 3c 03 00 80 +# Write 4 bytes to 0x110085cc: bd 40 cc 01 +# Write 4 bytes to 0x210082e4: 00 00 00 00 +# Reg NUM:NUM = 0x8 +# Write 4 bytes to 0x110085d0: 3c 03 00 80 +# Write 4 bytes to 0x110085d4: 0a 4b cc 01 +# Write 4 bytes to 0x210082e8: 00 00 00 00 +# Reg NUM:NUM = 0x7 +# Write 4 bytes to 0x110085d8: 3c 03 00 80 +# Write 4 bytes to 0x110085dc: ff 02 00 00 +# Write 4 bytes to 0x210082ec: 00 00 00 00 +# Reg NUM:NUM = 0x6 +# Write 4 bytes to 0x110085e0: 7d 53 c2 81 +# Write 4 bytes to 0x110085e4: ff 02 00 00 +# Write 4 bytes to 0x210082f0: 00 00 00 00 +# Reg NUM:NUM = 0x5 +# Write 4 bytes to 0x110085e8: 7d 5b c2 81 +# Write 4 bytes to 0x110085ec: ff 02 00 00 +# Write 4 bytes to 0x210082f4: 00 00 00 00 +# Reg NUM:NUM = 0x4 +# Write 4 bytes to 0x110085f0: 7d 63 c2 81 +# Write 4 bytes to 0x110085f4: ff 02 00 00 +# Write 4 bytes to 0x210082f8: 00 00 00 00 +# Reg NUM:NUM = 0x3 +# Write 4 bytes to 0x110085f8: 7d 1b c2 81 +# Write 4 bytes to 0x110085fc: ff 02 00 00 +# Write 4 bytes to 0x210082fc: 00 00 00 00 +# Reg NUM:NUM = 0x2 +# Write 4 bytes to 0x11008600: 3c 03 00 80 +# Write 4 bytes to 0x11008604: ff 02 00 00 +# Write 4 bytes to 0x21008300: 00 00 00 00 +# Reg NUM:NUM = 0x1 +# Write 4 bytes to 0x11008608: 00 78 00 48 +# Write 4 bytes to 0x1100860c: ff 02 00 00 +# Write 4 bytes to 0x21008304: 00 00 00 00 +# Reg NUM:NUM = 0x0 +# Write 4 bytes to 0x11008610: 3c 03 00 80 +# Write 4 bytes to 0x11008614: ff 02 00 00 +# Write 4 bytes to 0x21008308: 00 00 00 00 +# Reg STAT:PPS = 0x0 +1 0x4ac30000_00000000_00000000_00000000 0x00000000 PPPP +1 0x000002ff_10020016_000002ff_10010000 0x00000000 .... +1 0x000002ff_420f0074_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1001001a_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1003001e_000002ff_10020016 0x00000000 .... +1 0x000002ff_420f0052_000002ff_8000033c 0x00000000 .... +1 0x000002ff_1004001e_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_81e4237c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_81e6237c_000002ff_81e5237c 0x00000000 .... +1 0x000002ff_11e107ff_000002ff_81e7237c 0x00000000 .... +1 0x000002ff_10090000_000002ff_10030001 0x00000000 .... +1 0x400002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_52090002_000002ff_8000033c 0x00000000 .... +1 0x000002ff_100c005f_000002ff_800506bc 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_10082801_000002ff_090b2800 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_80015af4 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800058b0_000002ff_800b41b0 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_10076004_000002ff_81fe337c 0x00000000 .... +1 0x000002ff_81f5437c_000002ff_100d6005 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800b5ff2 0x00000000 .... +1 0x01f6a97c_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03edb000_000002ff_8000033c 0x00000000 .... +1 0x000002ff_100d6802_000002ff_520b07f6 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800012f0 0x00000000 .... +1 0x01fe21bc_03ecd800_01e0ff5b_81ff03bc 0x00000000 .... +1 0x01fe30be_800c60b2_01fe28bd_800b5ff2 0x00000000 .... +1 0x01fbe17d_81fe337c_01fe3fcb_8000033c 0x00000000 .... +1 0x01e0ef1c_8000033c_000002ff_520b07f9 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_81ff03bc 0x00000000 .... +1 0x000002ff_01f42800_000002ff_800c60b2 0x00000000 .... +1 0x01fbe17d_8000033c_000002ff_8000033c 0x00000000 .... +1 0x01e0ff1c_03e7a000_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_8000033c 0x00000000 .... +1 0x01fbe17d_8000033c_000002ff_800c60b2 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_03ecd800_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_800c60b2 0x00000000 .... +1 0x000002ff_80003efc_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_80091a71 0x00000000 .... +1 0x000002ff_8000033c_400002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_400007be 0x00000000 .... +1 0x000002ff_81e40b7c_000002ff_81e8137c 0x00000000 .... +1 0x000002ff_81e60b7c_000002ff_81e50b7c 0x00000000 .... +1 0x01e821bc_81e9137c_000002ff_81e70b7c 0x00000000 .... +1 0x01e830be_8000033c_01e828bd_8000033c 0x00000000 .... +1 0x01e921bc_81ea137c_01e83b0b_8000033c 0x00000000 .... +1 0x01e930be_8000033c_01e928bd_8000033c 0x00000000 .... +1 0x01ea21bc_81eb137c_01e93b4b_81e3637d 0x00000000 .... +1 0x01ea30be_8000033c_01ea28bd_8000033c 0x00000000 .... +1 0x01eb21bc_8000033c_01ea3b8b_81e36b7d 0x00000000 .... +1 0x01eb30be_8000033c_01eb28bd_8000033c 0x00000000 .... +1 0x000002ff_8000033c_01eb3bcb_81e3737d 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_81e37b7d 0x00000000 .... +1 0x000002ff_8000033c_000002ff_48007800 0x00000000 .... +1 0x01e00158_81e20b7c_01e00118_81e10b7c 0x00000000 .... +1 0x800002ff_3fc90fda_01e00198_81e30b7c 0x00000000 .... +1 0x000002ff_8000033c_01002103_80000ffc 0x00000000 .... +1 0x01e010a2_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8045067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_800017fc_000002ff_8086067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800007bf_01e0319a_8000033c 0x00000000 .... +1 0x000002ff_8046067c_000002ff_8085067c 0x00000000 .... +1 0x01e00218_8000033c_01e001d8_80200ffc 0x00000000 .... +1 0x000002ff_8000033c_01e00258_8000033c 0x00000000 .... +1 0x00804203_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8047067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_802017fc_000002ff_8109067c 0x00000000 .... +1 0x01e039da_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_8107067c_000002ff_800007bf 0x00000000 .... +1 0x01e00298_80400ffc_000002ff_8049067c 0x00000000 .... +1 0x01e00318_8000033c_01e002d8_8000033c 0x00000000 .... +1 0x01c728bd_8000033c_01c721bc_8000033c 0x00000000 .... +1 0x00406303_8000033c_01c731ca_8000033c 0x00000000 .... +1 0x01c828bd_8000033c_01c821bc_8000033c 0x00000000 .... +1 0x01c921bc_8000033c_01c8320a_8000033c 0x00000000 .... +1 0x01c9324a_8000033c_01c928bd_8000033c 0x00000000 .... +1 0x000002ff_808a067c_000002ff_800007bf 0x00000000 .... +1 0x000002ff_804017fc_000002ff_810b067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x000002ff_800007bf_01e05ada_8000033c 0x00000000 .... +1 0x000002ff_808b067c_000002ff_810a067c 0x00000000 .... +1 0x000002ff_8000033c_000002ff_8000033c 0x00000000 .... +1 0x01ca40bd_8000033c_01ca39bc_8000033c 0x00000000 .... +1 0x01cb39bc_8000033c_01ca4a8a_8000033c 0x00000000 .... +1 0x01cb4aca_8000033c_01cb40bd_8000033c 0x00000000 .... +1 0x01cc40bd_8000033c_01cc39bc_8000033c 0x00000000 .... +1 0x000002ff_8000033c_01cc4b0a_8000033c 0x00000000 .... +1 0x000002ff_81c25b7d_000002ff_81c2537d 0x00000000 .... +1 0x000002ff_81c21b7d_000002ff_81c2637d 0x00000000 .... +1 0x000002ff_48007800_000002ff_8000033c 0x00000000 .... +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +1 0x00000000_00000000_000002ff_8000033c 0x00000000 PP.. +# Reg STAT:FQC = 0x0 +# Reg STAT:PPS = 0x0 +# Reg STAT:FQC = 0x1 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x0 +# Reg STAT:PPS = 0x2 +# Reg STAT:PPS = 0x1 +# Reg STAT:PPS = 0x3 +# Write 16 bytes to 0x10006010: 0b 80 00 00 00 00 00 10 0e 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 0a 00 00 00 00 00 4c 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 7f 02 00 00 df 01 40 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 6c 00 00 00 71 00 00 18 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 01 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 96 00 00 01 00 00 00 00 4e 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 07 00 00 00 00 00 47 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 01 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 00 00 00 00 00 00 58 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 00 00 00 00 80 02 e0 01 5a 00 00 00 00 00 00 00 +# Write 16 bytes to 0x10006010: 03 00 00 00 00 00 00 00 5b 00 00 00 00 00 00 00 +# Reg STAT:PPS = 0x0 +1 0x5100000c_00000000_00000000_00000000 0x00000000 PPPP +1 0x00000000_0000000e_10000000_0000800b 0x00000000 .... +1 0x00000000_0000004c_00000000_000a0000 0x00000000 .... +1 0x00000000_00000040_01df0000_027f0000 0x00000000 .... +1 0x00000000_00000018_00007100_00006c00 0x00000000 .... +1 0x00000000_0000001a_00000000_00000001 0x00000000 .... +1 0x00000000_0000004e_00000000_01000096 0x00000000 .... +1 0x00000000_00000047_00000000_00070000 0x00000000 .... +1 0x00000000_00000046_00000000_00000001 0x00000000 .... +1 0x00000000_00000058_00000000_00000000 0x00000000 .... +1 0x00000000_00000059_00000000_00000000 0x00000000 .... +1 0x00000000_0000005a_01e00280_00000000 0x00000000 .... +1 0x00000000_0000005b_00000000_00000003 0x00000000 .... +# Reg STAT:FQC = 0x0 diff --git a/sim/testsuite/sky/t-pke3.trc b/sim/testsuite/sky/t-pke3.trc new file mode 100644 index 0000000..318cf74 --- /dev/null +++ b/sim/testsuite/sky/t-pke3.trc @@ -0,0 +1,333 @@ +# PKE tests for code coverage +# +# +# +# ---- STCYCL/CYCLE ---- +# +# Test STCYCL instruction +0 0x0100fedc_00000000_00000000_00000000 0x00000000 PPPP +# Attempt erroneous write to CYCLE register +! 0x10003840 0x0000dead +# Read CYCLE register; confirm proper value +? 0x10003840 0x0000fedc 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- OFFSET/OFST ---- +# +# Test OFFSET instruction on PKE1 +1 0x0200ffff_00000000_00000000_00000000 0x00000000 PPPP +# Attempt erroneous write to OFFSET register +! 0x10003cb0 0x0000dead +# Read OFST register; confirm proper 10-bit value +? 0x10003cb0 0x000003ff 0xffffffff +# Read STAT register; confirm DBF=0 +? 0x10003c00 0x00000000 0x00000080 +# Read DBF register; confirm DBF=0 +? 0x10003cf0 0x00000000 0x00000001 +# Read STAT register; confirm ER1 not set +? 0x10003c00 0x00000000 0x00002000 +# +# +# ---- BASE/BASE ---- +# +# Test BASE instruction on PKE1 +1 0x0300ffff_00000000_00000000_00000000 0x00000000 PPPP +# Attempt erroneous write to BASE register +! 0x10003ca0 0x0000dead +# Read BASE register; confirm proper 10-bit value +? 0x10003ca0 0x000003ff 0xffffffff +# Read STAT register; confirm DBF=0 +? 0x10003c00 0x00000000 0x00000080 +# Read DBF register; confirm DBF=0 +? 0x10003cf0 0x00000000 0x00000001 +# +# +# ---- ITOP/ITOPS ---- +# +# Test ITOP instruction +0 0x0400ffff_00000000_00000000_00000000 0x00000000 PPPP +# Attempt erroneous write to ITOPS register +! 0x10003890 0x0000dead +# Read ITOPS register; confirm proper 10-bit value +? 0x10003890 0x000003ff 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- STMOD/MODE ---- +# +# Test STMOD instruction +0 0x05000003_00000000_00000000_00000000 0x00000000 PPPP +# Attempt erroneous write to MODE register +! 0x10003850 0x0000dead +# Read MODE register; confirm proper value +? 0x10003850 0x00000003 0xffffffff +# Test STMOD instruction with junk upper bits +0 0x0500dad1_00000000_00000000_00000000 0x00000000 PPPP +# Read MODE register; confirm proper value +? 0x10003850 0x00000001 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- STMARK/MARK ---- +# +# Test MARK instruction +0 0x0700abcd_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm MRK bit set +? 0x10003800 0x00000040 0x00000040 +# Read MARK register +? 0x10003830 0x0000abcd 0xffffffff +# Write MARK register +! 0x10003830 0x00001234 +# Read STAT register; confirm MRK bit clear +? 0x10003800 0x00000000 0x00000040 +# Read MARK register +? 0x10003830 0x00001234 0xffffffff +# +# +# ---- ERROR/ER1 ---- +# +# A bad PKEcode +1 0x00000000_00000000_00000000_08000000 0x00000000 PPPP +# should put PKE into stalled mode, not executing following PKENOPs +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Read CODE register; confirm PKE is stuck at bad code +? 0x10003c80 0x08000000 0xffffffff +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# +# +# ---- STMASK/MASK ---- +# +# Test STMASK instruction; leave operand out for now +0 0x20000000_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003800 0x00000001 0x00000003 +# Add operand for STMASK instruction +0 0x00000000_00000000_00000000_1234abcd 0x00000000 PPPP +# Erroneous write to MASK register +! 0x10003870 0x98765432 +# Read MASK register +? 0x10003870 0x1234abcd 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- DIRECT ---- +# +# Test DIRECT instruction; leave operand out for now +1 0x50000001_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003c00 0x00000001 0x00000003 +# Supply operand - it's a bad GPUIF tag +1 0x00000000_00000000_00000000_00000000 0x00000000 .... +# Test DIRECT instruction with bad operand alignment +1 0x00000000_50000001_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# Test DIRECT instruction with bad operand alignment +1 0x00000000_00000000_50000001_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# Test DIRECT instruction with bad operand alignment +1 0x00000000_00000000_00000000_50000001 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# +# +# ---- MPG - PKE0 ---- +# +# Test MPG instruction; leave operand out for now +0 0x4a080000_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003800 0x00000001 0x00000003 +# Supply operands - eight two junk VU instruction word-pairs with real source-addr's +0 0xdeadbeef_0bad0bad_beef0bad_2bad2bad 0x00000010 .... +0 0xabcdbeef_44332211_12987423_95555999 0x00000100 .... +0 0xdeadabcd_75577588_beef0bad_89abcdef 0x00001000 .... +0 0xa5a5a5a5_5aaa5533_01234567_77889900 0x00010000 .... +# Check that instructions were loaded properly +? 0x11000000 0x2bad2bad 0xffffffff +? 0x11000004 0xbeef0bad 0xffffffff +? 0x11000014 0x12987423 0xffffffff +? 0x11000028 0x75577588 0xffffffff +? 0x1100003c 0xa5a5a5a5 0xffffffff +# Check that source addresses were loaded properly +? 0x21000000 0x00000010 0xffffffff +? 0x21000004 0x00000010 0xffffffff +? 0x21000008 0x00000100 0xffffffff +? 0x2100000c 0x00000100 0xffffffff +? 0x21000010 0x00001000 0xffffffff +? 0x21000014 0x00001000 0xffffffff +? 0x21000018 0x00010000 0xffffffff +? 0x2100001c 0x00010000 0xffffffff +# Test MPG instruction with bad operand alignment +0 0x00000000_4a020000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003800 0x00002000 0x00002000 +# Reset PKE +! 0x10003810 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003800 0x00000000 0x00002000 +# Test MPG instruction with good operand alignment +0 0x00000000_00000000_4a010000_00000000 0x00000000 ..PP +# Read STAT register; confirm ER1 bit not set +? 0x10003800 0x00000000 0x00002000 +# Test MPG instruction with bad operand alignment +0 0x00000000_00000000_00000000_4a010000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003800 0x00002000 0x00002000 +# Reset PKE +! 0x10003810 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- MPG - PKE1 ---- +# +# Test MPG instruction; leave operand out for now +1 0x4a080000_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003c00 0x00000001 0x00000003 +# Supply operands - eight two junk VU instruction word-pairs with real source-addr's +1 0xdeadbeef_0bad0bad_beef0bad_2bad2bad 0x00000010 .... +1 0xabcdbeef_44332211_12987423_95555999 0x00000100 .... +1 0xdeadabcd_75577588_beef0bad_89abcdef 0x00001000 .... +1 0xa5a5a5a5_5aaa5533_01234567_77889900 0x00010000 .... +# Check that instructions were loaded properly +? 0x11008000 0x2bad2bad 0xffffffff +? 0x11008004 0xbeef0bad 0xffffffff +? 0x11008014 0x12987423 0xffffffff +? 0x11008028 0x75577588 0xffffffff +? 0x1100803c 0xa5a5a5a5 0xffffffff +# Check that source addresses were loaded properly +? 0x21008000 0x00000010 0xffffffff +? 0x21008004 0x00000010 0xffffffff +? 0x21008008 0x00000100 0xffffffff +? 0x2100800c 0x00000100 0xffffffff +? 0x21008010 0x00001000 0xffffffff +? 0x21008014 0x00001000 0xffffffff +? 0x21008018 0x00010000 0xffffffff +? 0x2100801c 0x00010000 0xffffffff +# Test MPG instruction with bad operand alignment +1 0x00000000_4a020000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# Test MPG instruction with good operand alignment +1 0x00000000_00000000_4a010000_00000000 0x00000000 ..PP +# Read STAT register; confirm ER1 bit not set +? 0x10003c00 0x00000000 0x00002000 +# Test MPG instruction with bad operand alignment +1 0x00000000_00000000_00000000_4a010000 0x00000000 PPPP +# Read STAT register; confirm ER1 bit set +? 0x10003c00 0x00002000 0x00002000 +# Reset PKE +! 0x10003c10 0x00000001 +# Read STAT register; confirm ER1 no longer set +? 0x10003c00 0x00000000 0x00002000 +# +# +# ---- STROW/ROW + DMA mismatch ---- +# +# Test STROW instruction; leave operand out for now +0 0x30000000_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003800 0x00000001 0x00000003 +# Write ERR register; mask ER0 stalling +! 0x10003820 0x00000002 +# Supply operand - four words +0 0x1234abcd_2345bcde_ffffffff_ffffffff 0x00000000 ..DD +0 0x00000000_00000000_5432dcba_76543210 0x00000000 PP.. +# Read STAT register; confirm ER0 (DMA mismatch) +? 0x10003800 0x00001000 0x00001000 +# Make erroneous write +! 0x10003900 0x11111111 +! 0x10003910 0x22222222 +! 0x10003920 0x33333333 +! 0x10003930 0x44444444 +# Check row registers for value +? 0x10003900 0x2345bcde 0xffffffff +? 0x10003910 0x1234abcd 0xffffffff +? 0x10003920 0x76543210 0xffffffff +? 0x10003930 0x5432dcba 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# Reset PKE +! 0x10003810 0x00000001 +# +# +# ---- STCOL/COL + STOP/CONTINUE ---- +# +# Test STCOL instruction; leave operand out for now +0 0x31000000_00000000_00000000_00000000 0x00000000 PPPP +# Read STAT register; confirm PPS field set at WAIT +? 0x10003800 0x00000001 0x00000003 +# Stop PKE with FBK bit +! 0x10003810 0x00000002 +# Supply operand - four words +0 0x1234abcd_2345bcde_5432dcba_76543210 0x00000000 .... +# Confirm that PKE is continuing to stall due to FBK +? 0x10003800 0x00000200 0x00000200 +? 0x10003800 0x00000200 0x00000200 +? 0x10003800 0x00000200 0x00000200 +# Resume PKE with STC bit +! 0x10003810 0x00000008 +# Read STAT register; confirm FBK no longer set +? 0x10003800 0x00000000 0x00000200 +# Check column registers for value +? 0x10003940 0x76543210 0xffffffff +? 0x10003950 0x5432dcba 0xffffffff +? 0x10003960 0x2345bcde 0xffffffff +? 0x10003970 0x1234abcd 0xffffffff +# Read STAT register; confirm ER1 not set +? 0x10003800 0x00000000 0x00002000 +# +# +# ---- MSKPATH3 ---- +# +# Set then clear MSKPATH3 on PKE1 +1 0x06008000_00000000_06000000_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 not set +? 0x10003c00 0x00000000 0x00002000 +# Erroneously run this on PKE0 +0 0x06008000_00000000_06000000_00000000 0x00000000 PPPP +# Read STAT register; confirm ER1 set +? 0x10003800 0x00002000 0x00002000 +# Reset PKE0 +! 0x10003810 0x00000001 +# +# +# ---- memory-mapped port reading ---- +# +# Erroneously read words from FIFO ports +? 0x10004000 0x00000000 0xffffffff +? 0x10004004 0x00000000 0xffffffff +? 0x10004008 0x00000000 0xffffffff +? 0x1000400c 0x00000000 0xffffffff +? 0x10005000 0x00000000 0xffffffff +? 0x10005004 0x00000000 0xffffffff +? 0x10005008 0x00000000 0xffffffff +? 0x1000500c 0x00000000 0xffffffff +# diff --git a/sim/testsuite/sky/t-pke4.run b/sim/testsuite/sky/t-pke4.run new file mode 100644 index 0000000000000000000000000000000000000000..4c2c17f94454bb7f9381dad802c460bf6d767404 GIT binary patch literal 186145 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�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 z¥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 literal 0 HcmV?d00001 -- 2.7.4